친구톡 발송 완료

This commit is contained in:
hehihoho3@gmail.com 2025-09-02 17:43:06 +09:00
parent 2376446be3
commit faba5b99cf
3 changed files with 139 additions and 0 deletions

View File

@ -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<String> 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<String> successPhoneList) {
// 성공한 발송별로 msgGroupId 생성
List<String> 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;
}
}

View File

@ -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
}

View File

@ -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; // 개별 가격
}