rosewiper 2023-12-29
후불회원 사용요금내역 화면 수정 - 상단 누적 사용금액 등 정보 표시 분기 처리(선/후불 회원별 분기) - 하단 리스트 총 사용금액 정보 표시 추가 - 리스트 성공건수에 대한 데이터 조회 기능으로 변경 및 정보 표시 컬럼 변경 - PDF 저장, 엑셀 다운로드 기능 변경
 - 상단 누적 사용금액 등 정보 표시 분기 처리(선/후불 회원별 분기)
 - 하단 리스트 총 사용금액 정보 표시 추가
 - 리스트 성공건수에 대한 데이터 조회 기능으로 변경 및 정보 표시 컬럼 변경
 - PDF 저장, 엑셀 다운로드 기능 변경
@4fbb8c5c7cbeade588e9db1bce85ee762c1486d8
src/main/java/itn/let/mjo/msg/service/MjonMsgVO.java
--- src/main/java/itn/let/mjo/msg/service/MjonMsgVO.java
+++ src/main/java/itn/let/mjo/msg/service/MjonMsgVO.java
@@ -204,6 +204,7 @@
 	private int failSendCnt;
 	private double succSendPrice;
 	private double failSendPrice;
+	private double totSuccSendPrice;
 	
 	public String getSearchDelayMsgYn() {
 		return searchDelayMsgYn;
@@ -1624,4 +1625,10 @@
 	public void setFailSendPrice(double failSendPrice) {
 		this.failSendPrice = failSendPrice;
 	}
+	public double getTotSuccSendPrice() {
+		return totSuccSendPrice;
+	}
+	public void setTotSuccSendPrice(double totSuccSendPrice) {
+		this.totSuccSendPrice = totSuccSendPrice;
+	}
 }
src/main/java/itn/let/mjo/pay/web/MjonPayController.java
--- src/main/java/itn/let/mjo/pay/web/MjonPayController.java
+++ src/main/java/itn/let/mjo/pay/web/MjonPayController.java
@@ -2712,31 +2712,43 @@
 		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<MjonMsgVO> 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<MjonMsgVO> 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";
 	}
src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml
--- src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml
@@ -3140,11 +3140,12 @@
 	<select id="mjonMsgDAO.selectPayUserSWList" parameterClass="mjonMsgVO" resultClass="mjonMsgVO">
 		SELECT
 		COUNT(pay.totCnt) OVER()    AS totCnt
+		, SUM(pay.succSendPrice) OVER() AS totSuccSendPrice
 		, pay.regDate                                                   AS regDate 
 		, pay.sendCount                                                 AS sendCount 
 		, pay.succSendCnt          										AS succSendCnt
-        , pay.failSendCnt          										AS failSendCnt
         , pay.succSendPrice        										AS succSendPrice
+        , pay.failSendCnt          										AS failSendCnt
         , pay.failSendPrice        										AS failSendPrice
 		, pay.smsTxt                                                    AS smsTxt 
 		, pay.subject                                                   AS subject 
@@ -3170,8 +3171,8 @@
 			, M.regDate			AS regDate
 			, M.sendCount		AS sendCount
 			, SUM(IF(RESULT = 'W' OR RESULT = 'S', 1, 0 ))                AS succSendCnt
-            , SUM(IF(RESULT = 'F', 1, 0 ))                                AS failSendCnt
             , SUM(IF(RESULT = 'W' OR RESULT = 'S', 1, 0 )) * M.eachPrice  AS succSendPrice
+            , SUM(IF(RESULT = 'F', 1, 0 ))                                AS failSendCnt
             , SUM(IF(RESULT = 'F', 1, 0 ))                 * M.eachPrice  AS failSendPrice
 			, M.smsTxt			AS smsTxt
 			, M.subject			AS subject
src/main/resources/egovframework/sqlmap/let/pay/MjonPay_SQL_mysql.xml
--- src/main/resources/egovframework/sqlmap/let/pay/MjonPay_SQL_mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/pay/MjonPay_SQL_mysql.xml
@@ -2281,24 +2281,14 @@
 	
 	<select id="mjonPayDAO.selectTotalSumCashForAfterPay" parameterClass="String" resultClass="String">
 		
-		SELECT NVL(B.CASH , 0) AS cash 
-		FROM   LETTNGNRLMBER A 
-	 	LEFT JOIN 
-	 	(	SELECT SUM(CASH) AS cash , USER_ID FROM MJ_CASH A
-			GROUP BY A.USER_ID , A.DEL_FLAG
-			HAVING USER_ID = #userId# AND A.DEL_FLAG = 'N' 
-		)
-		B ON A.MBER_ID = B.USER_ID
-		WHERE A.MBER_ID = #userId#
-		
-		<!-- <![CDATA[
+		<![CDATA[
 			
 			SELECT NVL(ABS(SUM(CASH)), 0) FROM MJ_CASH 
 			WHERE USER_ID = #userId#
 			AND DEL_FLAG = 'N'
-			AND CASH < 0
+			AND MSG_GROUP_ID IS NOT NULL 
 		
-		]]> -->
+		]]>
 	</select>
 	
 	<select id="mjonPayDAO.selectTotalSumPointForAfterPay" parameterClass="String" resultClass="String">
