diff --git a/src/main/java/itn/let/kakao/user/kakaoAt/web/KakaoAlimTalkTemplateController.java b/src/main/java/itn/let/kakao/user/kakaoAt/web/KakaoAlimTalkTemplateController.java index 20e7a768..6ffe730c 100644 --- a/src/main/java/itn/let/kakao/user/kakaoAt/web/KakaoAlimTalkTemplateController.java +++ b/src/main/java/itn/let/kakao/user/kakaoAt/web/KakaoAlimTalkTemplateController.java @@ -564,6 +564,8 @@ public class KakaoAlimTalkTemplateController { return "redirect:/web/user/login/login.do"; } + model.addAttribute("loginVO", loginVO); + // 사용자 아이디를 이용한 발신프로필 조회 kakaoVO.setUserId(userId); List selectKakaoProfileList = kakaoApiService.selectKakaoProfileList(kakaoVO); @@ -750,6 +752,8 @@ public class KakaoAlimTalkTemplateController { LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); + model.addAttribute("loginVO", loginVO); + if(userId == "") { model.addAttribute("message", "로그인 후 이용이 가능합니다."); return "redirect:/web/user/login/login.do"; diff --git a/src/main/java/itn/let/mjo/msg/service/MjonMsgVO.java b/src/main/java/itn/let/mjo/msg/service/MjonMsgVO.java index 2a8012c5..f29edcf9 100644 --- a/src/main/java/itn/let/mjo/msg/service/MjonMsgVO.java +++ b/src/main/java/itn/let/mjo/msg/service/MjonMsgVO.java @@ -204,6 +204,7 @@ public class MjonMsgVO extends ComDefaultVO{ private int failSendCnt; private double succSendPrice; private double failSendPrice; + private double totSuccSendPrice; public String getSearchDelayMsgYn() { return searchDelayMsgYn; @@ -499,6 +500,7 @@ public class MjonMsgVO extends ComDefaultVO{ private double supplyPrice; // 공급가액 private double vatPrice; // 부가세 private double totalPrice; // 금액 + private String addVatType; // 부가세 포함 여부 private String addrGrpId; // 주소록 그룹아이디 private String addrGrpNm; // 주소록 그룹명 @@ -1298,6 +1300,12 @@ public class MjonMsgVO extends ComDefaultVO{ public void setTotalPrice(double totalPrice) { this.totalPrice = totalPrice; } + public String getAddVatType() { + return addVatType; + } + public void setAddVatType(String addVatType) { + this.addVatType = addVatType; + } public String getDetailType() { return detailType; } @@ -1624,4 +1632,10 @@ public class MjonMsgVO extends ComDefaultVO{ public void setFailSendPrice(double failSendPrice) { this.failSendPrice = failSendPrice; } + public double getTotSuccSendPrice() { + return totSuccSendPrice; + } + public void setTotSuccSendPrice(double totSuccSendPrice) { + this.totSuccSendPrice = totSuccSendPrice; + } } diff --git a/src/main/java/itn/let/mjo/pay/service/MjonPayService.java b/src/main/java/itn/let/mjo/pay/service/MjonPayService.java index cce02bc6..6e498bfa 100644 --- a/src/main/java/itn/let/mjo/pay/service/MjonPayService.java +++ b/src/main/java/itn/let/mjo/pay/service/MjonPayService.java @@ -127,8 +127,16 @@ public interface MjonPayService { //총 사용금액 - 카카오 추가 List selectUsedCashWithKakaoTotCnt(MjonPayVO mjonPayVO) throws Exception; - List selectCashInfoList(String userId) throws Exception; List selectPointInfoList(String userId) throws Exception; + + //누적 사용금액 조회 (캐시 테이블에서 현재까지 사용된 금액 합산 - 캐시 테이블에서 "-"로 사용된 금액만 합산) + public String selectTotalSumCashForAfterPay(String userId) throws Exception; + + //누적 사용 포인트 조회 (포인트 테이블에서 현재까지 사용된 포인트 합산 - 회원 포인트 정보 업데이트시 사용되는 쿼리 이용) + public String selectTotalSumPointForAfterPay(String userId) throws Exception; + + //누적 납부금액 조회 (후불회원이 사용금액을 실 납부한 금액 합산 - 미납 금액 제외한 총 합산 금액) + public String selectTotSumPaymentAfterPay(String userId) throws Exception; } diff --git a/src/main/java/itn/let/mjo/pay/service/impl/MjonPayDAO.java b/src/main/java/itn/let/mjo/pay/service/impl/MjonPayDAO.java index ed872913..b7e49b1f 100644 --- a/src/main/java/itn/let/mjo/pay/service/impl/MjonPayDAO.java +++ b/src/main/java/itn/let/mjo/pay/service/impl/MjonPayDAO.java @@ -302,4 +302,56 @@ public class MjonPayDAO extends EgovAbstractDAO { } + //누적 사용금액 조회 (캐시 테이블에서 현재까지 사용된 금액 합산 - 캐시 테이블에서 "-"로 사용된 금액만 합산) + public String selectTotalSumCashForAfterPay(String userId) throws Exception{ + + String result = ""; + + try { + + result = (String) select("mjonPayDAO.selectTotalSumCashForAfterPay", userId); + + } catch (Exception e) { + System.out.println("selectTotalSumCashForAfterPay DAO Error!!! " + e); + } + + return result; + + } + + + //누적 사용 포인트 조회 (포인트 테이블에서 현재까지 사용된 포인트 합산 - 회원 포인트 정보 업데이트시 사용되는 쿼리 이용) + public String selectTotalSumPointForAfterPay(String userId) throws Exception{ + + String result = ""; + + try { + + result = (String) select("mjonPayDAO.selectTotalSumPointForAfterPay", userId); + + } catch (Exception e) { + System.out.println("selectTotalSumPointForAfterPay DAO Error!!! " + e); + } + + return result; + + } + + //누적 납부금액 조회 (후불회원이 사용금액을 실 납부한 금액 합산 - 미납 금액 제외한 총 합산 금액) + public String selectTotSumPaymentAfterPay(String userId) throws Exception{ + + String result = ""; + + try { + + result = (String) select("mjonPayDAO.selectTotSumPaymentAfterPay", userId); + + } catch (Exception e) { + System.out.println("selectTotSumPaymentAfterPay DAO Error!!! " + e); + } + + return result; + + } + } diff --git a/src/main/java/itn/let/mjo/pay/service/impl/MjonPayServiceImpl.java b/src/main/java/itn/let/mjo/pay/service/impl/MjonPayServiceImpl.java index 1c870c2c..252dd2b6 100644 --- a/src/main/java/itn/let/mjo/pay/service/impl/MjonPayServiceImpl.java +++ b/src/main/java/itn/let/mjo/pay/service/impl/MjonPayServiceImpl.java @@ -2743,6 +2743,59 @@ public class MjonPayServiceImpl extends EgovAbstractServiceImpl implements MjonP return mjonPayDAO.selectPointInfoList(userId); } + //누적 사용금액 조회 (캐시 테이블에서 현재까지 사용된 금액 합산 - 캐시 테이블에서 "-"로 사용된 금액만 합산) + @Override + public String selectTotalSumCashForAfterPay(String userId) throws Exception{ + + String result = ""; + + try { + + result = mjonPayDAO.selectTotalSumCashForAfterPay(userId); + + } catch (Exception e) { + System.out.println("selectTotalSumCashForAfterPay Service Imple Error!!! " + e); + } + + return result; + + } + + //누적 사용 포인트 조회 (포인트 테이블에서 현재까지 사용된 포인트 합산 - 회원 포인트 정보 업데이트시 사용되는 쿼리 이용) + @Override + public String selectTotalSumPointForAfterPay(String userId) throws Exception{ + + String result = ""; + + try { + + result = mjonPayDAO.selectTotalSumPointForAfterPay(userId); + + } catch (Exception e) { + System.out.println("selectTotalSumPointForAfterPay Service Imple Error!!! " + e); + } + + return result; + + } + + //누적 납부금액 조회 (후불회원이 사용금액을 실 납부한 금액 합산 - 미납 금액 제외한 총 합산 금액) + @Override + public String selectTotSumPaymentAfterPay(String userId) throws Exception{ + + String result = ""; + + try { + + result = mjonPayDAO.selectTotSumPaymentAfterPay(userId); + + } catch (Exception e) { + System.out.println("selectTotSumPaymentAfterPay Service Imple Error!!! " + e); + } + + return result; + + } } diff --git a/src/main/java/itn/let/mjo/pay/web/MjonPayController.java b/src/main/java/itn/let/mjo/pay/web/MjonPayController.java index 3664c25d..dfefc82b 100644 --- a/src/main/java/itn/let/mjo/pay/web/MjonPayController.java +++ b/src/main/java/itn/let/mjo/pay/web/MjonPayController.java @@ -1931,6 +1931,13 @@ public class MjonPayController { // End } */ + + //후불제 회원 여부 조회 + UserManageVO userManageVO = new UserManageVO(); + userManageVO.setMberId(userId); + userManageVO = userManageService.selectAdminSmsNoticeYn(userManageVO); + + model.addAttribute("prePaymentYn", userManageVO.getPrePaymentYn()); if(pattern.equals("/web/member/pay/PayListAllAjax.do") || pattern.equals("/web/member/pay/PayListMobileAjax.do") @@ -2099,13 +2106,6 @@ public class MjonPayController { return "/web/pay/PayListAllAjax"; } - //후불제 회원 여부 조회 - UserManageVO userManageVO = new UserManageVO(); - userManageVO.setMberId(userId); - userManageVO = userManageService.selectAdminSmsNoticeYn(userManageVO); - - model.addAttribute("prePaymentYn", userManageVO.getPrePaymentYn()); - return "/web/pay/PayList"; } @@ -2624,7 +2624,7 @@ public class MjonPayController { model.addAttribute("reservToList", reservToList); } - { + {// 선거 후보자 정보 조회 MjonCandidateVO mjonCandidateVO = new MjonCandidateVO(); if("p".equals(mberManageVO.getDept())) { //개인회원 선거 후보자 정보 불러오기 mjonCandidateVO = mjonCandidateService.selectCandidateDataInfo(userId); @@ -2635,6 +2635,49 @@ public class MjonPayController { } model.addAttribute("mjonCandidateVO", mjonCandidateVO); } + + + { + /** + * 후불제 회원 관련 사용 요금 내역 정보 조회하기 + * 20231228 우영두 추가 + * 누적사용금액, 누적 납부금액, 당월 납부 예상금액 정보 조회 + * + * */ + + //누적 사용금액 조회 (캐시 테이블에서 현재까지 사용된 금액 합산 - 캐시 테이블에서 "-"로 사용된 금액만 합산) + String totSumCashAfterPay = mjonPayService.selectTotalSumCashForAfterPay(userId); + model.addAttribute("totSumCashAfterPay", totSumCashAfterPay); + + //누적 사용 포인트 조회 (포인트 테이블에서 현재까지 사용된 포인트 합산 - 회원 포인트 정보 업데이트시 사용되는 쿼리 이용) + String totSumPointAfterPay = mjonPayService.selectTotalSumPointForAfterPay(userId); + model.addAttribute("totSumPointAfterPay", totSumPointAfterPay); + + //누적 납부금액 조회 (후불회원이 사용금액을 실 납부한 금액 합산 - 미납 금액 제외한 총 합산 금액) + String totSumPaymentAfterPay = mjonPayService.selectTotSumPaymentAfterPay(userId); + model.addAttribute("totSumPaymentAfterPay", totSumPaymentAfterPay); + + //누적 납부 포인트 조회 ( 누적 납부금액 합산에 대한 2% 포인트 정보 계산) + float p_i_re_point = 0; + JoinSettingVO sysJoinSetVO = mjonMsgDataService.selectJoinSettingInfo(); + if (sysJoinSetVO != null) { + p_i_re_point = sysJoinSetVO.getPointPer(); + } + int paymentPointAfterPay = Math.round((Float.parseFloat(totSumPaymentAfterPay) * p_i_re_point / 100)); + model.addAttribute("sumPaymentPointAfterPay", paymentPointAfterPay); + + //당월 납부 예상금액 (누적 사용금액 합산 - 누적 납부금액 합산 정보 계산) + + float unPaymentAfterPay = Float.parseFloat(totSumCashAfterPay) - Float.parseFloat(totSumPaymentAfterPay); + model.addAttribute("unPaymentAfterPay", unPaymentAfterPay); + + //당월 납부 예상 포인트 (당월 납부 예상 금액에 대한 2% 포인트 정보 계산) + int unPaymentPointAfterPay = Math.round((unPaymentAfterPay * p_i_re_point / 100)); + model.addAttribute("unPaymentPointAfterPay", unPaymentPointAfterPay); + + } + + return "/web/pay/PayUserSWList"; } @@ -2656,32 +2699,44 @@ public class MjonPayController { String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); mjonMsgVO.setUserId(userId); - if(mjonMsgVO.getPageUnit() != 10) { - mjonMsgVO.setPageUnit(mjonMsgVO.getPageUnit()); - } - - /** pageing */ - PaginationInfo paginationInfo = new PaginationInfo(); - paginationInfo.setCurrentPageNo(mjonMsgVO.getPageIndex()); - paginationInfo.setRecordCountPerPage(mjonMsgVO.getPageUnit()); - paginationInfo.setPageSize(mjonMsgVO.getPageSize()); + try { + + if(mjonMsgVO.getPageUnit() != 10) { + mjonMsgVO.setPageUnit(mjonMsgVO.getPageUnit()); + } + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(mjonMsgVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(mjonMsgVO.getPageUnit()); + paginationInfo.setPageSize(mjonMsgVO.getPageSize()); - mjonMsgVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); - mjonMsgVO.setLastIndex(paginationInfo.getLastRecordIndex()); - mjonMsgVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); - - if("".equals(mjonMsgVO.getSearchSortCnd())){ //최초조회시 최신것 조회List - mjonMsgVO.setSearchSortCnd("regDate"); - mjonMsgVO.setSearchSortOrd("desc"); + mjonMsgVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + mjonMsgVO.setLastIndex(paginationInfo.getLastRecordIndex()); + mjonMsgVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + if("".equals(mjonMsgVO.getSearchSortCnd())){ //최초조회시 최신것 조회List + mjonMsgVO.setSearchSortCnd("regDate"); + mjonMsgVO.setSearchSortOrd("desc"); + } + + List payUserSWList = mjonMsgDataService.selectPayUserSWList(mjonMsgVO); + + paginationInfo.setTotalRecordCount(payUserSWList.size()> 0 ? payUserSWList.get(0).getTotCnt() : 0); + model.addAttribute("paginationInfo", paginationInfo); + model.addAttribute("payUserSWList", payUserSWList); + + if(payUserSWList.size() > 0) { + model.addAttribute("totSuccSendPrice", payUserSWList.get(0).getTotSuccSendPrice()); + }else { + model.addAttribute("totSuccSendPrice", 0); + } + + } catch (Exception e) { + System.out.println("PayUserSWListAjax Controller Error!!! " + e); } - List payUserSWList = mjonMsgDataService.selectPayUserSWList(mjonMsgVO); - - paginationInfo.setTotalRecordCount(payUserSWList.size()> 0 ? payUserSWList.get(0).getTotCnt() : 0); - model.addAttribute("paginationInfo", paginationInfo); - model.addAttribute("payUserSWList", payUserSWList); - return "/web/pay/PayUserSWListAjax"; } @@ -2948,6 +3003,41 @@ public class MjonPayController { try { wb.close(); } catch(Exception ignore) {} } } + + + @RequestMapping(value= {"/web/member/pay/PrintPayUserSWListAjax.do"}) + public String printPayUserSWListAjax( + @ModelAttribute("searchVO") MjonMsgVO mjonMsgVO + , RedirectAttributes redirectAttributes + , ModelMap model) throws Exception { + //로그인 권한정보 불러오기 + LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; + String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); + String userNm = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getName()); + + mjonMsgVO.setUserId(userId); + model.addAttribute("userNm", userNm); + + + mjonMsgVO.setFirstIndex(0); + mjonMsgVO.setRecordCountPerPage(10000); + + //결제 리스트 정보 불러오기 + List payUserList = mjonMsgDataService.selectPayUserSWList(mjonMsgVO); + model.addAttribute("payUserList", payUserList); + + Calendar cal = Calendar.getInstance(); + + int year = cal.get(Calendar.YEAR); + int month = cal.get(Calendar.MONTH) + 1; + int day = cal.get(Calendar.DAY_OF_MONTH); + + model.addAttribute("year", year); + model.addAttribute("month", month); + model.addAttribute("day", day); + + return "web/pay/PrintPayUserSWListPopUp"; + } @@ -3844,9 +3934,11 @@ public class MjonPayController { MberManageVO tmpMberManageVO = mjonMsgDataService.selectMberManageInfo(mberId); String dept = tmpMberManageVO.getDept(); - if(dept.equals("p") && taxCNm != null && taxCNm.length() > 0) { + //후보자 정보 조회 + MjonCandidateVO mjonCandidateVO = mjonCandidateService.selectCandidateDataInfo(mberId); + + if(mjonCandidateVO != null && dept.equals("p") && taxCNm != null && taxCNm.length() > 0) { - MjonCandidateVO mjonCandidateVO = mjonCandidateService.selectCandidateDataInfo(mberId); String candidateNm = mjonCandidateVO.getCandidateNm(); if(candidateNm != null && candidateNm.length() > 0) { @@ -4730,7 +4822,10 @@ public class MjonPayController { if(!"".equals(startDate)) { startDate = startDate.replaceAll("/", "-"); }else { - startDate = transFormat.format(minRegDate); + + if(minRegDate != null) { + startDate = transFormat.format(minRegDate); + } } model.addAttribute("startDate", startDate); @@ -4738,7 +4833,9 @@ public class MjonPayController { if(!"".equals(endDate)) { endDate = endDate.replaceAll("/", "-"); }else { - endDate = transFormat.format(maxRegDate); + if(maxRegDate != null) { + endDate = transFormat.format(maxRegDate); + } } model.addAttribute("endDate", endDate); @@ -4772,6 +4869,12 @@ public class MjonPayController { model.addAttribute("mberNm", mberNm); model.addAttribute("managerNm", managerNm); model.addAttribute("moblphonNo", moblphonNo); + + //부가세 포함 가격 정보 계산 + double addTax = Math.round(totalSumPrice * 0.1); + + model.addAttribute("addTax", decFormat.format(addTax)); + model.addAttribute("addTaxSumPrice", decFormat.format(addTax+totalSumPrice)); return "/web/pay/MsgPrintUsageDetailsPopUp"; @@ -4966,7 +5069,9 @@ public class MjonPayController { if(!"".equals(startDate)) { startDate = startDate.replaceAll("/", "-"); }else { - startDate = transFormat.format(minRegDate); + if(minRegDate != null) { + startDate = transFormat.format(minRegDate); + } } model.addAttribute("startDate", startDate); @@ -4974,7 +5079,9 @@ public class MjonPayController { if(!"".equals(endDate)) { endDate = endDate.replaceAll("/", "-"); }else { - endDate = transFormat.format(maxRegDate); + if(maxRegDate != null) { + endDate = transFormat.format(maxRegDate); + } } model.addAttribute("endDate", endDate); @@ -5010,6 +5117,13 @@ public class MjonPayController { model.addAttribute("managerNm", managerNm); model.addAttribute("moblphonNo", moblphonNo); + + //부가세 포함 가격 정보 계산 + double addTax = Math.round(totalSumPrice * 0.1); + + model.addAttribute("addTax", decFormat.format(addTax)); + model.addAttribute("addTaxSumPrice", decFormat.format(addTax+totalSumPrice)); + return "/web/pay/MsgPrintStatementPopUp"; } diff --git a/src/main/java/itn/let/mjo/test/web/TestController.java b/src/main/java/itn/let/mjo/test/web/TestController.java index af8ab845..607ae395 100644 --- a/src/main/java/itn/let/mjo/test/web/TestController.java +++ b/src/main/java/itn/let/mjo/test/web/TestController.java @@ -3,11 +3,8 @@ package itn.let.mjo.test.web; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; -import java.io.UnsupportedEncodingException; import java.math.BigDecimal; import java.math.RoundingMode; -import java.net.URLEncoder; -import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; @@ -23,7 +20,6 @@ import java.util.Map; import javax.annotation.Resource; import javax.imageio.ImageIO; -import javax.mail.internet.ContentDisposition; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; @@ -36,7 +32,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.core.env.SystemEnvironmentPropertySource; import org.springframework.core.io.ByteArrayResource; import org.springframework.core.io.FileSystemResource; import org.springframework.http.HttpEntity; @@ -224,6 +219,10 @@ public class TestController { @Resource(name = "mberGrdService") MberGrdService mberGrdService; + /** 후불제 자동 충전 서비스 */ + @Resource (name = "userManageService") + private EgovUserManageService egovUserManageService; + private static final Logger logger = LoggerFactory.getLogger(TestController.class); ///////////////////////////////////////////////////////////////////////////////////////// @@ -3276,4 +3275,20 @@ public class TestController { } + @RequestMapping(value="/web/mjon/test/insertAfterPayCashChargeSchedulerAjax.do") + public void testAfterPayCashCharge() throws Exception{ + + System.out.println("=================================testAfterPayCashCharge Start=========================================="); + + try { + + egovUserManageService.updateUserCashByAutoCash(); + + } catch (Exception e) { + System.out.println("++++++++++++++ testAfterPayCashCharge Error!!! "+e); + } + + } + + } 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 cce20cc8..eee2f486 100644 --- a/src/main/java/itn/let/uat/uia/web/EgovMypageController.java +++ b/src/main/java/itn/let/uat/uia/web/EgovMypageController.java @@ -392,6 +392,48 @@ public class EgovMypageController { model.addAttribute("pageTab", "myPageIndex"); model.addAttribute("loginVO", loginVO); + + + { + + /** + * 후불제 회원 관련 사용 요금 내역 정보 조회하기 + * 20240102 우영두 추가 + * 누적사용금액, 누적 납부금액, 당월 납부 예상금액 정보 조회 + * + * */ + + //누적 사용금액 조회 (캐시 테이블에서 현재까지 사용된 금액 합산 - 캐시 테이블에서 "-"로 사용된 금액만 합산) + String totSumCashAfterPay = mjonPayService.selectTotalSumCashForAfterPay(userId); + model.addAttribute("totSumCashAfterPay", totSumCashAfterPay); + + //누적 사용 포인트 조회 (포인트 테이블에서 현재까지 사용된 포인트 합산 - 회원 포인트 정보 업데이트시 사용되는 쿼리 이용) + String totSumPointAfterPay = mjonPayService.selectTotalSumPointForAfterPay(userId); + model.addAttribute("totSumPointAfterPay", totSumPointAfterPay); + + //누적 납부금액 조회 (후불회원이 사용금액을 실 납부한 금액 합산 - 미납 금액 제외한 총 합산 금액) + String totSumPaymentAfterPay = mjonPayService.selectTotSumPaymentAfterPay(userId); + model.addAttribute("totSumPaymentAfterPay", totSumPaymentAfterPay); + + //누적 납부 포인트 조회 ( 누적 납부금액 합산에 대한 2% 포인트 정보 계산) + float p_i_re_point = 0; + JoinSettingVO sysJoinSetVO = mjonMsgDataService.selectJoinSettingInfo(); + if (sysJoinSetVO != null) { + p_i_re_point = sysJoinSetVO.getPointPer(); + } + int paymentPointAfterPay = Math.round((Float.parseFloat(totSumPaymentAfterPay) * p_i_re_point / 100)); + model.addAttribute("sumPaymentPointAfterPay", paymentPointAfterPay); + + //당월 납부 예상금액 (누적 사용금액 합산 - 누적 납부금액 합산 정보 계산) + float unPaymentAfterPay = Float.parseFloat(totSumCashAfterPay) - Float.parseFloat(totSumPaymentAfterPay); + model.addAttribute("unPaymentAfterPay", unPaymentAfterPay); + + //당월 납부 예상 포인트 (당월 납부 예상 금액에 대한 2% 포인트 정보 계산) + int unPaymentPointAfterPay = Math.round((unPaymentAfterPay * p_i_re_point / 100)); + model.addAttribute("unPaymentPointAfterPay", unPaymentPointAfterPay); + + } + return "web/user/mberInfoIndex"; } diff --git a/src/main/java/itn/let/uss/umt/service/UserManageVO.java b/src/main/java/itn/let/uss/umt/service/UserManageVO.java index 34c01c73..4a16379b 100644 --- a/src/main/java/itn/let/uss/umt/service/UserManageVO.java +++ b/src/main/java/itn/let/uss/umt/service/UserManageVO.java @@ -207,6 +207,7 @@ public class UserManageVO extends UserDefaultVO{ private String atSmishingYn; // 알림톡 스미싱 의심여부 private String spamYn; private String nextPayMethod; + private float paymentCash; //이전달에 실제 사용한 캐시 정보 public String getNextPayMethod() { return nextPayMethod; @@ -731,6 +732,12 @@ public class UserManageVO extends UserDefaultVO{ public void setVipYn(String vipYn) { this.vipYn = vipYn; } + public float getPaymentCash() { + return paymentCash; + } + public void setPaymentCash(float paymentCash) { + this.paymentCash = paymentCash; + } diff --git a/src/main/java/itn/let/uss/umt/service/impl/EgovUserManageServiceImpl.java b/src/main/java/itn/let/uss/umt/service/impl/EgovUserManageServiceImpl.java index 197f2f8f..ed208c26 100644 --- a/src/main/java/itn/let/uss/umt/service/impl/EgovUserManageServiceImpl.java +++ b/src/main/java/itn/let/uss/umt/service/impl/EgovUserManageServiceImpl.java @@ -698,7 +698,12 @@ public class EgovUserManageServiceImpl extends EgovAbstractServiceImpl implement public void updateUserCashByAutoCash() throws Exception { List userPrePaymentYnList = userManageDAO.selectUserPrePaymentYnList(new UserManageVO()); for (UserManageVO umVO: userPrePaymentYnList) { - if (umVO.getNowChargeCash() > 0) { + if (umVO.getPaymentCash() > 0) { + + //이번달에 입력된 후불 결제요청 데이터가 있는지 확인 - 혹시나 중복 입력을 방지하기 위함 + int paymentCnt = userManageDAO.selectUserPrePaymentPGdataCount(umVO.getMberId()); + + if(paymentCnt > 0) continue; //회원 정보 조회 MberManageVO mberManageVO = mberManageDAO.selectMber(umVO.getMberId()); //멤버ID에서 유니크ID로 수정 필요 diff --git a/src/main/java/itn/let/uss/umt/service/impl/UserManageDAO.java b/src/main/java/itn/let/uss/umt/service/impl/UserManageDAO.java index f7f5c2dc..8e5285f0 100644 --- a/src/main/java/itn/let/uss/umt/service/impl/UserManageDAO.java +++ b/src/main/java/itn/let/uss/umt/service/impl/UserManageDAO.java @@ -316,4 +316,9 @@ public class UserManageDAO extends EgovAbstractDAO{ return (List) list("userManageDAO.selectUserPrePaymentYnList", userManageVO); } + // 이번달 입력된 결제요청 정보가 있는지 체크 + public int selectUserPrePaymentPGdataCount(String userId) throws Exception{ + return (int) select("userManageDAO.selectUserPrePaymentPGdataCount", userId); + } + } \ No newline at end of file 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 f27f65e8..c367dd89 100644 --- a/src/main/java/itn/let/uss/umt/web/EgovUserManageController.java +++ b/src/main/java/itn/let/uss/umt/web/EgovUserManageController.java @@ -2714,6 +2714,23 @@ public class EgovUserManageController { msg = "로그인이 필요합니다."; } else { + + MberManageVO mberManageVO = mberManageService.selectMber(userManageVO.getMberId()); + + String taxbillAuto = mberManageVO.getTaxbillAuto(); + + if(taxbillAuto == null || taxbillAuto.equals("N")) { + + isSuccess = false; + msg = "세금계산서 자동발행의 선택이 안되어 있습니다. 확인 부탁드리겠습니다."; + + modelAndView.addObject("isSuccess", isSuccess); + modelAndView.addObject("msg", msg); + + return modelAndView; + + } + int payCnt = userManageService.selectPayCountByUser(userManageVO); if (payCnt > 0) { isSuccess = false; diff --git a/src/main/java/itn/web/MainController.java b/src/main/java/itn/web/MainController.java index 80ae9fce..7b49002e 100644 --- a/src/main/java/itn/web/MainController.java +++ b/src/main/java/itn/web/MainController.java @@ -1169,6 +1169,31 @@ public class MainController { model.addAttribute("myBankList", myBankList); + String prePaymentYn = ""; + if(loginVO != null) { + + String auth = loginVO.getAuthority(); + + //사용자 권한인 경우만 실행 + if(!auth.equals("ROLE_ADMIN")) { + + //후불회원 여부 조회 + UserManageVO userManageVO = new UserManageVO(); + + if(!userId.equals("")) { + userManageVO.setMberId(userId); + userManageVO = userManageService.selectAdminSmsNoticeYn(userManageVO); + } + + if(userManageVO.getPrePaymentYn() != null) { + prePaymentYn = userManageVO.getPrePaymentYn(); + } + + } + + } + model.addAttribute("prePaymentYn", prePaymentYn); + return "web/com/webCommonHeader"; } diff --git a/src/main/resources/egovframework/egovProps/globals_dev.properties b/src/main/resources/egovframework/egovProps/globals_dev.properties index 397b3988..1ee51c85 100644 --- a/src/main/resources/egovframework/egovProps/globals_dev.properties +++ b/src/main/resources/egovframework/egovProps/globals_dev.properties @@ -99,7 +99,7 @@ Globals.mjon.biz.kakao.apiKey=dheBWCONP6J5 Globals.fax.xpedite.id=kr/itn0202 -Globals.fax.xpedite.pw=easytour7! +Globals.fax.xpedite.pw=on240101! Globals.fax.file.save.path=/usr/local/tomcat/file/sht/fax Globals.fax.file.convert.path=/usr/local/tomcat/file/sht/fax/Convert Globals.fax.file.ori.path=/usr/local/tomcat/file/sht/fax diff --git a/src/main/resources/egovframework/egovProps/globals_local.properties b/src/main/resources/egovframework/egovProps/globals_local.properties index 864aefb1..4812a29c 100644 --- a/src/main/resources/egovframework/egovProps/globals_local.properties +++ b/src/main/resources/egovframework/egovProps/globals_local.properties @@ -100,7 +100,7 @@ Globals.mjon.biz.kakao.apiKey=dheBWCONP6J5 Globals.fax.xpedite.id=kr/itn0202 -Globals.fax.xpedite.pw=easytour7! +Globals.fax.xpedite.pw=on240101! Globals.fax.file.save.path=/usr/local/tomcat/file/sht/fax Globals.fax.file.convert.path=/usr/local/tomcat/file/sht/fax/Convert Globals.fax.file.ori.path=/usr/local/tomcat/file/sht/fax diff --git a/src/main/resources/egovframework/egovProps/globals_prod.properties b/src/main/resources/egovframework/egovProps/globals_prod.properties index ee5d0dc7..ea459ed8 100644 --- a/src/main/resources/egovframework/egovProps/globals_prod.properties +++ b/src/main/resources/egovframework/egovProps/globals_prod.properties @@ -87,7 +87,7 @@ Globals.mjon.biz.id=itn0202 Globals.mjon.biz.kakao.apiKey=dheBWCONP6J5 Globals.fax.xpedite.id=kr/itn0202 -Globals.fax.xpedite.pw=easytour7! +Globals.fax.xpedite.pw=on240101! Globals.fax.file.save.path=/usr/local/tomcat/file/sht/fax Globals.fax.file.convert.path=/usr/local/tomcat/file/sht/fax/Convert Globals.fax.file.ori.path=/usr/local/tomcat/file/sht/fax diff --git a/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml b/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml index fe5325c8..f187073c 100644 --- a/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml +++ b/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml @@ -2130,6 +2130,7 @@ , HOTLINE_AGENT_CODE AS hotlineAgentCode , BLINE_CODE AS blineCode , AT_SMISHING_YN AS atSmishingYn + , PRE_PAYMENT_YN AS prePaymentYn FROM LETTNGNRLMBER WHERE MBER_ID = #userId# @@ -3139,11 +3140,12 @@ SELECT 'chargeCash' AS divFlag - ,SUM(CASH) AS cashSum + ,NVL(SUM(CASH),0) AS cashSum FROM MJ_PG WHERE 1=1 @@ -2225,7 +2225,7 @@ + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/let/uss/umt/EgovUserManage_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/let/uss/umt/EgovUserManage_SQL_Mysql.xml index ea3cd0f6..797f6e76 100644 --- a/src/main/resources/egovframework/sqlmap/let/uss/umt/EgovUserManage_SQL_Mysql.xml +++ b/src/main/resources/egovframework/sqlmap/let/uss/umt/EgovUserManage_SQL_Mysql.xml @@ -1405,6 +1405,29 @@ + + + + + + + diff --git a/src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrlUserSelectUpdt.jsp b/src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrlUserSelectUpdt.jsp index 5e5163b5..f724f8e5 100644 --- a/src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrlUserSelectUpdt.jsp +++ b/src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrlUserSelectUpdt.jsp @@ -1439,6 +1439,23 @@ function fnMberHotlineAgentYn(){ //후불제 여부 function fnMberPrePaymentYn(prePaymentYn){ + + var form = document.mberManageVO; + var taxbillAuto = form.taxbillAuto.value; + var sumPayMoney = '${sumPayMoney}'; + + //기존 결재 내역 존재 여부 확인 + if(sumPayMoney > 0){ + alert("회원의 결제내역 정보가 존재합니다. 확인 부탁드리겠습니다."); + return false; + } + + //세금계산서 자동발행 여부 확인 + if(taxbillAuto == '' || taxbillAuto == 'N'){ + alert("세금계산서 자동발행의 선택이 안되어 있습니다. 확인 부탁드리겠습니다."); + return false; + } + if(confirm("후불제로 변경하시겠습니까?\n후불제로 변경하면 선불제로 변경 불가합니다.")){ $.ajax({ @@ -2965,6 +2982,7 @@ function kakaoATDelayCancel(msgGroupId){ +

