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