From 7c5b5889c3a73e421e3a8ea5a759c3faf1a0cf8e Mon Sep 17 00:00:00 2001 From: "hehihoho3@gmail.com" Date: Fri, 20 Jun 2025 18:29:26 +0900 Subject: [PATCH] =?UTF-8?q?=EB=AC=B8=EC=9E=90=EB=B0=9C=EC=86=A1=EC=97=90?= =?UTF-8?q?=20api=20return=EA=B0=92=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../itn/let/mail/service/StatusResponse.java | 11 ++++ .../service/impl/MjonMsgDataServiceImpl.java | 59 +++++++++++++++---- 2 files changed, 58 insertions(+), 12 deletions(-) diff --git a/src/main/java/itn/let/mail/service/StatusResponse.java b/src/main/java/itn/let/mail/service/StatusResponse.java index 50649c95..dbdd309f 100644 --- a/src/main/java/itn/let/mail/service/StatusResponse.java +++ b/src/main/java/itn/let/mail/service/StatusResponse.java @@ -57,6 +57,8 @@ public class StatusResponse { private Object object; + private Object apiReturn; + private String messageTemp; private LocalDateTime timestamp; @@ -97,6 +99,15 @@ public class StatusResponse { this.message = message; this.object = object; } + public StatusResponse(HttpStatus status, String message + , Object object + , Object apiReturn + ) { + this.status = status; + this.message = message; + this.object = object; + this.apiReturn = apiReturn; + } diff --git a/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java b/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java index a7bfa8de..f9987f05 100644 --- a/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java +++ b/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java @@ -3946,22 +3946,31 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M @Override public StatusResponse sendMsgData_advc(MjonMsgVO mjonMsgVO, HttpServletRequest request) throws Exception { - log.info("mjonMsgVO [{}]", mjonMsgVO.getMjonMsgSendVOList().get(0).getPhone()); +// log.info("mjonMsgVO [{}]", mjonMsgVO.getMjonMsgSendVOList().get(0).getPhone()); log.info(" :: sendMsgData_advc :: "); log.info(" + mjonMsgVO.toString() :: [{}]", mjonMsgVO.toString()); Map returnMap = new HashMap<>(); + Map apiReturnMap = new HashMap<>(); - LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated() - ? (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser() - : null; - String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); + String userId = ""; + if("A".equals(mjonMsgVO.getSendKind())) + { + userId = mjonMsgVO.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, "로그인 후 이용이 가능합니다."); + } - if (userId.equals("")) { - return new StatusResponse(HttpStatus.BAD_REQUEST, "로그인 후 이용이 가능합니다."); } - - mjonMsgVO.setUserId(userId); + + mjonMsgVO.setUserId(userId); // 발신번호가 등록된 유효한 번호인지 확인 int sendCallFromCnt = mjonMsgDAO.selectCallFromNumberChk(mjonMsgVO); @@ -4015,6 +4024,7 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M int deletedCount = initialSize - finalSize; // 수신거부 목록 returnMap.put("resultBlockSts", deletedCount); + apiReturnMap.put("resultBlockSts", deletedCount); if (mjonMsgSendVOList.size() < 1) { return new StatusResponse(HttpStatus.BAD_REQUEST, "수신거부와 매칭되는 번호 제거 후 \n발송 가능한 수신목록이 존재하지 않습니다."); @@ -4139,13 +4149,24 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M // instTotalCnt : 화면에서 보여줄 총 발송건수 int instTotalCnt = 0; // Step 2: 그룹화 된 데이터를 그룹별로 insert 처리 + String apiMsgGroupId = ""; + String apiMsgType = ""; for (Map.Entry> entry : priceGroupedMessages.entrySet()) { List groupedMsgList = entry.getValue(); // 해당 가격의 메시지 리스트 // msgGroupId 생성 String nextMsgGroupId = idgenMjonMsgGroupId.getNextStringId(); groupedMsgList.forEach(t -> t.setMsgGroupId(nextMsgGroupId)); - + + // api 전달 값 + apiMsgGroupId = StringUtils.isNotEmpty(apiMsgGroupId) + ? apiMsgGroupId + "," + nextMsgGroupId + : nextMsgGroupId; + + apiMsgType = StringUtils.isNotEmpty(apiMsgType) + ? apiMsgType + "," + mjonMsgSendVOList.get(0).getMsgType() + : mjonMsgSendVOList.get(0).getMsgType(); + // 발송 데이터 삽입 int instCnt = this.insertMsgData_advc(groupedMsgList); @@ -4176,17 +4197,27 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M // returnMap.put("resultSts", instCnt); log.debug("가격 [{}]의 총 갯수: [{}]", entry.getKey(), groupedMsgList.size()); + } + + // 그룹 ID + apiReturnMap.put("msgGroupId", apiMsgGroupId); + // 메세지 타입 + apiReturnMap.put("msgType", apiMsgType); + // 총 발송 건수 + returnMap.put("resultSts", instTotalCnt); + apiReturnMap.put("resultSts", instTotalCnt); + + + // db insert 성능 개선중 하나에 방법 // 분할 최대건수가 되면 디비에 입력하기 // 여러시도 했지만 일단 보류 // 무시해도 됨 // int instCnt = mjonMsgDataDAO.insertMsgDataInfo_advc(mjonMsgSendVOList); // int instCnt = mjonMsgDataDAO.insertMsgDataInfo_jdbc_advc(mjonMsgSendVOList); - // 총 발송 건수 - returnMap.put("resultSts", instTotalCnt); // TEST발송 시 발송 후 캐시가 있어야함. returnMap.put("afterCash", priceAndPoint.getBefCash(userId)); @@ -4206,6 +4237,10 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M statusResponse.setStatus(HttpStatus.OK); statusResponse.setObject(returnMap); + + apiReturnMap.put("result", "success"); + apiReturnMap.put("message", "문자 전송이 완료되었습니다."); + statusResponse.setApiReturn(apiReturnMap); return statusResponse; }