· 이용자 정보 조회

diff --git a/src/main/webapp/WEB-INF/jsp/layout/include/defaultResource.jsp b/src/main/webapp/WEB-INF/jsp/layout/include/defaultResource.jsp index 7f2b9bce..27d5653e 100644 --- a/src/main/webapp/WEB-INF/jsp/layout/include/defaultResource.jsp +++ b/src/main/webapp/WEB-INF/jsp/layout/include/defaultResource.jsp @@ -75,6 +75,8 @@ + <%-- 20240110 matomo 사용 안함으로 인하여 주석처리 함 + - + --%> \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/web/com/webCommonHeader.jsp b/src/main/webapp/WEB-INF/jsp/web/com/webCommonHeader.jsp index c48ad3e9..765b6243 100644 --- a/src/main/webapp/WEB-INF/jsp/web/com/webCommonHeader.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/com/webCommonHeader.jsp @@ -870,7 +870,7 @@ function actionLogin() { 은행명 - + 예금주 - + 연락처 - + @@ -915,9 +915,9 @@ function actionLogin() { 목록 노출 - - 노출 - 비노출 + + 노출 + 비노출 @@ -1419,8 +1419,8 @@ function actionLogin() {
선거문자
@@ -1524,7 +1524,7 @@ function actionLogin() {
  • 요금안내/견적내기
  • 결제하기
  • 요금 결제내역
  • -
  • 요금 사용내역
  • +
  • 요금 사용내역
  • <%--
  • 계산서/현금영수증 발행 등록
  • --%>
  • 세금계산서 발행
  • @@ -1635,9 +1635,16 @@ function actionLogin() {