feat: NICE CI 인증톡 진행 - sendBulk 반영

API logging 반영
dev
Jonguk. Lim 1 month ago
parent b20af3fcd3
commit 3ac3f94f26

@ -36,4 +36,7 @@ public interface INiceCiMapper {
Optional<String> selectNiceCiRequestId();
Optional<NiceCiDTO.TmpltMngDTO> selectTmpltMsg(final String tmpltId);
int insertNiceSmsSndngRequest(final NiceCiApiDTO.Request requestDTO);
int insertNiceSmsSndngResponse(final NiceCiApiDTO.Response responseDTO);
}

@ -24,7 +24,7 @@ import lombok.extern.slf4j.*;
* </pre>
*/
@Schema(name = "NiceCiApiCommon", description = "NICE CI API 전문 공통 DTO")
@Getter
@Data
@NoArgsConstructor
@AllArgsConstructor
@Slf4j
@ -38,9 +38,9 @@ public class NiceCiApiCommon {
*/
@Schema(requiredMode = Schema.RequiredMode.REQUIRED, title = "전문그룹코드(9자리)", example = "NICEIF ")
@Size(min = 9, max = 9, message = "전문그룹코드는 9자리 입니다.")
private String grpCode = StringUtils.rightPad("NICEIF", 9, StringUtils.SPACE);
public void setGrpCode(String grpCode) {
this.grpCode = StringUtils.rightPad(nvl(grpCode), 9, StringUtils.SPACE);
private String spcltyGroupcode = StringUtils.rightPad("NICEIF", 9, StringUtils.SPACE);
public void setSpcltyGroupcode(String spcltyGroupcode) {
this.spcltyGroupcode = StringUtils.rightPad(nvl(spcltyGroupcode), 9, StringUtils.SPACE);
}
/**
@ -52,9 +52,9 @@ public class NiceCiApiCommon {
*/
@Schema(requiredMode = Schema.RequiredMode.REQUIRED, title = "거래종별코드(4자리)", example = "0200")
@Size(min = 4, max = 4, message = "거래 종별 코드는 4자리 입니다.")
private String trType = "0200";
public void setTrType(String trType) {
this.trType = StringUtils.rightPad(nvl(trType), 4, StringUtils.SPACE);
private String delngAsortcode = "0200";
public void setDelngAsortcode(String delngAsortcode) {
this.delngAsortcode = StringUtils.rightPad(nvl(delngAsortcode), 4, StringUtils.SPACE);
}
/**
@ -65,9 +65,9 @@ public class NiceCiApiCommon {
*/
@Schema(requiredMode = Schema.RequiredMode.REQUIRED, title = "거래구분코드(5자리)", example = "31895")
@Size(min = 5, max = 5, message = "거래 구분 코드는 5자리 입니다.")
private String trClassification = "31896";
public void setTrClassification(String trClassification) {
this.trClassification = StringUtils.rightPad(nvl(trClassification), 5, StringUtils.SPACE);
private String delngSecode = "31896";
public void setDelngSecode(String delngSecode) {
this.delngSecode = StringUtils.rightPad(nvl(delngSecode), 5, StringUtils.SPACE);
}
/**
@ -80,7 +80,7 @@ public class NiceCiApiCommon {
@Schema(requiredMode = Schema.RequiredMode.REQUIRED, title = "송수신플래그(1자리)", example = "B")
@Size(min = 1, max = 1, message = "송수신 플래그는 1자리 입니다.")
@Setter
private String sndAndRcvFlag = "B";
private String trsmrcvAt = "B";
/**
* <pre>
@ -90,9 +90,9 @@ public class NiceCiApiCommon {
*/
@Schema(requiredMode = Schema.RequiredMode.REQUIRED, title = "단말기구분(3자리)", example = "503")
@Size(min = 3, max = 3, message = "단말기 구분은 3자리 입니다.")
private String deviceClassification = "503";
public void setDeviceClassification(String deviceClassification) {
this.deviceClassification = StringUtils.rightPad(nvl(deviceClassification), 3, StringUtils.SPACE);
private String trmnlSe = "503";
public void setTrmnlSe(String trmnlSe) {
this.trmnlSe = StringUtils.rightPad(nvl(trmnlSe), 3, StringUtils.SPACE);
}
/**
@ -112,9 +112,9 @@ public class NiceCiApiCommon {
*/
@Schema(title = "응답코드(4자리)", example = " ")
@Pattern(regexp = "^\\s{4}$|$|^[P|E|S][\\d]{3}$", message = "응답코드(4자리)는 4자리 입니다")
private String rsltCode = StringUtils.rightPad(StringUtils.EMPTY, 4, StringUtils.SPACE);
public void setRsltCode(String rsltCode) {
this.rsltCode = StringUtils.rightPad(nvl(rsltCode), 4, StringUtils.SPACE);
private String rspnsCode = StringUtils.rightPad(StringUtils.EMPTY, 4, StringUtils.SPACE);
public void setRspnsCode(String rspnsCode) {
this.rspnsCode = StringUtils.rightPad(nvl(rspnsCode), 4, StringUtils.SPACE);
}
/**
@ -125,9 +125,9 @@ public class NiceCiApiCommon {
*/
@Schema(requiredMode = Schema.RequiredMode.REQUIRED, title = "참가기관ID(9자리)", example = "503")
@Size(min = 9, max = 9, message = "참가기관ID는 9자리 입니다.")
private String orgId = StringUtils.rightPad(StringUtils.EMPTY, 9, StringUtils.SPACE);
public void setOrgId(String orgId) {
this.orgId = StringUtils.rightPad(nvl(orgId), 9, StringUtils.SPACE);
private String partcptInsttId = StringUtils.rightPad(StringUtils.EMPTY, 9, StringUtils.SPACE);
public void setPartcptInsttId(String partcptInsttId) {
this.partcptInsttId = StringUtils.rightPad(nvl(partcptInsttId), 9, StringUtils.SPACE);
}
/**
@ -138,9 +138,9 @@ public class NiceCiApiCommon {
*/
@Schema(requiredMode = Schema.RequiredMode.REQUIRED, title = "기관전문관리번호(10자리)", example = " ")
@Size(min = 10, max = 10, message = "기관전문관리번호는 10자리 입니다.")
private String orgMngNo = StringUtils.rightPad(StringUtils.EMPTY, 10, StringUtils.SPACE);
public void setOrgMngNo(String orgMngNo) {
this.orgMngNo = StringUtils.rightPad(nvl(orgMngNo), 10, StringUtils.SPACE);
private String insttSpcltyManageno = StringUtils.rightPad(StringUtils.EMPTY, 10, StringUtils.SPACE);
public void setInsttSpcltyManageno(String insttSpcltyManageno) {
this.insttSpcltyManageno = StringUtils.rightPad(nvl(insttSpcltyManageno), 10, StringUtils.SPACE);
}
/**
@ -151,9 +151,9 @@ public class NiceCiApiCommon {
*/
@Schema(requiredMode = Schema.RequiredMode.REQUIRED, title = "기관전문전송시간(14자리)", example = " ")
@Size(min = 14, max = 14, message = "기관전문전송시간은 14자리 입니다.")
private String orgSndDt = DateUtil.getTodayAndNowTime("yyyyMMddHHmmss");
public void setOrgSndDt(String orgSndDt) {
this.orgSndDt = StringUtils.rightPad(nvl(orgSndDt), 14, StringUtils.SPACE);
private String insttSpcltyTrnsmistime = DateUtil.getTodayAndNowTime("yyyyMMddHHmmss");
public void setInsttSpcltyTrnsmistime(String insttSpcltyTrnsmistime) {
this.insttSpcltyTrnsmistime = StringUtils.rightPad(nvl(insttSpcltyTrnsmistime), 14, StringUtils.SPACE);
}
/**
@ -164,9 +164,9 @@ public class NiceCiApiCommon {
*/
@Schema(title = "NICE전문관리번호(10자리)", example = " ")
@Size(min = 10, max = 10, message = "NICE전문관리번호 10자리 입니다.")
private String niceMngNo = StringUtils.rightPad(StringUtils.EMPTY, 10, StringUtils.SPACE);
public void setNiceMngNo(String niceMngNo) {
this.niceMngNo = StringUtils.rightPad(nvl(niceMngNo), 10, StringUtils.SPACE);
private String niceSpcltyManageno = StringUtils.rightPad(StringUtils.EMPTY, 10, StringUtils.SPACE);
public void setNiceSpcltyManageno(String niceSpcltyManageno) {
this.niceSpcltyManageno = StringUtils.rightPad(nvl(niceSpcltyManageno), 10, StringUtils.SPACE);
}
/**
@ -177,24 +177,43 @@ public class NiceCiApiCommon {
*/
@Schema(title = "NICE전문전송시간(14자리)", example = " ")
@Size(min = 14, max = 14, message = "NICE전문전송시간은 14자리 입니다.")
private String niceSndDt = StringUtils.rightPad(StringUtils.EMPTY, 14, StringUtils.SPACE);
public void setNiceSndDt(String niceSndDt) {
this.niceSndDt = StringUtils.rightPad(nvl(niceSndDt), 14, StringUtils.SPACE);
private String niceSpcltyTrnsmistime = StringUtils.rightPad(StringUtils.EMPTY, 14, StringUtils.SPACE);
public void setNiceSpcltyTrnsmistime(String niceSpcltyTrnsmistime) {
this.niceSpcltyTrnsmistime = StringUtils.rightPad(nvl(niceSpcltyTrnsmistime), 14, StringUtils.SPACE);
}
/**
* <pre>
* - 16 , 17
* </pre>
*/
@Schema(title = "공란", example = " ")
private String blnk;
/**
* <pre>
* : 4,
* </pre>
*/
@Schema(title = "조회동의사유", example = "4")
@Size(min = 1, max = 1, message = "조회동의사유는 1자리 입니다")
private String inqireAgreResn = "4";
public String ofString() {
StringBuilder sb = new StringBuilder();
sb.append(grpCode);
sb.append(trType);
sb.append(trClassification);
sb.append(sndAndRcvFlag);
sb.append(deviceClassification);
sb.append(rsltCode);
sb.append(orgId);
sb.append(orgMngNo);
sb.append(orgSndDt);
sb.append(niceMngNo);
sb.append(niceSndDt);
sb.append(spcltyGroupcode);
sb.append(delngAsortcode);
sb.append(delngSecode);
sb.append(trsmrcvAt);
sb.append(trmnlSe);
sb.append(rspnsCode);
sb.append(partcptInsttId);
sb.append(insttSpcltyManageno);
sb.append(insttSpcltyTrnsmistime);
sb.append(niceSpcltyManageno);
sb.append(niceSpcltyTrnsmistime);
sb.append(blnk);
sb.append(inqireAgreResn);
return sb.toString();
}
@ -210,43 +229,47 @@ public class NiceCiApiCommon {
10, // 기관전문관리번호
14, // 기관전문전송시간
10, //NICE 전문관리번호
14 // NICE 전문전송시간
14, // NICE 전문전송시간
17 // 공란
};
if (StringUtils.isNotBlank(tgtString) && tgtString.length() >= 83) {
NiceCiApiCommon nc = new NiceCiApiCommon();
int idx = 0;
nc.setGrpCode(StringUtils.trim(StringUtils.left(tgtString, parseLength[idx])));
nc.setSpcltyGroupcode(StringUtils.trim(StringUtils.left(tgtString, parseLength[idx])));
tgtString = tgtString.substring(parseLength[idx++]);
nc.setDelngAsortcode(StringUtils.trim(StringUtils.left(tgtString, parseLength[idx])));
tgtString = tgtString.substring(parseLength[idx++]);
nc.setTrType(StringUtils.trim(StringUtils.left(tgtString, parseLength[idx])));
nc.setDelngSecode(StringUtils.trim(StringUtils.left(tgtString, parseLength[idx])));
tgtString = tgtString.substring(parseLength[idx++]);
nc.setTrClassification(StringUtils.trim(StringUtils.left(tgtString, parseLength[idx])));
nc.setTrsmrcvAt(StringUtils.trim(StringUtils.left(tgtString, parseLength[idx])));
tgtString = tgtString.substring(parseLength[idx++]);
nc.setSndAndRcvFlag(StringUtils.trim(StringUtils.left(tgtString, parseLength[idx])));
nc.setTrmnlSe(StringUtils.trim(StringUtils.left(tgtString, parseLength[idx])));
tgtString = tgtString.substring(parseLength[idx++]);
nc.setDeviceClassification(StringUtils.trim(StringUtils.left(tgtString, parseLength[idx])));
nc.setRspnsCode(StringUtils.trim(StringUtils.left(tgtString, parseLength[idx])));
tgtString = tgtString.substring(parseLength[idx++]);
nc.setRsltCode(StringUtils.trim(StringUtils.left(tgtString, parseLength[idx])));
nc.setPartcptInsttId(StringUtils.trim(StringUtils.left(tgtString, parseLength[idx])));
tgtString = tgtString.substring(parseLength[idx++]);
nc.setOrgId(StringUtils.trim(StringUtils.left(tgtString, parseLength[idx])));
nc.setInsttSpcltyManageno(StringUtils.trim(StringUtils.left(tgtString, parseLength[idx])));
tgtString = tgtString.substring(parseLength[idx++]);
nc.setOrgMngNo(StringUtils.trim(StringUtils.left(tgtString, parseLength[idx])));
nc.setInsttSpcltyTrnsmistime(StringUtils.trim(StringUtils.left(tgtString, parseLength[idx])));
tgtString = tgtString.substring(parseLength[idx++]);
nc.setOrgSndDt(StringUtils.trim(StringUtils.left(tgtString, parseLength[idx])));
nc.setNiceSpcltyManageno(StringUtils.trim(StringUtils.left(tgtString, parseLength[idx])));
tgtString = tgtString.substring(parseLength[idx++]);
nc.setNiceMngNo(StringUtils.trim(StringUtils.left(tgtString, parseLength[idx])));
nc.setNiceSpcltyTrnsmistime(StringUtils.trim(StringUtils.left(tgtString, parseLength[idx])));
tgtString = tgtString.substring(parseLength[idx++]);
nc.setNiceSndDt(StringUtils.trim(StringUtils.left(tgtString, parseLength[idx])));
nc.setBlnk(StringUtils.trim(StringUtils.left(tgtString, parseLength[idx])));
return nc;
}
return null;

@ -48,12 +48,20 @@ public class NiceCiApiDTO {
* set
* </pre>
*/
//@Schema(requiredMode = Schema.RequiredMode.REQUIRED, title = "TR Code", example = " ")
//@Size(min = 10, max = 10, message = "트랜잭션 코드는 10자리 입니다.")
private String trCode = StringUtils.EMPTY;
public void setTrCode(String trCode) {
this.trCode = StringUtils.leftPad(nvl(trCode), 10, StringUtils.SPACE);
private String trnscId = StringUtils.EMPTY;
public void setTrnscId(String trnscId) {
this.trnscId = StringUtils.leftPad(nvl(trnscId), 10, StringUtils.SPACE);
}
/**
* nice sms ID - PK
*/
private String niceSmsSndngRequstId;
/**
* data_id
*/
private String dataId;
//----------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------
@ -62,24 +70,6 @@ public class NiceCiApiDTO {
@Schema(requiredMode = Schema.RequiredMode.REQUIRED)
@Valid
NiceCiApiCommon niceCommon;
/**
* <pre>
* - 16
* </pre>
*/
@Schema(title = "공란", example = " ")
@Size(min = 16, max = 16, message = "공란(16자리)")
private String commonEmptyField = StringUtils.rightPad(StringUtils.EMPTY, 16, StringUtils.SPACE);
/**
* <pre>
* : 4
* </pre>
*/
@Schema(title = "조회동의사유", example = "4")
@Size(min = 1, max = 1, message = "조회동의사유는 1자리 입니다")
private String queryConsentReason = "4";
//----------------------------------------------------------------------------------------------
// 공통부 : 100 자리
//----------------------------------------------------------------------------------------------
@ -94,9 +84,9 @@ public class NiceCiApiDTO {
*/
@Schema(requiredMode = Schema.RequiredMode.REQUIRED, title = "조회사유", example = " ")
@Size(min = 2, max = 2, message = "조회사유는 2자리 입니다")
private String queryReason = "17";
public void setQueryReason(String queryReason) {
this.queryReason = StringUtils.rightPad(nvl(queryReason), 2, StringUtils.SPACE);
private String inqireResn = "17";
public void setInqireResn(String inqireResn) {
this.inqireResn = StringUtils.rightPad(nvl(inqireResn), 2, StringUtils.SPACE);
}
/**
@ -107,9 +97,9 @@ public class NiceCiApiDTO {
*/
@Schema(requiredMode = Schema.RequiredMode.REQUIRED, title = "조회요청건수", example = " ")
@Pattern(regexp = "^\\s{2}$|\\d{1,2}", message = "조회요청 최대건수는 48입니다(2자리)")
private String queryReqCnt = "01";
public void setQueryReqCnt(Integer queryReqCnt) {
this.queryReqCnt = StringUtils.leftPad(nvl(queryReqCnt == null? "": queryReqCnt.toString()), 2, "0");
private String inqireRequstCo = "01";
public void setInqireRequstCo(Integer inqireRequstCo) {
this.inqireRequstCo = StringUtils.leftPad(nvl(inqireRequstCo == null? "": inqireRequstCo.toString()), 2, "0");
}
/**
@ -124,7 +114,7 @@ public class NiceCiApiDTO {
*/
@Schema(requiredMode = Schema.RequiredMode.REQUIRED, title = "SMS발송요청구분코드", example = " ", allowableValues = {"0", "1", "2", "3"})
@Pattern(regexp = "[0-3]", message = "SMS발송요청구분코드 0 ~ 3 입니다(1자리)")
private String smsSndReqCode = "3";
private String smsSndngRequstSe = "3";
/**
* <pre>
@ -134,9 +124,9 @@ public class NiceCiApiDTO {
*/
@Schema(title = "SMS 발송메세지", example = " ")
@Pattern(regexp = "^[\\s\\S]{10,2000}$", message = "SMS발송메세지는 10 ~ 2000자리 입니다")
private String sndMessage = StringUtils.rightPad(StringUtils.EMPTY, 2000, StringUtils.SPACE);
public void setSndMessage(String sndMessage) {
this.sndMessage = NiceCiUtils.rightPadKr(nvl(sndMessage), 2000, StringUtils.SPACE);
private String sndngMssage = StringUtils.rightPad(StringUtils.EMPTY, 2000, StringUtils.SPACE);
public void setSndngMssage(String sndngMssage) {
this.sndngMssage = NiceCiUtils.rightPadKr(nvl(sndngMssage), 2000, StringUtils.SPACE);
}
/**
@ -147,9 +137,9 @@ public class NiceCiApiDTO {
*/
@Schema(title = "SMS 발신번호", example = " ")
@Pattern(regexp = "^[\\s\\S]{3,12}$", message = "SMS 발신번호는 3 ~ 12자리 입니다")
private String sndPhoneNo = StringUtils.rightPad("0442113377", 12, StringUtils.SPACE);
public void setSndPhoneNo(String sndPhoneNo) {
this.sndPhoneNo = StringUtils.rightPad(nvl(sndPhoneNo), 12, StringUtils.SPACE);
private String dsptchNo = StringUtils.rightPad("0442113377", 12, StringUtils.SPACE);
public void setDsptchNo(String dsptchNo) {
this.dsptchNo = StringUtils.rightPad(nvl(dsptchNo), 12, StringUtils.SPACE);
}
/**
@ -163,7 +153,7 @@ public class NiceCiApiDTO {
*/
@Schema(requiredMode = Schema.RequiredMode.REQUIRED, title = "연락처조회구분코드", example = " ", allowableValues = {"1", "2", "3"})
@Pattern(regexp = "[1-3]", message = "연락처조회구분 코드는 1 ~ 3 입니다(1자리)")
private String contactSearchCode = "3";
private String cttpcInqireSe = "3";
/**
* <pre>
@ -175,7 +165,7 @@ public class NiceCiApiDTO {
*/
@Schema(requiredMode = Schema.RequiredMode.REQUIRED, title = "알림톡발송요청구분", example = " ")
@Size(min = 1, max = 1, message = "알림톡발송요청구분 코드는 1자리 입니다")
private String alimtalkSndReqDiv = "1";
private String ntcntalkSndngRequstSe = "1";
/**
* <pre>
@ -184,9 +174,9 @@ public class NiceCiApiDTO {
*/
@Schema(requiredMode = Schema.RequiredMode.REQUIRED, title = "알림톡템플릿코드", example = " ")
@Size(min = 100, max = 100, message = "알림톡템플릿 코드는 100자리 입니다")
private String alimtalkTmpltCode = StringUtils.rightPad(StringUtils.EMPTY, 100, StringUtils.SPACE);
public void setAlimtalkTmpltCode(String alimtalkTmpltCode) {
this.alimtalkTmpltCode = StringUtils.rightPad(nvl(alimtalkTmpltCode), 100, StringUtils.SPACE);
private String ntcntalkTmplatCode = StringUtils.rightPad(StringUtils.EMPTY, 100, StringUtils.SPACE);
public void setNtcntalkTmplatCode(String ntcntalkTmplatCode) {
this.ntcntalkTmplatCode = StringUtils.rightPad(nvl(ntcntalkTmplatCode), 100, StringUtils.SPACE);
}
/**
@ -197,9 +187,9 @@ public class NiceCiApiDTO {
*/
@Schema(requiredMode = Schema.RequiredMode.REQUIRED, title = "버튼요청건수", example = " ")
@Pattern(regexp = "^[0-5]$", message = "버튼요청건수는 1자리로 최대 5 입니다.")
private String btnReqCnt = "1";
public void setBtnReqCnt(Integer btnReqCnt) {
this.btnReqCnt = StringUtils.rightPad(nvl(btnReqCnt == null ? "" : btnReqCnt.toString()), 1, StringUtils.SPACE);
private String bttonRequstCo = "1";
public void setBttonRequstCo(Integer bttonRequstCo) {
this.bttonRequstCo = StringUtils.rightPad(nvl(bttonRequstCo == null ? "" : bttonRequstCo.toString()), 1, StringUtils.SPACE);
}
/**
@ -209,7 +199,7 @@ public class NiceCiApiDTO {
*/
@Schema(title = "공란", example = " ")
@Size(min = 880, max = 880, message = "공란(880자리)")
private String privateEmptyField = StringUtils.rightPad(StringUtils.EMPTY, 880, StringUtils.SPACE);
private String indvdlzRequstBlnk = StringUtils.rightPad(StringUtils.EMPTY, 880, StringUtils.SPACE);
//----------------------------------------------------------------------------------------------
// 개별요청부 : 3000 자리
//----------------------------------------------------------------------------------------------
@ -235,20 +225,18 @@ public class NiceCiApiDTO {
//sb.append(trCode);
// 공통부
sb.append(niceCommon.ofString());
sb.append(commonEmptyField);
sb.append(queryConsentReason);
// 개별요청부
sb.append(queryReason);
sb.append(queryReqCnt);
sb.append(smsSndReqCode);
sb.append(sndMessage);
sb.append(sndPhoneNo);
sb.append(contactSearchCode);
sb.append(alimtalkSndReqDiv);
sb.append(alimtalkTmpltCode);
sb.append(btnReqCnt);
sb.append(privateEmptyField);
sb.append(inqireResn);
sb.append(inqireRequstCo);
sb.append(smsSndngRequstSe);
sb.append(sndngMssage);
sb.append(dsptchNo);
sb.append(cttpcInqireSe);
sb.append(ntcntalkSndngRequstSe);
sb.append(ntcntalkTmplatCode);
sb.append(bttonRequstCo);
sb.append(indvdlzRequstBlnk);
sb.append(queryRequests.stream().map(QueryRequest::ofString).collect(Collectors.joining()));
sb.append(buttonRequests.stream().map(ButtonRequest::ofString).collect(Collectors.joining()));
// FIXME: 인코딩확인후 적용
@ -264,6 +252,11 @@ public class NiceCiApiDTO {
public static class Response implements Serializable {
private static final long serialVersionUID = 1L;
/**
* nice sms ID - PK
*/
private String niceSmsSndngRequstId;
//----------------------------------------------------------------------------------------------
// TR-CODE : 0 ~ 9 자리
//----------------------------------------------------------------------------------------------
@ -273,25 +266,15 @@ public class NiceCiApiDTO {
* - max: 9
* </pre>
*/
private String trCode;
public void setTrCode(String trCode) {
this.trCode = StringUtils.trim(trCode);
private String trnscId;
public void setTrnscId(String trnscId) {
this.trnscId = StringUtils.trim(trnscId);
}
//----------------------------------------------------------------------------------------------
// 공통부 : 100 자리
//----------------------------------------------------------------------------------------------
NiceCiApiCommon niceCommon;
/**
* <pre>
* - 16
* </pre>
*/
private String commonEmptyField;
public void setCommonEmptyField(String commonEmptyField) {
this.commonEmptyField = StringUtils.trim(commonEmptyField);
}
//----------------------------------------------------------------------------------------------
// 공통부 : 100 자리
//----------------------------------------------------------------------------------------------
@ -305,9 +288,9 @@ public class NiceCiApiDTO {
* 48
* </pre>
*/
private String resCnt;
public void setResCnt(String resCnt) {
this.resCnt = StringUtils.trim(resCnt);
private String rspnsCo;
public void setRspnsCo(String rspnsCo) {
this.rspnsCo = StringUtils.trim(rspnsCo);
}
/**
@ -320,9 +303,9 @@ public class NiceCiApiDTO {
* 3: 1 ~ 3 1
* </pre>
*/
private String smsSndReqCode;
private String smsSndngRequstSe;
public void setSmsSndReq(String smsSndReqCode) {
this.smsSndReqCode = StringUtils.trim(smsSndReqCode);
this.smsSndngRequstSe = StringUtils.trim(smsSndReqCode);
}
/**
@ -332,9 +315,9 @@ public class NiceCiApiDTO {
* NiceCiUtils.leftKr, substringKr
* </pre>
*/
private String sndMessage;
public void setSndMessage(String sndMessage) {
this.sndMessage = StringUtils.trim(sndMessage);
private String sndngMssage;
public void setSndngMssage(String sndngMssage) {
this.sndngMssage = StringUtils.trim(sndngMssage);
}
/**
@ -343,9 +326,9 @@ public class NiceCiApiDTO {
* (smsSndReqCode) 1, 2, 3
* </pre>
*/
private String sndPhoneNo;
public void setSndPhoneNo(String sndPhoneNo) {
this.sndPhoneNo = StringUtils.trim(sndPhoneNo);
private String dsptchNo;
public void setDsptchNo(String dsptchNo) {
this.dsptchNo = StringUtils.trim(dsptchNo);
}
/**
@ -357,16 +340,16 @@ public class NiceCiApiDTO {
* 3: 3
* </pre>
*/
private String contactSearchCode = "3";
private String cttpcInqireSe = "3";
/**
* <pre>
* - 84
* </pre>
*/
private String privateEmptyField;
public void setPrivateEmptyField(String privateEmptyField) {
this.privateEmptyField = StringUtils.trim(privateEmptyField);
private String indvdlzRspnsBlnk;
public void setIndvdlzRspnsBlnk(String indvdlzRspnsBlnk) {
this.indvdlzRspnsBlnk = StringUtils.trim(indvdlzRspnsBlnk);
}
//----------------------------------------------------------------------------------------------
// 개별응답부 : 2100 자리
@ -384,9 +367,8 @@ public class NiceCiApiDTO {
final int repeatLength = 110;
final int[] parseLength = {
10, // tr-code
83, // 공통부
100, // 공통부
// FIXME: spec과 상이 - 확인 필요 : "1"이 들어오고 있다
17, // 공란
2, // 응답건수
1, // SMS발송요청구분코드
2000, // SMS 발송메세지
@ -400,31 +382,28 @@ public class NiceCiApiDTO {
if (StringUtils.isNotBlank(tgtString) && NiceCiUtils.lengthKr(tgtString) >= 2320) {
Response response = new Response();
int idx = 0;
response.setTrCode(StringUtils.left(tgtString, parseLength[idx]));
response.setTrnscId(StringUtils.left(tgtString, parseLength[idx]));
tgtString = tgtString.substring(parseLength[idx++]);
response.setNiceCommon(NiceCiApiCommon.parse(tgtString));
tgtString = tgtString.substring(parseLength[idx++]);
response.setCommonEmptyField(StringUtils.left(tgtString, parseLength[idx]));
tgtString = tgtString.substring(parseLength[idx++]);
response.setResCnt(StringUtils.left(tgtString, parseLength[idx]));
response.setRspnsCo(StringUtils.left(tgtString, parseLength[idx]));
tgtString = tgtString.substring(parseLength[idx++]);
response.setSmsSndReqCode(StringUtils.left(tgtString, parseLength[idx]));
response.setSmsSndngRequstSe(StringUtils.left(tgtString, parseLength[idx]));
tgtString = tgtString.substring(parseLength[idx++]);
response.setSndMessage(NiceCiUtils.leftKr(tgtString, parseLength[idx]));
response.setSndngMssage(NiceCiUtils.leftKr(tgtString, parseLength[idx]));
tgtString = NiceCiUtils.substringKr(tgtString, parseLength[idx++]);
response.setSndPhoneNo(StringUtils.left(tgtString, parseLength[idx]));
response.setDsptchNo(StringUtils.left(tgtString, parseLength[idx]));
tgtString = tgtString.substring(parseLength[idx++]);
response.setContactSearchCode(StringUtils.left(tgtString, parseLength[idx]));
response.setCttpcInqireSe(StringUtils.left(tgtString, parseLength[idx]));
tgtString = tgtString.substring(parseLength[idx++]);
response.setPrivateEmptyField(StringUtils.left(tgtString, parseLength[idx]));
response.setIndvdlzRspnsBlnk(StringUtils.left(tgtString, parseLength[idx]));
tgtString = tgtString.substring(parseLength[idx]);
if(NiceCiUtils.lengthKr(tgtString) % repeatLength == 0){
@ -457,7 +436,7 @@ public class NiceCiApiDTO {
*/
@Schema(title = "개인/사업자/법인구분", example = "1")
@Size(min = 1, max = 1, message = "개인/사업자/법인구분은 1자리 입니다.")
private String idDiv = "1";
private String indvdlBsnmCprSe = "1";
/**
* <pre>
@ -466,9 +445,9 @@ public class NiceCiApiDTO {
*/
@Schema(title = "주민번호", example = " ")
@Size(min = 13, max = 13, message = "주민번호는 13자리 입니다.")
private String jumin = StringUtils.rightPad(StringUtils.EMPTY, 13, StringUtils.SPACE);
public void setJumin(String jumin) {
this.jumin = StringUtils.rightPad(nvl(jumin), 13, StringUtils.SPACE);
private String ihidnum = StringUtils.rightPad(StringUtils.EMPTY, 13, StringUtils.SPACE);
public void setIhidnum(String ihidnum) {
this.ihidnum = StringUtils.rightPad(nvl(ihidnum), 13, StringUtils.SPACE);
}
/**
@ -478,13 +457,13 @@ public class NiceCiApiDTO {
*/
@Schema(title = "공란", example = " ")
@Size(min = 36, max = 36, message = "공란(36자리)")
private String emptyField = StringUtils.rightPad(StringUtils.EMPTY, 36, StringUtils.SPACE);
private String inqireRequstBlnk = StringUtils.rightPad(StringUtils.EMPTY, 36, StringUtils.SPACE);
public String ofString() {
StringBuilder sb = new StringBuilder();
sb.append(idDiv);
sb.append(jumin);
sb.append(emptyField);
sb.append(indvdlBsnmCprSe);
sb.append(ihidnum);
sb.append(inqireRequstBlnk);
return sb.toString();
}
}
@ -502,9 +481,9 @@ public class NiceCiApiDTO {
*/
@Schema(requiredMode = Schema.RequiredMode.REQUIRED, title = "버튼타입", example = " ", allowableValues = {"WL", "AL"})
@Pattern(regexp = "[WL|AL]", message = "버튼 타입은 2자리 입니다.")
private String btnType = "WL";
public void setBtnType(String btnType) {
this.btnType = StringUtils.rightPad(nvl(btnType), 2, StringUtils.SPACE);
private String bttonTy = "WL";
public void setBttonTy(String bttonTy) {
this.bttonTy = StringUtils.rightPad(nvl(bttonTy), 2, StringUtils.SPACE);
}
/**
@ -514,9 +493,9 @@ public class NiceCiApiDTO {
*/
@Schema(title = "버튼이름", example = "1")
@Size(min = 56, max = 56, message = "버튼이름은 56자리 입니다.")
private String btnName = StringUtils.rightPad("납부하기", 56, StringUtils.SPACE);
public void setBtnName(String jumin) {
this.btnName = StringUtils.rightPad(nvl(btnName), 56, StringUtils.SPACE);
private String bttonNm = NiceCiUtils.rightPadKr("납부하기", 56, StringUtils.SPACE);
public void setBttonNm(String bttonNm) {
this.bttonNm = NiceCiUtils.rightPadKr(nvl(bttonNm), 56, StringUtils.SPACE);
}
/**
@ -527,12 +506,12 @@ public class NiceCiApiDTO {
*/
@Schema(title = "버튼URL웹링크1", example = " ")
@Size(min = 1000, max = 1000, message = "버튼URL웹링크1 은 1000자리 입니다.")
private String btnUrlWebLink1 = StringUtils.rightPad(
private String bttonUrlWebLink_1 = StringUtils.rightPad(
"https://billgates-web.kakao.com/r/platform/pages/paynow/search/1832/11/01819e09-8b4c-4287-9f0f-1c5c2df80bf0",
1000,
StringUtils.SPACE);
public void setBtnUrlWebLink1(String btnUrlWebLink1) {
this.btnUrlWebLink1 = StringUtils.rightPad(nvl(btnUrlWebLink1), 1000, StringUtils.SPACE);
public void setBttonUrlWebLink_1(String bttonUrlWebLink_1) {
this.bttonUrlWebLink_1 = StringUtils.rightPad(nvl(bttonUrlWebLink_1), 1000, StringUtils.SPACE);
}
/**
@ -543,9 +522,9 @@ public class NiceCiApiDTO {
*/
@Schema(title = "버튼URL웹링크2", example = " ")
@Size(min = 1000, max = 1000, message = "버튼URL웹링크2 은 1000자리 입니다.")
private String btnUrlWebLink2 = StringUtils.rightPad(StringUtils.EMPTY, 1000, StringUtils.SPACE);
public void setBtnUrlWebLink2(String btnUrlWebLink2) {
this.btnUrlWebLink2 = StringUtils.rightPad(nvl(btnUrlWebLink2), 1000, StringUtils.SPACE);
private String bttonUrlWebLink_2 = StringUtils.rightPad(StringUtils.EMPTY, 1000, StringUtils.SPACE);
public void setBttonUrlWebLink_2(String bttonUrlWebLink_2) {
this.bttonUrlWebLink_2 = StringUtils.rightPad(nvl(bttonUrlWebLink_2), 1000, StringUtils.SPACE);
}
/**
@ -555,15 +534,15 @@ public class NiceCiApiDTO {
*/
@Schema(title = "공란", example = " ")
@Size(min = 942, max = 942, message = "공란(36자리)")
private String emptyField = StringUtils.rightPad(StringUtils.EMPTY, 942, StringUtils.SPACE);
private String bttonRequstBlnk = StringUtils.rightPad(StringUtils.EMPTY, 942, StringUtils.SPACE);
public String ofString() {
StringBuilder sb = new StringBuilder();
sb.append(btnType);
sb.append(btnName);
sb.append(btnUrlWebLink1);
sb.append(btnUrlWebLink2);
sb.append(emptyField);
sb.append(bttonTy);
sb.append(bttonNm);
sb.append(bttonUrlWebLink_1);
sb.append(bttonUrlWebLink_2);
sb.append(bttonRequstBlnk);
return sb.toString();
}
}

@ -49,16 +49,16 @@ public class NiceCiApiResult {
* 1()
* </pre>
*/
private String idDiv = "1";
private String indvdlBsnmCprSe = "1";
/**
* <pre>
* - 13
* </pre>
*/
private String jumin;
public void setJumin(String jumin) {
this.jumin = StringUtils.trim(jumin);
private String ihidnum;
public void setIhidnum(String ihidnum) {
this.ihidnum = StringUtils.trim(ihidnum);
}
/**
@ -67,9 +67,9 @@ public class NiceCiApiResult {
* NiceCiUtils.leftKr, substringKr
* </pre>
*/
private String name;
public void setName(String name) {
this.name = StringUtils.trim(name);
private String nm;
public void setNm(String nm) {
this.nm = StringUtils.trim(nm);
}
/**
@ -77,9 +77,9 @@ public class NiceCiApiResult {
* 1 - 11
* </pre>
*/
private String contractOf1st;
public void setContractOf1st(String contractOf1st) {
this.contractOf1st = StringUtils.trim(contractOf1st);
private String rankCttpc_1;
public void setRankCttpc_1(String rankCttpc_1) {
this.rankCttpc_1 = StringUtils.trim(rankCttpc_1);
}
/**
@ -87,9 +87,9 @@ public class NiceCiApiResult {
* 2 - 11
* </pre>
*/
private String contractOf2nd;
public void setContractOf2nd(String contractOf2nd) {
this.contractOf2nd = StringUtils.trim(contractOf2nd);
private String rankCttpc_2;
public void setRankCttpc_2(String rankCttpc_2) {
this.rankCttpc_2 = StringUtils.trim(rankCttpc_2);
}
/**
@ -97,9 +97,9 @@ public class NiceCiApiResult {
* 3 - 11
* </pre>
*/
private String contractOf3rd;
public void setContractOf3rd(String contractOf3rd) {
this.contractOf3rd = StringUtils.trim(contractOf3rd);
private String rankCttpc_3;
public void setRankCttpc_3(String rankCttpc_3) {
this.rankCttpc_3 = StringUtils.trim(rankCttpc_3);
}
/**
@ -112,9 +112,9 @@ public class NiceCiApiResult {
* 99
* </pre>
*/
private String rsltDivCode;
public void setRsltDivCode(String rsltDivCode) {
this.rsltDivCode = StringUtils.trim(rsltDivCode);
private String resultSe;
public void setResultSe(String resultSe) {
this.resultSe = StringUtils.trim(resultSe);
}
//------------------------------------------------------------------------------------
@ -168,16 +168,16 @@ public class NiceCiApiResult {
* 3: 3
* </pre>
*/
private String smsSndContractOrder = "1";
private String smsSndngCttpcRank = "1";
/**
* <pre>
* SMS - 11
* </pre>
*/
private String smsSndContractNo;
public void setSmsSndContractNo(String smsSndContractNo) {
this.smsSndContractNo = StringUtils.trim(smsSndContractNo);
private String smsSndngCttpcNo;
public void setSmsSndngCttpcNo(String smsSndngCttpcNo) {
this.smsSndngCttpcNo = StringUtils.trim(smsSndngCttpcNo);
}
/**
@ -185,9 +185,9 @@ public class NiceCiApiResult {
* SMS - 14
* </pre>
*/
private String smsSndWillDt;
public void setSmsSndWillDt(String smsSndWillDt) {
this.smsSndWillDt = StringUtils.trim(smsSndWillDt);
private String smsSndngDt;
public void setSmsSndngDt(String smsSndngDt) {
this.smsSndngDt = StringUtils.trim(smsSndngDt);
}
//------------------------------------------------------------------------------------
@ -231,9 +231,9 @@ public class NiceCiApiResult {
* - 15, 11
* </pre>
*/
private String emptyField;
public void setEmptyField(String emptyField) {
this.emptyField = StringUtils.trim(emptyField);
private String rspnsReptitBlnk;
public void setRspnsReptitBlnk(String rspnsReptitBlnk) {
this.rspnsReptitBlnk = StringUtils.trim(rspnsReptitBlnk);
}
public static NiceCiApiResult parse(String tgtString) {
@ -256,37 +256,37 @@ public class NiceCiApiResult {
NiceCiApiResult result = new NiceCiApiResult();
int idx = 0;
result.setIdDiv(StringUtils.left(tgtString, parseLength[idx]));
result.setIndvdlBsnmCprSe(StringUtils.left(tgtString, parseLength[idx]));
tgtString = tgtString.substring(parseLength[idx++]);
result.setJumin(StringUtils.left(tgtString, parseLength[idx]));
result.setIhidnum(StringUtils.left(tgtString, parseLength[idx]));
tgtString = tgtString.substring(parseLength[idx++]);
result.setName(NiceCiUtils.leftKr(tgtString, parseLength[idx]));
result.setNm(NiceCiUtils.leftKr(tgtString, parseLength[idx]));
tgtString = NiceCiUtils.substringKr(tgtString, parseLength[idx++]);
result.setContractOf1st(StringUtils.left(tgtString, parseLength[idx]));
result.setRankCttpc_1(StringUtils.left(tgtString, parseLength[idx]));
tgtString = tgtString.substring(parseLength[idx++]);
result.setContractOf2nd(StringUtils.left(tgtString, parseLength[idx]));
result.setRankCttpc_2(StringUtils.left(tgtString, parseLength[idx]));
tgtString = tgtString.substring(parseLength[idx++]);
result.setContractOf3rd(StringUtils.left(tgtString, parseLength[idx]));
result.setRankCttpc_3(StringUtils.left(tgtString, parseLength[idx]));
tgtString = tgtString.substring(parseLength[idx++]);
result.setRsltDivCode(StringUtils.left(tgtString, parseLength[idx]));
result.setResultSe(StringUtils.left(tgtString, parseLength[idx]));
tgtString = tgtString.substring(parseLength[idx++]);
result.setSmsSndContractOrder(StringUtils.left(tgtString, parseLength[idx]));
result.setSmsSndngCttpcRank(StringUtils.left(tgtString, parseLength[idx]));
tgtString = tgtString.substring(parseLength[idx++]);
result.setSmsSndContractNo(StringUtils.left(tgtString, parseLength[idx]));
result.setSmsSndngCttpcNo(StringUtils.left(tgtString, parseLength[idx]));
tgtString = tgtString.substring(parseLength[idx++]);
result.setSmsSndWillDt(StringUtils.left(tgtString, parseLength[idx]));
result.setSmsSndngDt(StringUtils.left(tgtString, parseLength[idx]));
tgtString = tgtString.substring(parseLength[idx++]);
result.setEmptyField(StringUtils.left(tgtString, parseLength[idx]));
result.setRspnsReptitBlnk(StringUtils.left(tgtString, parseLength[idx]));
return result;
}
return null;
@ -324,25 +324,25 @@ public class NiceCiApiResult {
tgtString = tgtString.substring(parseLength[idx++]);
// 이력조회시만 사용 ////////////////////////////////////////////////////////
result.setIdDiv(StringUtils.left(tgtString, parseLength[idx]));
result.setIndvdlBsnmCprSe(StringUtils.left(tgtString, parseLength[idx]));
tgtString = tgtString.substring(parseLength[idx++]);
result.setJumin(StringUtils.left(tgtString, parseLength[idx]));
result.setIhidnum(StringUtils.left(tgtString, parseLength[idx]));
tgtString = tgtString.substring(parseLength[idx++]);
result.setName(NiceCiUtils.leftKr(tgtString, parseLength[idx]));
result.setNm(NiceCiUtils.leftKr(tgtString, parseLength[idx]));
tgtString = NiceCiUtils.substringKr(tgtString, parseLength[idx++]);
result.setContractOf1st(StringUtils.left(tgtString, parseLength[idx]));
result.setRankCttpc_1(StringUtils.left(tgtString, parseLength[idx]));
tgtString = tgtString.substring(parseLength[idx++]);
result.setContractOf2nd(StringUtils.left(tgtString, parseLength[idx]));
result.setRankCttpc_2(StringUtils.left(tgtString, parseLength[idx]));
tgtString = tgtString.substring(parseLength[idx++]);
result.setContractOf3rd(StringUtils.left(tgtString, parseLength[idx]));
result.setRankCttpc_3(StringUtils.left(tgtString, parseLength[idx]));
tgtString = tgtString.substring(parseLength[idx++]);
result.setRsltDivCode(StringUtils.left(tgtString, parseLength[idx]));
result.setResultSe(StringUtils.left(tgtString, parseLength[idx]));
tgtString = tgtString.substring(parseLength[idx++]);
// 이력조회시만 사용 ////////////////////////////////////////////////////////
@ -350,17 +350,17 @@ public class NiceCiApiResult {
tgtString = tgtString.substring(parseLength[idx++]);
result.setSndMessage(NiceCiUtils.leftKr(tgtString, parseLength[idx]));
tgtString = NiceCiUtils.substringKr(tgtString, parseLength[idx++]);
result.setSmsSndContractNo(StringUtils.left(tgtString, parseLength[idx]));
result.setSmsSndngCttpcNo(StringUtils.left(tgtString, parseLength[idx]));
tgtString = tgtString.substring(parseLength[idx++]);
// 이력조회시만 사용 ////////////////////////////////////////////////////////
result.setSmsSndContractOrder(StringUtils.left(tgtString, parseLength[idx]));
result.setSmsSndngCttpcRank(StringUtils.left(tgtString, parseLength[idx]));
tgtString = tgtString.substring(parseLength[idx++]);
result.setSmsSndContractNo(StringUtils.left(tgtString, parseLength[idx]));
result.setSmsSndngCttpcNo(StringUtils.left(tgtString, parseLength[idx]));
tgtString = tgtString.substring(parseLength[idx++]);
result.setSmsSndWillDt(StringUtils.left(tgtString, parseLength[idx]));
result.setSmsSndngDt(StringUtils.left(tgtString, parseLength[idx]));
tgtString = tgtString.substring(parseLength[idx++]);
// 이력조회시만 사용 ////////////////////////////////////////////////////////
@ -368,11 +368,11 @@ public class NiceCiApiResult {
tgtString = tgtString.substring(parseLength[idx++]);
result.setContactSearchCode(StringUtils.left(tgtString, parseLength[idx]));
tgtString = tgtString.substring(parseLength[idx++]);
result.setRsltDivCode(StringUtils.left(tgtString, parseLength[idx]));
result.setResultSe(StringUtils.left(tgtString, parseLength[idx]));
tgtString = tgtString.substring(parseLength[idx++]);
// 이력조회시만 사용 ////////////////////////////////////////////////////////
result.setEmptyField(StringUtils.left(tgtString, parseLength[idx]));
result.setRspnsReptitBlnk(StringUtils.left(tgtString, parseLength[idx]));
return result;
}
return null;

@ -2,6 +2,7 @@ package cokr.xit.ens.modules.nice.service;
import java.util.*;
import org.apache.commons.lang3.*;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.*;
@ -78,7 +79,7 @@ public class NiceCiSendBulkService {
List<NiceCiDTO.InputDataXit> inputDataXits = xit.getInputDataXits();
for (NiceCiDTO.InputDataXit data : inputDataXits) {
// 기관전문관리번호, TB_NICE_SMS_SNDNG_REQUEST
// 기관전문관리번호, TB_NICE_SMS_SNDNG_REQUEST - NICE_SMS_SNDNG_REQUST_ID
final String niceSmsReqId = niceCiMapper.selectNiceCiRequestId().orElseThrow(
() -> new EnsException(EnsErrCd.MAKE521, EnsErrCd.MAKE521.getCodeNm())
);
@ -102,7 +103,18 @@ public class NiceCiSendBulkService {
ciRequest.getQueryRequests().add(queryRequest);
ciRequest.getButtonRequests().add(btnRequest);
ciRequest.setNiceSmsSndngRequstId(niceSmsReqId);
ciRequest.setDataId(data.getDataId());
niceCiMapper.insertNiceSmsSndngRequest(ciRequest);
// FIXME : 연계 이후 확인 필요
EnsResponseVO<?> responseVO = niceCiApiService.requestSendBulk(ciRequest);
NiceCiApiDTO.Response resDTO = (NiceCiApiDTO.Response)responseVO.getResultInfo();
//NiceCiApiDTO.Response resDTO = new NiceCiApiDTO.Response();
resDTO.setNiceSmsSndngRequstId(niceSmsReqId);
niceCiMapper.insertNiceSmsSndngResponse(resDTO);
log.info(responseVO.toString());
return responseVO;
}
@ -139,23 +151,23 @@ public class NiceCiSendBulkService {
//---------------------------------------------------------
// 공통부 : default start
//---------------------------------------------------------
// nCommon.setGrpCode("NICEIF "); // 전문그룹코드
// nCommon.setTrType("0200"); // 거래종별코드
// nCommon.setTrClassification("31896"); // 거래구분코드
// nCommon.setSndAndRcvFlag("B"); // 송수신플래그
// nCommon.setDeviceClassification("503"); // 단말기구분
// nCommon.setRsltCode(" "); // 응답코드
// nCommon.setNiceMngNo(""); // NICE 전문관리번호
// nCommon.setNiceSndDt(""); // NICE 전문 전송시간
// ciRequest.setCommonEmptyField(""); // 공란 - 16자리
// ciRequest.setQueryConsentReason("1"); // 조회동의사유
// nCommon.setSpcltyGroupcode("NICEIF "); // 전문그룹코드
// nCommon.setDelngAsortcode("0200"); // 거래종별코드
// nCommon.setDelngSecode("31896"); // 거래구분코드
// nCommon.setTrmnlSe("B"); // 송수신플래그
// nCommon.setTrmnlSe("503"); // 단말기구분
// nCommon.setRspnsCode(" "); // 응답코드
// nCommon.setNiceSpcltyManageno(""); // NICE 전문관리번호
// nCommon.setNiceSpcltyTrnsmistime(""); // NICE 전문 전송시간
// ciRequest.setInqireAgreResn("1"); // 조회동의사유
//----------------------------------------------------------
// 공통부 : default end
//----------------------------------------------------------
nCommon.setOrgId(ORG_ID); // 참가기관ID - property 에서
nCommon.setOrgMngNo(niceSmsReqId); // 기관전문관리번호 - LPAD(SEQ_NICE_SMS_SNDNG_REQUST_ID, 10, '0')
nCommon.setOrgSndDt(DateUtil.getTodayAndNowTime("yyyyMMdd")); // 기관전문전송시간
nCommon.setPartcptInsttId(ORG_ID); // 참가기관ID - property 에서
nCommon.setInsttSpcltyManageno(niceSmsReqId); // 기관전문관리번호 - LPAD(SEQ_NICE_SMS_SNDNG_REQUST_ID, 10, '0')
nCommon.setInsttSpcltyTrnsmistime(DateUtil.getTodayAndNowTime("yyyyMMdd")); // 기관전문전송시간
nCommon.setBlnk(StringUtils.rightPad(StringUtils.EMPTY, 16, StringUtils.SPACE)); // 공란 16자리
////////////////////////////////////////////////////////////
// 공통부 END
////////////////////////////////////////////////////////////
@ -175,24 +187,24 @@ public class NiceCiSendBulkService {
//----------------------------------------------------------
// 개별요청부 : default start
//----------------------------------------------------------
// ciRequest.setQueryReason("17"); // 조회사유
// ciRequest.setSmsSndReqCode("3"); // SMS발송요청구분코드
// ciRequest.setSndPhoneNo("0442113377"); // 발신번호
// ciRequest.setContactSearchCode("3"); // 연락처 조회 구분
// ciRequest.setAlimtalkSndReqDiv("1"); // 알림톡발송요청구분코드
// ciRequest.setBtnReqCnt(1); // 버튼요청건수
// ciRequest.setPrivateEmptyField(""); // 공란 - 880자리
// ciRequest.setInqireResn("17"); // 조회사유
// ciRequest.setSmsSndngRequstSe("3"); // SMS발송요청구분코드
// ciRequest.setDsptchNo("0442113377"); // 발신번호
// ciRequest.setCttpcInqireSe("3"); // 연락처 조회 구분
// ciRequest.setNtcntalkSndngRequstSe("1"); // 알림톡발송요청구분코드
// ciRequest.setBttonRequstCo(1); // 버튼요청건수
// ciRequest.setIndvdlzRequstBlnk(""); // 공란 - 880자리
//---------------------------------------------------------
// 개별요청부 : default end
//---------------------------------------------------------
ciRequest.setQueryReqCnt(1); // 조회요청건수
ciRequest.setInqireRequstCo(1); // 조회요청건수
Map<String, String> map = gson.fromJson(data.getMsgData(), Map.class);
for(Map.Entry<String, String> entry : map.entrySet()){
sndMsg = sndMsg.replace(entry.getKey(), entry.getValue());
}
ciRequest.setSndMessage(sndMsg); // 발송메세지
ciRequest.setAlimtalkTmpltCode(tmpltId); // 알림톡 템플릿 코드
ciRequest.setSndngMssage(sndMsg); // 발송메세지
ciRequest.setNtcntalkTmplatCode(tmpltId); // 알림톡 템플릿 코드
////////////////////////////////////////////////////////////
// 개별요청부 END
////////////////////////////////////////////////////////////
@ -207,12 +219,12 @@ public class NiceCiSendBulkService {
//---------------------------------------------------------
// 조회요청 반복부 : default START
//---------------------------------------------------------
// queryRequest.setIdDiv("1"); // 개인사업자법인구분 : "1"
// queryRequest.setEmptyField(""); // 공란 - 36 자리
//---------------------------------------------------------
// queryRequest.setIndvdlBsnmCprSe("1"); // 개인사업자법인구분 : "1"
// queryRequest.setInqireRequstBlnk(""); // 공란 - 36 자리
// //---------------------------------------------------------
// 조회요청 반복부 : default END
//---------------------------------------------------------
queryRequest.setJumin(data.getSid()); // 주민번호
queryRequest.setIhidnum(data.getSid()); // 주민번호
}
/**
@ -224,13 +236,13 @@ public class NiceCiSendBulkService {
//---------------------------------------------------------
// 버튼요청 반복부 : default START
//---------------------------------------------------------
// btnRequest.setBtnType("WL"); // 버튼타입
// btnRequest.setBtnName("납부하기"); // 버튼이름
// btnRequest.setBtnUrlWebLink2("");
// btnRequest.setEmptyField(""); // 공란 : 942 자리
// btnRequest.setBttonTy("WL"); // 버튼타입
// btnRequest.setBttonNm("납부하기"); // 버튼이름
// btnRequest.setBttonUrlWebLink_2("");
// btnRequest.setBttonRequstBlnk(""); // 공란 : 942 자리
//---------------------------------------------------------
// 버튼요청 반복부 : default END
//---------------------------------------------------------
btnRequest.setBtnUrlWebLink1(data.getPayUrl()); // 공란 - 36 자리
btnRequest.setBttonUrlWebLink_1(data.getPayUrl()); // 공란 - 36 자리
}
}

@ -13,7 +13,6 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.*;
import cokr.xit.ens.core.aop.*;
import cokr.xit.ens.core.exception.*;
import cokr.xit.ens.core.exception.code.*;
import cokr.xit.ens.modules.nice.cmm.*;
import cokr.xit.ens.modules.nice.model.*;
@ -157,10 +156,10 @@ public class NiceCiApiService {
} catch (SocketTimeoutException e) {
// 타임아웃 발생 시 처리
log.error("NICE CI Socket 서버 응답 시간 초과: " + e.getMessage());
throw BizRuntimeException.create("NICE CI Socket 서버 응답 시간 초과로 인해 통신이 종료되었습니다.");
// throw BizRuntimeException.create("NICE CI Socket 서버 응답 시간 초과로 인해 통신이 종료되었습니다.");
} catch (IOException e) {
throw BizRuntimeException.create(e.getMessage());
// throw BizRuntimeException.create(e.getMessage());
}
return rtnMsg;
}

@ -192,4 +192,162 @@
FROM ens_tmplt_mng
WHERE tmplt_cd = #{tmpltCd}
</select>
<insert id="insertNiceSmsSndngRequest" parameterType="cokr.xit.ens.modules.nice.model.NiceCiApiDTO$Request">
/** iup-niceci-mapper|insertNiceSmsSndngRequest-selest nice ci Send request 생성|julim */
INSERT INTO tb_nice_sms_sndng_requst (
NIce_sms_sndng_requst_id,
data_id,
trnsc_id,
spclty_groupcode,
delng_asortcode,
delng_secode,
trsmrcv_at,
trmnl_se,
rspns_code,
partcpt_instt_id,
instt_spclty_manageno,
instt_spclty_trnsmistime,
nice_spclty_manageno,
nice_spclty_trnsmistime,
blnk,
inqire_agre_resn,
inqire_resn,
inqire_requst_co,
sms_sndng_requst_se,
sndng_mssage,
dsptch_no,
cttpc_inqire_se,
ntcntalk_sndng_requst_se,
ntcntalk_tmplat_code,
btton_requst_co,
indvdlz_requst_blnk,
indvdl_bsnm_cpr_se,
ihidnum,
inqire_requst_blnk,
btton_ty,
btton_nm,
btton_url_web_link_1,
btton_url_web_link_2,
btton_requst_blnk,
creat_dt,
crtr
) VALUES (
#{niceSmsSndngRequstId},
#{dataId},
#{trnscId},
#{niceCommon.spcltyGroupcode},
#{niceCommon.delngAsortcode},
#{niceCommon.delngSecode},
#{niceCommon.trsmrcvAt},
#{niceCommon.trmnlSe},
#{niceCommon.rspnsCode},
#{niceCommon.partcptInsttId},
#{niceCommon.insttSpcltyManageno},
#{niceCommon.insttSpcltyTrnsmistime},
#{niceCommon.niceSpcltyManageno},
#{niceCommon.niceSpcltyTrnsmistime},
#{niceCommon.blnk},
#{niceCommon.inqireAgreResn},
#{inqireResn},
#{inqireRequstCo},
#{smsSndngRequstSe},
#{sndngMssage},
#{dsptchNo},
#{cttpcInqireSe},
#{ntcntalkSndngRequstSe},
#{ntcntalkTmplatCode},
#{bttonRequstCo},
#{indvdlzRequstBlnk},
<foreach collection="queryRequests" item="queryRequest" separator=",">
#{queryRequest.indvdlBsnmCprSe},
#{queryRequest.ihidnum},
#{queryRequest.inqireRequstBlnk},
</foreach>
<foreach collection="buttonRequests" item="buttonRequest" separator=",">
#{buttonRequest.bttonTy},
#{buttonRequest.bttonNm},
#{buttonRequest.bttonUrlWebLink_1},
#{buttonRequest.bttonUrlWebLink_2},
#{buttonRequest.bttonRequstBlnk},
</foreach>
sysdate,
'ENS_SYS'
)
</insert>
<insert id="insertNiceSmsSndngResponse" parameterType="cokr.xit.ens.modules.nice.model.NiceCiApiDTO$Response">
/** iup-niceci-mapper|insertNiceSmsSndngResponse-selest nice ci Send response 생성|julim */
INSERT INTO tb_nice_sms_sndng_rspns (
nice_sms_sndng_requst_id,
trnsc_id,
spclty_groupcode,
delng_asortcode,
delng_secode,
trsmrcv_at,
trmnl_se,
rspns_code,
partcpt_instt_id,
instt_spclty_manageno,
instt_spclty_trnsmistime,
nice_spclty_manageno,
nice_spclty_trnsmistime,
blnk,
rspns_co,
sms_sndng_requst_se,
sndng_mssage,
dsptch_no,
cttpc_inqire_se,
indvdlz_requst_blnk,
indvdl_bsnm_cpr_se,
ihidnum,
nm,
rank_cttpc_1,
rank_cttpc_2,
rank_cttpc_3,
result_se,
sms_sndng_cttpc_rank,
sms_sndng_cttpc_no,
sms_sndng_dt,
rspns_reptit_blnk,
creat_dt,
crtr
) VALUES (
#{niceSmsSndngRequstId},
#{trnscId},
#{niceCommon.spcltyGroupcode},
#{niceCommon.delngAsortcode},
#{niceCommon.delngSecode},
#{niceCommon.trsmrcvAt},
#{niceCommon.trmnlSe},
#{niceCommon.rspnsCode},
#{niceCommon.partcptInsttId},
#{niceCommon.insttSpcltyManageno},
#{niceCommon.insttSpcltyTrnsmistime},
#{niceCommon.niceSpcltyManageno},
#{niceCommon.niceSpcltyTrnsmistime},
#{niceCommon.blnk},
#{rspnsCo},
#{smsSndngRequstSe},
#{sndngMssage},
#{dsptchNo},
#{cttpcInqireSe},
#{indvdlzRspnsBlnk},
<foreach collection="niceCiResults" item="niceCiResult" separator=",">
#{niceCiResult.indvdlBsnmCprSe},
#{niceCiResult.ihidnum},
#{niceCiResult.nm},
#{niceCiResult.rankCttpc_1},
#{niceCiResult.rankCttpc_2},
#{niceCiResult.rankCttpc_3},
#{niceCiResult.resultSe},
#{niceCiResult.smsSndngCttpcRank},
#{niceCiResult.smsSndngCttpcNo},
#{niceCiResult.smsSndngDt},
#{niceCiResult.rspnsReptitBlnk},
</foreach>
sysdate,
'ENS_SYS'
)
</insert>
</mapper>

Loading…
Cancel
Save