From b7fe16bddf4206729a4b153a8784c7b393ef9837 Mon Sep 17 00:00:00 2001 From: "hehihoho3@gmail.com" Date: Mon, 30 Sep 2024 11:30:54 +0900 Subject: [PATCH] =?UTF-8?q?=EB=AC=B8=EC=9E=90=EC=A0=84=EC=86=A1=20?= =?UTF-8?q?=EB=A1=9C=EC=A7=81=20=EB=A6=AC=ED=8E=99=ED=86=A0=EB=A7=81=20?= =?UTF-8?q?=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/MjonMsgDataServiceImpl.java | 499 +++++++++--------- .../msgdata/web/MjonMsgDataController.java | 1 + 2 files changed, 244 insertions(+), 256 deletions(-) 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 b87433d5..1acf68a5 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 @@ -3241,267 +3241,262 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M @Override public StatusResponse sendMsgData_advc(MjonMsgVO mjonMsgVO, HttpServletRequest request) throws Exception { - String resultSts = "0"; - String resultBlockSts = "0"; - String userId = ""; - - - LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; - userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); - - if(userId.equals("")) { - // Map returnMap = new HashMap<>(); -// returnMap.put("message", "로그인 후 이용이 가능합니다."); -// returnMap.put("result", "loginFail"); -// returnMap.put("resultSts", resultSts); - return new StatusResponse(HttpStatus.BAD_REQUEST, "로그인 후 이용이 가능합니다."); - } - - mjonMsgVO.setUserId(userId); - - //발신번호가 등록된 유효한 번호인지 확인 - int sendCallFromCnt = mjonMsgDAO.selectCallFromNumberChk(mjonMsgVO); - log.info("sendCallFromCnt :: [{}]", sendCallFromCnt); - if(sendCallFromCnt < 1) { - return new StatusResponse(HttpStatus.BAD_REQUEST, "등록된 발신번호를 찾을 수 없습니다."); - } - - /** - * 회원 정지된 상태이면 문자 발송이 안되도록 처리함 - * 현재 로그인 세션도 만료 처리함 - * */ - boolean mberSttus = userManageService.selectUserStatusInfo(userId); - if(!mberSttus) { - request.getSession().invalidate(); - // UNAUTHORIZED : 인증되지 않은 사용자가 접근하려고 할 때 - return new StatusResponse(HttpStatus.UNAUTHORIZED, "현재 고객님께서는 문자온 서비스 이용이 정지된 상태로 문자를 발송하실 수 없습니다. 이용정지 해제를 원하시면 고객센터로 연락주시기 바랍니다."); - - } - - /* - * 어디에 사용하는지 모르겠음 - * //회원정보에서 스미싱 회원 여부 정보 조회 - UserManageVO userManageVO = new UserManageVO(); - - userManageVO.setMberId(userId); - UserManageVO resultUserVO = userManageService.selectSmishingYnUserInfo(userManageVO); - String smishingYn = resultUserVO.getSmishingYn(); - mjonMsgVO.setSmishingYn(smishingYn); - */ - - int smsTxtByte = MsgSendUtils.getSmsTxtBytes(mjonMsgVO.getSmsTxt()); - if(smsTxtByte > 2000) { - return new StatusResponse(HttpStatus.BAD_REQUEST, "문자 내용은 2000Byte를 넘을 수 없습니다."); - } - - // MSG_TYPE 설정 - String msgType = MsgSendUtils.getMsgType(mjonMsgVO, smsTxtByte); - if ("INVALID".equals(msgType)) { - return new StatusResponse(HttpStatus.BAD_REQUEST, "문자 내용은 2000Byte를 넘을 수 없습니다."); - } - mjonMsgVO.setMsgType(msgType); + String resultSts = "0"; + String resultBlockSts = "0"; + String userId = ""; + + + LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; + userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); + + if(userId.equals("")) { + return new StatusResponse(HttpStatus.BAD_REQUEST, "로그인 후 이용이 가능합니다."); + } + + mjonMsgVO.setUserId(userId); + + //발신번호가 등록된 유효한 번호인지 확인 + int sendCallFromCnt = mjonMsgDAO.selectCallFromNumberChk(mjonMsgVO); + log.info("sendCallFromCnt :: [{}]", sendCallFromCnt); + if(sendCallFromCnt < 1) { + return new StatusResponse(HttpStatus.BAD_REQUEST, "등록된 발신번호를 찾을 수 없습니다."); + } + + /** + * 회원 정지된 상태이면 문자 발송이 안되도록 처리함 + * 현재 로그인 세션도 만료 처리함 + * */ + boolean mberSttus = userManageService.selectUserStatusInfo(userId); + if(!mberSttus) { + request.getSession().invalidate(); + // UNAUTHORIZED : 인증되지 않은 사용자가 접근하려고 할 때 + return new StatusResponse(HttpStatus.UNAUTHORIZED, "현재 고객님께서는 문자온 서비스 이용이 정지된 상태로 문자를 발송하실 수 없습니다. 이용정지 해제를 원하시면 고객센터로 연락주시기 바랍니다."); + + } + + /* + * 어디에 사용하는지 모르겠음 + * set 후에 사용하는 곳이 없음 + * //회원정보에서 스미싱 회원 여부 정보 조회 + UserManageVO userManageVO = new UserManageVO(); + + userManageVO.setMberId(userId); + UserManageVO resultUserVO = userManageService.selectSmishingYnUserInfo(userManageVO); + String smishingYn = resultUserVO.getSmishingYn(); + mjonMsgVO.setSmishingYn(smishingYn); + */ + + int smsTxtByte = MsgSendUtils.getSmsTxtBytes(mjonMsgVO.getSmsTxt()); + if(smsTxtByte > 2000) { + return new StatusResponse(HttpStatus.BAD_REQUEST, "문자 내용은 2000Byte를 넘을 수 없습니다."); + } + + // MSG_TYPE 설정 + String msgType = MsgSendUtils.getMsgType(mjonMsgVO, smsTxtByte); + if ("INVALID".equals(msgType)) { + return new StatusResponse(HttpStatus.BAD_REQUEST, "문자 내용은 2000Byte를 넘을 수 없습니다."); + } + mjonMsgVO.setMsgType(msgType); - //장문 메세지일 경우 - int fileCount = 0; - if(msgType.equals("6")) { - - //그림 이미지가 첨부된 경우 - if(mjonMsgVO.getImgFilePath() != null || mjonMsgVO.getImgFilePath().length > 0) { - - String[] path = mjonMsgVO.getImgFilePath(); - String[] fileId = mjonMsgVO.getImgFileId(); - String[] templateYn = mjonMsgVO.getTemplateYn(); - - for(int i=0; i 0) { + + String[] path = mjonMsgVO.getImgFilePath(); + String[] fileId = mjonMsgVO.getImgFileId(); + String[] templateYn = mjonMsgVO.getTemplateYn(); + + for(int i=0; i 0) { + + //if(mjonMsgVO.getFileName1() == null && mjonMsgVO.getFileName2() == null && mjonMsgVO.getFileName3() == null) { - //첨부파일 갯수 셋팅해주기 - mjonMsgVO.setFileCnt(Integer.toString(fileCount)); - - } - - } - - - //파일 갯수는 있는데 파일 경로가 없는 경우 문자발송이 안되도록 튕겨내도록 함 - 20220520 우영두 - if(fileCount > 0) { - -// if(mjonMsgVO.getFileName1() == null && mjonMsgVO.getFileName2() == null && mjonMsgVO.getFileName3() == null) { - - boolean allFilesAreNull = Stream.of( - mjonMsgVO.getFileName1(), - mjonMsgVO.getFileName2(), - mjonMsgVO.getFileName3() - ).allMatch(Objects::isNull); - - - if (allFilesAreNull) { - return new StatusResponse(HttpStatus.NO_CONTENT - , "문자 메세지 이미지 추가에 오류가 발생하여 문자 발송이 취소 되었습니다." - ); - - } - - } + boolean allFilesAreNull = Stream.of( + mjonMsgVO.getFileName1(), + mjonMsgVO.getFileName2(), + mjonMsgVO.getFileName3() + ).allMatch(Objects::isNull); + + if (allFilesAreNull) { + return new StatusResponse(HttpStatus.NO_CONTENT + , "문자 메세지 이미지 추가에 오류가 발생하여 문자 발송이 취소 되었습니다." + ); + } + } - /* - * 화면에서 넘어오는 단가 금액 및 총 결제 캐시 금액 체크 해주기 - * 검증을 위해서 시스템 단가, 회원 협의 단가, 이벤트 단가 정보 조회 - * 조회 단가를 이용하여 총 결제 캐시 금액 계산 - * 파라미터로 넘어온 개별단가(eachPrice), 총 결제캐시(totPrice)를 비요하여 동일하지 않으면 컨트롤러에서 계산한 금액으로 입력해줌. - */ - - - MjonEventVO mjonEventVO = new MjonEventVO(); - mjonEventVO.setMberId(userId); - - //1.시스템 기본 단가 정보 불러오기 - JoinSettingVO sysJoinSetVO = mjonMsgDataService.selectJoinSettingInfo(); - - // 등급제 단가 추출 => 시스템 단가에 적용 + /* + * 화면에서 넘어오는 단가 금액 및 총 결제 캐시 금액 체크 해주기 + * 검증을 위해서 시스템 단가, 회원 협의 단가, 이벤트 단가 정보 조회 + * 조회 단가를 이용하여 총 결제 캐시 금액 계산 + * 파라미터로 넘어온 개별단가(eachPrice), 총 결제캐시(totPrice)를 비요하여 동일하지 않으면 컨트롤러에서 계산한 금액으로 입력해줌. + */ + + + MjonEventVO mjonEventVO = new MjonEventVO(); + mjonEventVO.setMberId(userId); + + //1.시스템 기본 단가 정보 불러오기 + JoinSettingVO sysJoinSetVO = mjonMsgDataService.selectJoinSettingInfo(); + + // 등급제 단가 추출 => 시스템 단가에 적용 // sysJoinSetVO = mberGrdService.selectMberGrdDefaultInfo(sysJoinSetVO, userId); - - //2.사용자 개인 단가 정보 불러오기 - MberManageVO mberManageVO = mjonMsgDataDAO.selectMberManageInfo(userId); - - - // 3. 사용자 단가 정보 설정 - //협의 단가가 없는 경우 시스템 단가 적용해 주기 - float shortPrice = MsgSendUtils.getValidPrice(mberManageVO.getShortPrice(), sysJoinSetVO.getShortPrice()); - float longPrice = MsgSendUtils.getValidPrice(mberManageVO.getLongPrice(), sysJoinSetVO.getLongPrice()); - float picturePrice = MsgSendUtils.getValidPrice(mberManageVO.getPicturePrice(), sysJoinSetVO.getPicturePrice()); - float picture2Price = MsgSendUtils.getValidPrice(mberManageVO.getPicture2Price(), sysJoinSetVO.getPicture2Price()); - float picture3Price = MsgSendUtils.getValidPrice(mberManageVO.getPicture3Price(), sysJoinSetVO.getPicture3Price()); - - - // 기존 소수점 2째자리에서 반올림하였으나, 정책 변경으로 소수점 버림 처리함 + + //2.사용자 개인 단가 정보 불러오기 + MberManageVO mberManageVO = mjonMsgDataDAO.selectMberManageInfo(userId); + + + // 3. 사용자 단가 정보 설정 + //협의 단가가 없는 경우 시스템 단가 적용해 주기 + float shortPrice = MsgSendUtils.getValidPrice(mberManageVO.getShortPrice(), sysJoinSetVO.getShortPrice()); + float longPrice = MsgSendUtils.getValidPrice(mberManageVO.getLongPrice(), sysJoinSetVO.getLongPrice()); + float picturePrice = MsgSendUtils.getValidPrice(mberManageVO.getPicturePrice(), sysJoinSetVO.getPicturePrice()); + float picture2Price = MsgSendUtils.getValidPrice(mberManageVO.getPicture2Price(), sysJoinSetVO.getPicture2Price()); + float picture3Price = MsgSendUtils.getValidPrice(mberManageVO.getPicture3Price(), sysJoinSetVO.getPicture3Price()); + + + // 기존 소수점 2째자리에서 반올림하였으나, 정책 변경으로 소수점 버림 처리함 // boolean compareEndDate = false; - float paramEachPrice = Float.parseFloat(mjonMsgVO.getEachPrice()); + float paramEachPrice = Float.parseFloat(mjonMsgVO.getEachPrice()); + + + MjonEventVO eventMberInfo = mjonEventService.selectEventMsgMberDefaultInfo(mjonEventVO); + // 호출부에서 handleEventStatus를 호출하고 예외 처리를 추가 + + // 기존 컨트롤러 2352 라인 + if (eventMberInfo != null) { + String eventEndDate = eventMberInfo.getEventEndDate(); + boolean compareEndDate = MJUtil.getCompareDate(eventEndDate); + boolean isSuccess = handleEventStatus(eventMberInfo, paramEachPrice, mjonEventVO, compareEndDate); + + if (!isSuccess) { + // 예외가 발생했을 때의 리턴 처리 + return new StatusResponse(HttpStatus.INTERNAL_SERVER_ERROR, "이벤트 상태 처리 중 오류가 발생했습니다."); + } + // 이벤트 진행 회원의 발송 단가 처리 + if(eventMberInfo != null && "Y".equals(eventMberInfo.getEventStatus()) && compareEndDate) { + shortPrice = Float.parseFloat(eventMberInfo.getEventShortPrice()); + longPrice = Float.parseFloat(eventMberInfo.getEventLongPrice()); + picturePrice = Float.parseFloat(eventMberInfo.getEventPicturePrice()); + picture2Price = Float.parseFloat(eventMberInfo.getEventPicture2Price()); + picture3Price = Float.parseFloat(eventMberInfo.getEventPicture3Price()); + } + } - MjonEventVO eventMberInfo = mjonEventService.selectEventMsgMberDefaultInfo(mjonEventVO); - // 호출부에서 handleEventStatus를 호출하고 예외 처리를 추가 - if (eventMberInfo != null) { - String eventEndDate = eventMberInfo.getEventEndDate(); - boolean compareEndDate = MJUtil.getCompareDate(eventEndDate); - boolean isSuccess = handleEventStatus(eventMberInfo, paramEachPrice, mjonEventVO, compareEndDate); + // 토탈금액 "," 리플레이스 처리 + mjonMsgVO.setTotPrice(mjonMsgVO.getTotPrice().replaceAll(",", "")); + + float tmpOrgEachPrice = Float.parseFloat(mjonMsgVO.getEachPrice()); + float tmpOrgTotPrice = Float.parseFloat(mjonMsgVO.getTotPrice()); + + // 각 문자 종류별 단가 설정 + float tmpEachPrice = MsgSendUtils.determinePriceByMsgType(mjonMsgVO, shortPrice, longPrice, picturePrice, picture2Price, picture3Price); + mjonMsgVO.setEachPrice(Float.toString(tmpEachPrice)); + + // 수신자 총 수 * 단가를 통해 총 결제 금액 계산 + int tmpTotCallCnt = mjonMsgVO.getCallToList().length; + float tmpTotPrice = tmpTotCallCnt * tmpEachPrice; + + // 화면에서 넘어온 파라미터 개별 단가와 컨트롤러에서 계산한 단가를 비교하여 맞지 않으면 컨트롤러 계산 단가 입력 + if (tmpOrgEachPrice != tmpEachPrice) { + mjonMsgVO.setEachPrice(Float.toString(tmpEachPrice)); + log.info("화면 : tmpOrgEachPrice ::: [{}]", tmpOrgEachPrice); + log.info("컨트롤러 : tmpEachPrice ::: [{}]", tmpEachPrice); + } else { + log.info("tmpOrgEachPrice ::: [{}]", tmpOrgEachPrice); + } + + if (tmpOrgTotPrice != tmpTotPrice) { + mjonMsgVO.setTotPrice(Float.toString(tmpTotPrice)); + log.info("화면 : tmpOrgTotPrice ::: [{}]", tmpOrgTotPrice); + log.info("컨트롤러 : tmpTotPrice ::: [{}]", tmpTotPrice); + } else { + log.info("tmpOrgTotPrice ::: [{}]", tmpOrgTotPrice); + } + + + //////////////////////////////////////////////// + // 치환 여부 + //////////////////////////////////////////////// + StatusResponse statusResponse = new StatusResponse(); + if (MsgSendUtils.isReplacementRequired(mjonMsgVO)) { + + if (!MsgSendUtils.isReplacementDataValid(mjonMsgVO)) { + return new StatusResponse(HttpStatus.BAD_REQUEST, "특정문구 일괄변환 치환문자 데이터가 없습니다."); + } + + + if (!MsgSendUtils.checkReplacementDataValidity(mjonMsgVO, statusResponse)) { + return statusResponse; + } + + + + // 치환 문자 리스트 생성 + ReplacementListsVO intiLists = MsgSendUtils.createReplacementLists(mjonMsgVO); + MsgSendUtils.populateReplacementLists(mjonMsgVO ,intiLists, statusResponse); + // 에러가 발생했는지 상태를 확인 + if (statusResponse.getStatus() == HttpStatus.BAD_REQUEST) { + // 에러 메시지 처리 + return statusResponse; + } + + // 발송 처리 + statusResponse = processMessageSending(mjonMsgVO, intiLists, statusResponse); + } else { + // 일반 문자 발송 + statusResponse = fncSendMsg(mjonMsgVO); + } + + return statusResponse; - if (!isSuccess) { - // 예외가 발생했을 때의 리턴 처리 - return new StatusResponse(HttpStatus.INTERNAL_SERVER_ERROR, "이벤트 상태 처리 중 오류가 발생했습니다."); - } - // 이벤트 진행 회원의 발송 단가 처리 - if(eventMberInfo != null && "Y".equals(eventMberInfo.getEventStatus()) && compareEndDate) { - shortPrice = Float.parseFloat(eventMberInfo.getEventShortPrice()); - longPrice = Float.parseFloat(eventMberInfo.getEventLongPrice()); - picturePrice = Float.parseFloat(eventMberInfo.getEventPicturePrice()); - picture2Price = Float.parseFloat(eventMberInfo.getEventPicture2Price()); - picture3Price = Float.parseFloat(eventMberInfo.getEventPicture3Price()); - } - } - - - // 토탈금액 "," 리플레이스 처리 - mjonMsgVO.setTotPrice(mjonMsgVO.getTotPrice().replaceAll(",", "")); - - float tmpOrgEachPrice = Float.parseFloat(mjonMsgVO.getEachPrice()); - float tmpOrgTotPrice = Float.parseFloat(mjonMsgVO.getTotPrice()); - - // 각 문자 종류별 단가 설정 - float tmpEachPrice = MsgSendUtils.determinePriceByMsgType(mjonMsgVO, shortPrice, longPrice, picturePrice, picture2Price, picture3Price); - mjonMsgVO.setEachPrice(Float.toString(tmpEachPrice)); - - // 수신자 총 수 * 단가를 통해 총 결제 금액 계산 - int tmpTotCallCnt = mjonMsgVO.getCallToList().length; - float tmpTotPrice = tmpTotCallCnt * tmpEachPrice; - - // 화면에서 넘어온 파라미터 개별 단가와 컨트롤러에서 계산한 단가를 비교하여 맞지 않으면 컨트롤러 계산 단가 입력 - if (tmpOrgEachPrice != tmpEachPrice) { - mjonMsgVO.setEachPrice(Float.toString(tmpEachPrice)); - log.info("화면 : tmpOrgEachPrice ::: [{}]", tmpOrgEachPrice); - log.info("컨트롤러 : tmpEachPrice ::: [{}]", tmpEachPrice); - } else { - log.info("tmpOrgEachPrice ::: [{}]", tmpOrgEachPrice); - } - - if (tmpOrgTotPrice != tmpTotPrice) { - mjonMsgVO.setTotPrice(Float.toString(tmpTotPrice)); - log.info("화면 : tmpOrgTotPrice ::: [{}]", tmpOrgTotPrice); - log.info("컨트롤러 : tmpTotPrice ::: [{}]", tmpTotPrice); - } else { - log.info("tmpOrgTotPrice ::: [{}]", tmpOrgTotPrice); - } - - - //////////////////////////////////////////////// - // 치환 여부 - //////////////////////////////////////////////// - StatusResponse statusResponse = new StatusResponse(); - if (MsgSendUtils.isReplacementRequired(mjonMsgVO)) { - - if (!MsgSendUtils.isReplacementDataValid(mjonMsgVO)) { - return new StatusResponse(HttpStatus.BAD_REQUEST, "특정문구 일괄변환 치환문자 데이터가 없습니다."); - } - - - if (!MsgSendUtils.checkReplacementDataValidity(mjonMsgVO, statusResponse)) { - return statusResponse; - } - - - - // 치환 문자 리스트 생성 - ReplacementListsVO intiLists = MsgSendUtils.createReplacementLists(mjonMsgVO); - MsgSendUtils.populateReplacementLists(mjonMsgVO ,intiLists, statusResponse); - // 에러가 발생했는지 상태를 확인 - if (statusResponse.getStatus() == HttpStatus.BAD_REQUEST) { - // 에러 메시지 처리 - return statusResponse; - } - - - - // 발송 처리 - statusResponse = processMessageSending(mjonMsgVO, intiLists, statusResponse); - } else { - // 일반 문자 발송 - statusResponse = fncSendMsg(mjonMsgVO); - } - - return statusResponse; - - } - - - // 그림 문자 발송 처리 메서드 - private StatusResponse processMessageSending(MjonMsgVO mjonMsgVO, ReplacementListsVO lists, StatusResponse statusResponse) { + } + + + // 그림 문자 발송 처리 메서드 + private StatusResponse processMessageSending(MjonMsgVO mjonMsgVO, ReplacementListsVO lists, StatusResponse statusResponse) { Map resultMap = new HashMap(); // 단문 문자 발송 @@ -3543,10 +3538,6 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M statusResponse.setMessage(returnMessage); statusResponse.setObject(resultMap); -// modelAndView.addObject("message", returnMessage); -// modelAndView.addObject("result", returnStatus); -// modelAndView.addObject("resultSts", "0"); -// modelAndView.addObject("resultBlockSts", "0"); return statusResponse; } @@ -3556,10 +3547,6 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M Map returnMap = new HashMap(); returnMap.put("msgType", mjonMsgVO.getMsgType()); returnMap.put("msgGroupId", mjonMsgVO.getMsgGroupId()); -// returnMap.put("message", returnMessage); -// returnMap.put("result", returnStatus); -// returnMap.put("resultSts", resultSts); -// returnMap.put("resultBlockSts", resultBlockSts); statusResponse.setObject(returnMap); @@ -4273,7 +4260,7 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M // 이벤트 상태를 종료로 변경 mjonEventVO.setEventInfoId(eventMberInfo.getEventInfoId()); mjonEventVO.setEventStatus("E"); - mjonEventVO.setEventMemo("발송 최소 금액(" + paramEachPrice + ") 부족 혹은 이벤트 종료일 초과로 종료"); + mjonEventVO.setEventMemo("발송 최소 금액("+ paramEachPrice +") 부족 혹은 이벤트 종료일 초과되어 이벤트 종료 시킴"); mjonEventVO.setEventRemainCash(eventRemainCash); mjonEventService.updateEventEndStatus(mjonEventVO); eventMberInfo.setEventStatus("E"); diff --git a/src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java b/src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java index 3db8e841..5afcf7f9 100644 --- a/src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java +++ b/src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java @@ -3165,6 +3165,7 @@ public class MjonMsgDataController { HttpServletRequest request, ModelMap model) throws Exception{ + return ResponseEntity.ok().body(mjonMsgDataService.sendMsgData_advc(mjonMsgVO, request)) ; }