- 사용자 ID 검증 로직 추가 (PortalUserService)
eapim-admin CI / build (push) Has been cancelled

- 사업제휴 관리 > 삭제/다중 삭제 기능 추가 및 화면 수정
- 피드백/개선 요청으로 명칭 변경 (사업제휴 관리)
This commit is contained in:
Rinjae-gf63
2026-06-18 16:31:22 +09:00
parent b741a7e563
commit ef3f0e802a
7 changed files with 132 additions and 12 deletions
@@ -10,10 +10,16 @@ import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Service
@Transactional(transactionManager = "transactionManagerForEMS")
public class PortalPartnershipService extends AbstractEMSDataSerivce<PartnershipApplication, String, PortalPartnershipRepository> {
public void deleteByIds(List<String> ids) {
repository.deleteAllById(ids);
}
public Page<PartnershipApplication> findAll(Pageable pageable, String searchBizSubject, String searchBizDetail) {
QPartnershipApplication qPartnershipApplication = QPartnershipApplication.partnershipApplication;
@@ -77,6 +77,10 @@ public class PortalUserService extends AbstractEMSDataSerivce<PortalUser, String
}
public PortalUser findByUserId(String userId) {
if (StringUtils.isBlank(userId)) {
return null;
}
QPortalUser qPortalUser = QPortalUser.portalUser;
return getJPAQueryFactory()
@@ -55,4 +55,16 @@ public class PortalPartnershipManController extends BaseAnnotationController {
return ResponseEntity.ok(portalPartnershipUI);
}
@PostMapping(value = "/onl/apim/portalpartnership/portalPartnershipMan.json", params = "cmd=DELETE")
public ResponseEntity<Void> delete(String id) {
portalPartnershipManService.delete(id);
return ResponseEntity.ok().build();
}
@PostMapping(value = "/onl/apim/portalpartnership/portalPartnershipMan.json", params = "cmd=DELETE_BULK")
public ResponseEntity<Void> deleteBulk(String ids) {
portalPartnershipManService.deleteBulk(ids);
return ResponseEntity.ok().build();
}
}
@@ -15,6 +15,10 @@ import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
@Service
@Transactional(transactionManager = "transactionManagerForEMS")
public class PortalPartnershipManService extends BaseService {
@@ -51,18 +55,48 @@ public class PortalPartnershipManService extends BaseService {
return convertToUIWithMaskOption(partnershipApplication, false);
}
public void delete(String id) {
PartnershipApplication partnership = partnershipService.getById(id);
Optional.ofNullable(partnership.getFileId())
.filter(StringUtils::isNotBlank)
.ifPresent(fileService::deleteFile);
partnershipService.deleteById(id);
}
public void deleteBulk(String ids) {
if (StringUtils.isBlank(ids)) {
return;
}
List<String> idList = Arrays.asList(ids.split(","));
// 첨부파일 정리 (단건 삭제와 동일한 처리)
idList.forEach(id -> {
PartnershipApplication partnership = partnershipService.getById(id);
Optional.ofNullable(partnership.getFileId())
.filter(StringUtils::isNotBlank)
.ifPresent(fileService::deleteFile);
});
partnershipService.deleteByIds(idList);
}
private PortalPartnershipUI convertToUIWithMaskOption(PartnershipApplication partnership, boolean isMasked) {
PortalPartnershipUI partnershipUI = portalPartnershipUIMapper.toVo(partnership);
PortalUser user = findUser(partnership.getCreatedBy());
// 작성자(createdBy)에 해당하는 포털 사용자가 없을 수 있음(탈퇴/삭제, 시스템 작성 등)
String userName = user != null ? user.getUserName() : null;
String loginId = user != null ? user.getLoginId() : null;
if (isMasked) {
// 마스킹 처리
partnershipUI.setCreatedByName(MaskingUtils.maskName(user.getUserName()));
partnershipUI.setCreatedById(MaskingUtils.maskEmailId(user.getLoginId()));
partnershipUI.setCreatedByName(MaskingUtils.maskName(userName));
partnershipUI.setCreatedById(MaskingUtils.maskEmailId(loginId));
} else {
// 마스킹 해제 상태
partnershipUI.setCreatedByName(user.getUserName());
partnershipUI.setCreatedById(user.getLoginId());
partnershipUI.setCreatedByName(userName);
partnershipUI.setCreatedById(loginId);
}
// 첨부파일 처리