From 2ff7562cd804447737f5ac2ae1c8110d4ca4b1f5 Mon Sep 17 00:00:00 2001 From: Rinjae Date: Thu, 5 Mar 2026 11:18:36 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B0=9C=EC=9D=B8=20=EC=82=AC=EC=9A=A9?= =?UTF-8?q?=EC=9E=90=20=EB=B0=8F=20=EB=B2=95=EC=9D=B8=20=EB=B0=98=EB=A0=A4?= =?UTF-8?q?=20=EC=B2=98=EB=A6=AC=20=EB=A1=9C=EC=A7=81=20=EA=B0=9C=EC=84=A0?= =?UTF-8?q?:=20=EC=82=AC=EC=9A=A9=EC=9E=90=20=EB=B3=B5=EC=9B=90=20?= =?UTF-8?q?=EB=B0=8F=20=EC=83=81=ED=83=9C=20=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/PortalAppApprovalListener.java | 7 +- .../user/PortalUserApprovalListener.java | 70 +++++++++++-------- 2 files changed, 45 insertions(+), 32 deletions(-) diff --git a/src/main/java/com/eactive/eai/rms/onl/apim/approval/app/PortalAppApprovalListener.java b/src/main/java/com/eactive/eai/rms/onl/apim/approval/app/PortalAppApprovalListener.java index 6e8f996..6eef6fb 100644 --- a/src/main/java/com/eactive/eai/rms/onl/apim/approval/app/PortalAppApprovalListener.java +++ b/src/main/java/com/eactive/eai/rms/onl/apim/approval/app/PortalAppApprovalListener.java @@ -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 apiIds = processApiGroups(appRequest); diff --git a/src/main/java/com/eactive/eai/rms/onl/apim/approval/user/PortalUserApprovalListener.java b/src/main/java/com/eactive/eai/rms/onl/apim/approval/user/PortalUserApprovalListener.java index c5ee041..59cd753 100644 --- a/src/main/java/com/eactive/eai/rms/onl/apim/approval/user/PortalUserApprovalListener.java +++ b/src/main/java/com/eactive/eai/rms/onl/apim/approval/user/PortalUserApprovalListener.java @@ -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); + } } }