개인 사용자 및 법인 반려 처리 로직 개선: 사용자 복원 및 상태 반영

This commit is contained in:
Rinjae
2026-03-05 11:18:36 +09:00
parent 05a0e532ae
commit 2ff7562cd8
2 changed files with 45 additions and 32 deletions
@@ -167,9 +167,10 @@ public class PortalAppApprovalListener implements ApprovalListener {
credentialUI.setGranttypes("client_credentials");
credentialUI.setOrgid(appRequest.getOrg().getId());
credentialUI.setOrgname(appRequest.getOrg().getOrgName());
// credentialUI.setAllowedips(appRequest.getIpWhitelist());
// credentialUI.setRedirecturi(appRequest.getCallbackUrl());
// credentialUI.setAppIconFileId(appRequest.getAppIconFileId());
credentialUI.setAllowedips(appRequest.getIpWhitelist());
credentialUI.setRedirecturi(appRequest.getCallbackUrl());
credentialUI.setAppIconFileId(appRequest.getAppIconFileId());
credentialUI.setAppDescription(appRequest.getAppDescription());
credentialUI.setAccesstokenvalidityseconds("86400");
Set<String> apiIds = processApiGroups(appRequest);
@@ -152,40 +152,52 @@ public class PortalUserApprovalListener implements ApprovalListener {
logger.info("Approval {} rollback", approval.getId());
String userId = approval.getTargetId();
LocalDateTime now = LocalDateTime.now();
String rejectedDate = now.format(DateTimeFormatter.ofPattern("yyyyMMdd"));
PortalUser portalUser = portalUserService.findByUserId(userId);
PortalOrg portalOrg = portalUser.getPortalOrg();
portalUser.setUserName("반려된 사용자");
portalUser.setMobileNumber("");
portalUser.setLoginId(portalUser.getId() + "-d" + rejectedDate);
portalUser.setEmailAddr(portalUser.getId() + "-d" + rejectedDate);
portalUser.setUserStatus(PortalUserEnums.UserStatus.INACTIVE);
portalUser.setApprovalStatus(PortalUserEnums.ApprovalStatus.REJECTED);
portalUser.setPhoneNumber(null);
portalUser.setAuthCompletedYn("N");
portalUser.setLoginFailureCount(0);
portalUser.setAccountLockYn("N");
// 개인→법인 전환 요청 반려: approvalStatus가 PENDING이면 전환 신청이었으므로 개인 사용자로 복원
if (PortalUserEnums.ApprovalStatus.PENDING.equals(portalUser.getApprovalStatus())) {
logger.info("Approval {} is a personal-to-corporate conversion rejection. Reverting user {} to personal user.", approval.getId(), userId);
portalUser.setRoleCode(PortalUserEnums.RoleCode.ROLE_USER);
portalUser.setUserStatus(PortalUserEnums.UserStatus.ACTIVE);
portalUser.setApprovalStatus(PortalUserEnums.ApprovalStatus.COMPLETED);
portalUser.setPortalOrg(null);
} else {
// 신규 법인 사용자 등록 반려: 반려된 사용자로 처리
LocalDateTime now = LocalDateTime.now();
String rejectedDate = now.format(DateTimeFormatter.ofPattern("yyyyMMdd"));
portalUser.setUserName("반려된 사용자");
portalUser.setMobileNumber("");
portalUser.setLoginId(portalUser.getId() + "-d" + rejectedDate);
portalUser.setEmailAddr(portalUser.getId() + "-d" + rejectedDate);
portalUser.setUserStatus(PortalUserEnums.UserStatus.INACTIVE);
portalUser.setApprovalStatus(PortalUserEnums.ApprovalStatus.REJECTED);
portalUser.setPhoneNumber(null);
portalUser.setAuthCompletedYn("N");
portalUser.setLoginFailureCount(0);
portalUser.setAccountLockYn("N");
}
portalUserService.save(portalUser);
PortalOrg portalOrg = portalUser.getPortalOrg();
portalOrg.setOrgName("삭제된법인");
portalOrg.setApprovalStatus(ApprovalStatus.REJECTED);
portalOrg.setOrgStatus(OrgStatus.REMOVED);
portalOrg.setOrgCode(null);
portalOrg.setCompRegFile(null);
portalOrg.setCorpRegNo(null);
portalOrg.setCompRegNo(null);
portalOrg.setCeoName(null);
portalOrg.setOrgAddr(null);
portalOrg.setOrgPhoneNumber(null);
portalOrg.setScPhoneNumber(null);
portalOrg.setOrgSectors(null);
portalOrg.setOrgIndustryType(null);
portalOrg.setServiceName(null);
if (portalOrg != null) {
portalOrg.setOrgName("삭제된법인");
portalOrg.setApprovalStatus(ApprovalStatus.REJECTED);
portalOrg.setOrgStatus(OrgStatus.REMOVED);
portalOrg.setOrgCode(null);
portalOrg.setCompRegFile(null);
portalOrg.setCorpRegNo(null);
portalOrg.setCompRegNo(null);
portalOrg.setCeoName(null);
portalOrg.setOrgAddr(null);
portalOrg.setOrgPhoneNumber(null);
portalOrg.setScPhoneNumber(null);
portalOrg.setOrgSectors(null);
portalOrg.setOrgIndustryType(null);
portalOrg.setServiceName(null);
portalOrgService.save(portalOrg);
portalOrgService.save(portalOrg);
}
}
}