사용자 결제 리스트 현금영수증 의무발행 완료 여부 기능 추가

This commit is contained in:
name 2023-07-20 16:11:10 +09:00
parent 07ff1e34ca
commit f4807896a5
3 changed files with 128 additions and 173 deletions

View File

@ -3905,7 +3905,7 @@ public class MjonMsgController {
catch(Exception e) { catch(Exception e) {
isSuccess = false; isSuccess = false;
msg = e.getMessage(); msg = e.getMessage();
} }
modelAndView.addObject("memPayStatInfo", memPayStatInfo); modelAndView.addObject("memPayStatInfo", memPayStatInfo);
modelAndView.addObject("isSuccess", isSuccess); modelAndView.addObject("isSuccess", isSuccess);

View File

@ -100,60 +100,81 @@
, E.CONFIRM_YN AS confirmYn , E.CONFIRM_YN AS confirmYn
, E.RCPT_TYPE AS rcptType , E.RCPT_TYPE AS rcptType
, IFNULL(MP.POINT, '0') AS point , IFNULL(MP.POINT, '0') AS point
, EMI.EVENT_PG_MOID AS eventMoid , EMI.EVENT_PG_MOID AS eventMoid
, mber.SMISHING_YN AS smishingYn , mber.SMISHING_YN AS smishingYn
, mber.VIP_YN AS vipYn , mber.VIP_YN AS vipYn
, IFNULL(mber.BLINE_CODE, 'N') AS blineCode , IFNULL(mber.BLINE_CODE, 'N') AS blineCode
, (SELECT COUNT(0) FROM MJ_PG SP , (SELECT
WHERE SP.PG_STATUS = 1 COUNT(0) FROM MJ_PG SP
AND SP.USER_ID = A.USER_ID WHERE 1=1
AND SP.REG_DATE >= DATE_ADD(NOW(), INTERVAL -1 YEAR)) AS oneYearPayCnt AND SP.PG_STATUS = 1
, KGM.SVC_ID AS svcId AND SP.USER_ID = A.USER_ID
, KGM.TRADE_ID AS mrctTrdNo AND SP.REG_DATE >= DATE_ADD(NOW(), INTERVAL -1 YEAR)
, KGM.MOBILE_ID AS trdNo ) AS oneYearPayCnt
, KGM.SVC_ID AS svcId
, KGM.TRADE_ID AS mrctTrdNo
, KGM.MOBILE_ID AS trdNo
FROM FROM
MJ_PG A MJ_PG A
LEFT JOIN LEFT JOIN
( (
SELECT CODE_NM SELECT
, CODE CODE_NM
, CODE_DC , CODE
, CODE_DC
FROM FROM
LETTCCMMNDETAILCODE LETTCCMMNDETAILCODE
WHERE 1=1 WHERE 1=1
AND USE_AT = 'Y' AND USE_AT = 'Y'
AND CODE_ID = 'ITN036' AND CODE_ID = 'ITN036'
) B ON A.PAY_METHOD = B.CODE ) B ON A.PAY_METHOD = B.CODE
LEFT JOIN LEFT JOIN
( SELECT CODE_NM ,CODE ,CODE_DC (
FROM LETTCCMMNDETAILCODE SELECT
WHERE USE_AT = 'Y' CODE_NM
AND CODE_ID = 'ITN037' , CODE
) C ON A.PG_STATUS = C.CODE , CODE_DC
LEFT JOIN FROM
( SELECT MOID, CONFIRM_YN, RCPT_TYPE LETTCCMMNDETAILCODE
FROM MJ_TAX WHERE 1=1
WHERE RCPT_TYPE != '3' AND USE_AT = 'Y'
) E ON A.MOID = E.MOID AND CODE_ID = 'ITN037'
LEFT JOIN ) C ON A.PG_STATUS = C.CODE
( SELECT CODE_NM ,CODE ,CODE_DC LEFT JOIN
FROM LETTCCMMNDETAILCODE (
WHERE USE_AT = 'Y' SELECT
AND CODE_ID = 'ITN038' MOID
) D ON E.RCPT_TYPE = D.CODE , CONFIRM_YN
LEFT JOIN MJ_POINT MP , RCPT_TYPE
ON A.MOID = MP.ORDER_ID FROM
MJ_TAX
LEFT JOIN lettngnrlmber mber WHERE 1=1
ON A.USER_ID = mber.MBER_ID
) E ON A.MOID = E.MOID
LEFT OUTER JOIN MJ_EVENT_MBER_INFO EMI LEFT JOIN
ON A.USER_ID = EMI.MBER_ID (
AND A.MOID = EMI.EVENT_PG_MOID SELECT
CODE_NM
LEFT OUTER JOIN KGM_PG KGM , CODE
ON A.MOID = KGM.MOID , CODE_DC
FROM
LETTCCMMNDETAILCODE
WHERE 1=1
AND USE_AT = 'Y'
AND CODE_ID = 'ITN038'
) D ON E.RCPT_TYPE = D.CODE
LEFT JOIN MJ_POINT MP
ON A.MOID = MP.ORDER_ID
LEFT JOIN lettngnrlmber mber
ON A.USER_ID = mber.MBER_ID
LEFT OUTER JOIN MJ_EVENT_MBER_INFO EMI
ON A.USER_ID = EMI.MBER_ID
AND A.MOID = EMI.EVENT_PG_MOID
LEFT OUTER JOIN KGM_PG KGM
ON A.MOID = KGM.MOID
WHERE 1=1 WHERE 1=1
<isNotEmpty property="searchKeyword"> <isNotEmpty property="searchKeyword">
<isEqual property="searchCondition" compareValue="" > <isEqual property="searchCondition" compareValue="" >

View File

@ -169,109 +169,30 @@ function sendMsgExcelDownload(){
<div class="contWrap" style="position:relative;left:inherit;top:inherit;min-height:auto;padding:40px;"> <div class="contWrap" style="position:relative;left:inherit;top:inherit;min-height:auto;padding:40px;">
<div class="pageTitle"> <div class="pageTitle">
<!-- <div class="pageIcon"><img src="/pb/img/pageTitIcon4.png" alt=""></div> -->
<h2 class="titType1 c_222222 fwBold">'<c:out value="${searchVO.userId}"/>'의 결제 리스트</h2> <h2 class="titType1 c_222222 fwBold">'<c:out value="${searchVO.userId}"/>'의 결제 리스트</h2>
<!-- <p class="tType6 c_999999">문자전송리스트 현황을 파악할 수 있습니다.</p> -->
</div> </div>
<div class="pageCont"> <div class="pageCont">
<%-- <div class="tableWrap tableWrapTotal">
<table class="tbType1">
<colgroup>
<col style="width:6.25%">
<col style="width:6.25%">
<col style="width:6.25%">
<col style="width:6.25%">
<col style="width:6.25%">
<col style="width:6.25%">
<col style="width:6.25%">
<col style="width:6.25%">
<col style="width:6.25%">
<col style="width:6.25%">
<col style="width:6.25%">
<col style="width:6.25%">
<col style="width:6.25%">
<col style="width:6.25%">
<col style="width:6.25%">
<col style="width:6.25%">
</colgroup>
<thead>
<tr>
<th colspan="4">단문</th>
<th colspan="4">장문</th>
<th colspan="4">그림문자</th>
<th colspan="4">종합</th>
</tr>
<tr class="content">
<th>정상수신(건)</th>
<th>정상수신(금액)</th>
<th>실패대기(건)</th>
<th>실패대기(금액)</th>
<th>정상수신(건)</th>
<th>정상수신(금액)</th>
<th>실패대기(건)</th>
<th>실패대기(금액)</th>
<th>정상수신(건)</th>
<th>정상수신(금액)</th>
<th>실패대기(건)</th>
<th>실패대기(금액)</th>
<th>정상수신(건)</th>
<th>정상수신(금액)</th>
<th>실패대기(건)</th>
<th>실패대기(금액)</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${msgSmsGroupSCntSum}" pattern="#,###" /></span></td>
<td><span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${totSmsSPriceSum}" pattern="#,###" /></span></td>
<td><span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${msgSmsGroupFWCntSum}" pattern="#,###" /></span></td>
<td><span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${totSmsFWPriceSum}" pattern="#,###" /></span></td>
<td><span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${msgLmsGroupSCntSum}" pattern="#,###" /></span></td>
<td><span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${totLmsSPriceSum}" pattern="#,###" /></span></td>
<td><span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${msgLmsGroupFWCntSum}" pattern="#,###" /></span></td>
<td><span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${totLmsFWPriceSum}" pattern="#,###" /></span></td>
<td><span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${msgMmsGroupSCntSum}" pattern="#,###" /></span></td>
<td><span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${totMmsSPriceSum}" pattern="#,###" /></span></td>
<td><span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${msgMmsGroupFWCntSum}" pattern="#,###" /></span></td>
<td><span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${totMmsFWPriceSum}" pattern="#,###" /></span></td>
<td><span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${msgGroupSCntSum}" pattern="#,###" /></span></td>
<td><span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${totSPriceSum}" pattern="#,###" /></span></td>
<td><span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${msgGroupFWCntSum}" pattern="#,###" /></span></td>
<td><span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${totFWPriceSum}" pattern="#,###" /></span></td>
</tr>
</tbody>
</table>
</div> --%>
<div class="listSerch"> <div class="listSerch">
<ec:select codeId="ITN036" name="searchCondition2" id="searchCondition2" css="class='select'" selectedValue="${searchVO.searchCondition2}" <ec:select codeId="ITN036" name="searchCondition2" id="searchCondition2" css="class='select'" selectedValue="${searchVO.searchCondition2}" defaultValue="" defaultText="결제수단" />
defaultValue="" defaultText="결제수단" /> <ec:select codeId="ITN037" name="searchCondition3" id="searchCondition3" css="class='select'" selectedValue="${searchVO.searchCondition3}" defaultValue="" defaultText="결제상태" />
<ec:select codeId="ITN037" name="searchCondition3" id="searchCondition3" css="class='select'" selectedValue="${searchVO.searchCondition3}"
defaultValue="" defaultText="결제상태" />
<select name="searchCondition" class="select" title="검색조건 선택"> <select name="searchCondition" class="select" title="검색조건 선택">
<option value="" <c:if test="${searchVO.searchCondition == ''}">selected="selected"</c:if>>전체</option> <option value="" <c:if test="${searchVO.searchCondition == ''}">selected="selected"</c:if>>전체</option>
<%-- <option value="1" <c:if test="${searchVO.searchCondition == '1'}">selected="selected"</c:if>>사용자ID</option>
<option value="2" <c:if test="${searchVO.searchCondition == '2'}">selected="selected"</c:if>>사용자이름</option> --%>
<option value="3" <c:if test="${searchVO.searchCondition == '3'}">selected="selected"</c:if>>주문번호(PG)</option> <option value="3" <c:if test="${searchVO.searchCondition == '3'}">selected="selected"</c:if>>주문번호(PG)</option>
</select> </select>
<input id="searchKeyword" name="searchKeyword" class="recentSearch" type="text" value="<c:out value='${searchVO.searchKeyword}'/>" size="25" title="검색" maxlength="100" /> <input id="searchKeyword" name="searchKeyword" class="recentSearch" type="text" value="<c:out value='${searchVO.searchKeyword}'/>" size="25" title="검색" maxlength="100" />
<input type="button" class="btnType1" value="검색" onclick="fn_search(); return false;"> <input type="button" class="btnType1" value="검색" onclick="fn_search(); return false;">
<input type="hidden" name="cal_url" id="cal_url" value="/sym/cmm/EgovNormalCalPopup.do"> <input type="hidden" name="cal_url" id="cal_url" value="/sym/cmm/EgovNormalCalPopup.do">
<a href="#" onclick="javascript:fn_egov_NormalCalendar(document.forms.listForm, document.forms.listForm.ntceBgndeYYYMMDD);"> <a href="#" onclick="javascript:fn_egov_NormalCalendar(document.forms.listForm, document.forms.listForm.ntceBgndeYYYMMDD);">
<input style="width:auto;min-width: 83px;" type="text" class="date_format" name="ntceBgndeYYYMMDD" id="ntceBgndeYYYMMDD" size="4" maxlength="4" readonly="" <input style="width:auto;min-width: 83px;" type="text" class="date_format" name="ntceBgndeYYYMMDD" id="ntceBgndeYYYMMDD" size="4" maxlength="4" readonly=""
value="<c:out value="${searchVO.startDate}" />" > value="<c:out value="${searchVO.startDate}" />" >
<input type="button" class="calBtn"> <input type="button" class="calBtn">
</a> </a>
&nbsp;&nbsp;~ &nbsp;&nbsp;~
<a href="#" onclick="javascript:fn_egov_NormalCalendar(document.forms.listForm, document.forms.listForm.ntceEnddeYYYMMDD);"> <a href="#" onclick="javascript:fn_egov_NormalCalendar(document.forms.listForm, document.forms.listForm.ntceEnddeYYYMMDD);">
<input style="width:auto;min-width: 83px;" type="text" class="date_format" name="ntceEnddeYYYMMDD" id="ntceEnddeYYYMMDD" size="4" maxlength="4" readonly="" <input style="width:auto;min-width: 83px;" type="text" class="date_format" name="ntceEnddeYYYMMDD" id="ntceEnddeYYYMMDD" size="4" maxlength="4" readonly=""
value="<c:out value="${searchVO.endDate}" />" value="<c:out value="${searchVO.endDate}" />">
> <input type="button" class="calBtn">
<input type="button" class="calBtn"> </a>
</a>
<a href="#" style="margin-left: 17px;" onclick="init_date(); return false;"> <a href="#" style="margin-left: 17px;" onclick="init_date(); return false;">
<img src="/pb/img/common/topTimeOut.png" alt="타임아웃 아이콘"> <img src="/pb/img/common/topTimeOut.png" alt="타임아웃 아이콘">
</a> </a>
@ -279,8 +200,6 @@ function sendMsgExcelDownload(){
<div class="listTop"> <div class="listTop">
<p class="tType5">총 <span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${paginationInfo.totalRecordCount}" pattern="#,###" /></span>건</p> <p class="tType5">총 <span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${paginationInfo.totalRecordCount}" pattern="#,###" /></span>건</p>
<div class="rightWrap"> <div class="rightWrap">
<!-- <input type="button" class="excelBtn" onclick="javascript:sendMsgExcelDownload();"> -->
<!-- <input type="button" class="printBtn"> -->
<select name="pageUnit" id="pageUnit" class="select" title="검색조건선택" onchange="linkPage(1);"> <select name="pageUnit" id="pageUnit" class="select" title="검색조건선택" onchange="linkPage(1);">
<option value='10' <c:if test="${searchVO.pageUnit == '10' or searchVO.pageUnit == ''}">selected</c:if>>10줄</option> <option value='10' <c:if test="${searchVO.pageUnit == '10' or searchVO.pageUnit == ''}">selected</c:if>>10줄</option>
<option value='20' <c:if test="${searchVO.pageUnit == '20'}">selected</c:if>>20줄</option> <option value='20' <c:if test="${searchVO.pageUnit == '20'}">selected</c:if>>20줄</option>
@ -300,44 +219,42 @@ function sendMsgExcelDownload(){
<col style="width: *%"> <col style="width: *%">
<col style="width: 9%"> <col style="width: 9%">
<col style="width: 6%"> <col style="width: 6%">
<col style="width: 8%"> <col style="width: 6%">
<col style="width: 13%"> <col style="width: 13%">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
<!-- <th><input type="checkbox" name="checkAll" id="checkAll" class="check2" value="1" onClick="fnCheckAll();"></th> -->
<th>번호<input type="button" class="sort sortBtn" id="sort_moid"></th> <th>번호<input type="button" class="sort sortBtn" id="sort_moid"></th>
<th>아이디<input type="button" class="sort sortBtn" id="sort_userId"></th> <th>아이디<input type="button" class="sort sortBtn" id="sort_userId"></th>
<th>이름<input type="button" class="sort sortBtn" id="sort_buyerName"></th> <th>이름<input type="button" class="sort sortBtn" id="sort_buyerName"></th>
<th>할인<input type="button" class="sort sortBtn" id="sort_eventMoid"></th> <th>할인<input type="button" class="sort sortBtn" id="sort_eventMoid"></th>
<th>결제금액<input type="button" class="sort sortBtn" id="sort_cash"></th> <th>결제금액<input type="button" class="sort sortBtn" id="sort_cash"></th>
<!-- <th>취소금액<input type="button" class="sort sortBtn" id="sort_cancelAmt"></th> -->
<th>결제수단<input type="button" class="sort sortBtn" id="sort_payMethodTxt"></th> <th>결제수단<input type="button" class="sort sortBtn" id="sort_payMethodTxt"></th>
<th>주문번호(PG사)<input type="button" class="sort sortBtn" id="sort_tid"></th> <th>주문번호(PG사)<input type="button" class="sort sortBtn" id="sort_tid"></th>
<!-- <th>주문번호(고객사)<input type="button" class="sort sortBtn" id="sort_mid"></th> -->
<th>결제폰번호<input type="button" class="sort sortBtn" id="sort_phone"></th> <th>결제폰번호<input type="button" class="sort sortBtn" id="sort_phone"></th>
<th>결제상태<input type="button" class="sort sortBtn" id="sort_pgStatusTxt"></th> <th>결제상태<input type="button" class="sort sortBtn" id="sort_pgStatusTxt"></th>
<!-- <th>결제메세지<input type="button" class="sort sortBtn" id="sort_resultMsg"></th> -->
<th>영수증<input type="button" class="sort sortBtn" id="sort_rcptTypeTxt"></th> <th>영수증<input type="button" class="sort sortBtn" id="sort_rcptTypeTxt"></th>
<th>의무발행 완료 여부</th>
<th>결제시간<input type="button" class="sort sortBtn" id="sort_regDate"></th> <th>결제시간<input type="button" class="sort sortBtn" id="sort_regDate"></th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<c:forEach var="result" items="${resultList}" varStatus="status"> <c:forEach var="result" items="${resultList}" varStatus="status">
<tr onclick="fn_modify('${result.moid}'); return false;" style="cursor:pointer;"> <tr onclick="fn_modify('${result.moid}'); return false;" style="cursor:pointer;">
<%-- <td>
<input name="del" id="del_${status.index}" type="checkbox" value="${result.cashId}" />
</td> --%>
<td> <td>
<c:if test="${searchVO.searchSortOrd eq 'desc' }"> <c:if test="${searchVO.searchSortOrd eq 'desc' }">
<c:out value="${ ( paginationInfo.totalRecordCount - ((paginationInfo.currentPageNo -1)*paginationInfo.recordCountPerPage) ) - status.index }"/> <c:out value="${ ( paginationInfo.totalRecordCount - ((paginationInfo.currentPageNo -1)*paginationInfo.recordCountPerPage) ) - status.index }"/>
</c:if> </c:if>
<c:if test="${searchVO.searchSortOrd eq 'asc' }"> <c:if test="${searchVO.searchSortOrd eq 'asc' }">
<c:out value="${(paginationInfo.currentPageNo - 1) * paginationInfo.recordCountPerPage + status.count}"/> <c:out value="${(paginationInfo.currentPageNo - 1) * paginationInfo.recordCountPerPage + status.count}"/>
</c:if> </c:if>
</td>
<td>
<c:out value="${result.userId}"/>
</td>
<td>
<c:out value="${result.buyerName}"/>
</td> </td>
<td><c:out value="${result.userId}"/></td>
<td><c:out value="${result.buyerName}"/></td>
<td> <td>
<c:if test="${not empty result.eventMoid}"> <c:if test="${not empty result.eventMoid}">
첫 결제 첫 결제
@ -351,26 +268,43 @@ function sendMsgExcelDownload(){
}"><fmt:formatNumber value="${result.amt}" type="number" /><c:if test="${'4' eq result.pgStatus}"><font color="red">(오류)</font></c:if> }"><fmt:formatNumber value="${result.amt}" type="number" /><c:if test="${'4' eq result.pgStatus}"><font color="red">(오류)</font></c:if>
</c:if> </c:if>
</td> </td>
<%-- <td><fmt:formatNumber value="${result.cancelAmt}" type="number" /><c:if test="${'8' eq result.pgStatus}"><font color="red">(오류)</font></c:if></td> --%> <td>
<td><c:out value="${result.payMethodTxt}"/></td> <c:out value="${result.payMethodTxt}"/>
</td>
<td> <td>
<c:out value="${result.tid}"/> <c:out value="${result.tid}"/>
</td> </td>
<td><c:out value="${result.phone}"/></td>
<td><c:out value="${result.pgStatusTxt}"/></td>
<%-- <td><c:out value="${result.resultMsg}"/></td> --%>
<td> <td>
<c:if test="${result.rcptType ne ''}"> <c:out value="${result.phone}"/>
<c:out value="${result.rcptTypeTxt}"/> </td>
</c:if> <td>
<c:out value="${result.pgStatusTxt}"/>
</td>
<td>
<c:if test="${result.rcptType ne '3'}">
<c:out value="${result.rcptTypeTxt}"/>
</c:if>
</td>
<td>
<c:if test="${result.rcptType eq '3'}">
<c:choose>
<c:when test="${result.confirmYn eq 'Y'}">
</c:when>
<c:otherwise>
-
</c:otherwise>
</c:choose>
</c:if>
</td>
<td>
<c:out value="${result.regDate}"/>
</td> </td>
<td><c:out value="${result.regDate}"/></td>
</tr> </tr>
</c:forEach> </c:forEach>
<c:if test="${empty resultList}"> <c:if test="${empty resultList}">
<tr><td colspan="10"><spring:message code="common.nodata.msg" /></td></tr> <tr><td colspan="10"><spring:message code="common.nodata.msg" /></td></tr>
</c:if> </c:if>
</tbody> </tbody>
</table> </table>
</div> </div>
@ -380,13 +314,13 @@ function sendMsgExcelDownload(){
</div> </div>
<!-- 페이지 네비게이션 시작 --> <!-- 페이지 네비게이션 시작 -->
<c:if test="${!empty resultList}"> <c:if test="${!empty resultList}">
<div class="page"> <div class="page">
<ul class="inline"> <ul class="inline">
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" /> <ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
</ul> </ul>
</div> </div>
</c:if> </c:if>
<!-- //페이지 네비게이션 끝 --> <!-- //페이지 네비게이션 끝 -->
</div> </div>
</div> </div>
</form> </form>