diff --git a/src/main/java/com/itn/mjonApi/mjon/api/kakao/ft/send/mapper/domain/FtSendSuccessResponse.java b/src/main/java/com/itn/mjonApi/mjon/api/kakao/ft/send/mapper/domain/FtSendSuccessResponse.java new file mode 100644 index 0000000..9c9f1d6 --- /dev/null +++ b/src/main/java/com/itn/mjonApi/mjon/api/kakao/ft/send/mapper/domain/FtSendSuccessResponse.java @@ -0,0 +1,67 @@ +package com.itn.mjonApi.mjon.api.kakao.ft.send.mapper.domain; + +import lombok.*; +import lombok.extern.slf4j.Slf4j; + +import java.util.ArrayList; +import java.util.List; + +@Slf4j +@Setter +@Getter +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class FtSendSuccessResponse { + + private String resultCode = "0"; // 성공 코드 + + private String msgType = "FT"; // 메시지 타입 (친구톡 고정) + + private List msgGroupIdList; // 메시지 전송 그룹 ID 리스트 + + private String successCnt; // 성공 건수 + + private String failCnt; // 실패 건수 + + private String test_yn; // 테스트 여부 + + /** + * 친구톡 발송 결과를 SMS API 형태로 변환 + * @param totalCount 총 발송 건수 + * @param successCount 성공 건수 + * @param failCount 실패 건수 + * @param successPhoneList 성공한 전화번호 리스트 + * @return FtSendSuccessResponse + */ + public static FtSendSuccessResponse createFtResponse(int totalCount, int successCount, int failCount, + List successPhoneList) { + + // 성공한 발송별로 msgGroupId 생성 + List msgGroupIdList = new ArrayList<>(); + for (int i = 0; i < successCount; i++) { + msgGroupIdList.add(generateMsgGroupId()); + } + + return FtSendSuccessResponse.builder() + .resultCode("0") + .msgGroupIdList(msgGroupIdList) + .msgType("FT") // 친구톡 고정 + .successCnt(String.valueOf(successCount)) + .failCnt(String.valueOf(failCount)) + .test_yn(null) + .build(); + } + + /** + * 메시지 그룹 ID 생성 (SMS API와 동일한 형태) + * MSGGID_0000000013451, MSGGID_0000000013452 형태 + * @return MSGGID_xxxxxxxxxxxx 형태의 ID + */ + private static String generateMsgGroupId() { + long currentTime = System.currentTimeMillis(); + // 13자리 숫자로 맞추기 위해 currentTime을 조정 + String msgId = String.format("%013d", currentTime % 10000000000000L); + return "MSGGID_" + msgId; + } +} \ No newline at end of file diff --git a/src/main/java/com/itn/mjonApi/mjon/api/kakao/ft/send/mapper/domain/KakaoButtonVO.java b/src/main/java/com/itn/mjonApi/mjon/api/kakao/ft/send/mapper/domain/KakaoButtonVO.java new file mode 100644 index 0000000..3d23e96 --- /dev/null +++ b/src/main/java/com/itn/mjonApi/mjon/api/kakao/ft/send/mapper/domain/KakaoButtonVO.java @@ -0,0 +1,27 @@ +package com.itn.mjonApi.mjon.api.kakao.ft.send.mapper.domain; + +import lombok.*; + +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ToString +@Getter +@Setter +public class KakaoButtonVO { + + private String name; // 버튼명 + private String linkType; // 링크타입 (WL: 웹링크, AL: 앱링크) + private String linkTypeName; // 링크타입명 + + // 웹링크용 + private String linkMo; // 모바일 웹링크 + private String linkPc; // PC 웹링크 + + // 앱링크용 + private String linkIos; // iOS 앱링크 + private String linkAnd; // Android 앱링크 + + // 기타 + private String pluginId; // 플러그인 ID +} \ No newline at end of file diff --git a/src/main/java/com/itn/mjonApi/mjon/api/kakao/ft/send/mapper/domain/MjonFTSendVO.java b/src/main/java/com/itn/mjonApi/mjon/api/kakao/ft/send/mapper/domain/MjonFTSendVO.java new file mode 100644 index 0000000..70ca9b4 --- /dev/null +++ b/src/main/java/com/itn/mjonApi/mjon/api/kakao/ft/send/mapper/domain/MjonFTSendVO.java @@ -0,0 +1,45 @@ +package com.itn.mjonApi.mjon.api.kakao.ft.send.mapper.domain; + +import lombok.*; + +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ToString +@Getter +@Setter +public class MjonFTSendVO { + + // 수신자 정보 (핵심) + private String phone; // 수신번호 (필수) + private String name; // 수신자명 + + // 치환문자 (현재 사용안함) + private String rep1; // 치환문자1 + private String rep2; // 치환문자2 + private String rep3; // 치환문자3 + private String rep4; // 치환문자4 + + // 메시지 관련 + private String msgId; // 메시지 ID + private String msgGroupId; // 메시지 그룹 ID + private String userId; // 사용자 ID + private String callFrom; // 발신번호 + private String callTo; // 수신번호 (phone과 동일) + private String reqDate; // 요청일시 + private String agentCode; // 에이전트 코드 + private String subject; // 제목 + private String smsTxt; // SMS 내용 + private String msgType; // 메시지 타입 + + // 파일 관련 + private String fileCnt; // 파일 개수 + private String filePath1; // 파일경로1 + private String filePath2; // 파일경로2 + private String filePath3; // 파일경로3 + + // 기타 +// @Builder.Default +// private String eventYn = "N"; // 이벤트 여부 (기본: N) + private String eachPrice; // 개별 가격 +} \ No newline at end of file