후불회원 사용요금내역 화면 수정

- 상단 누적 사용금액 등 정보 표시 분기 처리(선/후불 회원별 분기)
 - 하단 리스트 총 사용금액 정보 표시 추가
 - 리스트 성공건수에 대한 데이터 조회 기능으로 변경 및 정보 표시 컬럼 변경
 - PDF 저장, 엑셀 다운로드 기능 변경
This commit is contained in:
rosewiper 2023-12-29 11:21:57 +09:00
parent 99a08e47bb
commit 4fbb8c5c7c
6 changed files with 66 additions and 40 deletions

View File

@ -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;
@ -1624,4 +1625,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;
}
}

View File

@ -2712,32 +2712,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<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";
}

View File

@ -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

View File

@ -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">

View File

@ -290,6 +290,8 @@ function fnRevDetailPop03(msgGroupId){
<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 @@ function fnRevDetailPop03(msgGroupId){
</span>원
</p>
</div>
<%-- 현재까지 적립된 포인트의 합산 --%>
<div class="clearfix">
<p>포인트</p>
<p>
@ -309,6 +313,8 @@ function fnRevDetailPop03(msgGroupId){
</p>
</div>
</div>
<%-- 누적 납부금액 => 현재까지 실제 납입하여 결제 완료 처리된 금액 (미납금액 제외) --%>
<div class="hisroy_defprice_in">
<p><i></i>누적 납부금액</p>
<div class="clearfix">
@ -319,6 +325,8 @@ function fnRevDetailPop03(msgGroupId){
</span>원
</p>
</div>
<%-- 누적 납부금액에 대한 2%의 포인트 --%>
<div class="clearfix">
<p>포인트</p>
<p>
@ -328,6 +336,8 @@ function fnRevDetailPop03(msgGroupId){
</p>
</div>
</div>
<%-- 당월 납부 예상 금액 => (누적 사용금액 - 누적 납부금액) --%>
<div class="hisroy_defprice_in">
<p><i></i>당월 납부 예상금액</p>
<div class="clearfix">
@ -338,6 +348,8 @@ function fnRevDetailPop03(msgGroupId){
</span>원
</p>
</div>
<%-- 당월 납부 예상금액에 대한 2%의 포인트 --%>
<div class="clearfix">
<p>포인트</p>
<p>
@ -347,6 +359,8 @@ function fnRevDetailPop03(msgGroupId){
</p>
</div>
</div>
<%-- 현재 회원의 보유잔액(캐시) --%>
<div class="hisroy_defprice_in">
<p><i></i>잔액 (사용가능금액)</p>
<div class="clearfix">
@ -357,6 +371,8 @@ function fnRevDetailPop03(msgGroupId){
</span>원
</p>
</div>
<%-- 현재 회원의 보유 포인트 --%>
<div class="clearfix">
<p>포인트</p>
<p>

View File

@ -201,7 +201,7 @@ function fnShowPdfPrintPopup(){
<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 @@ function fnShowPdfPrintPopup(){
</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