feat: KT-GIBIS 적용
parent
21efd3bed0
commit
657c5dabc0
@ -0,0 +1,28 @@
|
|||||||
|
package kr.xit.biz.ktgbs.mapper;
|
||||||
|
|
||||||
|
import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
|
||||||
|
|
||||||
|
import kr.xit.biz.ens.model.cmm.CmmEnsRlaybsnmDTO;
|
||||||
|
import kr.xit.biz.ens.model.kt.KtMmsSendDTO.KtMsgRsltReqData;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* description :
|
||||||
|
*
|
||||||
|
* packageName : kr.xit.biz.ktgbs.mapper
|
||||||
|
* fileName : IBizKtGbsMapper
|
||||||
|
* author : limju
|
||||||
|
* date : 2024-08-19
|
||||||
|
* ======================================================================
|
||||||
|
* 변경일 변경자 변경 내용
|
||||||
|
* ----------------------------------------------------------------------
|
||||||
|
* 2024-08-19 limju 최초 생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface IBizKtGbsMapper {
|
||||||
|
int updateRlaybsnmKtInfo(final CmmEnsRlaybsnmDTO dto);
|
||||||
|
int updateKtBcDtl(final KtMsgRsltReqData dto);
|
||||||
|
int saveKtCntcSndngResult(final KtMsgRsltReqData dto);
|
||||||
|
}
|
@ -0,0 +1,137 @@
|
|||||||
|
package kr.xit.biz.ktgbs.service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import kr.xit.biz.cmm.service.ICmmEnsCacheService;
|
||||||
|
import kr.xit.biz.common.ApiConstants;
|
||||||
|
import kr.xit.biz.ens.model.kt.KtCommonDTO;
|
||||||
|
import kr.xit.biz.ens.model.kt.KtCommonDTO.ErrorMsg;
|
||||||
|
import kr.xit.biz.ens.model.ktgbs.KtGbsApiDTO;
|
||||||
|
import kr.xit.biz.ktgbs.mapper.IBizKtGbsMapper;
|
||||||
|
import kr.xit.core.service.AbstractService;
|
||||||
|
import kr.xit.core.spring.annotation.TraceLogging;
|
||||||
|
import kr.xit.core.support.utils.Checks;
|
||||||
|
import kr.xit.core.support.utils.DateUtils;
|
||||||
|
import kr.xit.ens.cmm.CmmEnsUtils;
|
||||||
|
import kr.xit.ens.kt.web.KtBcInboundController;
|
||||||
|
import kr.xit.ens.ktgbs.service.IKtGbsService;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* description :
|
||||||
|
*
|
||||||
|
* packageName : kr.xit.biz.ktgbs.service
|
||||||
|
* fileName : BizKtGbsService
|
||||||
|
* author : limju
|
||||||
|
* date : 2024-08-19
|
||||||
|
* ======================================================================
|
||||||
|
* 변경일 변경자 변경 내용
|
||||||
|
* ----------------------------------------------------------------------
|
||||||
|
* 2024-08-19 limju 최초 생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@Service
|
||||||
|
public class BizKtGbsService extends AbstractService implements IBizKtGbsService {
|
||||||
|
private final IKtGbsService ktGbsService;
|
||||||
|
private final ICmmEnsCacheService cacheService;
|
||||||
|
private final IBizKtGbsMapper mapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* kt Access token 획득
|
||||||
|
* 1. kt Access token 요청
|
||||||
|
* 2. 요청결과 DB 반영
|
||||||
|
* 3. 정보중계자 정보 캐시 삭제
|
||||||
|
* @param paramDTO KtMnsRequest
|
||||||
|
* @return KtTokenResponse
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
/*
|
||||||
|
@Override
|
||||||
|
public KtTokenResponse requestToken(final KtMnsRequest paramDTO) {
|
||||||
|
KtTokenResponse resDTO = ktMmsService.requestToken(paramDTO);
|
||||||
|
|
||||||
|
if(StringUtils.isEmpty(resDTO.getAccessToken())){
|
||||||
|
throw BizRuntimeException.create("fail.api.kt.token.request");
|
||||||
|
}
|
||||||
|
mapper.updateRlaybsnmKtInfo(
|
||||||
|
CmmEnsRlaybsnmDTO.builder()
|
||||||
|
.signguCode(paramDTO.getSignguCode())
|
||||||
|
.ffnlgCode(paramDTO.getFfnlgCode())
|
||||||
|
.profile(ApiConstants.PROFILE)
|
||||||
|
.ktAccessToken(resDTO.getAccessToken())
|
||||||
|
.ktTokenExpiresIn(resDTO.getExpiresIn())
|
||||||
|
.ktScope(resDTO.getScope())
|
||||||
|
.ktTokenJti(resDTO.getJti())
|
||||||
|
.build()
|
||||||
|
);
|
||||||
|
cacheService.removeRlaybsnmInfoCache(
|
||||||
|
CmmEnsRequestDTO.builder()
|
||||||
|
.signguCode(paramDTO.getSignguCode())
|
||||||
|
.ffnlgCode(paramDTO.getFfnlgCode())
|
||||||
|
.profile(paramDTO.getProfile())
|
||||||
|
.build()
|
||||||
|
);
|
||||||
|
return resDTO;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* 사전/본 문자 발송/수신 결과 전송
|
||||||
|
* - KT 에서 호출 되는 서비스
|
||||||
|
* - http://{각대행사(IP:Port)}/api/ag/message/result
|
||||||
|
* {@link KtBcInboundController#messageResult messageResult}
|
||||||
|
*
|
||||||
|
* 본문자 수신 등록 요청시 보낸 묶음 단위로 처리
|
||||||
|
* -> 처리중 1건이라도 실패시, 전체 건 재 전송
|
||||||
|
* -> 업무단에서는 건별 처리하도록 구현
|
||||||
|
*
|
||||||
|
* @param reqDTO KtMsgRsltRequest
|
||||||
|
* @return KtCommonResponse
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
@TraceLogging
|
||||||
|
@Transactional
|
||||||
|
public KtCommonDTO.KtCommonResponse messageResult(final KtGbsApiDTO.MsgRsltRequest reqDTO) {
|
||||||
|
List<ErrorMsg> errors = CmmEnsUtils.getValidateErrors(reqDTO);
|
||||||
|
|
||||||
|
if(!errors.isEmpty()) return throwError(errors);
|
||||||
|
|
||||||
|
for(KtGbsApiDTO.MsgRsltReqsData dto : reqDTO.getReqs()){
|
||||||
|
|
||||||
|
// 결과코드가 '40' 이고 열람타임스탬프가 있는 경우 -> 결과코드 '열람확인:60'으로 reset
|
||||||
|
if("40".equals(dto.getMmsRsltDvcd()) && Checks.isNotEmpty(dto.getMmsRdgTmst())){
|
||||||
|
dto.setMmsRsltDvcd("60");
|
||||||
|
}
|
||||||
|
dto.setMmsRsltDvcdMsg(messageUtil.getMessage("info.api.kt.msg.rslt."+dto.getMmsRsltDvcd()));
|
||||||
|
// FIXME: KT GIBIS 적용 안됨
|
||||||
|
//if(mapper.updateKtBcDtl(dto) != 1) {
|
||||||
|
// errors.add(new ErrorMsg(
|
||||||
|
// String.format("존재 하지 않는 발송 대상(src_key[%s], mms_rslt_sqno[%s]) 입니다",
|
||||||
|
// dto.getSrcKey(), dto.getMmsSndgRsltSqno())));
|
||||||
|
//}
|
||||||
|
// FIXME: KT GIBIS 적용 안됨
|
||||||
|
//mapper.saveKtCntcSndngResult(dto);
|
||||||
|
}
|
||||||
|
|
||||||
|
return KtCommonDTO.KtCommonResponse.builder()
|
||||||
|
.resultCd("00")
|
||||||
|
.resultDt(DateUtils.getTodayAndNowTime(ApiConstants.FMT_DT_EMPTY_DLT))
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static KtCommonDTO.KtCommonResponse throwError(List<ErrorMsg> errors) {
|
||||||
|
return KtCommonDTO.KtCommonResponse.builder()
|
||||||
|
.resultCd("01")
|
||||||
|
.resultDt(DateUtils.getTodayAndNowTime(ApiConstants.FMT_DT_EMPTY_DLT))
|
||||||
|
.errors(errors)
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,26 @@
|
|||||||
|
package kr.xit.biz.ktgbs.service;
|
||||||
|
|
||||||
|
|
||||||
|
import kr.xit.biz.ens.model.kt.KtCommonDTO;
|
||||||
|
import kr.xit.biz.ens.model.ktgbs.KtGbsApiDTO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* description :
|
||||||
|
*
|
||||||
|
* packageName : kr.xit.biz.ktgbs.service
|
||||||
|
* fileName : IBizKtGbsService
|
||||||
|
* author : limju
|
||||||
|
* date : 2024-08-19
|
||||||
|
* ======================================================================
|
||||||
|
* 변경일 변경자 변경 내용
|
||||||
|
* ----------------------------------------------------------------------
|
||||||
|
* 2024-08-19 limju 최초 생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
public interface IBizKtGbsService {
|
||||||
|
|
||||||
|
//KtTokenResponse requestToken(final KtMnsRequest paramDTO);
|
||||||
|
KtCommonDTO.KtCommonResponse messageResult(final KtGbsApiDTO.MsgRsltRequest reqDTO);
|
||||||
|
}
|
@ -0,0 +1,31 @@
|
|||||||
|
package kr.xit.ens.ktgbs.service;
|
||||||
|
|
||||||
|
import kr.xit.biz.ens.model.kt.KtCommonDTO;
|
||||||
|
import kr.xit.biz.ens.model.ktgbs.KtGbsApiDTO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* description :
|
||||||
|
* packageName : kr.xit.ens.ktgbs.service
|
||||||
|
* fileName : IKtGbsService
|
||||||
|
* author : limju
|
||||||
|
* date : 2024-08-19
|
||||||
|
* ======================================================================
|
||||||
|
* 변경일 변경자 변경 내용
|
||||||
|
* ----------------------------------------------------------------------
|
||||||
|
* 2024-08-19 limju 최초 생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
public interface IKtGbsService {
|
||||||
|
// FIXME : KT GIBIS 적용 안됨
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// mens 사용 API
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// KtTokenDTO.KtTokenResponse requestToken(final KtCommonDTO.KtMnsRequest paramDTO);
|
||||||
|
KtCommonDTO.KtCommonResponse mainSend(final KtGbsApiDTO.MsgSendRequest reqDTO);
|
||||||
|
// KtTokenDTO.KtTokenConfirmResponse cfmToken(final KtTokenDTO.KtTokenConfirmRequest reqDTO);
|
||||||
|
// KtCommonDTO.KtCommonResponse readToken(final KtTokenDTO.KtTokenReadRequest reqDTO);
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,70 @@
|
|||||||
|
package kr.xit.ens.ktgbs.service;
|
||||||
|
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
import org.springframework.http.HttpMethod;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import kr.xit.biz.common.ApiConstants;
|
||||||
|
import kr.xit.biz.ens.model.cmm.CmmEnsRlaybsnmDTO;
|
||||||
|
import kr.xit.biz.ens.model.kt.KtCommonDTO;
|
||||||
|
import kr.xit.biz.ens.model.ktgbs.KtGbsApiDTO;
|
||||||
|
import kr.xit.core.service.AbstractService;
|
||||||
|
import kr.xit.core.spring.annotation.TraceLogging;
|
||||||
|
import kr.xit.core.spring.util.ApiWebClientUtil;
|
||||||
|
import kr.xit.core.support.utils.JsonUtils;
|
||||||
|
import kr.xit.ens.cmm.CmmEnsUtils;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* description :
|
||||||
|
* packageName : kr.xit.ens.ktgbs.service
|
||||||
|
* fileName : KtGbsService
|
||||||
|
* author : limju
|
||||||
|
* date : 2024-08-19
|
||||||
|
* ======================================================================
|
||||||
|
* 변경일 변경자 변경 내용
|
||||||
|
* ----------------------------------------------------------------------
|
||||||
|
* 2024-08-19 limju 최초 생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@Service
|
||||||
|
public class KtGbsService extends AbstractService implements IKtGbsService {
|
||||||
|
@Value("${app.contract.ktgbs.host}")
|
||||||
|
private String HOST;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 본문자수신등록 : BC-AG-SN-002
|
||||||
|
*/
|
||||||
|
@Value("${app.contract.ktgbs.api.main-send}")
|
||||||
|
private String API_MAIN_SEND;
|
||||||
|
|
||||||
|
private final ApiWebClientUtil webClient;
|
||||||
|
|
||||||
|
// FIXME : KT GIBIS 적용 안됨
|
||||||
|
@Override
|
||||||
|
@TraceLogging
|
||||||
|
public KtCommonDTO.KtCommonResponse mainSend(final KtGbsApiDTO.MsgSendRequest reqDTO) {
|
||||||
|
final CmmEnsRlaybsnmDTO ktMnsInfo = getRlaybsnmInfo(reqDTO);
|
||||||
|
reqDTO.setServiceCd(ktMnsInfo.getKtServiceCode());
|
||||||
|
reqDTO.setServiceCd(ktMnsInfo.getKtSvcCerfKey());
|
||||||
|
reqDTO.setSignguCode(null);
|
||||||
|
reqDTO.setFfnlgCode(null);
|
||||||
|
reqDTO.setProfile(null);
|
||||||
|
CmmEnsUtils.validate(reqDTO);
|
||||||
|
|
||||||
|
return webClient.exchangeKtGbs(
|
||||||
|
HOST + API_MAIN_SEND,
|
||||||
|
HttpMethod.POST,
|
||||||
|
JsonUtils.toJson(reqDTO),
|
||||||
|
KtCommonDTO.KtCommonResponse.class,
|
||||||
|
ktMnsInfo
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
private CmmEnsRlaybsnmDTO getRlaybsnmInfo(final KtCommonDTO.KtMnsRequest request){
|
||||||
|
return CmmEnsUtils.getRlaybsnmInfo(request.getSignguCode(), request.getFfnlgCode(), ApiConstants.SndngSeCode.KT_BC);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,46 @@
|
|||||||
|
package kr.xit.ens.ktgbs.web;
|
||||||
|
|
||||||
|
import org.springframework.http.MediaType;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import kr.xit.biz.ens.model.kt.KtCommonDTO;
|
||||||
|
import kr.xit.biz.ens.model.ktgbs.KtGbsApiDTO;
|
||||||
|
import kr.xit.core.model.ApiResponseDTO;
|
||||||
|
import kr.xit.core.model.IApiResponse;
|
||||||
|
import kr.xit.ens.ktgbs.service.IKtGbsService;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* description :
|
||||||
|
* packageName : kr.xit.ens.ktgbs.web
|
||||||
|
* fileName : KtGbsController
|
||||||
|
* author : limju
|
||||||
|
* date : 2024-08-19
|
||||||
|
* ======================================================================
|
||||||
|
* 변경일 변경자 변경 내용
|
||||||
|
* ----------------------------------------------------------------------
|
||||||
|
* 2024-08-19 limju 최초 생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
@Tag(name = "KtGbsController", description = "KT GIBIS API controller")
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RestController
|
||||||
|
@RequestMapping(value = "/api/ens/ktgbs/v1")
|
||||||
|
public class KtGbsController {
|
||||||
|
private final IKtGbsService service;
|
||||||
|
|
||||||
|
// FIXME : KT GIBIS 적용 안됨
|
||||||
|
@Operation(summary = "본문자 수신 등록 요청", description = "본문자 수신 등록 요청")
|
||||||
|
@PostMapping(value = "/mainSend", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
public IApiResponse mainSend(@RequestBody final KtGbsApiDTO.MsgSendRequest reqDTO) {
|
||||||
|
KtCommonDTO.KtCommonResponse dto = service.mainSend(reqDTO);
|
||||||
|
return ApiResponseDTO.success(dto);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,79 @@
|
|||||||
|
package kr.xit.ens.ktgbs.web;
|
||||||
|
|
||||||
|
import org.springframework.http.MediaType;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Content;
|
||||||
|
import io.swagger.v3.oas.annotations.media.ExampleObject;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import kr.xit.biz.ens.model.kt.KtCommonDTO;
|
||||||
|
import kr.xit.biz.ens.model.ktgbs.KtGbsApiDTO;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* description : KT GBIS 에서 사용 되는 API
|
||||||
|
* packageName : kr.xit.ens.ktgbs.web
|
||||||
|
* fileName : KtGbsMmsInboundController
|
||||||
|
* author : limju
|
||||||
|
* date : 2024-08-19
|
||||||
|
* ======================================================================
|
||||||
|
* 변경일 변경자 변경 내용
|
||||||
|
* ----------------------------------------------------------------------
|
||||||
|
* 2024-08-19 limju 최초 생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
@Tag(name = "KtGbsInboundController", description = "KT GIBIS Inbound API")
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RestController
|
||||||
|
public class KtGbsInboundController {
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* 메세지 발송/수신 결과 전송 -> KT GIBIS에서 호출
|
||||||
|
* - KT GBIS 에서 호출 되는 서비스
|
||||||
|
* - url 고정 : http://{각대행사(IP:Port)}/api/msg/result
|
||||||
|
* @param reqDTO KtMsgRsltRequest
|
||||||
|
* @return KtCommonResponse
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
// FIXME : KT GIBIS 적용 안됨
|
||||||
|
@io.swagger.v3.oas.annotations.parameters.RequestBody(required = true, content = {
|
||||||
|
@Content(
|
||||||
|
mediaType = "application/json",
|
||||||
|
examples = {
|
||||||
|
@ExampleObject(
|
||||||
|
value = """
|
||||||
|
{
|
||||||
|
"service_cd" : "CD001",
|
||||||
|
"reqs" : [
|
||||||
|
{
|
||||||
|
"src_key" : "OvSsuljd1K-67c1fc38-1a59-4fbe-930e-802db6609140",
|
||||||
|
"mms_sndg_rslt_sqno" : 2,
|
||||||
|
"prcs_dt" : "20240819",
|
||||||
|
"mms_bsns_dvcd" : "01001",
|
||||||
|
"mbl_bzowr_dvcd" : "02",
|
||||||
|
"rl_mms_sndg_telno" : "4230",
|
||||||
|
"mms_rslt_dvcd" : "40",
|
||||||
|
"mms_sndg_tmst" : "20240819090237",
|
||||||
|
"mms_rcv_tmst" : "20240819090239",
|
||||||
|
"mms_rdg_tmst" : "20240819114405",
|
||||||
|
"prev_approve_yn" : "Y",
|
||||||
|
"msg_type" : "2"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
"""
|
||||||
|
),
|
||||||
|
})
|
||||||
|
})
|
||||||
|
@Operation(summary = "메세지 발송/수신 결과 전송 -> KT GIBIS에서 호출", description = "메세지 발송/수신 결과 전송 -> KT GIBIS에서 호출")
|
||||||
|
//@PostMapping(value = "/goji/kt/gibis/stat/bulk", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
@PostMapping(value = "/api/msg/result", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
public KtCommonDTO.KtCommonResponse messageResult(@RequestBody final KtGbsApiDTO.MsgRsltRequest reqDTO) {
|
||||||
|
return null; //bizService.messageResult(reqDTO);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,64 @@
|
|||||||
|
package kr.xit.biz.ens.model;
|
||||||
|
|
||||||
|
import kr.xit.biz.common.ApiConstants;
|
||||||
|
import kr.xit.biz.ens.model.ktgbs.KtGbsApiDTO;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.experimental.SuperBuilder;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* description : tb_ens_ Entity DTO
|
||||||
|
*
|
||||||
|
* packageName : kr.xit.biz.ens.model
|
||||||
|
* fileName : EnsKtGbsDTO
|
||||||
|
* author : limju
|
||||||
|
* date : 2024-08-19
|
||||||
|
* ======================================================================
|
||||||
|
* 변경일 변경자 변경 내용
|
||||||
|
* ----------------------------------------------------------------------
|
||||||
|
* 2024-08-29 limju 최초 생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@SuperBuilder
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
public class EnsKtGbsDTO extends KtGbsApiDTO.MsgSendRequest {
|
||||||
|
|
||||||
|
@Builder.Default
|
||||||
|
private String sndngTyCode = "ENS";
|
||||||
|
/**
|
||||||
|
* 템플릿 ID
|
||||||
|
*/
|
||||||
|
private String tmplatId;
|
||||||
|
/**
|
||||||
|
* 사전알림 데이타 생성 대상 여부
|
||||||
|
*/
|
||||||
|
private String tgtYn;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 통합발송 마스터ID
|
||||||
|
*/
|
||||||
|
private String unitySndngMastrId;
|
||||||
|
/**
|
||||||
|
* 통합발송 상세ID
|
||||||
|
*/
|
||||||
|
private String unitySndngDetailId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 발송 마스터 ID
|
||||||
|
*/
|
||||||
|
private String sndngMastrId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 발송처리상태
|
||||||
|
*/
|
||||||
|
@Builder.Default
|
||||||
|
private String sndngProcessSttus = ApiConstants.SndngProcessStatus.ACCEPT.getCode();
|
||||||
|
}
|
@ -0,0 +1,426 @@
|
|||||||
|
package kr.xit.biz.ens.model.ktgbs;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.validation.Valid;
|
||||||
|
import javax.validation.constraints.Digits;
|
||||||
|
import javax.validation.constraints.Size;
|
||||||
|
|
||||||
|
import org.hibernate.validator.constraints.NotEmpty;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonAlias;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||||
|
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
|
||||||
|
import com.fasterxml.jackson.databind.annotation.JsonNaming;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import kr.xit.biz.ens.model.cmm.CmmEnsRequestDTO;
|
||||||
|
import kr.xit.biz.ens.model.kt.KtCommonDTO;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.experimental.SuperBuilder;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* description :
|
||||||
|
* packageName : kr.xit.biz.ens.model.ktgbs
|
||||||
|
* fileName : KtGbsApiDTO
|
||||||
|
* author : limju
|
||||||
|
* date : 2024-08-19
|
||||||
|
* ======================================================================
|
||||||
|
* 변경일 변경자 변경 내용
|
||||||
|
* ----------------------------------------------------------------------
|
||||||
|
* 2024-08-19 limju 최초 생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
public class KtGbsApiDTO {
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------
|
||||||
|
// 메세지 발송
|
||||||
|
//-------------------------------------------------------------------
|
||||||
|
@Schema(name = "MsgSendRequest DTO", description = "메세지 발송 요청 request DTO")
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@SuperBuilder
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
|
||||||
|
public static class MsgSendRequest extends KtCommonDTO.KtMnsRequest {
|
||||||
|
/**
|
||||||
|
* 기관코드 - 필수(5자리)
|
||||||
|
*/
|
||||||
|
@Schema(requiredMode = Schema.RequiredMode.REQUIRED, title = "기관코드", example = "51110")
|
||||||
|
@Size(min = 5, max = 5, message = "기관코드는 필수 입니다(5자리)")
|
||||||
|
private String serviceCd;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 문서코드 - 필수(5자리)
|
||||||
|
*/
|
||||||
|
@Schema(requiredMode = Schema.RequiredMode.REQUIRED, title = "문서코드", example = "DP112")
|
||||||
|
@Size(min = 5, max = 5, message = "기관코드는 필수 입니다(5자리)")
|
||||||
|
private String msgCd;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 생성일시 - 필수(14자리) : yyyymmddHHmiss
|
||||||
|
*/
|
||||||
|
@Schema(requiredMode = Schema.RequiredMode.REQUIRED, title = "생성일시", example = "20240819123456")
|
||||||
|
@Size(min = 5, max = 5, message = "생성일시는 필수 입니다(14자리)")
|
||||||
|
private String makeDt;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 회차전체데이터건수 - 필수(max:8자리)
|
||||||
|
*/
|
||||||
|
@Schema(requiredMode = Schema.RequiredMode.REQUIRED, title = "회차전체데이터건수", example = " ")
|
||||||
|
@Digits(integer = 8, fraction = 0, message = "회차전체데이터건수(max:8자리)")
|
||||||
|
private Integer dataCnt;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 발송마감시간 - 필수(yyyyMMddHHmiss : 14자리)
|
||||||
|
*/
|
||||||
|
@Schema(requiredMode = Schema.RequiredMode.REQUIRED, title = "발송마감시간(yyyyMMddHHmiss)", example = " ")
|
||||||
|
@Size(min = 14, max = 14, message = "발송마감시간(yyyyMMddHHmiss)")
|
||||||
|
private String sendExTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 열람마감시간 - 필수(yyyyMMddHHmiss : 14자리)
|
||||||
|
*/
|
||||||
|
@Schema(requiredMode = Schema.RequiredMode.REQUIRED, title = "열람마감시간(yyyyMMddHHmiss)", example = " ")
|
||||||
|
@Size(min = 14, max = 14, message = "열람마감시간(yyyyMMddHHmiss)")
|
||||||
|
private String exTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 문서종류 - 필수(3자리 : sms|lms|mms)
|
||||||
|
*/
|
||||||
|
@Schema(requiredMode = Schema.RequiredMode.REQUIRED, title = "문서종류(sms|lms|mms)", example = " ", allowableValues = {
|
||||||
|
"sms", "lms", "mms"})
|
||||||
|
@Size(min = 3, max = 3, message = "문서종류(sms|lms|mms)")
|
||||||
|
@JsonAlias("m_type")
|
||||||
|
//@JsonProperty("m_type")
|
||||||
|
private String mType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 발송메세지타입 - 필수(1자리 : 1-RCS, 2-xMS)
|
||||||
|
*/
|
||||||
|
@Schema(requiredMode = Schema.RequiredMode.REQUIRED, title = "발송메세지타입(1-RCS, 2-xMS)", example = " ", allowableValues = {
|
||||||
|
"1", "2"})
|
||||||
|
@Size(min = 1, max = 1, message = "발송메세지타입(1-RCS, 2-xMS)")
|
||||||
|
private String msgType;
|
||||||
|
|
||||||
|
@Schema(requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@Valid
|
||||||
|
private List<MsgSendReqsData> reqs;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 발신번호(서비스기관발송전화번호)
|
||||||
|
*/
|
||||||
|
@Schema(title = "발신번호", example = " ")
|
||||||
|
@Size(max = 20, message = "발신번호(max:20)")
|
||||||
|
private String sndTelNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 메세지발송구분
|
||||||
|
*/
|
||||||
|
@Schema(title = "메세지발송구분", example = " ")
|
||||||
|
@Digits(integer = 8, fraction = 0, message = "메세지발송구분(max:1자리)")
|
||||||
|
private Integer optType;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Schema(name = "MsgSendReqsData", description = "메세지 발송 요청 reqs DTO")
|
||||||
|
@Getter
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@SuperBuilder
|
||||||
|
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||||
|
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
|
||||||
|
public static class MsgSendReqsData {
|
||||||
|
//-------------------------------------------------------------------
|
||||||
|
// 필수
|
||||||
|
//-------------------------------------------------------------------
|
||||||
|
/**
|
||||||
|
* 관리키 : 고객메시지 건별 Unique key
|
||||||
|
*/
|
||||||
|
@Schema(requiredMode = Schema.RequiredMode.REQUIRED, title = "관리키", example = "S20211229102000011")
|
||||||
|
@NotEmpty(message = "관리키는 필수 입니다(max:50)")
|
||||||
|
@Size(max = 50)
|
||||||
|
private String srcKey;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 리스트순번 : max 8자리
|
||||||
|
*/
|
||||||
|
@Schema(requiredMode = Schema.RequiredMode.REQUIRED, title = "리스트순번", example = "1")
|
||||||
|
@NotEmpty(message = "리스트 순번은 필수 입니다(max:8)")
|
||||||
|
@Size(max = 8)
|
||||||
|
private String srcSeq;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 개인식별코드 : 128 자리
|
||||||
|
*/
|
||||||
|
@Schema(requiredMode = Schema.RequiredMode.REQUIRED, title = "개인식별코드", example = "vMtqVxJX56lBgbf9heK3QTc+jVndTfK77i/UJKAzPmBG4n9CazCdd/8YytlFZnN4qofIqgxHpSoiG0yYzgEpJg==")
|
||||||
|
@Size(min = 128, max = 128, message = "개인식별코드는 필수 입니다(128자리)")
|
||||||
|
private String sci;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* MMS 상세내용 : max 4000
|
||||||
|
* URL 없음
|
||||||
|
* {#INFO_CFRM_STR}, {#RCVE_RF_STR} 문자열이 없는 경우 요청 거부 처리 함.
|
||||||
|
* 단, 유통정보미생성여부가 'Y'인 경우 {#RCVE_RF_STR} 문자열만 체크.
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
@Schema(requiredMode = Schema.RequiredMode.REQUIRED, title = "MMS 상세내용", example = "{#INFO_CFRM_STR}, {#RCVE_RF_STR}")
|
||||||
|
@Size(min = 1, max = 4000, message = "MMS 상세내용 필수입니다(max:4000)")
|
||||||
|
private String mmsDtlCnts;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* MMS 제목 : max 40
|
||||||
|
* utf-8 한글20자
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
@Schema(requiredMode = Schema.RequiredMode.REQUIRED, title = "MMS 제목(max:40)", example = "공유재산사용료 정기분")
|
||||||
|
@Size(min = 1, max = 40, message = "MMS 제목은 필수 입니다(max:40)")
|
||||||
|
private String mmsTitle;
|
||||||
|
//-------------------------------------------------------------------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* RCS 메세지 상세내용 : max 4000 - RCS|Binary 전송시 필수
|
||||||
|
* RCS 메시지 fallback 시 mms_dtl_cnts를 사용하며
|
||||||
|
* RCS title은 mms_title 항목을 함께 사용한다.
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
@Schema(title = "RCS 메세지 상세내용(max:4000)", example = " ")
|
||||||
|
@Size(max = 4000, message = "RCS 메세지 상세내용은 4000자를 넘을 수 없습니다.")
|
||||||
|
private String rcsDtlCnts;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* 연결 URL
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
@Schema(title = "연결 URL", example = "http://localhost:8081/api/biz/kt/v1/cfmToken")
|
||||||
|
private String url;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 문서해시 : max 64
|
||||||
|
*/
|
||||||
|
@Schema(requiredMode = Schema.RequiredMode.REQUIRED, title = "문서해시(max:64)", example = "gdlIa53FZGQz5aKa3wLk33nW57N3mDpcwHytWlWMhzxHKulk7EZs143442394326642342364238648423864237")
|
||||||
|
@Size(max = 64, message = "문서해시 64자를 넘을 수 없습니다.")
|
||||||
|
private String docHash;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* 개인휴대전화번호 : 11 자리
|
||||||
|
* 특정 MDN으로 발송할 경우
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
@Schema(requiredMode = Schema.RequiredMode.AUTO, title = "개인휴대전화번호(max:11)", example = "01093414345")
|
||||||
|
@Size(max = 11, message = "개인 휴대 전화번호는 11자리 입니다")
|
||||||
|
private String mdn;
|
||||||
|
}
|
||||||
|
//-------------------------------------------------------------------
|
||||||
|
// 메세지 발송
|
||||||
|
//-------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------
|
||||||
|
// 메세지 발송 및 수신결과 전송
|
||||||
|
//-------------------------------------------------------------------
|
||||||
|
@Schema(name = "MsgRsltRequest", description = "메세지 발송 및 수신결과 전송 요청 DTO")
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@SuperBuilder
|
||||||
|
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
|
||||||
|
public static class MsgRsltRequest {
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* 기관코드 : 필수 - 5
|
||||||
|
* BizCenter에서 발행한 기관의 서비스 코드
|
||||||
|
* </pre>>
|
||||||
|
*/
|
||||||
|
@Schema(requiredMode = Schema.RequiredMode.REQUIRED, title = "서비스코드", example = " ")
|
||||||
|
@Size(min = 5, max = 5, message = "서비스코드는 필수 입니다(5자리)")
|
||||||
|
private String serviceCd;
|
||||||
|
|
||||||
|
@Schema(requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@Valid
|
||||||
|
private List<MsgRsltReqsData> reqs;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Schema(name = "MsgRsltReqsData", description = "메세지 발송 및 수신결과 전송 reqs DTO")
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@SuperBuilder
|
||||||
|
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
|
||||||
|
public static class MsgRsltReqsData extends CmmEnsRequestDTO {
|
||||||
|
//-------------------------------------------------------------------
|
||||||
|
// 필수
|
||||||
|
//-------------------------------------------------------------------
|
||||||
|
/**
|
||||||
|
* 관리키 : 고객메시지 건별 Unique key
|
||||||
|
*/
|
||||||
|
@Schema(requiredMode = Schema.RequiredMode.REQUIRED, title = "관리키", example = "S20211229102000001")
|
||||||
|
@Size(min = 1, max = 50, message = "관리키는 필수 입니다(max:50)")
|
||||||
|
private String srcKey;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* MMS 발송결과 상태 순번 : 필수 - max 8
|
||||||
|
* 1:수신(결과), 열람(결과):2
|
||||||
|
* </pre>>
|
||||||
|
*/
|
||||||
|
@Schema(requiredMode = Schema.RequiredMode.REQUIRED, title = "MMS 발송결과 상태 순번", example = " ", allowableValues = {
|
||||||
|
"1", "2"})
|
||||||
|
@Digits(integer = 8, fraction = 0, message = "MMS 발송결과 상태 순번(1|2)")
|
||||||
|
private Integer mmsSndgRsltSqno;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* 처리일자 : 필수 - 8
|
||||||
|
* 이통사 처리일자
|
||||||
|
* </pre>>
|
||||||
|
*/
|
||||||
|
@Schema(requiredMode = Schema.RequiredMode.REQUIRED, title = "처리일자", example = "20231210")
|
||||||
|
@Size(min = 8, max = 8, message = "처리일자는 필수 입니다(YYYYMMDD)")
|
||||||
|
private String prcsDt;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 문서코드 : 필수 - 5자리
|
||||||
|
*/
|
||||||
|
@Schema(requiredMode = Schema.RequiredMode.REQUIRED, title = "문서코드", example = "00001")
|
||||||
|
@Size(min = 5, max = 5, message = "문서코드는 필수 입니다(5자리)")
|
||||||
|
private String mmsBsnsDvcd;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* 모바일사업자구분 : 필수 - 2자리
|
||||||
|
* 발송 통신사 구분(01:KT, 02:SKT, 03:LGT)
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
@Schema(requiredMode = Schema.RequiredMode.REQUIRED, title = "모바일사업자구분", example = "01", allowableValues = {"01","02","03"})
|
||||||
|
@Size(min = 2, max = 2, message = "모바일 사업자 구분은 필수 입니다(01|02|03)")
|
||||||
|
private String mblBzowrDvcd;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* TODO::결과코드에 따른 메세지 처리 필요
|
||||||
|
* 발송결과코드 : 필수 - 2자리
|
||||||
|
* 40 MMS/RCS 발송 수신성공
|
||||||
|
* 41 MMS발송 메시지 내용 스팸
|
||||||
|
* 42 MMS발송 착신자 스팸
|
||||||
|
* 43 MMS발송 레포트 수신 시간 만료(메시지전송후 24시간 레포트 못받는 경우 )
|
||||||
|
* 47 MMS발송 비가입자, 결번, 서비스정지
|
||||||
|
* 48 MMS발송 단말기 전원 꺼짐
|
||||||
|
* 49 MMS발송 기타
|
||||||
|
* 4A MMS발송 UNKNOWN/단말기형식오류(스팸설정)
|
||||||
|
* 4D MMS발송 전송 실패(무선망), 단말기 일시정지
|
||||||
|
* 4J MMS발송 비가용폰 오류
|
||||||
|
* 4N MMS발송 수신거부
|
||||||
|
* 4O MMS발송 LMS발송오류(시간초과)
|
||||||
|
* 4P MMS발송 LMS발송오류(기타)
|
||||||
|
* 4T MMS발송 가입자미존재(미동의포함)
|
||||||
|
* 4Q MMS발송 수신대기
|
||||||
|
* 4R MMS발송 다회선 제외
|
||||||
|
* 4V MMS발송 수신등록 휴대폰번호 미존재
|
||||||
|
* 4W MMS발송 기동의 사전문자 제외
|
||||||
|
* 50 수신확인 수신성공
|
||||||
|
* 60 열람확인 열람확인 (MMS발송결과순번=2, 열람타임스탬프가 있는 경우)
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
@Schema(requiredMode = Schema.RequiredMode.REQUIRED, title = "발송결과코드", example = "40")
|
||||||
|
@Size(min = 2, max = 2, message = "발송결과코드는 필수 입니다")
|
||||||
|
private String mmsRsltDvcd;
|
||||||
|
//private String mmsSndgRsltDvcd;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* 발송타임스탬프 : 필수 - 14
|
||||||
|
* YYYYMMDDHHMISS
|
||||||
|
* </pre>>
|
||||||
|
*/
|
||||||
|
@Schema(requiredMode = Schema.RequiredMode.REQUIRED, title = "발송타임스탬프", example = "20241030121000")
|
||||||
|
@Size(min = 14, max = 14, message = "발송타임스탬프는 필수 입니다(YYYYMMDDHHMISS)")
|
||||||
|
private String mmsSndgTmst;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* 문발송 메시지 타입: 필수 - 1
|
||||||
|
* RCS/xMS (RCS :1, xMS: 2)
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
@Schema(requiredMode = Schema.RequiredMode.REQUIRED, title = "발송 메시지 타입", example = "2", allowableValues = {"1",
|
||||||
|
"2"})
|
||||||
|
@Size(min = 1, max = 1, message = "발송 메시지 타입은 필수 입니다")
|
||||||
|
private String msgType;
|
||||||
|
//-------------------------------------------------------------------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* 실제발송번호(일부) : max 20
|
||||||
|
* 고객휴대폰번호 일부 (****0323)
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
@Schema(title = "실제발송번호(일부)", example = " ")
|
||||||
|
@Size(max = 20, message = "실제발송번호(일부)는 20자를 넘을 수 없습니다.")
|
||||||
|
private String rlMmsSndgTelno;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* 수신타임스탬프 : 14
|
||||||
|
* 수신시(mms_sndg_rslt_sqno 코드값이 1인 경우) 필수
|
||||||
|
* </pre>>
|
||||||
|
*/
|
||||||
|
@Schema(title = "수신타임스탬프", example = " ")
|
||||||
|
@Size(max = 14, message = "수신타임스탬프는 14자리 입니다")
|
||||||
|
private String mmsRcvTmst;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* 열람타임스탬프 : 14
|
||||||
|
* 열람시(mms_sndg_rslt_sqno 코드값이 2인 경우) 필수
|
||||||
|
* </pre>>
|
||||||
|
*/
|
||||||
|
@Schema(title = "열람타임스탬프", example = " ")
|
||||||
|
@Size(max = 14, message = "열람타임스탬프는 14자리 입니다")
|
||||||
|
private String mmsRdgTmst;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* 기동의발송여부: 1
|
||||||
|
* Y: 기동의(발송 시점 전 수신동의 및 전자주소가 생성되어있는 고객)
|
||||||
|
* N: 미동의(발송 시점까지 수신동의 및 전자주소가 생성되어있지 않은 고객)
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
@Schema(title = "기동의발송여부", example = "2", allowableValues = {"Y", "N"})
|
||||||
|
@Size(max = 1, message = "기동의발송여부는 1자리 입니다(Y|N)")
|
||||||
|
private String prevApproveYn;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* API 정의서에 없는 필드 : 업무 편의를 위해 추가
|
||||||
|
*/
|
||||||
|
@Schema(requiredMode = Schema.RequiredMode.AUTO, title = "발송결과코드메세지", example = "MMS/RCS 발송 수신성공")
|
||||||
|
@Size(max = 100, message = "발송결과코드메세지는 100자를 넘을 수 없습니다")
|
||||||
|
private String mmsRsltDvcdMsg;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* MENS 업무처리를 위한 추가 항목
|
||||||
|
*/
|
||||||
|
@Schema(title = "발송구분코드", example = " ")
|
||||||
|
private String sndngSeCode;
|
||||||
|
}
|
||||||
|
//-------------------------------------------------------------------
|
||||||
|
// 메세지 발송/수신결과 전송
|
||||||
|
//-------------------------------------------------------------------
|
||||||
|
}
|
@ -0,0 +1,18 @@
|
|||||||
|
package kr.xit.biz.ens.model.ktgbs;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* description :
|
||||||
|
* packageName : kr.xit.biz.ens.model.ktgbs
|
||||||
|
* fileName : KtGbsDTO
|
||||||
|
* author : limju
|
||||||
|
* date : 2024-08-19
|
||||||
|
* ======================================================================
|
||||||
|
* 변경일 변경자 변경 내용
|
||||||
|
* ----------------------------------------------------------------------
|
||||||
|
* 2024-08-19 limju 최초 생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
public class KtGbsDTO {
|
||||||
|
}
|
Loading…
Reference in New Issue