src/main/webapp/WEB-INF/jsp/web/pay/PayUserSWList.jsp
--- src/main/webapp/WEB-INF/jsp/web/pay/PayUserSWList.jsp
+++ src/main/webapp/WEB-INF/jsp/web/pay/PayUserSWList.jsp
@@ -290,6 +290,8 @@
 				<c:otherwise>
 					<p class="tRight c_666" style="margin: 0 0 10px 0">(VAT 별도)</p>
 					<div class="hisroy_price">
+					
+						<%-- 누적 사용금액 => 현재까지 실제 문자발송에 사용된 캐시의 합산 --%>
 						<div class="hisroy_defprice_in">
 							<p><i></i>누적 사용금액</p>
 							<div class="clearfix">
@@ -300,6 +302,8 @@
 									</span>원
 								</p>
 							</div>
+							
+							<%-- 현재까지 적립된 포인트의 합산 --%>
 							<div class="clearfix">
 								<p>포인트</p>
 								<p>
@@ -309,6 +313,8 @@
 								</p>
 							</div>
 						</div>
+						
+						<%-- 누적 납부금액 => 현재까지 실제 납입하여 결제 완료 처리된 금액 (미납금액 제외) --%>
 						<div class="hisroy_defprice_in">
 							<p><i></i>누적 납부금액</p>
 							<div class="clearfix">
@@ -319,6 +325,8 @@
 									</span>원
 								</p>
 							</div>
+							
+							<%-- 누적 납부금액에 대한 2%의 포인트 --%>
 							<div class="clearfix">
 								<p>포인트</p>
 								<p>
@@ -328,6 +336,8 @@
 								</p>
 							</div>
 						</div>
+						
+						<%-- 당월 납부 예상 금액 => (누적 사용금액 - 누적 납부금액) --%>
 						<div class="hisroy_defprice_in">
 							<p><i></i>당월 납부 예상금액</p>
 							<div class="clearfix">
@@ -338,6 +348,8 @@
 									</span>원
 								</p>
 							</div>
+							
+							<%-- 당월  납부 예상금액에 대한 2%의 포인트 --%>
 							<div class="clearfix">
 								<p>포인트</p>
 								<p>
@@ -347,6 +359,8 @@
 								</p>
 							</div>
 						</div>
+						
+						<%-- 현재 회원의 보유잔액(캐시) --%>
                         <div class="hisroy_defprice_in">
 							<p><i></i>잔액 (사용가능금액)</p>
 							<div class="clearfix">
@@ -357,6 +371,8 @@
 									</span>원
 								</p>
 							</div>
+							
+							<%-- 현재 회원의 보유 포인트 --%>
 							<div class="clearfix">
 								<p>포인트</p>
 								<p>
src/main/webapp/WEB-INF/jsp/web/pay/PayUserSWListAjax.jsp
--- src/main/webapp/WEB-INF/jsp/web/pay/PayUserSWListAjax.jsp
+++ src/main/webapp/WEB-INF/jsp/web/pay/PayUserSWListAjax.jsp
@@ -201,7 +201,7 @@
 	<input type="hidden" id="searchSortCnd" name="searchSortCnd" value="<c:out value="${searchVO.searchSortCnd}" />" />
 	<input type="hidden" id="searchSortOrd" name="searchSortOrd" value="<c:out value="${searchVO.searchSortOrd}" />" />
 	<div class="list_info">
-		<p>총 <span>${paginationInfo.totalRecordCount}</span>건</p>
+		<p>총 <span>${paginationInfo.totalRecordCount}</span>건 &nbsp; (<fmt:formatNumber value="${totSuccSendPrice}" pattern="" /> 원)</p>
 		<div>
 			<button type="button" class="print_btn" onclick="javascript:fnPayUserPrintPopup();">
 				<i class="print_img"></i>인쇄하기
@@ -332,13 +332,13 @@
 									</p>
 								</td>
 								<td>
-									<p>
+									<p class="fwRg c_002c9a">
 										<fmt:formatNumber type="number" maxFractionDigits="3" value="${payUserInfo.succSendPrice}" var="succCash" />
 										<c:out value="${succCash}"/>
 									</p>
 								</td>
 								<td>
-									<p>
+									<p class="fwRg c_002c9a">
 										<%-- <fmt:formatNumber type="number" maxFractionDigits="3" value="${payUserInfo.befPoint}" var="befPoint" />
 										<c:out value="${befPoint}"/> --%>
 										0																											
Add a comment
List