fix: KT API DTO fix

dev
gitea-관리자 1 year ago
parent d736cacca3
commit dd1c0e2563

@ -11,6 +11,7 @@ import kr.xit.biz.ens.model.kt.KtMmsSendDTO.KtMainSendReqData;
import kr.xit.biz.ens.model.kt.KtMmsSendDTO.KtMainSendRequest; import kr.xit.biz.ens.model.kt.KtMmsSendDTO.KtMainSendRequest;
import kr.xit.biz.ens.model.kt.KtMmsSendDTO.KtMsgRsltReqData; import kr.xit.biz.ens.model.kt.KtMmsSendDTO.KtMsgRsltReqData;
import kr.xit.biz.ens.model.kt.KtMmsSendDTO.KtMsgRsltRequest; import kr.xit.biz.ens.model.kt.KtMmsSendDTO.KtMsgRsltRequest;
import kr.xit.biz.ens.model.kt.KtTokenDTO;
import kr.xit.biz.ens.model.kt.KtTokenDTO.KtTokenResponse; import kr.xit.biz.ens.model.kt.KtTokenDTO.KtTokenResponse;
import kr.xit.biz.kt.mapper.IBizKtMmsMapper; import kr.xit.biz.kt.mapper.IBizKtMmsMapper;
import kr.xit.core.exception.BizRuntimeException; import kr.xit.core.exception.BizRuntimeException;
@ -20,6 +21,7 @@ import lombok.RequiredArgsConstructor;
import org.apache.commons.collections4.ListUtils; import org.apache.commons.collections4.ListUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl; import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
@ -43,6 +45,9 @@ public class BizKtMmsService extends EgovAbstractServiceImpl implements IBizKtMm
private static final String profile = System.getProperty("spring.profiles.active"); private static final String profile = System.getProperty("spring.profiles.active");
private static final int MAX_KT_SEND_CNT = 100; private static final int MAX_KT_SEND_CNT = 100;
@Value("${contract.kt.api.callback-url}")
private String CALLBACK_URL;
private final IKtMmsService ktMmsService; private final IKtMmsService ktMmsService;
private final ICmmEnsCacheService cacheService; private final ICmmEnsCacheService cacheService;
private final IBizKtMmsMapper mapper; private final IBizKtMmsMapper mapper;
@ -95,7 +100,7 @@ public class BizKtMmsService extends EgovAbstractServiceImpl implements IBizKtMm
.mmsDtlCnts("db") .mmsDtlCnts("db")
.docHash("db") .docHash("db")
.mmsTitle("") .mmsTitle("")
.url("/api/biz/kt/v1/receiveMain?kkk=llll") //distInfoCrtYn - N이면 필수 .url(CALLBACK_URL) //distInfoCrtYn - N이면 필수
.mmsBinary("") .mmsBinary("")
.fileFmat("") .fileFmat("")
.mdn("") .mdn("")
@ -132,6 +137,16 @@ public class BizKtMmsService extends EgovAbstractServiceImpl implements IBizKtMm
return ktTokenResponse; return ktTokenResponse;
} }
@Override
public KtCommonResponse cfmToken(final KtTokenDTO.KtTokenConfirmRequest reqDTO) {
//final CmmEnsRlaybsnmDTO ktMnsInfo = CmmKtMmsUtils.getRlaybsnmInfo(reqDTO.getSignguCode(), reqDTO.getFfnlgCode());
//reqDTO.setServiceCd(ktMnsInfo.get);
//reqDTO.setServiceKey(ktMnsInfo.get);
//CmmEnsUtils.validate(reqDTO);
return null;
}
@Override @Override
public KtCommonResponse messageResult(final KtMnsRequest reqDTO) { public KtCommonResponse messageResult(final KtMnsRequest reqDTO) {

@ -3,6 +3,7 @@ package kr.xit.biz.kt.service;
import kr.xit.biz.ens.model.kt.KtCommonDTO.KtCommonResponse; import kr.xit.biz.ens.model.kt.KtCommonDTO.KtCommonResponse;
import kr.xit.biz.ens.model.kt.KtCommonDTO.KtMnsRequest; import kr.xit.biz.ens.model.kt.KtCommonDTO.KtMnsRequest;
import kr.xit.biz.ens.model.kt.KtTokenDTO.KtTokenConfirmRequest;
import kr.xit.biz.ens.model.kt.KtTokenDTO.KtTokenResponse; import kr.xit.biz.ens.model.kt.KtTokenDTO.KtTokenResponse;
@ -25,6 +26,9 @@ public interface IBizKtMmsService {
KtTokenResponse requestToken(final KtMnsRequest paramDTO); KtTokenResponse requestToken(final KtMnsRequest paramDTO);
KtCommonResponse mainSend(final KtMnsRequest reqDTO); KtCommonResponse mainSend(final KtMnsRequest reqDTO);
KtCommonResponse cfmToken(final KtTokenConfirmRequest reqDTO);
KtCommonResponse messageResult(final KtMnsRequest reqDTO); KtCommonResponse messageResult(final KtMnsRequest reqDTO);
// KtCommonResponse beforeSend(final KtBefSendRequest reqDTO); // KtCommonResponse beforeSend(final KtBefSendRequest reqDTO);

@ -4,9 +4,9 @@ import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Content; import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.ExampleObject; import io.swagger.v3.oas.annotations.media.ExampleObject;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import java.util.Map;
import kr.xit.biz.ens.model.kt.KtCommonDTO.KtCommonResponse; import kr.xit.biz.ens.model.kt.KtCommonDTO.KtCommonResponse;
import kr.xit.biz.ens.model.kt.KtCommonDTO.KtMnsRequest; import kr.xit.biz.ens.model.kt.KtCommonDTO.KtMnsRequest;
import kr.xit.biz.ens.model.kt.KtTokenDTO.KtTokenConfirmRequest;
import kr.xit.biz.kt.service.IBizKtMmsService; import kr.xit.biz.kt.service.IBizKtMmsService;
import kr.xit.core.model.ApiResponseDTO; import kr.xit.core.model.ApiResponseDTO;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -113,10 +113,11 @@ public class BizKtMmsController {
@Operation(summary = "본문자 수신", description = "본문자 수신") @Operation(summary = "토큰인증확인 조회", description = "토큰인증확인조회요청(BC-AG-SN-008)")
@PostMapping(value = "/receiveMain", produces = MediaType.APPLICATION_JSON_VALUE) @PostMapping(value = "/cfmToken", produces = MediaType.APPLICATION_JSON_VALUE)
public void requestToken(@RequestBody final Map<String,Object> paramMap) { public ApiResponseDTO<?> cfmToken(@RequestBody final KtTokenConfirmRequest reqDTO) {
log.debug("{}", paramMap); KtCommonResponse dto = service.cfmToken(reqDTO);
return ApiResponseDTO.success(dto);
} }

@ -62,27 +62,19 @@ import org.springframework.stereotype.Service;
public class KtMmsService extends EgovAbstractServiceImpl implements IKtMmsService { public class KtMmsService extends EgovAbstractServiceImpl implements IKtMmsService {
@Value("${contract.kt.host}") @Value("${contract.kt.host}")
private String HOST; private String HOST;
//-----------------------------------------------------------------
// mens 사용 API
//-----------------------------------------------------------------
/** /**
* *
*/ */
@Value("${contract.kt.api.generate-token}") @Value("${contract.kt.api.generate-token}")
private String API_GENERATE_TOKEN; private String API_GENERATE_TOKEN;
/**
* : BC-AG-SN-001
*/
@Value("${contract.kt.api.before-send}")
private String API_BEFORE_SEND;
/** /**
* : BC-AG-SN-002 * : BC-AG-SN-002
*/ */
@Value("${contract.kt.api.main-send}") @Value("${contract.kt.api.main-send}")
private String API_MAIN_SEND; private String API_MAIN_SEND;
/**
* : BC-AG-SN-007
*/
@Value("${contract.kt.api.blacklist}")
private String API_BLACKLIST;
/** /**
* : BC-AG-SN-008 * : BC-AG-SN-008
*/ */
@ -98,6 +90,28 @@ public class KtMmsService extends EgovAbstractServiceImpl implements IKtMmsServi
*/ */
@Value("${contract.kt.api.result-message}") @Value("${contract.kt.api.result-message}")
private String API_RESULT_MESSAGE; private String API_RESULT_MESSAGE;
/**
* callback URL
*/
@Value("${contract.kt.api.callback-url}")
private String CALLBACK_URL;
//-----------------------------------------------------------
//-----------------------------------------------------------------
// mens 미사용 API
//-----------------------------------------------------------------
/**
* : BC-AG-SN-001
*/
@Value("${contract.kt.api.before-send}")
private String API_BEFORE_SEND;
/**
* : BC-AG-SN-007
*/
@Value("${contract.kt.api.blacklist}")
private String API_BLACKLIST;
/** /**
* : BC-AG-SN-011 * : BC-AG-SN-011
*/ */
@ -150,6 +164,7 @@ public class KtMmsService extends EgovAbstractServiceImpl implements IKtMmsServi
private String API_APPROVE_RCV; private String API_APPROVE_RCV;
private final ApiWebClientUtil webClient; private final ApiWebClientUtil webClient;
//-----------------------------------------------------------
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------

@ -66,7 +66,7 @@ public class KtMmsController {
return ApiResponseDTO.success(service.requestToken(paramDTO)); return ApiResponseDTO.success(service.requestToken(paramDTO));
} }
@Operation(summary = "본문자 수신 등록 요청(BC-AG-SN-002)", description = "본문자 수신 등록 요청(BC-AG-SN-002)") @Operation(summary = "본문자 수신 등록 요청(BC-AG-SN-002) -> 업무(Biz)단 API 사용", description = "본문자 수신 등록 요청(BC-AG-SN-002) -> bulk처리를 위해 업무단의 API를 사용하여야 함")
@PostMapping(value = "/mainSend", produces = MediaType.APPLICATION_JSON_VALUE) @PostMapping(value = "/mainSend", produces = MediaType.APPLICATION_JSON_VALUE)
public ApiResponseDTO<?> mainSend(@RequestBody final KtMainSendRequest reqDTO) { public ApiResponseDTO<?> mainSend(@RequestBody final KtMainSendRequest reqDTO) {
KtCommonResponse dto = service.mainSend(reqDTO); KtCommonResponse dto = service.mainSend(reqDTO);
@ -87,7 +87,7 @@ public class KtMmsController {
return ApiResponseDTO.success(dto); return ApiResponseDTO.success(dto);
} }
@Operation(summary = "사전/본 문자 발송/수신 결과 전송 요청(BC-AG-SN-010)", description = "사전/본 문자 발송/수신 결과 전송 요청(BC-AG-SN-010)") @Operation(summary = "사전/본 문자 발송/수신 결과 전송 요청(BC-AG-SN-010) -> 업무(Biz)단 API 사용", description = "사전/본 문자 발송/수신 결과 전송 요청(BC-AG-SN-010) -> bulk처리를 위해 업무단의 API를 사용하여야 함")
@PostMapping(value = "/messageResult", produces = MediaType.APPLICATION_JSON_VALUE) @PostMapping(value = "/messageResult", produces = MediaType.APPLICATION_JSON_VALUE)
public ApiResponseDTO<?> messageResult(@RequestBody final KtMsgRsltRequest reqDTO) { public ApiResponseDTO<?> messageResult(@RequestBody final KtMsgRsltRequest reqDTO) {
KtCommonResponse dto = service.messageResult(reqDTO); KtCommonResponse dto = service.messageResult(reqDTO);

@ -48,18 +48,21 @@ contract:
api: api:
# 토큰발행 # 토큰발행
generate-token: /oauth/token generate-token: /oauth/token
# 사전문자수신등록 : BC-AG-SN-001
before-send: /api/message/before/send
# 본문자수신등록 : BC-AG-SN-002 # 본문자수신등록 : BC-AG-SN-002
main-send: /api/message/main/send main-send: /api/message/main/send
# 수신거부등록 : BC-AG-SN-007
blacklist: /api/blacklist
# 토큰인증확인조회 : BC-AG-SN-008 # 토큰인증확인조회 : BC-AG-SN-008
cfm-token: /api/message/token cfm-token: /api/message/token
# 토큰열람확인결과전송 : BC-AG-SN-009 # 토큰열람확인결과전송 : BC-AG-SN-009
read-token: /api/message/token read-token: /api/message/token
# 사전/본 문자 발송/수신 결과 전송 : BC-AG-SN-010 # 사전/본 문자 발송/수신 결과 전송 : BC-AG-SN-010
result-message: /api/ag/message/result result-message: /api/ag/message/result
# 토큰인증확인 : 본문자수신등록 callback url
callback-url: http://211.119.124.7:8081/api/biz/kt/v1/cfmToken
# 사전문자수신등록 : BC-AG-SN-001
before-send: /api/message/before/send
# 수신거부등록 : BC-AG-SN-007
blacklist: /api/blacklist
# 백오피스발송통계연계조회 : BC-AG-SN-011 # 백오피스발송통계연계조회 : BC-AG-SN-011
send-sttc: /api/sndsttc send-sttc: /api/sndsttc
# 백오피스발송결과연계조회 : BC-AG-SN-012 # 백오피스발송결과연계조회 : BC-AG-SN-012
@ -81,6 +84,7 @@ contract:
refuse-rcv: http://localhost:8081/api/ens/kt/v1/receive/refuse refuse-rcv: http://localhost:8081/api/ens/kt/v1/receive/refuse
# 수신동의상태전송 : BC-AG-SN-015 # 수신동의상태전송 : BC-AG-SN-015
approve-rcv: http://localhost:8081/api/ens/kt/v1/receive/approve approve-rcv: http://localhost:8081/api/ens/kt/v1/receive/approve
pplus: pplus:
host: https://t.postplus.co.kr host: https://t.postplus.co.kr
api: api:

@ -17,6 +17,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.Getter; import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.experimental.SuperBuilder; import lombok.experimental.SuperBuilder;
import org.hibernate.validator.constraints.NotEmpty; import org.hibernate.validator.constraints.NotEmpty;
@ -522,7 +523,7 @@ public class KtMmsSendDTO {
*/ */
@Schema(requiredMode = RequiredMode.AUTO, title = "메세지발송구분", example = "1") @Schema(requiredMode = RequiredMode.AUTO, title = "메세지발송구분", example = "1")
@Size(min = 1, max = 1, message = "메세지발송구분은 1자리 입니다.") @Size(min = 1, max = 1, message = "메세지발송구분은 1자리 입니다.")
private String optType; private final String optType = "1";
/** /**
* <pre> * <pre>
@ -705,7 +706,7 @@ public class KtMmsSendDTO {
* , 'Y' {#RCVE_RF_STR} . * , 'Y' {#RCVE_RF_STR} .
* </pre> * </pre>
*/ */
@Schema(requiredMode = RequiredMode.REQUIRED, title = "MMS 상세내용", example = "공공알림문자 테스트입니다.") @Schema(requiredMode = RequiredMode.REQUIRED, title = "MMS 상세내용", example = "{#INFO_CFRM_STR}, {#RCVE_RF_STR}")
@Size(min = 1, max = 4000, message = "MMS 상세내용은 4000자를 넘을 수 없습니다.") @Size(min = 1, max = 4000, message = "MMS 상세내용은 4000자를 넘을 수 없습니다.")
private String mmsDtlCnts; private String mmsDtlCnts;
@ -727,14 +728,26 @@ public class KtMmsSendDTO {
@Size(max = 40, message = "MMS 제목은 40자를 넘을 수 없습니다") @Size(max = 40, message = "MMS 제목은 40자를 넘을 수 없습니다")
private String mmsTitle; private String mmsTitle;
/**
* <pre>
* RCS : max 4000 - RCS|Binary
* RCS fallback mms_dtl_cnts
* RCS title mms_title .
* </pre>
*/
@Schema(requiredMode = RequiredMode.AUTO, title = "RCS 상세내용", example = " ")
@Size(max = 4000, message = "RCS 상세내용은 4000자를 넘을 수 없습니다.")
private String rcsDtlCnts;
/** /**
* <pre> * <pre>
* URL : max 1000 * URL : max 1000
* dist_info_crt_yn 'Y' * dist_info_crt_yn 'Y'
* </pre> * </pre>
*/ */
@Schema(requiredMode = RequiredMode.AUTO, title = "연결 URL", example = "http://localhost:8081/api/biz/kt/v1/receiveMain") @Schema(requiredMode = RequiredMode.AUTO, title = "연결 URL", example = "http://localhost:8081/api/biz/kt/v1/cfmToken")
@Size(max = 1000, message = "연결 URL은 1000자를 넘을 수 없습니다.") @Size(max = 1000, message = "연결 URL은 1000자를 넘을 수 없습니다.")
@Setter
private String url; private String url;
/** /**
@ -773,7 +786,7 @@ public class KtMmsSendDTO {
* N Or NULL URL * N Or NULL URL
* </pre> * </pre>
*/ */
@Schema(requiredMode = RequiredMode.AUTO, title = "유통정보 미생성 여부", example = " ") @Schema(requiredMode = RequiredMode.AUTO, title = "유통정보 미생성 여부", example = "N")
@Size(max = 1, message = "유통정보 미생성 여부는 1(Y|N)자 입니다.") @Size(max = 1, message = "유통정보 미생성 여부는 1(Y|N)자 입니다.")
private String distInfoCrtYn; private String distInfoCrtYn;
@ -786,7 +799,7 @@ public class KtMmsSendDTO {
* RCS ( 17 ) * RCS ( 17 )
* </pre> * </pre>
*/ */
@Schema(requiredMode = RequiredMode.AUTO, title = "안내문 확인하기 치환문구", example = " ") @Schema(requiredMode = RequiredMode.AUTO, title = "안내문 확인하기 치환문구", example = "○ 안내문 확인하기 : ")
@Size(max = 50, message = "안내문 확인하기 치환문구는 50자를 넘을 수 없습니다.") @Size(max = 50, message = "안내문 확인하기 치환문구는 50자를 넘을 수 없습니다.")
private String infoCfrmStr; private String infoCfrmStr;
@ -799,7 +812,7 @@ public class KtMmsSendDTO {
* RCS ( 17 ) * RCS ( 17 )
* </pre> * </pre>
*/ */
@Schema(requiredMode = RequiredMode.AUTO, title = "수신거부 및 수신 휴대폰 지정하기 치환문구", example = " ○ 수신거부 및 수신 휴대폰 지정하기 :") @Schema(requiredMode = RequiredMode.AUTO, title = "수신거부 및 수신 휴대폰 지정하기 치환문구", example = "○ 수신거부 및 수신 휴대폰 지정하기 : ")
@Size(max = 50, message = "수신거부 및 수신 휴대폰 지정하기 치환문구는 50자를 넘을 수 없습니다.") @Size(max = 50, message = "수신거부 및 수신 휴대폰 지정하기 치환문구는 50자를 넘을 수 없습니다.")
private String rcveRfStr; private String rcveRfStr;
} }

Loading…
Cancel
Save