사용자정보팝업 > 최근 문자 전송 내역 수정

- http://pms.iten.co.kr:9999/issues/5366
This commit is contained in:
leejunho 2025-08-07 10:54:14 +09:00
parent a2ea1fd0b8
commit 3461017713
7 changed files with 251 additions and 61 deletions

View File

@ -527,4 +527,10 @@ public class MjonMsgDAO extends EgovAbstractDAO {
return (List<MjonMsgVO>)list("mjonMsgDAO.selectMjonMsgGroupCompleteList_advc", mjonMsgVO);
}
//사용자 정보 팝업 문자 전송 리스트 팝업 정보 불러오기
@SuppressWarnings("unchecked")
public List<MjonMsgVO> selectUserMsgDataListByMbrId3(MjonMsgVO mjonMsgVO) throws Exception{
return (List<MjonMsgVO>) list("mjonMsgDAO.selectUserMsgDataListByMbrId3", mjonMsgVO);
}
}

View File

@ -545,7 +545,8 @@ public class MjonMsgServiceImpl extends EgovAbstractServiceImpl implements MjonM
//사용자 정보 팝업 문자 전송 리스트 팝업 정보 불러오기
@Override
public List<MjonMsgVO> selectUserMsgDataListByMbrId2(MjonMsgVO mjonMsgVO) throws Exception{
return mjonMsgDAO.selectUserMsgDataListByMbrId2(mjonMsgVO);
// return mjonMsgDAO.selectUserMsgDataListByMbrId2(mjonMsgVO);
return mjonMsgDAO.selectUserMsgDataListByMbrId3(mjonMsgVO);
}
@Override

View File

