feat: NICE CI 인증톡 진행 - sendBulk API 파라메터 set
parent
a4ab009b83
commit
3ad2b1e1ac
@ -0,0 +1,203 @@
|
|||||||
|
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.*;
|
||||||
|
|
||||||
|
import cokr.xit.ens.biz.iup.code.*;
|
||||||
|
import cokr.xit.ens.core.aop.*;
|
||||||
|
import cokr.xit.ens.core.exception.*;
|
||||||
|
import cokr.xit.ens.core.exception.code.*;
|
||||||
|
import cokr.xit.ens.core.utils.*;
|
||||||
|
import cokr.xit.ens.modules.common.ctgy.sys.mng.domain.*;
|
||||||
|
import cokr.xit.ens.modules.nice.cmm.*;
|
||||||
|
import cokr.xit.ens.modules.nice.mapper.*;
|
||||||
|
import cokr.xit.ens.modules.nice.model.*;
|
||||||
|
import cokr.xit.ens.modules.nice.service.support.*;
|
||||||
|
import lombok.*;
|
||||||
|
import lombok.extern.slf4j.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* description :
|
||||||
|
* packageName : cokr.xit.ens.modules.nice.service
|
||||||
|
* fileName : NiceCiSendBulkService
|
||||||
|
* author : limju
|
||||||
|
* date : 2024 9월 27
|
||||||
|
* ======================================================================
|
||||||
|
* 변경일 변경자 변경 내용
|
||||||
|
* ----------------------------------------------------------------------
|
||||||
|
* 2024 9월 27 limju 최초 생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class NiceCiSendBulkService {
|
||||||
|
@Value("${contract.niceCi.orgId}")
|
||||||
|
private String ORG_ID;
|
||||||
|
|
||||||
|
@Value("${contract.niceCi.clientId}")
|
||||||
|
private String CLIENT_ID;
|
||||||
|
|
||||||
|
private final NiceCiApiService niceCiApiService;
|
||||||
|
|
||||||
|
private final INiceCiMapper niceCiMapper;
|
||||||
|
|
||||||
|
final String msg = "민자도로 관리지원센터에서 김해찬님께 발송한 미납통행료 고지서가 도착했습니다.\n"
|
||||||
|
+ "\n"
|
||||||
|
+ "민자도로 미납통행료 고지서\n"
|
||||||
|
+ "\n"
|
||||||
|
+ "□ 차량번호 : 19너0914\n"
|
||||||
|
+ "□ 미납발생 노선 : 서울-문산\n"
|
||||||
|
+ "□ 미납발생 기간 : 2021년 04월 12일~2023년 08월 30일\n"
|
||||||
|
+ "□ 납부금액 : 819,500원(42건)\n"
|
||||||
|
+ "□ 납부기한 : 2024년10월01일\n"
|
||||||
|
+ "□ 납부방법 : \n"
|
||||||
|
+ "① 하단의 (납부하기) 클릭\n"
|
||||||
|
+ "② 가상계좌 납부\n"
|
||||||
|
+ "-(가상계좌) : 농협은행 792000-36-986609\n"
|
||||||
|
+ "국민은행 731190-72-253083\n"
|
||||||
|
+ "우리은행 283752-73-918780\n"
|
||||||
|
+ "신한은행 562146-27-470101\n"
|
||||||
|
+ "\n"
|
||||||
|
+ "※ 알림톡 수신 시 종이고지서는 발송되지 않습니다.\n"
|
||||||
|
+ "\n"
|
||||||
|
+ "문의처 : 044-211-3377";
|
||||||
|
|
||||||
|
|
||||||
|
public EnsResponseVO<?> requestSendBulk() {
|
||||||
|
final NiceCiDTO.NiceCiParam niceCiParam = NiceCiDTO.NiceCiParam.builder()
|
||||||
|
.sendType(IupSendTypeCd.NI.getCode())
|
||||||
|
.prcsCd(IupPrcsCd.GRUC.getCode())
|
||||||
|
.build();
|
||||||
|
|
||||||
|
final List<NiceCiDTO.InputXit> list = niceCiMapper.selectNiceCiTgts(niceCiParam);
|
||||||
|
if(list.isEmpty()){
|
||||||
|
return EnsResponseVO.errBuilder()
|
||||||
|
.errCode(EnsErrCd.ERR404)
|
||||||
|
.errMsg(EnsErrCd.ERR404.getCodeNm())
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
list.forEach(d -> {
|
||||||
|
niceCiParam.setLnkInputId(d.getLnkInputId());
|
||||||
|
d.setInputDataXits(niceCiMapper.selectNiceCiAcceptDatas(niceCiParam));
|
||||||
|
});
|
||||||
|
|
||||||
|
for(NiceCiDTO.InputXit xit : list) {
|
||||||
|
final String tmpltId = xit.getJobCd();
|
||||||
|
final NiceCiDTO.TmpltMng tmpltMng = niceCiMapper.selectTmpltMsg(tmpltId)
|
||||||
|
.orElseThrow(() -> new EnsException(EnsErrCd.NO_DATA_FOUND, EnsErrCd.NO_DATA_FOUND.getCodeNm()));
|
||||||
|
final String sndMsg = tmpltMng.getMessage().replace("~~@@!!", "#{").replace("!!@@~~", "}");
|
||||||
|
|
||||||
|
final OrgMng orgMng = niceCiMapper.selectKkoBpApiUrlFromEnsOrgMng(xit.getOrgCd())
|
||||||
|
.orElseThrow(() -> new EnsException(EnsErrCd.NO_DATA_FOUND, EnsErrCd.NO_DATA_FOUND.getCodeNm()));
|
||||||
|
NiceCiDTO.BillHistDTO billHistDTO = null;
|
||||||
|
|
||||||
|
try {
|
||||||
|
List<NiceCiDTO.InputDataXit> inputDataXits = xit.getInputDataXits();
|
||||||
|
for (NiceCiDTO.InputDataXit data : inputDataXits) {
|
||||||
|
|
||||||
|
// 기관전문관리번호, TB_NICE_SMS_SNDNG_REQUEST
|
||||||
|
final String niceSmsReqId = niceCiMapper.selectNiceCiRequestId().orElseThrow(
|
||||||
|
() -> new EnsException(EnsErrCd.MAKE521, EnsErrCd.MAKE521.getCodeNm())
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
NiceCiApiDTO.Request ciRequest = new NiceCiApiDTO.Request();
|
||||||
|
NiceCiApiCommon nc = new NiceCiApiCommon();
|
||||||
|
|
||||||
|
// 공통부 set
|
||||||
|
setNiceCiApiRequestCommon(nc, niceSmsReqId);
|
||||||
|
// 개별부 set
|
||||||
|
setNiceCiApiPrivateReq(ciRequest, tmpltId, sndMsg);
|
||||||
|
|
||||||
|
NiceCiApiDTO.QueryRequest qr = new NiceCiApiDTO.QueryRequest();
|
||||||
|
NiceCiApiDTO.ButtonRequest br = new NiceCiApiDTO.ButtonRequest();
|
||||||
|
|
||||||
|
ciRequest.setNiceCommon(nc);
|
||||||
|
ciRequest.getQueryRequests().add(qr);
|
||||||
|
ciRequest.getButtonRequests().add(br);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
String ciTxt = ciRequest.ofString();
|
||||||
|
String ft = String.format("%s%s",
|
||||||
|
StringUtils.leftPad(String.valueOf(NiceCiUtils.lengthKr(ciTxt)), 10, "0"),
|
||||||
|
ciTxt);
|
||||||
|
System.out.println(
|
||||||
|
String.format("[%s] kr length - %d, utf-8 length - %d", ft, NiceCiUtils.lengthKr(ft),
|
||||||
|
ft.length()));
|
||||||
|
|
||||||
|
// String rtnMsg = niceCiApiService.requestSendBulk(ciRequest);
|
||||||
|
// NiceCiDTO.Response resDTO = NiceCiDTO.Response.parse(rtnMsg);
|
||||||
|
EnsResponseVO<?> responseVO = niceCiApiService.requestSendBulk(ciRequest);
|
||||||
|
log.info(responseVO.toString());
|
||||||
|
return responseVO;
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setNiceCiApiRequestCommon(final NiceCiApiCommon nc, final String niceSmsReqId) {
|
||||||
|
////////////////////////////////////////////////////////////
|
||||||
|
// 공통부 START
|
||||||
|
////////////////////////////////////////////////////////////
|
||||||
|
//---------------------------------------------------------
|
||||||
|
// 공통부 : default start
|
||||||
|
//---------------------------------------------------------
|
||||||
|
// nc.setGrpCode("NICEIF "); // 전문그룹코드
|
||||||
|
// nc.setTrType("0200"); // 거래종별코드
|
||||||
|
// nc.setTrClassification("31896"); // 거래구분코드
|
||||||
|
// nc.setSndAndRcvFlag("B"); // 송수신플래그
|
||||||
|
// nc.setDeviceClassification("503"); // 단말기구분
|
||||||
|
// nc.setRsltCode(" "); // 응답코드
|
||||||
|
// nc.setNiceMngNo(""); // NICE 전문관리번호
|
||||||
|
// nc.setNiceSndDt(""); // NICE 전문 전송시간
|
||||||
|
// ciRequest.setCommonEmptyField(""); // 공란 - 16자리
|
||||||
|
// ciRequest.setQueryConsentReason("1"); // 조회동의사유
|
||||||
|
//----------------------------------------------------------
|
||||||
|
// 공통부 : default end
|
||||||
|
//----------------------------------------------------------
|
||||||
|
|
||||||
|
nc.setOrgId(ORG_ID); // 참가기관ID - property 에서
|
||||||
|
nc.setOrgMngNo(niceSmsReqId); // 기관전문관리번호 - LPAD(SEQ_NICE_SMS_SNDNG_REQUST_ID, 10, '0')
|
||||||
|
nc.setOrgSndDt(DateUtil.getTodayAndNowTime("yyyyMMdd")); // 기관전문전송시간
|
||||||
|
////////////////////////////////////////////////////////////
|
||||||
|
// 공통부 END
|
||||||
|
////////////////////////////////////////////////////////////
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setNiceCiApiPrivateReq(final NiceCiApiDTO.Request ciRequest, final String tmpltId, final String sndMsg){
|
||||||
|
////////////////////////////////////////////////////////////
|
||||||
|
// 개별요청부 START
|
||||||
|
////////////////////////////////////////////////////////////
|
||||||
|
//----------------------------------------------------------
|
||||||
|
// 개별요청부 : default start
|
||||||
|
//----------------------------------------------------------
|
||||||
|
// ciRequest.setQueryReason("17"); // 조회사유
|
||||||
|
// ciRequest.setSmsSndReqCode("3"); // SMS발송요청구분코드
|
||||||
|
// ciRequest.setSndPhoneNo("0442113377"); // 발신번호
|
||||||
|
// ciRequest.setContactSearchCode("3"); // 연락처 조회 구분
|
||||||
|
// ciRequest.setAlimtalkSndReqDiv("1"); // 알림톡발송요청구분코드
|
||||||
|
// ciRequest.setBtnReqCnt(1); // 버튼요청건수
|
||||||
|
// ciRequest.setPrivateEmptyField(""); // 공란 - 880자리
|
||||||
|
//---------------------------------------------------------
|
||||||
|
// 개별요청부 : default end
|
||||||
|
//---------------------------------------------------------
|
||||||
|
|
||||||
|
ciRequest.setQueryReqCnt(1); // 조회요청건수
|
||||||
|
ciRequest.setSndMessage(sndMsg); // 발송메세지
|
||||||
|
ciRequest.setAlimtalkTmpltCode(tmpltId); // 알림톡 템플릿 코드
|
||||||
|
////////////////////////////////////////////////////////////
|
||||||
|
// 개별요청부 END
|
||||||
|
////////////////////////////////////////////////////////////
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue