|
|
|
@ -141,7 +141,7 @@ public class EnsBatchAcceptService extends AbstractService implements IEnsBatchA
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// validation check
|
|
|
|
|
final List<EnsDTO.sndngValidation> valiList = mapper.selectAcceptValidation(dto);
|
|
|
|
|
final List<EnsDTO.SndngValidation> valiList = mapper.selectAcceptValidation(dto);
|
|
|
|
|
try {
|
|
|
|
|
// CI 생성이 모두 실패한 경우 오류처리후 skip
|
|
|
|
|
if(!validatedAccept(valiList)){
|
|
|
|
@ -206,14 +206,14 @@ public class EnsBatchAcceptService extends AbstractService implements IEnsBatchA
|
|
|
|
|
* </pre>
|
|
|
|
|
*/
|
|
|
|
|
// FIXME:파라메터 유효성 check 는 하지않는다???
|
|
|
|
|
private boolean validatedAccept(List<EnsDTO.sndngValidation> valiList) {
|
|
|
|
|
private boolean validatedAccept(List<EnsDTO.SndngValidation> valiList) {
|
|
|
|
|
final String url = apiHost + apiNiceCi;
|
|
|
|
|
final List<String> errors = new ArrayList<>();
|
|
|
|
|
int idx = 0;
|
|
|
|
|
boolean isSuccess = false;
|
|
|
|
|
|
|
|
|
|
for (EnsDTO.sndngValidation dto : valiList) {
|
|
|
|
|
Set<ConstraintViolation<EnsDTO.sndngValidation>> errList = validator.validate(dto);
|
|
|
|
|
for (EnsDTO.SndngValidation dto : valiList) {
|
|
|
|
|
Set<ConstraintViolation<EnsDTO.SndngValidation>> errList = validator.validate(dto);
|
|
|
|
|
|
|
|
|
|
if(!errList.isEmpty()) {
|
|
|
|
|
int finalIdx = idx;
|
|
|
|
@ -239,60 +239,55 @@ public class EnsBatchAcceptService extends AbstractService implements IEnsBatchA
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
final String[] tryVal = {
|
|
|
|
|
Checks.checkVal(dto.getTry1(), ""),
|
|
|
|
|
Checks.checkVal(dto.getTry2(), ""),
|
|
|
|
|
Checks.checkVal(dto.getTry3(), "")
|
|
|
|
|
};
|
|
|
|
|
final SndngSeCode sndngSeCode = getSndngSeCodFromTrySeq(dto);
|
|
|
|
|
|
|
|
|
|
// CI 생성 여부
|
|
|
|
|
boolean isCiCreate = false;
|
|
|
|
|
boolean isError = false;
|
|
|
|
|
switch(SndngSeCode.compare(tryVal[dto.getTrySeq() - 1])) {
|
|
|
|
|
case KAKAO:
|
|
|
|
|
if(Checks.isEmpty(dto.getCi())) {
|
|
|
|
|
switch(sndngSeCode) {
|
|
|
|
|
case KAKAO -> {
|
|
|
|
|
if (Checks.isEmpty(dto.getCi())) {
|
|
|
|
|
isCiCreate = true;
|
|
|
|
|
|
|
|
|
|
if(Checks.isEmpty(dto.getIhidnum())) {
|
|
|
|
|
if (Checks.isEmpty(dto.getIhidnum())) {
|
|
|
|
|
isError = true;
|
|
|
|
|
errors.add(
|
|
|
|
|
String.format("주민등록번호는 필수입니다(dto.getIhidnum[%d] 번째 오류)",
|
|
|
|
|
idx + 1));
|
|
|
|
|
}
|
|
|
|
|
if(Checks.isEmpty(dto.getMoblphonNo())) {
|
|
|
|
|
if (Checks.isEmpty(dto.getMoblphonNo())) {
|
|
|
|
|
isError = true;
|
|
|
|
|
errors.add(
|
|
|
|
|
String.format("핸드폰 번호는 필수입니다(dto.getMoblphonNo[%d] 번째 오류)",
|
|
|
|
|
idx + 1));
|
|
|
|
|
}
|
|
|
|
|
if(Checks.isEmpty(dto.getIhidnum())) {
|
|
|
|
|
if (Checks.isEmpty(dto.getIhidnum())) {
|
|
|
|
|
isError = true;
|
|
|
|
|
errors.add(
|
|
|
|
|
String.format("받는이 이름은 필수입니다(dto.getIhidnum[%d] 번째 오류)",
|
|
|
|
|
idx + 1));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//FIXME : KT 데이타 적합성 체크
|
|
|
|
|
case KT_BC:
|
|
|
|
|
case KT_BC -> {
|
|
|
|
|
isCiCreate = true;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
case KAKAO_NEW:
|
|
|
|
|
if(Checks.isEmpty(dto.getCi())) {
|
|
|
|
|
case KAKAO_NEW -> {
|
|
|
|
|
if (Checks.isEmpty(dto.getCi())) {
|
|
|
|
|
isCiCreate = true;
|
|
|
|
|
if(Checks.isEmpty(dto.getIhidnum())) {
|
|
|
|
|
if (Checks.isEmpty(dto.getIhidnum())) {
|
|
|
|
|
isError = true;
|
|
|
|
|
errors.add(
|
|
|
|
|
String.format("주민등록번호는 필수입니다(dto.getIhidnum[%d] 번째 오류)",
|
|
|
|
|
idx + 1));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
default -> {}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// CI 생성
|
|
|
|
@ -350,7 +345,7 @@ public class EnsBatchAcceptService extends AbstractService implements IEnsBatchA
|
|
|
|
|
* @param url ci API URL
|
|
|
|
|
* @return CI 생성 성공 여부
|
|
|
|
|
*/
|
|
|
|
|
private boolean requestNiceCiApi(EnsDTO.sndngValidation reqDto, String ihidnumManageId, String url) {
|
|
|
|
|
private boolean requestNiceCiApi(EnsDTO.SndngValidation reqDto, String ihidnumManageId, String url) {
|
|
|
|
|
boolean isSuccess = false;
|
|
|
|
|
|
|
|
|
|
NiceCiDTO.IpinCiResDataBody dataBody = apiWebClient.exchange(
|
|
|
|
@ -400,7 +395,7 @@ public class EnsBatchAcceptService extends AbstractService implements IEnsBatchA
|
|
|
|
|
*
|
|
|
|
|
* @return CI 생성 성공 여부
|
|
|
|
|
*/
|
|
|
|
|
private boolean requestNiceDici(EnsDTO.sndngValidation reqDto, String ihidnumManageId) {
|
|
|
|
|
private boolean requestNiceDici(EnsDTO.SndngValidation reqDto, String ihidnumManageId) {
|
|
|
|
|
boolean isSuccess = false;
|
|
|
|
|
|
|
|
|
|
EnsDTO.NiceCiRslt rslt = getDiCi(reqDto.getIhidnum(), true);
|
|
|
|
@ -434,26 +429,18 @@ public class EnsBatchAcceptService extends AbstractService implements IEnsBatchA
|
|
|
|
|
iRtn = vnoInterop.fnRequestDupInfo(diciSiteCode, diciSitePwd, ihidnum, "JID");
|
|
|
|
|
}
|
|
|
|
|
switch (iRtn) {
|
|
|
|
|
case 1:
|
|
|
|
|
case 1 -> {
|
|
|
|
|
// iRtn 값이 정상이므로, 귀사의 기획의도에 맞게 진행하시면 됩니다.
|
|
|
|
|
// 아래와 같이 getDupInfo 함수를 통해 DI 값(64 Byte)을 추출할 수 있습니다.
|
|
|
|
|
if(isCi) ci = vnoInterop.getConnInfo();
|
|
|
|
|
else ci = vnoInterop.getDupInfo();
|
|
|
|
|
break;
|
|
|
|
|
case 3:
|
|
|
|
|
errMsg = "[사용자 정보와 실명확인 서비스 구분값 매핑 오류]";
|
|
|
|
|
break;
|
|
|
|
|
case -9:
|
|
|
|
|
errMsg = "[입력값 오류]\nfnRequestDupInfo 함수 처리시, 필요한 4개의 파라미터값의 정보를 정확하게 입력해 주시기 바랍니다.";
|
|
|
|
|
break;
|
|
|
|
|
case -21:
|
|
|
|
|
case -31:
|
|
|
|
|
case -34:
|
|
|
|
|
errMsg = "[통신오류]\n서버 네트웍크 및 방확벽 관련하여 아래 IP와 Port(5개)를 오픈해 주셔야 이용 가능합니다.\nIP : 203.234.219.72 / Port : 81, 82, 83, 84, 85";
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
errMsg = "return 값 확인 후, NICE평가정보 전산 담당자에게 문의해 주세요.\n[return 값:" + iRtn + "]";
|
|
|
|
|
break;
|
|
|
|
|
if (isCi)
|
|
|
|
|
ci = vnoInterop.getConnInfo();
|
|
|
|
|
else
|
|
|
|
|
ci = vnoInterop.getDupInfo();
|
|
|
|
|
}
|
|
|
|
|
case 3 -> errMsg = "[사용자 정보와 실명확인 서비스 구분값 매핑 오류]";
|
|
|
|
|
case -9 -> errMsg = "[입력값 오류]\nfnRequestDupInfo 함수 처리시, 필요한 4개의 파라미터값의 정보를 정확하게 입력해 주시기 바랍니다.";
|
|
|
|
|
case -21, -31, -34 -> errMsg = "[통신오류]\n서버 네트웍크 및 방확벽 관련하여 아래 IP와 Port(5개)를 오픈해 주셔야 이용 가능합니다.\nIP : 203.234.219.72 / Port : 81, 82, 83, 84, 85";
|
|
|
|
|
default -> errMsg = "return 값 확인 후, NICE평가정보 전산 담당자에게 문의해 주세요.\n[return 값:" + iRtn + "]";
|
|
|
|
|
}
|
|
|
|
|
if (!errMsg.isEmpty()){
|
|
|
|
|
return EnsDTO.NiceCiRslt.builder()
|
|
|
|
@ -499,5 +486,23 @@ public class EnsBatchAcceptService extends AbstractService implements IEnsBatchA
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* <pre>
|
|
|
|
|
* get 발송구분코드(문서중개자)
|
|
|
|
|
* @param dto SndngValidation
|
|
|
|
|
* @return SndngSeCode 발송구분코드(문서중개자)
|
|
|
|
|
* </pre>
|
|
|
|
|
*/
|
|
|
|
|
private static ApiConstants.SndngSeCode getSndngSeCodFromTrySeq(final EnsDTO.SndngValidation dto) {
|
|
|
|
|
String[] tryVal = {
|
|
|
|
|
Checks.checkVal(dto.getTry1(), ""),
|
|
|
|
|
Checks.checkVal(dto.getTry2(), ""),
|
|
|
|
|
Checks.checkVal(dto.getTry3(), "")
|
|
|
|
|
};
|
|
|
|
|
String seCode = tryVal[dto.getTrySeq() - 1];
|
|
|
|
|
|
|
|
|
|
return ApiConstants.SndngSeCode.getSndngSeCode(seCode);
|
|
|
|
|
}
|
|
|
|
|
//-----------------------------------------------------------------------------------------------------------------
|
|
|
|
|
}
|
|
|
|
|