@ -8300,6 +8300,7 @@
, M.blineCode
, M.delayYn
, M.delayCompleteYn
, M.smiId
, (SELECT
COUNT(0)
FROM
@ -8388,7 +8389,7 @@
) AS atchFiles
FROM
( SELECT
COUNT(MSG_GROUP_ID) OVER() AS totCnt
COUNT(A.MSG_GROUP_ID) OVER() AS totCnt
, A.MSG_GROUP_ID AS msgGroupId
, A.USER_ID AS userId
, LMB.MBER_NM AS userNm
@ -8417,6 +8418,7 @@
, IFNULL(LMB.BLINE_CODE, 'N') AS blineCode
, A.DELAY_YN AS delayYn
, A.DELAY_COMPLETE_YN AS delayCompleteYn
, MSI.SMI_ID AS smiId
FROM
MJ_MSG_GROUP_DATA A
INNER JOIN LETTNGNRLMBER LMB
@ -8439,6 +8441,8 @@
WHERE USE_AT = 'Y'
AND CODE_ID = 'ITN022'
) D ON A.MSG_TYPE = D.CODE /** 메세지타입 */
LEFT OUTER JOIN MJ_SPAM_MEMBER_INFO MSI
ON A.MSG_GROUP_ID = MSI.MSG_GROUP_ID
WHERE 1 = 1
AND A.MSG_TYPE IN (4, 6)
<!--
@ -8466,9 +8470,9 @@
<isNotEmpty property="searchKeyword">
<isEqual property="searchCondition" compareValue="" >
AND (
USER_ID LIKE CONCAT ('%', #searchKeyword#,'%') OR
A.USER_ID LIKE CONCAT ('%', #searchKeyword#,'%') OR
A.CALL_FROM LIKE CONCAT('%', #searchKeyword#, '%') OR
SMS_TXT LIKE CONCAT ('%', #searchKeyword#,'%')
A.SMS_TXT LIKE CONCAT ('%', #searchKeyword#,'%')
)
</isEqual>
@ -8509,20 +8513,16 @@
</isNotEmpty>
<isNotEmpty property="reserveYn">
AND RESERVE_YN = #reserveYn#
AND A.RESERVE_YN = #reserveYn#
</isNotEmpty>
<isNotEmpty property="reserveCYn">
AND RESERVE_C_YN = #reserveCYn#
AND A.RESERVE_C_YN = #reserveCYn#
</isNotEmpty>
<isNotEmpty property="searchAdminSmsNoticeYn">
AND ADMIN_SMS_NOTICE_YN = #searchAdminSmsNoticeYn#
AND LMB.ADMIN_SMS_NOTICE_YN = #searchAdminSmsNoticeYn#
</isNotEmpty>
<isNotEmpty property="searchCampaignYn">
AND MSG_KIND = 'C'
</isNotEmpty>
<isNotEmpty property="searchDelayMsgYn">
AND A.MSG_GROUP_ID IN (
SELECT
@ -8548,6 +8548,145 @@
) M
</select>
<select id="mjonMsgDAO.selectUserMsgDataListByMbrId3" parameterClass="mjonMsgVO" resultClass="mjonMsgVO">
SELECT M.totCnt,
M.callFrom,
M.regDate,
M.reserveCYn,
M.cancelDate,
M.reserveYn,
M.reqDate,
M.delayYn,
M.delayCompleteYn,
M.msgGroupId,
M.smsTxt,
M.msgType,
M.fileCnt,
M.sendKind,
M.smiId,
SUM(IF(MD.result = 'S', 1, 0)) AS msgGroupSCnt,
SUM(IF(MD.result = 'W', 1, 0)) + SUM(IF(MD.result = 'F', 1, 0)) AS msgGroupFWCnt,
(SELECT CONCAT((IF(B.FILE_PATH1 IS NOT NULL, (SELECT ATCH_FILE_ID
FROM LETTNFILEDETAIL
WHERE CONCAT(STRE_FILE_NM, '.', FILE_EXTSN) =
CONCAT(SUBSTRING_INDEX(B.FILE_PATH1, '/', -1))
LIMIT 1), '')), '^',
(IF(B.FILE_PATH2 IS NOT NULL, (SELECT ATCH_FILE_ID
FROM LETTNFILEDETAIL
WHERE CONCAT(STRE_FILE_NM, '.', FILE_EXTSN) =
CONCAT(SUBSTRING_INDEX(B.FILE_PATH2, '/', -1))
LIMIT 1), '')), '^',
(IF(B.FILE_PATH3 IS NOT NULL, (SELECT ATCH_FILE_ID
FROM LETTNFILEDETAIL
WHERE CONCAT(STRE_FILE_NM, '.', FILE_EXTSN) =
CONCAT(SUBSTRING_INDEX(B.FILE_PATH3, '/', -1))
LIMIT 1), '')))
FROM MJ_MSG_DATA B
WHERE B.MSG_GROUP_ID = M.msgGroupId
LIMIT 1) AS atchFiles
FROM (SELECT COUNT(A.MSG_GROUP_ID) OVER () AS totCnt,
A.MSG_GROUP_ID AS msgGroupId,
A.SEND_KIND AS sendKind,
A.CALL_FROM AS callFrom,
A.SMS_TXT AS smsTxt,
A.MSG_TYPE AS msgType,
DATE_FORMAT(A.REQ_DATE, '%Y-%m-%d %H:%i') AS reqDate,
A.RESERVE_C_YN AS reserveCYn,
A.RESERVE_YN AS reserveYn,
A.FILE_CNT AS fileCnt,
DATE_FORMAT(A.CANCELDATE, '%Y-%m-%d %H:%i') AS cancelDate,
A.DELAY_YN AS delayYn,
A.DELAY_COMPLETE_YN AS delayCompleteYn,
DATE_FORMAT(A.REGDATE, '%Y-%m-%d %H:%i') AS REGDATE,
MSI.SMI_ID AS smiId
FROM MJ_MSG_GROUP_DATA A
LEFT OUTER JOIN MJ_SPAM_MEMBER_INFO MSI ON A.MSG_GROUP_ID = MSI.MSG_GROUP_ID
WHERE 1 = 1
AND A.USER_ID = #userId#
AND A.MSG_TYPE IN (4, 6)
AND A.REQ_DATE BETWEEN #ntceBgnde# AND #ntceEndde#
<isNotEmpty property="reserveType">
<isEqual property="reserveType" compareValue="D">
<![CDATA[
AND A.REQ_DATE <= now()
AND A.RESERVE_C_YN = 'N'
]]>
</isEqual>
<isEqual property="reserveType" compareValue="R">
<![CDATA[
AND A.REQ_DATE > now()
AND A.RESERVE_YN = 'Y'
]]>
</isEqual>
</isNotEmpty>
<isNotEmpty property="sendKind">
<isEqual property="sendKind" compareValue="H">
AND A.SEND_KIND = 'H'
</isEqual>
<isEqual property="sendKind" compareValue="A">
AND A.SEND_KIND = 'A'
</isEqual>
</isNotEmpty>
<isNotEmpty property="searchKeyword">
<isEqual prepend="AND" property="searchCondition" compareValue="">
( A.CALL_FROM LIKE CONCAT('%' , #searchKeyword#, '%') OR A.SMS_TXT LIKE CONCAT('%' , #searchKeyword#, '%') )
</isEqual>
<isEqual prepend="AND" property="searchCondition" compareValue="1">
A.CALL_FROM LIKE CONCAT('%' , #searchKeyword#, '%')
</isEqual>
<isEqual prepend="AND" property="searchCondition" compareValue="2">
A.SMS_TXT LIKE CONCAT('%' , #searchKeyword#, '%')
</isEqual>
</isNotEmpty>
ORDER BY 1 = 1, reqDate desc
LIMIT 10 OFFSET 0) M
left outer join (select case
when A.AGENT_CODE = '01'
and (A.RSLT_CODE = '100'
and (A.RSLT_CODE2 = '0')) then 'S'
when A.AGENT_CODE = '02'
and (A.RSLT_CODE = '0') then 'S'
when A.AGENT_CODE = '03'
and (A.RSLT_CODE = '100'
or A.RSLT_CODE = '101'
or A.RSLT_CODE = '110'
or A.RSLT_CODE = '800') then 'S'
when
A.AGENT_CODE = '04'
and (A.RSLT_CODE = '4100'
or A.RSLT_CODE = '6600'
or A.RSLT_CODE = '7000') then 'S'
when
A.AGENT_CODE = '05'
and (A.RSLT_CODE = '1000'
or A.RSLT_CODE = '1001') then 'S'
when
A.AGENT_CODE = '07'
and (A.RSLT_CODE = '6'
or A.RSLT_CODE = '1000') then 'S'
when
A.AGENT_CODE = '08'
and (A.RSLT_CODE = '1000'
or A.RSLT_CODE = '1001') then 'S'
when
A.AGENT_CODE = '09'
and (A.RSLT_CODE = '1000'
or A.RSLT_CODE = '1001') then 'S'
when (
A.RSLT_CODE is null
and A.RSLT_CODE2 is null
and A.SENT_DATE is null
and A.RSLT_DATE is null) then 'W'
else 'F'
end as result,
A.MSG_GROUP_ID
from MJ_MSG_DATA A) MD on MD.MSG_GROUP_ID = M.msgGroupId
GROUP BY M.msgGroupId
order by M.reqDate desc
</select>
</sqlMap>

View File

@ -361,47 +361,47 @@ function fnGoMsgGroupList(msgGroupId){
<colgroup>
<col style="width:5.00%">
<col style="width:5.00%">
<col style="width:5.50%">
<%-- <col style="width:5.50%"> --%>
<col style="width:7.00%">
<col style="width:7.50%">
<%-- <col style="width:7.50%"> --%>
<col style="width:5.00%">
<col style="width:5.50%">
<%-- <col style="width:5.50%"> --%>
<col style="width:7.00%">
<col style="width:7.50%">
<%-- <col style="width:7.50%"> --%>
<col style="width:5.00%">
<col style="width:5.50%">
<%-- <col style="width:5.50%"> --%>
<col style="width:7.00%">
<col style="width:7.50%">
<%-- <col style="width:7.50%"> --%>
<col style="width:5.00%">
<col style="width:5.50%">
<%-- <col style="width:5.50%"> --%>
<col style="width:7.00%">
<col style="width:7.50%">
<%-- <col style="width:7.50%"> --%>
</colgroup>
<thead>
<tr>
<th rowspan="2">방식</th>
<th colspan="4">단문</th>
<th colspan="4">장문</th>
<th colspan="4">그림문자</th>
<th colspan="4">종합</th>
<th colspan="2">단문</th>
<th colspan="2">장문</th>
<th colspan="2">그림문자</th>
<th colspan="2">종합</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>
<th>실패대기(금액)</th>
<!-- <th>실패대기(금액)</th> -->
<th>성공(건)</th>
<th>성공(금액)</th>
<!-- <th>성공(금액)</th> -->
<th>실패대기(건)</th>
<th>실패대기(금액)</th>
<!-- <th>실패대기(금액)</th> -->
</tr>
</thead>
<tbody>
@ -423,51 +423,51 @@ function fnGoMsgGroupList(msgGroupId){
<td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${sendSttstInfo.smsGroupSCntSum}" pattern="#,###" /></span>
</td>
<td>
<%-- <td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${sendSttstInfo.smsTotSPriceSum}" pattern="#,###" /></span>
</td>
</td> --%>
<td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${sendSttstInfo.smsGroupFWCntSum}" pattern="#,###" /></span>
</td>
<td>
<%-- <td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${sendSttstInfo.smsTotFWPriceSum}" pattern="#,###" /></span>
</td>
</td> --%>
<td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${sendSttstInfo.lmsGroupSCntSum}" pattern="#,###" /></span>
</td>
<td>
<%-- <td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${sendSttstInfo.lmsTotSPriceSum}" pattern="#,###" /></span>
</td>
</td> --%>
<td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${sendSttstInfo.lmsGroupFWCntSum}" pattern="#,###" /></span>
</td>
<td>
<%-- <td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${sendSttstInfo.lmsTotFWPriceSum}" pattern="#,###" /></span>
</td>
</td> --%>
<td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${sendSttstInfo.mmsGroupSCntSum}" pattern="#,###" /></span>
</td>
<td>
<%-- <td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${sendSttstInfo.mmsTotSPriceSum}" pattern="#,###" /></span>
</td>
</td> --%>
<td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${sendSttstInfo.mmsGroupFWCntSum}" pattern="#,###" /></span>
</td>
<td>
<%-- <td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${sendSttstInfo.mmsTotFWPriceSum}" pattern="#,###" /></span>
</td>
</td> --%>
<td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${sendSttstInfo.smsTotSPriceSum}" pattern="#,###" /></span>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${sendSttstInfo.smsGroupSCntSum + sendSttstInfo.lmsGroupSCntSum + sendSttstInfo.mmsGroupSCntSum}" pattern="#,###" /></span>
</td>
<%-- <td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${sendSttstInfo.smsTotSPriceSum}" pattern="#,###" /></span>
</td> --%>
<td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${sendSttstInfo.smsTotSPriceSum}" pattern="#,###" /></span>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${sendSttstInfo.smsGroupFWCntSum + sendSttstInfo.lmsGroupFWCntSum + sendSttstInfo.mmsGroupFWCntSum}" pattern="#,###" /></span>
</td>
<td>
<%-- <td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${sendSttstInfo.smsTotSPriceSum}" pattern="#,###" /></span>
</td>
<td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${sendSttstInfo.smsTotSPriceSum}" pattern="#,###" /></span>
</td>
</td> --%>
</tr>
</c:forEach>
</tbody>
@ -708,11 +708,15 @@ function fnGoMsgGroupList(msgGroupId){
정지
</button>
</c:if>
<c:if test="${empty result.smiId}">
-
</c:if>
</c:when>
<c:otherwise>
<button type="button" class="btnType btnType20" onclick="fn_updateMberSttus('<c:out value="${result.msgGroupId}"/>'); return false;">
<%-- <button type="button" class="btnType btnType20" onclick="fn_updateMberSttus('<c:out value="${result.msgGroupId}"/>'); return false;">
정지
</button>
</button> --%>
-
</c:otherwise>
</c:choose>
</td>

View File

@ -477,7 +477,7 @@ function fnMsgDelayCancelArray(msgGroupId, userId) {
alert(msg);
//회원 이용정지 처리하기
fn_MsgDelayCancel_after(userId);
fn_MsgDelayCancel_after(userId, msgGroupId);
}
},
beforeSend: function () {
@ -496,18 +496,18 @@ function fnMsgDelayCancelArray(msgGroupId, userId) {
}
//문자 지연 내역 발송 취소를 통한 회원 이용정지시
function fn_MsgDelayCancel_after(userId){
function fn_MsgDelayCancel_after(userId, msgGroupId){
var mberSttus = $('#mberSttus').val();
mberSttus = "B"; //이용자 정지 처리
var smiMemo = "시스템 스팸 필터링에 의한 이용정지";
fn_SpamMberUpdt(userId, mberSttus, smiMemo, "이용자 정지를 진행하시겠습니까?");
fn_SpamMberUpdt(userId, mberSttus, smiMemo, "이용자 정지를 진행하시겠습니까?", msgGroupId);
}
//회원 이용정지 처리
function fn_SpamMberUpdt(userId, p_mberSttus, p_smiMemo, p_confirm_msg) {
function fn_SpamMberUpdt(userId, p_mberSttus, p_smiMemo, p_confirm_msg, p_msgGroupId) {
url = "/uss/umt/user/EgovGnrlUpdateUserMsttusAjax.do";
var json = {"mberId" : userId, "mberSttus" : p_mberSttus, "smiMemo" : p_smiMemo};
var json = {"mberId" : userId, "mberSttus" : p_mberSttus, "smiMemo" : p_smiMemo, "msgGroupId" : p_msgGroupId};
if(confirm(p_confirm_msg)){
$.ajax({
type: "POST",
@ -770,7 +770,16 @@ function fn_SpamMberUpdt(userId, p_mberSttus, p_smiMemo, p_confirm_msg) {
<c:choose>
<c:when test="${result.delayCompleteYn eq 'Y' && not empty result.cancelDate}">
<span style="color: #0000FF;">
<c:if test="${result.smishingYn eq 'Y'}">온</c:if><c:if test="${result.smishingYn eq 'N'}">오프</c:if>[발송취소]
<c:if test="${result.smishingYn eq 'Y'}">
</c:if>
<c:if test="${result.smishingYn eq 'N'}">
오프
</c:if>
[
발송취소<c:if test="${not empty result.smiId}">(이용정지)</c:if>
]
<span style="overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;margin-top:3px;" title="<c:out value="${result.cancelDate}"/>">
<fmt:parseDate value="${result.cancelDate}" var="cancelDateValue" pattern="yyyy-MM-dd HH:mm"/>
<fmt:formatDate value="${cancelDateValue}" pattern="MM-dd HH:mm"/>

View File

@ -27,7 +27,8 @@ $( document ).ready(function(){
function fn_update(pType){
var cTitle = "";
if (pType == "Y") {
cTitle = "송금완료로 처리 하시겠습니까?\n고객님께 알림문자 전송됩니다.";
/* cTitle = "송금완료로 처리 하시겠습니까?\n고객님께 알림문자 전송됩니다."; */
cTitle = "완료 처리하시겠습니까?";
}
else if (pType == "X") {
cTitle = "전환불가로 처리 하시겠습니까?";
@ -44,8 +45,13 @@ function fn_update(pType){
dataType:'json',
success : function(data){
if(data.isSuccess == true) {
location.reload();
/* location.reload(); */
alert(data.msg);
//송금완료 버튼 클릭 후 처리완료 되면 문자 전송 여부 선택
if(pType == "Y"){
sendSms();
}
}
else {
alert(data.msg);
@ -79,6 +85,31 @@ function fnSelectMber(mberId) {
document.modiForm.submit();
}
function sendSms(){
$.ajax({
cache : false,
url : "<c:url value='/uss/ion/pay/pointUseCashUpdateSendSmsAjax.do'/>",
type : 'POST',
data : $("#writeForm").serialize(),
dataType:'json',
success : function(data){
if(data.isSuccess == true) {
/* location.reload(); */
alert(data.msg);
}
else {
alert(data.msg);
}
},
error: function (e) {
alert("문자전송에 실패했습니다.");
console.log("ERROR : ", e);
}
});
}
</script>
</head>

View File

@ -367,7 +367,7 @@ function cntSet(){
//cntView('ftCnt', response.ftCnt);
},
error: function(error) {
alert("error");
console.log("error");
},
beforeSend : function(xmlHttpRequest) {
//로딩창 show