diff --git a/src/main/java/itn/let/fax/user/service/impl/FaxServiceImpl.java b/src/main/java/itn/let/fax/user/service/impl/FaxServiceImpl.java index d11c564f..0ef15559 100644 --- a/src/main/java/itn/let/fax/user/service/impl/FaxServiceImpl.java +++ b/src/main/java/itn/let/fax/user/service/impl/FaxServiceImpl.java @@ -2,6 +2,8 @@ package itn.let.fax.user.service.impl; import java.io.File; import java.io.IOException; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.util.ArrayList; @@ -37,12 +39,15 @@ import itn.let.fax.user.service.FaxReceiverVO; import itn.let.fax.user.service.FaxService; import itn.let.fax.user.service.FaxTranVO; import itn.let.mail.service.StatusResponse; +import itn.let.mjo.msg.service.MjonMsgVO; +import itn.let.mjo.msgdata.service.MjonMsgDataService; import itn.let.mjo.msgdata.service.MjonMsgDataVO; import itn.let.mjo.msgdata.service.impl.MjonMsgDataDAO; import itn.let.mjo.pay.service.MjonPayVO; import itn.let.mjo.pay.service.impl.MjonPayDAO; import itn.let.module.base.PriceAndPoint; import itn.let.sym.site.service.JoinSettingVO; +import itn.let.uss.umt.service.MberManageVO; import itn.let.utl.fcc.service.EgovStringUtil; @@ -98,7 +103,11 @@ public class FaxServiceImpl extends EgovAbstractServiceImpl implements FaxServic @Resource(name = "egovMjonCashIdGnrService") private EgovIdGnrService idgenMjonCashId; - + + + @Resource(name = "MjonMsgDataService") + private MjonMsgDataService mjonMsgDataService; + @Autowired private PriceAndPoint priceAndPoint; @@ -319,6 +328,11 @@ public class FaxServiceImpl extends EgovAbstractServiceImpl implements FaxServic @Override public StatusResponse sendData(FaxTranVO faxTranVO, String userId) throws Exception { + // 단가확인 + Boolean priceChk = this.getPriceChk(faxTranVO, userId); + if(!priceChk) { + return new StatusResponse(HttpStatus.BAD_REQUEST, "팩스 발송에 필요한 회원님의 보유 잔액이 부족 합니다.", LocalDateTime.now()); + } // 팩스발송 정보 삽입 faxTranVO.setFaxTranSeq(idgenPgiFaxTranId.getNextStringId()); @@ -346,6 +360,49 @@ public class FaxServiceImpl extends EgovAbstractServiceImpl implements FaxServic } + private Boolean getPriceChk(FaxTranVO faxTranVO, String userId) throws Exception { + + Boolean returnVal = true; + + MjonMsgVO mjonMsgVO = new MjonMsgVO(); + mjonMsgVO.setUserId(userId); + + String userMoney = mjonMsgDataService.selectBeforeCashData(mjonMsgVO); + String userPoint = mjonMsgDataService.selectBeforePointData(mjonMsgVO); + mjonMsgVO.setBefPoint(userPoint); //현재 보유 포인트 정보 저장 + + BigDecimal befCash = new BigDecimal(userMoney).setScale(2, RoundingMode.HALF_EVEN); + + + + + + int callToSize = faxTranVO.getCallToList().split(",").length; + + // 사용자 단가 + Float faxPrice = this.getFaxPrice(userId); + + // 변환 완료 테이블에서 변환된 페이지 갯수 가져오기 + // FROM PGI_FAXCONVERT + int resPage = faxDao.findAllConvertTb(faxTranVO.getFaxConvertSeq()).getResPage(); + System.out.println(" + resPage :: "+ resPage); + + Float faxPriceTotalP = callToSize*faxPrice*resPage; + + + // faxPrice를 BigDecimal로 변환 + BigDecimal faxPriceBD = new BigDecimal(faxPriceTotalP.toString()); + + System.out.println(" + befCash :: "+ befCash); + System.out.println(" + faxPriceBD :: "+ faxPriceBD); + System.out.println(" + faxPriceBD.compareTo(befCash) :: "+ faxPriceBD.compareTo(befCash)); + if (faxPriceBD.compareTo(befCash) > 0) { + returnVal = false; + } + + return returnVal; + } + @Override public Map selectFaxSendDetailList(FaxGroupDataVO faxGroupDataVO) throws Exception { @@ -491,7 +548,6 @@ public class FaxServiceImpl extends EgovAbstractServiceImpl implements FaxServic //2.사용자 개인 단가 정보 불러오기 faxPrice = mjonMsgDataDAO.selectMberManageInfo(userId).getFaxPrice(); - // SMS 인경우 // 사용자 개인 단가가 없으면 시스템 단가로 if(faxPrice == 0.0f) return sysJoinSetVO.getFaxPrice(); diff --git a/src/main/java/itn/let/mjo/msgsent/web/MjonMsgSentController.java b/src/main/java/itn/let/mjo/msgsent/web/MjonMsgSentController.java index d87a4345..e615bec6 100644 --- a/src/main/java/itn/let/mjo/msgsent/web/MjonMsgSentController.java +++ b/src/main/java/itn/let/mjo/msgsent/web/MjonMsgSentController.java @@ -124,15 +124,20 @@ private static final Logger logger = LoggerFactory.getLogger(MjonMsgSentControll model.addAttribute("mmsMsgCnt", mmsMsgCnt); */ + /* //전체 발송 건수 통계 불러오기 mjonMsgSentVO.setMsgType(""); List totalMsgCnt = mjonMsgSentService.selectDetailMsgSentCntMix(mjonMsgSentVO); + System.out.println("start"); + // H:홈페이지, A:API 로 sms, lms, mms 나누는 영역 List H_totalMsgCnt = totalMsgCnt.stream().filter(t -> "H".equals(t.getSendKind())).collect(Collectors.toList()); List H_smsMsgCnt = new ArrayList(); List H_lmsMsgCnt = new ArrayList(); List H_mmsMsgCnt = new ArrayList(); + + System.out.println("start"); List A_totalMsgCnt = totalMsgCnt.stream().filter(t -> "A".equals(t.getSendKind())).collect(Collectors.toList()); List A_smsMsgCnt = new ArrayList(); @@ -163,10 +168,10 @@ private static final Logger logger = LoggerFactory.getLogger(MjonMsgSentControll }); - /* - * 홈페이지에서 보낸 데이터 LIST - * SEND_KIND = "H" - * */ + + //* 홈페이지에서 보낸 데이터 LIST + //* SEND_KIND = "H" + // 전체 영역 model.addAttribute("H_allSentCntVO", this.getResultCntProc(H_totalMsgCnt)); // 전체 단문(SMS) @@ -177,13 +182,12 @@ private static final Logger logger = LoggerFactory.getLogger(MjonMsgSentControll model.addAttribute("H_mmsSentCntVO", this.getResultCntProc(H_mmsMsgCnt)); - /* ==================================================================================== */ - /* - * 홈페이지에서 보낸 데이터 LIST - * SEND_KIND = "A" - * */ + + // * 홈페이지에서 보낸 데이터 LIST + //* SEND_KIND = "A" + // 전체 영역 model.addAttribute("A_allSentCntVO", this.getResultCntProc(A_totalMsgCnt)); // 전체 단문(SMS) @@ -192,6 +196,7 @@ private static final Logger logger = LoggerFactory.getLogger(MjonMsgSentControll model.addAttribute("A_lmsSentCntVO", this.getResultCntProc(A_lmsMsgCnt)); // 전체 장문(LMS) model.addAttribute("A_mmsSentCntVO", this.getResultCntProc(A_mmsMsgCnt)); + */ @@ -255,6 +260,114 @@ private static final Logger logger = LoggerFactory.getLogger(MjonMsgSentControll return "web/msgsent/MsgSentView"; } + /** + * 마이페이지 - 이용내역 - ajax + * @param mjonMsgVO + * @param model + * @return "/web/member/pay/PayUserListAjax.do" + * @throws Exception + */ + @RequestMapping(value="/web/msgsent/subcontent/MsgSentView_HA_allSentAjax.do") + public String mberInfo_cash_pointAjax(@ModelAttribute("searchVO") MjonMsgSentVO mjonMsgSentVO, + HttpServletRequest request, + ModelMap model) throws Exception{ + + System.out.println("MsgSentView_HA_allSentAjax"); + + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); + + + mjonMsgSentVO.setUserId(userId); + + //전체 발송 건수 통계 불러오기 + mjonMsgSentVO.setMsgType(""); + List totalMsgCnt = mjonMsgSentService.selectDetailMsgSentCntMix(mjonMsgSentVO); + + System.out.println("start"); + + // H:홈페이지, A:API 로 sms, lms, mms 나누는 영역 + List H_totalMsgCnt = totalMsgCnt.stream().filter(t -> "H".equals(t.getSendKind())).collect(Collectors.toList()); + List H_smsMsgCnt = new ArrayList(); + List H_lmsMsgCnt = new ArrayList(); + List H_mmsMsgCnt = new ArrayList(); + + System.out.println("start"); + + List A_totalMsgCnt = totalMsgCnt.stream().filter(t -> "A".equals(t.getSendKind())).collect(Collectors.toList()); + List A_smsMsgCnt = new ArrayList(); + List A_lmsMsgCnt = new ArrayList(); + List A_mmsMsgCnt = new ArrayList(); + + System.out.println(" ::H_totalMsgCnt :: "+ H_totalMsgCnt.size()); + System.out.println(" ::A_totalMsgCnt :: "+ A_totalMsgCnt.size()); + + H_totalMsgCnt.forEach(t->{ + if (Integer.parseInt(t.getFilePath1())>0) { + H_smsMsgCnt.add(t); + } else if (Integer.parseInt(t.getFilePath2())>0) { + H_lmsMsgCnt.add(t); + } else if (Integer.parseInt(t.getFilePath3())>0) { + H_mmsMsgCnt.add(t); + } + }); + + A_totalMsgCnt.forEach(t->{ + if (Integer.parseInt(t.getFilePath1())>0) { + A_smsMsgCnt.add(t); + } else if (Integer.parseInt(t.getFilePath2())>0) { + A_lmsMsgCnt.add(t); + } else if (Integer.parseInt(t.getFilePath3())>0) { + A_mmsMsgCnt.add(t); + } + }); + + + + //* 홈페이지에서 보낸 데이터 LIST + //* SEND_KIND = "H" + + // 전체 영역 + model.addAttribute("H_allSentCntVO", this.getResultCntProc(H_totalMsgCnt)); + // 전체 단문(SMS) + model.addAttribute("H_smsSentCntVO", this.getResultCntProc(H_smsMsgCnt)); + // 전체 장문(LMS) + model.addAttribute("H_lmsSentCntVO", this.getResultCntProc(H_lmsMsgCnt)); + // 전체 장문(LMS) + model.addAttribute("H_mmsSentCntVO", this.getResultCntProc(H_mmsMsgCnt)); + + + + + + // * 홈페이지에서 보낸 데이터 LIST + //* SEND_KIND = "A" + + // 전체 영역 + model.addAttribute("A_allSentCntVO", this.getResultCntProc(A_totalMsgCnt)); + // 전체 단문(SMS) + model.addAttribute("A_smsSentCntVO", this.getResultCntProc(A_smsMsgCnt)); + // 전체 장문(LMS) + model.addAttribute("A_lmsSentCntVO", this.getResultCntProc(A_lmsMsgCnt)); + // 전체 장문(LMS) + model.addAttribute("A_mmsSentCntVO", this.getResultCntProc(A_mmsMsgCnt)); + + + + + /* + a.mber_nm LIKE CONCAT('%',#searchKeyword#,'%') + + */ + ApiKeyVO apiKeyVO = new ApiKeyVO(); + apiKeyVO.setMberId(userId); + model.addAttribute("appMgmt", apiKeyMngService.selectMberApiKeyChk(apiKeyVO) > 0 ? true : false); + + + System.out.println("MsgSentView_HA_allSentAjax_end"); + + return "/web/msgsent/subcontent/MsgSentView_HA_allSentAjax"; + } /** * @methodName : getResultCntProc diff --git a/src/main/java/itn/let/mjo/reservmsg/web/MjonReservMsgController.java b/src/main/java/itn/let/mjo/reservmsg/web/MjonReservMsgController.java index 4923cee2..c8fa6cd3 100644 --- a/src/main/java/itn/let/mjo/reservmsg/web/MjonReservMsgController.java +++ b/src/main/java/itn/let/mjo/reservmsg/web/MjonReservMsgController.java @@ -94,6 +94,172 @@ public class MjonReservMsgController { return "redirect:/web/user/login/login.do"; } + mjonResvMsgVO.setUserId(userId); + + /* + //전체 발송 건수 통계 불러오기 + mjonResvMsgVO.setMsgType(""); + List totalMsgCnt = mjonReservMsgService.selectDetailMsgCnt(mjonResvMsgVO);//mjonReservMsgService.selectTotalMsgCnt(mjonResvMsgVO); + + List H_totalMsgCnt = totalMsgCnt.stream().filter(t -> "H".equals(t.getSendKind())).collect(Collectors.toList()); + List A_totalMsgCnt = totalMsgCnt.stream().filter(t -> "A".equals(t.getSendKind())).collect(Collectors.toList()); + + model.addAttribute("totalMsgCnt", totalMsgCnt); + + //단문 성공건, 실패건 불러오기 + mjonResvMsgVO.setMsgType("4"); + List smsMsgCnt = mjonReservMsgService.selectDetailMsgCnt(mjonResvMsgVO); + + List H_smsMsgCnt = smsMsgCnt.stream().filter(t -> "H".equals(t.getSendKind())).collect(Collectors.toList()); + List A_smsMsgCnt = smsMsgCnt.stream().filter(t -> "A".equals(t.getSendKind())).collect(Collectors.toList()); + + model.addAttribute("smsMsgCnt", smsMsgCnt); + + //장문 성공건, 실패건 불러오기 + mjonResvMsgVO.setMsgType("6"); + mjonResvMsgVO.setFileCnt("0"); + List lmsMsgCnt = mjonReservMsgService.selectDetailMsgCnt(mjonResvMsgVO); + + List H_lmsMsgCnt = lmsMsgCnt.stream().filter(t -> "H".equals(t.getSendKind())).collect(Collectors.toList()); + List A_lmsMsgCnt = lmsMsgCnt.stream().filter(t -> "A".equals(t.getSendKind())).collect(Collectors.toList()); + model.addAttribute("lmsMsgCnt", lmsMsgCnt); + + //그림문자 성공건, 실패건 불러오기 + mjonResvMsgVO.setMsgType("6"); + mjonResvMsgVO.setFileCnt("1"); + List mmsMsgCnt = mjonReservMsgService.selectDetailMsgCnt(mjonResvMsgVO); + + + List H_mmsMsgCnt = mmsMsgCnt.stream().filter(t -> "H".equals(t.getSendKind())).collect(Collectors.toList()); + List A_mmsMsgCnt = mmsMsgCnt.stream().filter(t -> "A".equals(t.getSendKind())).collect(Collectors.toList()); + model.addAttribute("mmsMsgCnt", mmsMsgCnt); + + + + + // * 홈페이지에서 보낸 데이터 LIST + //* SEND_KIND = "H" + + // 전체 영역 + model.addAttribute("H_allSentCntVO", this.getResultCntProc(H_totalMsgCnt)); + // 전체 단문(SMS) + model.addAttribute("H_smsSentCntVO", this.getResultCntProc(H_smsMsgCnt)); + // 전체 장문(LMS) + model.addAttribute("H_lmsSentCntVO", this.getResultCntProc(H_lmsMsgCnt)); + // 전체 장문(LMS) + model.addAttribute("H_mmsSentCntVO", this.getResultCntProc(H_mmsMsgCnt)); + + + // ==================================================================================== + + + + // * 홈페이지에서 보낸 데이터 LIST + // * SEND_KIND = "A" + + // 전체 영역 + model.addAttribute("A_allSentCntVO", this.getResultCntProc(A_totalMsgCnt)); + // 전체 단문(SMS) + model.addAttribute("A_smsSentCntVO", this.getResultCntProc(A_smsMsgCnt)); + // 전체 장문(LMS) + model.addAttribute("A_lmsSentCntVO", this.getResultCntProc(A_lmsMsgCnt)); + // 전체 장문(LMS) + model.addAttribute("A_mmsSentCntVO", this.getResultCntProc(A_mmsMsgCnt)); + + ApiKeyVO apiKeyVO = new ApiKeyVO(); + apiKeyVO.setMberId(userId); + model.addAttribute("appMgmt", apiKeyMngService.selectMberApiKeyChk(apiKeyVO) > 0 ? true : false); + */ + +// model.addAttribute("mmsMsgCnt", mmsMsgCnt); + + // 검색 리스트 불러오기 + if(mjonResvMsgVO.getPageUnit() != 10) { + mjonResvMsgVO.setPageUnit(mjonResvMsgVO.getPageUnit()); + } + + //기본 내림차순 정렬 + if(mjonResvMsgVO.getSearchSortOrd().equals("")) { + + mjonResvMsgVO.setSearchSortOrd("desc"); + + } + + //기본 등록일자 정렬 + if(mjonResvMsgVO.getSearchSortCnd().equals("")) { + + mjonResvMsgVO.setSearchSortCnd("regdate"); + + } + + /** pageing */ + /*PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(mjonResvMsgVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(mjonResvMsgVO.getPageUnit()); + paginationInfo.setPageSize(mjonResvMsgVO.getPageSize()); + + mjonResvMsgVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + mjonResvMsgVO.setLastIndex(paginationInfo.getLastRecordIndex()); + mjonResvMsgVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());*/ + + //전체 발송 리스트 불러오기 + /*List resultAllResList = mjonReservMsgService.selectAllResvMsgList(mjonResvMsgVO); + model.addAttribute("resultAllResList", resultAllResList); + model.addAttribute("resultAllResCnt", resultAllResList.size()); + + model.addAttribute("searchKeyword", mjonResvMsgVO.getSearchKeyword()); + paginationInfo.setTotalRecordCount( resultAllResList.size()> 0 ? (Integer.parseInt((resultAllResList.get(0)).getTotMsgCnt())) : 0); + model.addAttribute("paginationInfo", paginationInfo); + model.addAttribute("totalRecordCount", paginationInfo.getTotalRecordCount());*/ + + + String startDate = mjonResvMsgVO.getStartDate(); + String endDate = mjonResvMsgVO.getEndDate(); + + if(startDate == null && endDate == null ) { + + Calendar cal = Calendar.getInstance(); + Date now = new Date(); + + SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd"); + + //종료일은 오늘날짜 + cal.setTime(now); + endDate = format.format(cal.getTime()); + + //시작일은 전날로 셋팅 + cal.add(Calendar.DATE, -1); + startDate = format.format(cal.getTime()); + + mjonResvMsgVO.setStartDate(startDate); + mjonResvMsgVO.setEndDate(endDate); + + } + + model.addAttribute("searchKeyword", mjonResvMsgVO.getSearchKeyword()); + model.addAttribute("mjonResvMsgVO", mjonResvMsgVO); + model.addAttribute("siteId", mjonResvMsgVO.getSiteId()); + return "web/reservedmsg/ReservedMsgView"; + } + + /** + * 마이페이지 - 이용내역 - ajax + * @param mjonMsgVO + * @param model + * @return "/web/member/pay/PayUserListAjax.do" + * @throws Exception + */ + @RequestMapping(value="/web/reservedmsg/subcontent/MsgSentView_HA_allSentAjax.do") + public String mberInfo_cash_pointAjax(@ModelAttribute("searchVO") MjonResvMsgVO mjonResvMsgVO, + HttpServletRequest request, + ModelMap model) throws Exception{ + + System.out.println("ReservedMsgSentView_HA_allSentAjax"); + + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); + + mjonResvMsgVO.setUserId(userId); //전체 발송 건수 통계 불러오기 @@ -169,77 +335,12 @@ public class MjonReservMsgController { apiKeyVO.setMberId(userId); model.addAttribute("appMgmt", apiKeyMngService.selectMberApiKeyChk(apiKeyVO) > 0 ? true : false); -// model.addAttribute("mmsMsgCnt", mmsMsgCnt); - - // 검색 리스트 불러오기 - if(mjonResvMsgVO.getPageUnit() != 10) { - mjonResvMsgVO.setPageUnit(mjonResvMsgVO.getPageUnit()); - } - //기본 내림차순 정렬 - if(mjonResvMsgVO.getSearchSortOrd().equals("")) { - - mjonResvMsgVO.setSearchSortOrd("desc"); - - } + + System.out.println("ReservedMsgSentView_HA_allSentAjax_end"); - //기본 등록일자 정렬 - if(mjonResvMsgVO.getSearchSortCnd().equals("")) { - - mjonResvMsgVO.setSearchSortCnd("regdate"); - - } - - /** pageing */ - /*PaginationInfo paginationInfo = new PaginationInfo(); - paginationInfo.setCurrentPageNo(mjonResvMsgVO.getPageIndex()); - paginationInfo.setRecordCountPerPage(mjonResvMsgVO.getPageUnit()); - paginationInfo.setPageSize(mjonResvMsgVO.getPageSize()); - - mjonResvMsgVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); - mjonResvMsgVO.setLastIndex(paginationInfo.getLastRecordIndex()); - mjonResvMsgVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());*/ - - //전체 발송 리스트 불러오기 - /*List resultAllResList = mjonReservMsgService.selectAllResvMsgList(mjonResvMsgVO); - model.addAttribute("resultAllResList", resultAllResList); - model.addAttribute("resultAllResCnt", resultAllResList.size()); - - model.addAttribute("searchKeyword", mjonResvMsgVO.getSearchKeyword()); - paginationInfo.setTotalRecordCount( resultAllResList.size()> 0 ? (Integer.parseInt((resultAllResList.get(0)).getTotMsgCnt())) : 0); - model.addAttribute("paginationInfo", paginationInfo); - model.addAttribute("totalRecordCount", paginationInfo.getTotalRecordCount());*/ - - - String startDate = mjonResvMsgVO.getStartDate(); - String endDate = mjonResvMsgVO.getEndDate(); - - if(startDate == null && endDate == null ) { - - Calendar cal = Calendar.getInstance(); - Date now = new Date(); - - SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd"); - - //종료일은 오늘날짜 - cal.setTime(now); - endDate = format.format(cal.getTime()); - - //시작일은 전날로 셋팅 - cal.add(Calendar.DATE, -1); - startDate = format.format(cal.getTime()); - - mjonResvMsgVO.setStartDate(startDate); - mjonResvMsgVO.setEndDate(endDate); - - } - - model.addAttribute("searchKeyword", mjonResvMsgVO.getSearchKeyword()); - model.addAttribute("mjonResvMsgVO", mjonResvMsgVO); - model.addAttribute("siteId", mjonResvMsgVO.getSiteId()); - return "web/reservedmsg/ReservedMsgView"; - } - + return "/web/reservedmsg/subcontent/ReservedMsgSentView_HA_allSentAjax"; + } /** diff --git a/src/main/java/itn/let/uat/uia/service/impl/EgovMberManageServiceImpl.java b/src/main/java/itn/let/uat/uia/service/impl/EgovMberManageServiceImpl.java index d81e731a..b51976bc 100644 --- a/src/main/java/itn/let/uat/uia/service/impl/EgovMberManageServiceImpl.java +++ b/src/main/java/itn/let/uat/uia/service/impl/EgovMberManageServiceImpl.java @@ -378,6 +378,9 @@ public class EgovMberManageServiceImpl extends EgovAbstractServiceImpl implement public List selectMberMsgSentLatestList(String mberId) throws Exception{ return mberManageDAO.selectMberMsgSentLatestList(mberId); } + public List selectMberMsgSentLatestListNew20240320(String mberId) throws Exception{ + return mberManageDAO.selectMberMsgSentLatestListNew20240320(mberId); + } //회원 최근 발송 문자내용 3개 불러오기(예약) public List selectMberMsgSentLatestList2(String mberId) throws Exception{ diff --git a/src/main/java/itn/let/uat/uia/service/impl/MberManageDAO.java b/src/main/java/itn/let/uat/uia/service/impl/MberManageDAO.java index 62398fa5..2068d743 100644 --- a/src/main/java/itn/let/uat/uia/service/impl/MberManageDAO.java +++ b/src/main/java/itn/let/uat/uia/service/impl/MberManageDAO.java @@ -212,6 +212,10 @@ public class MberManageDAO extends EgovComAbstractDAO{ public List selectMberMsgSentLatestList(String mberId) throws Exception{ return (List) list("mberManageDAO.selectMberMsgSentLatestList", mberId); } + @SuppressWarnings("unchecked") + public List selectMberMsgSentLatestListNew20240320(String mberId) throws Exception{ + return (List) list("mberManageDAO.selectMberMsgSentLatestListNew20240320", mberId); + } //회원 최근 발송 문자내용 3개 불러오기(예약) @SuppressWarnings("unchecked") diff --git a/src/main/java/itn/let/uat/uia/web/EgovMypageController.java b/src/main/java/itn/let/uat/uia/web/EgovMypageController.java index eee2f486..8e705e58 100644 --- a/src/main/java/itn/let/uat/uia/web/EgovMypageController.java +++ b/src/main/java/itn/let/uat/uia/web/EgovMypageController.java @@ -293,6 +293,9 @@ public class EgovMypageController { model.addAttribute("mberManageVO", mberManageVO); } + /* + * #1.로딩 문제 해결을 위해 ajax로 이전 2024-03-21 + * /web/user/subcontent/mberInfo_cash_pointAjax.do {//캐시 정보 List cashInfoList = mjonPayService.selectCashInfoList(userId); model.addAttribute("cashInfoList", cashInfoList); @@ -302,9 +305,15 @@ public class EgovMypageController { List pointInfoList = mjonPayService.selectPointInfoList(userId); model.addAttribute("pointInfoList", pointInfoList); } + */ + MjonMsgVO mjonMsgVO = new MjonMsgVO(); mjonMsgVO.setUserId(userId); + /* + * #2.로딩 문제 해결을 위해 ajax로 이전 2024-03-21 + * /web/user/subcontent/mberInfo_send_reservAjax.do + * { // 발송건수 mjonMsgVO.setReserveYn("N"); List sendTotList = mjonMsgService.selectWithKakaoSendTotCnt(mjonMsgVO); @@ -316,7 +325,7 @@ public class EgovMypageController { List reservToList = mjonMsgService.selectWithKakaoSendTotCnt(mjonMsgVO); model.addAttribute("reservToList", reservToList); } - + */ {// 충전캐시 @@ -329,12 +338,14 @@ public class EgovMypageController { model.addAttribute("sumPoint", sumPoint); } + /* {// 총 사용금액 MjonPayVO mjonPayVO = new MjonPayVO(); mjonPayVO.setUserId(userId); List usedCashTotList = mjonPayService.selectUsedCashWithKakaoTotCnt(mjonPayVO); model.addAttribute("usedCashTotList", usedCashTotList); } + */ {// 사용가능한 금액 MberManageVO mberManageVO = mjonMsgDataService.selectMberManageInfo(userId); @@ -363,10 +374,12 @@ public class EgovMypageController { } {//최근 발송 문자 내용 불러오기 - 최근 3개 내역만 - List mjonMsgSentList = mberManageService.selectMberMsgSentLatestList(userId); + List mjonMsgSentList = mberManageService.selectMberMsgSentLatestListNew20240320(userId); model.addAttribute("mjonMsgSentList", mjonMsgSentList); } + /* + * 2024-03-22 페이지 로딩 속도 개선을 위해 ajax로 처리 {//최근 발송 알림톡 내용 불러오기 - 최근 3개 내역만 KakaoSentVO kakaoSentVO = new KakaoSentVO(); kakaoSentVO.setUserId(userId); @@ -380,6 +393,7 @@ public class EgovMypageController { List kakaoATSentList = kakaoSentService.selectAllKakaoSentList(kakaoSentVO); model.addAttribute("kakaoATSentList", kakaoATSentList); } + */ {//최근 발송 팩스 내용 불러오기 - 최근 3개 내역만 FaxGroupDataVO faxGroupDataVO = new FaxGroupDataVO(); @@ -437,6 +451,111 @@ public class EgovMypageController { return "web/user/mberInfoIndex"; } + /** + * 마이페이지 - 이용내역 - ajax + * @param mjonMsgVO + * @param model + * @return "/web/member/pay/PayUserListAjax.do" + * @throws Exception + */ + @RequestMapping(value="/web/user/subcontent/mberInfo_cash_pointAjax.do") + public String mberInfo_cash_pointAjax(@ModelAttribute("searchVO") MjonMsgVO mjonMsgVO, + HttpServletRequest request, + ModelMap model) throws Exception{ + + System.out.println("mberInfo_cash_pointAjax"); + + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); + + + {//캐시 정보 + List cashInfoList = mjonPayService.selectCashInfoList(userId); + model.addAttribute("cashInfoList", cashInfoList); + } + + {//포인트 정보 + List pointInfoList = mjonPayService.selectPointInfoList(userId); + model.addAttribute("pointInfoList", pointInfoList); + } + + System.out.println("mberInfo_cash_pointAjax_end"); + + return "/web/user/subcontent/mberInfo_cash_pointAjax"; + } + + /** + * 마이페이지 - 이용내역 - 발송건수/예약건수 ajax + * @param mjonMsgVO + * @param model + * @return "/web/member/pay/PayUserListAjax.do" + * @throws Exception + */ + @RequestMapping(value="/web/user/subcontent/mberInfo_send_reservAjax.do") + public String mberInfo_send_reservAjax( + HttpServletRequest request, + ModelMap model) throws Exception{ + + System.out.println("mberInfo_cash_pointAjax"); + + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); + + MjonMsgVO mjonMsgVO = new MjonMsgVO(); + mjonMsgVO.setUserId(userId); + + { // 발송건수 + mjonMsgVO.setReserveYn("N"); + List sendTotList = mjonMsgService.selectWithKakaoSendTotCnt(mjonMsgVO); + model.addAttribute("sendTotList", sendTotList); + } + + { // 예약건수 + mjonMsgVO.setReserveYn("Y"); + List reservToList = mjonMsgService.selectWithKakaoSendTotCnt(mjonMsgVO); + model.addAttribute("reservToList", reservToList); + } + + System.out.println("mberInfo_cash_pointAjax_end"); + + return "/web/user/subcontent/mberInfo_send_reservAjax"; + } + + /** + * 마이페이지 - 최근발송내역-알림톡 + * @param mjonMsgVO + * @param model + * @return "/web/member/pay/PayUserListAjax.do" + * @throws Exception + */ + @RequestMapping(value="/web/user/subcontent/mberInfo_kakaoATSentListAjax.do") + public String mberInfo_kakaoATSentListAjax( + HttpServletRequest request, + ModelMap model) throws Exception{ + + System.out.println("mberInfo_kakaoATSentListAjax"); + + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); + + {//최근 발송 알림톡 내용 불러오기 - 최근 3개 내역만 + KakaoSentVO kakaoSentVO = new KakaoSentVO(); + kakaoSentVO.setUserId(userId); + kakaoSentVO.setTabType("at"); + kakaoSentVO.setRecordCountPerPage(3); + kakaoSentVO.setFirstIndex(0); + kakaoSentVO.setListType("groupList"); + kakaoSentVO.setStateType("all"); + kakaoSentVO.setSearchSortOrd("desc"); + kakaoSentVO.setSearchSortCnd("regdate"); + List kakaoATSentList = kakaoSentService.selectAllKakaoSentList(kakaoSentVO); + model.addAttribute("kakaoATSentList", kakaoATSentList); + } + + System.out.println("mberInfo_kakaoATSentListAjax_end"); + + return "/web/user/subcontent/mberInfo_kakaoATSentListAjax"; + } //발송문자 건수 계산하는 함수 public String[] getTotalSendCnt(List mjonMsgSentVO) { diff --git a/src/main/java/itn/let/uss/umt/service/EgovMberManageService.java b/src/main/java/itn/let/uss/umt/service/EgovMberManageService.java index a333609d..e03cbeff 100644 --- a/src/main/java/itn/let/uss/umt/service/EgovMberManageService.java +++ b/src/main/java/itn/let/uss/umt/service/EgovMberManageService.java @@ -198,6 +198,8 @@ public interface EgovMberManageService { //회원 최근 발송 문자내용 3개 불러오기 public List selectMberMsgSentLatestList(String mberId) throws Exception; + //성능개선 2024-03-20 + public List selectMberMsgSentLatestListNew20240320(String mberId) throws Exception; //회원 최근 발송 문자내용 3개 불러오기(예약) public List selectMberMsgSentLatestList2(String mberId) throws Exception; diff --git a/src/main/java/itn/let/uss/umt/web/EgovUserManageController.java b/src/main/java/itn/let/uss/umt/web/EgovUserManageController.java index c367dd89..95c2cbc6 100644 --- a/src/main/java/itn/let/uss/umt/web/EgovUserManageController.java +++ b/src/main/java/itn/let/uss/umt/web/EgovUserManageController.java @@ -1194,7 +1194,7 @@ public class EgovUserManageController { model.addAttribute("flowTypeCode", cmmUseService.selectCmmCodeDetail(vo)); //최근 발송 문자 내용 불러오기 - 최근 3개 내역만 - List mjonMsgSentList = mberManageService.selectMberMsgSentLatestList(userId); + List mjonMsgSentList = mberManageService.selectMberMsgSentLatestListNew20240320(userId); model.addAttribute("mjonMsgSentList", mjonMsgSentList); //최근 발송 문자 내용 불러오기 - 최근 3개 내역만(에약) diff --git a/src/main/resources/egovframework/sqlmap/let/mjo/event/Event_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/let/mjo/event/Event_SQL_Mysql.xml index bb0a9fad..c20c47d3 100644 --- a/src/main/resources/egovframework/sqlmap/let/mjo/event/Event_SQL_Mysql.xml +++ b/src/main/resources/egovframework/sqlmap/let/mjo/event/Event_SQL_Mysql.xml @@ -74,6 +74,7 @@ + /* KakaoSentDAO.selectAllKakaoSentList */ SELECT M2.totMsgCnt , M2.userId , @@ -478,6 +479,7 @@ + /* mjonMsgDAO.selectMberManageInfo */ SELECT MBER_ID AS mberId , MBER_NM AS mberNm @@ -6604,6 +6605,7 @@ - /* 발송결과 상단 전광판 조회(전체, 단문, 장문, 그림) MIX 결과 수량 */ + /* MjonMsgSentDAO.selectDetailMsgSentCntMix - 발송결과 상단 전광판 조회(전체, 단문, 장문, 그림) MIX 결과 수량 */ SELECT A0.MSG_GROUP_ID AS msgGroupId , COUNT(A0.RESULT) AS msgResultCnt diff --git a/src/main/resources/egovframework/sqlmap/let/pay/MjonPay_SQL_mysql.xml b/src/main/resources/egovframework/sqlmap/let/pay/MjonPay_SQL_mysql.xml index b54485e2..c0fa44ab 100644 --- a/src/main/resources/egovframework/sqlmap/let/pay/MjonPay_SQL_mysql.xml +++ b/src/main/resources/egovframework/sqlmap/let/pay/MjonPay_SQL_mysql.xml @@ -2149,6 +2149,7 @@ + /* mberManageDAO.selectMberMsgSentLatestList */ SELECT msgId , msgGroupId @@ -1438,7 +1439,137 @@ + +