From c1defb3498d62b8628f33a3e97a3d2e454f4d77e Mon Sep 17 00:00:00 2001 From: "hehihoho3@gmail.com" Date: Wed, 3 Sep 2025 11:44:43 +0900 Subject: [PATCH] =?UTF-8?q?api=20=EC=B9=9C=EA=B5=AC=ED=86=A1=20=EC=99=84?= =?UTF-8?q?=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/itn/let/kakao/kakaoComm/KakaoVO.java | 38 +++++++------ .../impl/KakaoFriendsTalkServiceImpl.java | 57 ++++++++++++++----- 2 files changed, 66 insertions(+), 29 deletions(-) diff --git a/src/main/java/itn/let/kakao/kakaoComm/KakaoVO.java b/src/main/java/itn/let/kakao/kakaoComm/KakaoVO.java index c8360932..740ab4bd 100644 --- a/src/main/java/itn/let/kakao/kakaoComm/KakaoVO.java +++ b/src/main/java/itn/let/kakao/kakaoComm/KakaoVO.java @@ -336,30 +336,33 @@ public class KakaoVO extends MjonMsgVO{ public String ftToString() { StringBuilder sb = new StringBuilder("KakaoFTSendVO["); - sb.append("\n senderKey=[").append(senderKey).append("]"); + sb.append("\n sendKind=[").append(getSendKind()).append("]"); + sb.append("\n , senderKey=[").append(senderKey).append("]"); sb.append("\n , imageFileName=[").append(imageFileName).append("]"); sb.append("\n , imageType=[").append(imageType).append("]"); - sb.append("\n , imgTitle=[").append(imgTitle).append("]"); - sb.append("\n , imgLink=[").append(imgLink).append("]"); + sb.append("\n , atchFileId=[").append(atchFileId).append("]"); +// sb.append("\n , imgTitle=[").append(imgTitle).append("]"); +// sb.append("\n , imgLink=[").append(imgLink).append("]"); sb.append("\n , templateContent=[").append(templateContent).append("]"); sb.append("\n , templateImageUrl=[").append(templateImageUrl).append("]"); - sb.append("\n , smsTxtArea=[").append(getSubMsgTxt()).append("]"); - sb.append("\n , subMsgSendYn=[").append(subMsgSendYn).append("]"); - sb.append("\n , subMsgTxtReplYn=[").append(subMsgTxtReplYn).append("]"); - sb.append("\n , subMsgType=[").append(subMsgType).append("]"); +// sb.append("\n , imgLink=[").append(imgLink).append("]"); +// sb.append("\n , smsTxtArea=[").append(getSubMsgTxt()).append("]"); +// sb.append("\n , subMsgSendYn=[").append(subMsgSendYn).append("]"); +// sb.append("\n , subMsgTxtReplYn=[").append(subMsgTxtReplYn).append("]"); +// sb.append("\n , subMsgType=[").append(subMsgType).append("]"); sb.append("\n , subMsgTxt=[").append(subMsgTxt).append("]"); + sb.append("\n , subMsgSendYn=[").append(subMsgSendYn).append("]"); sb.append("\n , reserveYn=[").append(getReserveYn()).append("]"); - sb.append("\n , menuTopTab=[").append(menuTopTab).append("]"); - sb.append("\n , bizJsonYn=[").append(bizJsonYn).append("]"); - sb.append("\n , senderKey=[").append(senderKey).append("]"); +// sb.append("\n , menuTopTab=[").append(menuTopTab).append("]"); +// sb.append("\n , bizJsonYn=[").append(bizJsonYn).append("]"); sb.append("\n , callFrom=[").append(getCallFrom()).append("]"); - sb.append("\n , kakaoFtPrice=[").append(getEachPrice()).append("]"); +// sb.append("\n , kakaoFtPrice=[").append(getEachPrice()).append("]"); sb.append("\n , reqDate=[").append(getReqDate()).append("]"); - sb.append("\n , spamStatus=[").append(getSpamStatus()).append("]"); - sb.append("\n , txtReplYn=[").append(getTxtReplYn()).append("]"); - sb.append("\n , atSmishingYn=[").append(getAtSmishingYn()).append("]"); - sb.append("\n , atDelayYn=[").append(getAtDelayYn()).append("]"); - sb.append("\n , filePath1=[").append(getFilePath1()).append("]"); +// sb.append("\n , spamStatus=[").append(getSpamStatus()).append("]"); +// sb.append("\n , txtReplYn=[").append(getTxtReplYn()).append("]"); +// sb.append("\n , atSmishingYn=[").append(getAtSmishingYn()).append("]"); +// sb.append("\n , atDelayYn=[").append(getAtDelayYn()).append("]"); +// sb.append("\n , filePath1=[").append(getFilePath1()).append("]"); // sb.append("\n , tmpBtnSelect=[").append(getTmpBtnSelect()).append("]"); StringBuilder btnListSb = new StringBuilder("["); if (buttonVOList != null && !buttonVOList.isEmpty()) { @@ -389,4 +392,7 @@ public class KakaoVO extends MjonMsgVO{ return sb.toString(); } + + + } diff --git a/src/main/java/itn/let/kakao/user/kakaoFt/service/impl/KakaoFriendsTalkServiceImpl.java b/src/main/java/itn/let/kakao/user/kakaoFt/service/impl/KakaoFriendsTalkServiceImpl.java index 9bf5b1a2..31e184c4 100644 --- a/src/main/java/itn/let/kakao/user/kakaoFt/service/impl/KakaoFriendsTalkServiceImpl.java +++ b/src/main/java/itn/let/kakao/user/kakaoFt/service/impl/KakaoFriendsTalkServiceImpl.java @@ -11,6 +11,7 @@ import java.util.stream.Collectors; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; @@ -80,20 +81,32 @@ public class KakaoFriendsTalkServiceImpl extends EgovAbstractServiceImpl implem log.info(" + kakaoVO.toString() :: [{}]", kakaoVO.ftToString()); +// if(1==1) { +// throw new RuntimeException("강제로 발생시킨 예외"); +// } // 측정할 메소드 호출 전 시간 기록 Instant start = Instant.now(); // KakaoSendAdvcVO - + Map returnMap = new HashMap<>(); + Map apiReturnMap = new HashMap<>(); + + String userId = ""; + if("A".equals(kakaoVO.getSendKind())) + { + userId = kakaoVO.getMberId(); + }else { + + LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated() + ? (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser() + : null; + userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); + + if (userId.equals("")) { + return new StatusResponse(HttpStatus.BAD_REQUEST, "로그인 후 이용이 가능합니다."); + } - LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated() - ? (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser() - : null; - String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); - - if (userId.equals("")) { - return new StatusResponse(HttpStatus.BAD_REQUEST, "로그인 후 이용이 가능합니다."); } kakaoVO.setUserId(userId); @@ -106,7 +119,7 @@ public class KakaoFriendsTalkServiceImpl extends EgovAbstractServiceImpl implem request.getSession().invalidate(); // UNAUTHORIZED : 인증되지 않은 사용자가 접근하려고 할 때 return new StatusResponse(HttpStatus.UNAUTHORIZED, - "현재 고객님께서는 문자온 서비스 이용이 정지된 상태로 친구톡을 발송하실 수 없습니다. 이용정지 해제를 원하시면 고객센터로 연락주시기 바랍니다."); + "현재 고객님께서는 문자온 서비스 이용이 정지된 상태로 친구톡을 발송하실 수 없습니다. 이용정지 해제를 원하시면 고객센터로 연락주시기 바랍니다.", "STAT_1070"); } @@ -116,7 +129,7 @@ public class KakaoFriendsTalkServiceImpl extends EgovAbstractServiceImpl implem if(kakaoSendUtil.isRestrictedFriendTalkTime(kakaoSendUtil.resolveBaseDate(kakaoVO))) { // UNAUTHORIZED : 인증되지 않은 사용자가 접근하려고 할 때 return new StatusResponse(HttpStatus.BAD_REQUEST, - "친구톡은 20시 50분부터 익일 08시까지 발송이 제한됩니다."); + "친구톡은 20시 50분부터 익일 08시까지 발송이 제한됩니다.","STAT_2080"); } @@ -139,12 +152,11 @@ public class KakaoFriendsTalkServiceImpl extends EgovAbstractServiceImpl implem return statusResponse; } - - + /** @전송금액 확인 --------------------------------------------------*/ if (!kakaoSendUtil.isCashSufficient(userId, kakaoSendAdvcListVO)) { log.error("Insufficient balance for message sending."); - return new StatusResponse(HttpStatus.BAD_REQUEST, "문자 발송에 필요한 보유 잔액이 부족 합니다."); + return new StatusResponse(HttpStatus.BAD_REQUEST, "문자 발송에 필요한 보유 잔액이 부족 합니다.", "STAT_1060"); } @@ -162,6 +174,8 @@ public class KakaoFriendsTalkServiceImpl extends EgovAbstractServiceImpl implem // 임시 List nextMsgGroupIdA = new ArrayList<>(); // 대안: entrySet() 직접 사용 + String apiMsgGroupId = ""; + String apiMsgType = ""; for (Map.Entry> entry : priceGroupedMessages.entrySet()) { // entry 사용 @@ -169,7 +183,15 @@ public class KakaoFriendsTalkServiceImpl extends EgovAbstractServiceImpl implem String nextMsgGroupId = idgenMjonMsgGroupId.getNextStringId(); groupedMsgList.forEach(t -> t.setMsgGroupId(nextMsgGroupId)); + + // api 전달 값 + apiMsgGroupId = StringUtils.isNotEmpty(apiMsgGroupId) + ? apiMsgGroupId + "," + nextMsgGroupId + : nextMsgGroupId; + apiMsgType = StringUtils.isNotEmpty(apiMsgType) + ? apiMsgType + "," + kakaoSendAdvcListVO.get(0).getMsgType() + : kakaoSendAdvcListVO.get(0).getMsgType(); // 발송 데이터 삽입 int instCnt = kakaoSendUtil.insertKakaoData_advc(groupedMsgList); @@ -224,6 +246,12 @@ public class KakaoFriendsTalkServiceImpl extends EgovAbstractServiceImpl implem } + apiReturnMap.put("resultSts", instTotalCnt); + // 그룹 ID + apiReturnMap.put("msgGroupId", apiMsgGroupId); + // 메세지 타입 + apiReturnMap.put("msgType", apiMsgType); + returnMap.put("resultSts", instTotalCnt); returnMap.put("reserYn", kakaoVO.getReserveYn()); returnMap.put("groupIds", nextMsgGroupIdA); @@ -254,6 +282,9 @@ public class KakaoFriendsTalkServiceImpl extends EgovAbstractServiceImpl implem statusResponse.setStatus(HttpStatus.OK); statusResponse.setObject(returnMap); + apiReturnMap.put("result", HttpStatus.OK); + apiReturnMap.put("message", "전송이 완료되었습니다."); + statusResponse.setApiReturn(apiReturnMap); return statusResponse; }