diff --git a/src/main/java/com/eactive/apim/portal/apps/user/dto/PortalOrgRegistrationDTO.java b/src/main/java/com/eactive/apim/portal/apps/user/dto/PortalOrgRegistrationDTO.java index 1181062..c3ebe2d 100644 --- a/src/main/java/com/eactive/apim/portal/apps/user/dto/PortalOrgRegistrationDTO.java +++ b/src/main/java/com/eactive/apim/portal/apps/user/dto/PortalOrgRegistrationDTO.java @@ -30,11 +30,9 @@ public class PortalOrgRegistrationDTO extends PortalUserRegistrationDTO { private String orgName; //대표자 성명 - @NotEmpty(message = "{field.required}") private String ceoName; //기관사업장소재지 - @NotEmpty(message = "{field.required}") private String orgAddr; //기관업태 @@ -44,15 +42,12 @@ public class PortalOrgRegistrationDTO extends PortalUserRegistrationDTO { private String orgIndustryType; //서비스명 - @NotEmpty(message = "{field.required}") private String serviceName; //고객센터연락처 - @NotEmpty(message = "{field.required}") private String scPhoneNumber; //기관전화번호 - @NotEmpty(message = "{field.required}") @PhoneNumber private String orgPhoneNumber; diff --git a/src/main/java/com/eactive/apim/portal/apps/user/service/UserRegistrationValidationService.java b/src/main/java/com/eactive/apim/portal/apps/user/service/UserRegistrationValidationService.java index 30fd379..ad6478b 100644 --- a/src/main/java/com/eactive/apim/portal/apps/user/service/UserRegistrationValidationService.java +++ b/src/main/java/com/eactive/apim/portal/apps/user/service/UserRegistrationValidationService.java @@ -24,17 +24,26 @@ public class UserRegistrationValidationService { } private boolean isValidOrgInfo(PortalOrgRegistrationDTO orgDTO) { - return basicValidationService.isValidBusinessNumber(orgDTO.getCompRegNo()) && - basicValidationService.isValidCorpRegNo(orgDTO.getCorpRegNo()) && - basicValidationService.isValidPhoneNumber(orgDTO.getOrgPhoneNumber()) && - basicValidationService.isValidPhoneNumber(orgDTO.getScPhoneNumber()); + // 사업자등록번호, 법인등록번호는 필수 + if (!basicValidationService.isValidBusinessNumber(orgDTO.getCompRegNo()) || + !basicValidationService.isValidCorpRegNo(orgDTO.getCorpRegNo())) { + return false; + } + // 회사 전화번호, 고객센터 전화번호는 선택 (입력된 경우에만 형식 검증) + if (basicValidationService.isNotEmpty(orgDTO.getOrgPhoneNumber()) && + !basicValidationService.isValidPhoneNumber(orgDTO.getOrgPhoneNumber())) { + return false; + } + if (basicValidationService.isNotEmpty(orgDTO.getScPhoneNumber()) && + !basicValidationService.isValidPhoneNumber(orgDTO.getScPhoneNumber())) { + return false; + } + return true; } private boolean isValidRequiredFields(PortalOrgRegistrationDTO orgDTO) { - return basicValidationService.isNotEmpty(orgDTO.getOrgName()) && - basicValidationService.isNotEmpty(orgDTO.getCeoName()) && - basicValidationService.isNotEmpty(orgDTO.getOrgAddr()) && - basicValidationService.isNotEmpty(orgDTO.getServiceName()); + // 법인명만 필수, 나머지(대표자 성명, 소재지, 서비스명)는 선택 + return basicValidationService.isNotEmpty(orgDTO.getOrgName()); } private boolean isValidIpWhitelistIfExists(PortalOrgRegistrationDTO orgDTO) { diff --git a/src/main/resources/templates/views/apps/register/components/orgBasicInfoForm.html b/src/main/resources/templates/views/apps/register/components/orgBasicInfoForm.html index 46359ec..419527d 100644 --- a/src/main/resources/templates/views/apps/register/components/orgBasicInfoForm.html +++ b/src/main/resources/templates/views/apps/register/components/orgBasicInfoForm.html @@ -60,12 +60,12 @@
+ th:classappend="${#fields.hasErrors('ceoName')}? 'is-invalid'">
@@ -75,12 +75,12 @@
+ th:classappend="${#fields.hasErrors('orgAddr')}? 'is-invalid'">
@@ -90,33 +90,33 @@
+ placeholder="업태를 입력하세요">
+ placeholder="업종을 입력하세요">
- @@ -159,12 +159,12 @@
+ th:classappend="${#fields.hasErrors('serviceName')}? 'is-invalid'">
@@ -174,11 +174,11 @@
- @@ -265,8 +265,9 @@ const part1 = document.getElementById(`${prefix}PhoneNumber1`).value.trim(); const part2 = document.getElementById(`${prefix}PhoneNumber2`).value.trim(); - // 회사 전화번호 검증 - if (!areaCode || areaCode === '' || !part1 || !part2) { + // 전화번호는 선택 입력이므로, 일부만 입력된 경우에만 검증 + const hasAnyInput = areaCode || part1 || part2; + if (hasAnyInput && (!areaCode || areaCode === '' || !part1 || !part2)) { customPopups.showAlert(`${prefix === 'org' ? '회사' : '고객센터'} 전화번호를 모두 입력해주세요.`); return false; } diff --git a/src/main/resources/templates/views/apps/register/orgUserRegister.html b/src/main/resources/templates/views/apps/register/orgUserRegister.html index 8b89596..aaca942 100644 --- a/src/main/resources/templates/views/apps/register/orgUserRegister.html +++ b/src/main/resources/templates/views/apps/register/orgUserRegister.html @@ -5,7 +5,7 @@
- 법인회원가입 + 법인회원가입

법인회원가입

@@ -117,15 +117,15 @@ const requiredFieldsByScenario = { new: { user: ['loginId', 'userName', 'password', 'password2', 'mobileNumber', 'authNumber'], - org: ['compRegNo', 'corpRegNo', 'orgName', 'ceoName', 'orgAddr', 'orgSectors', 'orgIndustryType', 'orgPhoneNumber', 'scPhoneNumber', 'serviceName', 'compRegFile', 'files'] + org: ['compRegNo', 'corpRegNo', 'orgName', 'compRegFile', 'files'] }, retain: { user: ['loginId', 'passwordConfirmIndividual'], - org: ['compRegNo', 'corpRegNo', 'orgName', 'ceoName', 'orgAddr', 'orgSectors', 'orgIndustryType', 'orgPhoneNumber', 'scPhoneNumber', 'serviceName', 'compRegFile', 'files'] + org: ['compRegNo', 'corpRegNo', 'orgName', 'compRegFile', 'files'] }, change: { user: ['loginId', 'passwordConfirmEmailChange', 'newLoginId'], - org: ['compRegNo', 'corpRegNo', 'orgName', 'ceoName', 'orgAddr', 'orgSectors', 'orgIndustryType', 'orgPhoneNumber', 'scPhoneNumber', 'serviceName', 'compRegFile', 'files'] + org: ['compRegNo', 'corpRegNo', 'orgName', 'compRegFile', 'files'] } }; @@ -344,11 +344,6 @@ compRegNo: $('#compRegNo').val().trim() !== '', corpRegNo: $('#corpRegNo').val().trim() !== '', orgName: $('#orgName').val().trim() !== '', - ceoName: $('#ceoName').val().trim() !== '', - orgAddr: $('#orgAddr').val().trim() !== '', - orgPhoneNumber: $('#orgPhoneNumber').val().trim() !== '', - scPhoneNumber: $('#scPhoneNumber').val().trim() !== '', - serviceName: $('#serviceName').val().trim() !== '', compRegFile: $('#compRegFile').val().trim() !== '' };