이지우 - 관리자 > 사용자 상세 팝업 > 최근 카카오톡 전송 내역 조회 쿼리 수정
This commit is contained in:
parent
856e1ad1d2
commit
81c735def0
@ -284,7 +284,6 @@ public class MjonMsgVO extends ComDefaultVO{
|
||||
private String totFWPriceSum;
|
||||
private String resultLogUpdtPnttm;
|
||||
|
||||
private int successCount; // 문자발송 성공건수
|
||||
private int callRejectionCount; // 번호도용 문자차단 서비스로 착신거절 오류 수
|
||||
private String callbackYn; // 번호도용 문자차단 서비스로 인한 발송실패 문자알림 여부(N:미알림, Y:알림)
|
||||
private String userCallbackYn;
|
||||
@ -315,5 +314,18 @@ public class MjonMsgVO extends ComDefaultVO{
|
||||
private List<MjonMsgSendVO> mjonMsgSendVOList = new ArrayList<>();
|
||||
|
||||
private String rsltCodeMsgTxt; //전송사 결과 코드 내용
|
||||
|
||||
|
||||
private int waitCount; //대기 건수
|
||||
private int successCount; // 문자발송 성공건수
|
||||
private int failCount; //실패 건수
|
||||
private int kakaoResendWaitCount; //대체문자 대기 건수
|
||||
private int kakaoResendSuccCount; //대체문자 성공 건수
|
||||
private int kakaoResendFailCount; //대체문자 실패 건수
|
||||
|
||||
private String[] msgTypeList; //발송 타입 리스트
|
||||
|
||||
private String selectType; //조회 타입 ex) complete : 전송완료
|
||||
private String yellowId; //채널아이디
|
||||
private String yellowIdYn; //채널아이디 여부
|
||||
}
|
||||
|
||||
@ -190,7 +190,8 @@ public interface MjonMsgDataService {
|
||||
|
||||
public MjonMsgReturnVO sendSysMsgData(MjonMsgVO mjonMsgVO, HttpServletRequest request) throws Exception;
|
||||
|
||||
|
||||
//mj_msg_data 테이블의 msg_result 컬럼을 이용한 발송건수 조회 쿼리
|
||||
public List<MjonMsgVO> selectSendListByResultCode(MjonMsgVO mjonMsgVO) throws Exception;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -462,7 +462,10 @@ public class MjonMsgDataDAO extends EgovAbstractDAO {
|
||||
return totalInsertedCount; // 처리된 전체 데이터 수 반환
|
||||
}
|
||||
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public List<MjonMsgVO> selectSendListByResultCode(MjonMsgVO mjonMsgVO) throws Exception{
|
||||
return (List<MjonMsgVO>) list("mjonMsgDAO.selectSendListByResultCode",mjonMsgVO);
|
||||
}
|
||||
|
||||
public Timestamp convertToTimestamp(String reqDate) {
|
||||
try {
|
||||
|
||||
@ -5147,5 +5147,10 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M
|
||||
|
||||
return returnVO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MjonMsgVO> selectSendListByResultCode(MjonMsgVO mjonMsgVO) throws Exception {
|
||||
return mjonMsgDataDAO.selectSendListByResultCode(mjonMsgVO);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1471,61 +1471,32 @@ public class EgovUserManageController {
|
||||
model.addAttribute("channelIdCnt", channelIdCnt);
|
||||
model.addAttribute("resultKakaoChannelIDList", resultKakaoChannelIDList);
|
||||
|
||||
/*
|
||||
* 알림톡/친구톡 최근 발송내역 리스트 불러오기
|
||||
*/
|
||||
|
||||
KakaoVO sendKakaoVO = new KakaoVO();
|
||||
//sendKakaoVO.setSearchCondition2("N");//예약건은 제외하기
|
||||
sendKakaoVO.setReserveCYn("N");//예약취소건은 제외하기
|
||||
sendKakaoVO.setUserId(reqMberManageVO.getMberId());
|
||||
// 문자발송 완료건은 모두 보이도록 처리
|
||||
//kakaoVO.setMsgType("8");
|
||||
sendKakaoVO.setSearchSortCnd("reqDate");
|
||||
sendKakaoVO.setSearchSortOrd("desc");
|
||||
sendKakaoVO.setFirstIndex(0);
|
||||
sendKakaoVO.setPageType("sand");
|
||||
List<KakaoVO> kakaoResultList = new ArrayList<KakaoVO>();
|
||||
//kakaoResultList = mjonKakaoATService.selectMjonKakaoATGroupCompleteByUserList(sendKakaoVO);
|
||||
|
||||
/*250620 - 회원 정보 팝업 내 최근 알림톡/친구톡 전송 내역을 조회하는 임시 쿼리
|
||||
* 기존 쿼리 성능으로 인하여 회원 정보 팝업 오픈 시 간헐적으로 에러 발생
|
||||
* 임시 쿼리는 화면에 필요한 최소한의 정보만 조회하며, USER_ID를 제외한 조건은 하드코딩 처리
|
||||
* DB 개선 작업 이후 알림톡/친구톡 관련 조회 공통 쿼리 생성 예정
|
||||
* */
|
||||
sendKakaoVO.setReserveYn("N");
|
||||
kakaoResultList = mjonKakaoATService.selectMjonKakaoATGroupCompleteByUserListTemp(sendKakaoVO);
|
||||
/* 카카오 전송 완료, 예약 조회 */
|
||||
/* 전송완료, 예약 공통 set */
|
||||
MjonMsgVO kakaoListVO = new MjonMsgVO();
|
||||
kakaoListVO.setUserId(reqMberManageVO.getMberId());
|
||||
kakaoListVO.setReserveCYn("N");
|
||||
kakaoListVO.setRecordCountPerPage(3);
|
||||
kakaoListVO.setFirstIndex(0);
|
||||
kakaoListVO.setYellowIdYn("Y");
|
||||
String[] msgTypeList = {"8","9"};
|
||||
kakaoListVO.setMsgTypeList(msgTypeList);
|
||||
|
||||
/* 전송완료 set*/
|
||||
kakaoListVO.setSelectType("reqDateLast3M"); //발송일시가 지금부터 지난 3개월
|
||||
kakaoListVO.setSearchSortCnd("REQ_DATE");
|
||||
kakaoListVO.setSearchSortOrd("DESC");
|
||||
List<MjonMsgVO> kakaoResultList = mjonMsgDataService.selectSendListByResultCode(kakaoListVO);
|
||||
model.addAttribute("kakaoResultList", kakaoResultList);
|
||||
|
||||
/*
|
||||
* 알림톡/친구톡 예약발송 리스트 불러오기
|
||||
*/
|
||||
|
||||
KakaoVO reserveKakaoVO = new KakaoVO();
|
||||
reserveKakaoVO.setReserveYn("Y"); //예약건만 조회
|
||||
reserveKakaoVO.setSearchCondition2("Y");//예약건만 불러오기
|
||||
reserveKakaoVO.setReserveCYn("N");//예약취소건은 제외하기
|
||||
reserveKakaoVO.setUserId(reqMberManageVO.getMberId());
|
||||
// 문자발송 완료건은 모두 보이도록 처리
|
||||
//kakaoVO.setMsgType("8");
|
||||
reserveKakaoVO.setSearchSortCnd("reqDate");
|
||||
reserveKakaoVO.setSearchSortOrd("desc");
|
||||
reserveKakaoVO.setFirstIndex(0);
|
||||
reserveKakaoVO.setPageType("sand");
|
||||
List<KakaoVO> kakaoReserveList = new ArrayList<KakaoVO>();
|
||||
//kakaoReserveList = mjonKakaoATService.selectReserveMjonKakaoATGroupList(reserveKakaoVO);
|
||||
|
||||
/*250620 - 회원 정보 팝업 내 최근 알림톡/친구톡 전송 내역을 조회하는 임시 쿼리
|
||||
* 기존 쿼리 성능으로 인하여 회원 정보 팝업 오픈 시 간헐적으로 에러 발생
|
||||
* 임시 쿼리는 화면에 필요한 최소한의 정보만 조회하며, USER_ID를 제외한 조건은 하드코딩 처리
|
||||
* DB 개선 작업 이후 알림톡/친구톡 관련 조회 공통 쿼리 생성 예정
|
||||
* */
|
||||
sendKakaoVO.setReserveYn("Y");
|
||||
kakaoReserveList = mjonKakaoATService.selectMjonKakaoATGroupCompleteByUserListTemp(sendKakaoVO);
|
||||
/* 예약 set */
|
||||
kakaoListVO.setReserveYn("Y");
|
||||
kakaoListVO.setSelectType("reqDateNext3M"); //발송일시가 지금부터 다음 3개월
|
||||
kakaoListVO.setSearchSortCnd("REQ_DATE");
|
||||
kakaoListVO.setSearchSortOrd("ASC");
|
||||
List<MjonMsgVO> kakaoReserveList = mjonMsgDataService.selectSendListByResultCode(kakaoListVO);
|
||||
model.addAttribute("kakaoReserveList", kakaoReserveList);
|
||||
|
||||
|
||||
/*
|
||||
* 알림톡 지연처리 알림톡 내용 불러오기(30분 지연처리된 알림톡 내역 불러오기)
|
||||
*/
|
||||
|
||||
@ -8688,7 +8688,113 @@
|
||||
GROUP BY M.msgGroupId
|
||||
order by M.reqDate desc
|
||||
</select>
|
||||
|
||||
|
||||
<select id="mjonMsgDAO.selectSendListByResultCode" parameterClass="mjonMsgVO" resultClass="mjonMsgVO">
|
||||
SELECT
|
||||
MMGD.USER_ID AS userId
|
||||
, MMGD.MSG_GROUP_ID AS msgGroupId
|
||||
, MMGD.MSG_TYPE AS msgType
|
||||
, MMGD.REGDATE AS regDate
|
||||
, MMGD.REQ_DATE AS reqDate
|
||||
, MMGD.SMS_TXT AS smsTxt
|
||||
, MMGD.MSG_GROUP_CNT AS msgGroupCnt
|
||||
, MMGD.RESERVE_YN AS reserveYn
|
||||
, MMGD.RESERVE_C_YN AS reserveCYn
|
||||
, MMGD.CANCELDATE AS cancelDate
|
||||
, MMGD.DELAY_YN AS delayYn
|
||||
, MMGD.DELAY_COMPLETE_YN AS delayCompleteYn
|
||||
, MMGD.AT_DELAY_YN AS atDelayYn
|
||||
, MMGD.AT_DELAY_COMPLETE_YN AS atDelayCompleteYn
|
||||
, MMD.waitCount AS waitCount
|
||||
, MMD.successCount AS successCount
|
||||
, MMD.failCount AS failCount
|
||||
, MMD.kakaoResendWaitCount AS kakaoResendWaitCount
|
||||
, MMD.kakaoResendSuccCount AS kakaoResendSuccCount
|
||||
, MMD.kakaoResendFailCount AS kakaoResendFailCount
|
||||
<isEqual property="yellowIdYn" compareValue="Y">
|
||||
, MKPI.YELLOW_ID AS yellowId
|
||||
</isEqual>
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
USER_ID
|
||||
, MSG_GROUP_ID
|
||||
, MSG_TYPE
|
||||
, REGDATE
|
||||
, REQ_DATE
|
||||
, SMS_TXT
|
||||
, MSG_GROUP_CNT
|
||||
, RESERVE_YN
|
||||
, RESERVE_C_YN
|
||||
, CANCELDATE
|
||||
, DELAY_YN
|
||||
, DELAY_COMPLETE_YN
|
||||
, AT_DELAY_YN
|
||||
, AT_DELAY_COMPLETE_YN
|
||||
FROM
|
||||
MJ_MSG_GROUP_DATA
|
||||
WHERE 1=1
|
||||
<isNotEmpty property="userId">
|
||||
AND USER_ID = #userId#
|
||||
</isNotEmpty>
|
||||
<isNotEmpty property="msgType">
|
||||
AND MSG_TYPE = #msgType#
|
||||
</isNotEmpty>
|
||||
<isNotEmpty property="msgTypeList">
|
||||
AND MSG_TYPE IN
|
||||
<iterate property="msgTypeList" open="(" close=")" conjunction=",">
|
||||
#msgTypeList[]#
|
||||
</iterate>
|
||||
</isNotEmpty>
|
||||
<isNotEmpty property="reserveYn">
|
||||
AND RESERVE_YN = #reserveYn#
|
||||
</isNotEmpty>
|
||||
<isNotEmpty property="reserveCYn">
|
||||
AND RESERVE_C_YN = #reserveCYn#
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="selectType">
|
||||
<!-- 조회 타입 ex) last3M : 지난 3개월간 -->
|
||||
<isEqual property="selectType" compareValue="reqDateLast3M">
|
||||
and (REQ_DATE BETWEEN DATE_SUB(NOW(), INTERVAL 3 MONTH) AND NOW())
|
||||
</isEqual>
|
||||
<!-- 조회 타입 ex) next3M : 다음 3개월간 -->
|
||||
<isEqual property="selectType" compareValue="reqDateNext3M">
|
||||
AND (REQ_DATE BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 3 MONTH))
|
||||
</isEqual>
|
||||
</isNotEmpty>
|
||||
ORDER BY 1=1
|
||||
<isNotEmpty property="searchSortCnd">
|
||||
,$searchSortCnd$
|
||||
</isNotEmpty>
|
||||
<isNotEmpty property="searchSortOrd">
|
||||
$searchSortOrd$
|
||||
</isNotEmpty>
|
||||
LIMIT #recordCountPerPage# OFFSET #firstIndex#
|
||||
) MMGD
|
||||
JOIN (
|
||||
SELECT
|
||||
MSG_GROUP_ID
|
||||
, MSG_NOTICETALK_SENDER_KEY
|
||||
, SUM(CASE WHEN MSG_RESULT = '00' THEN 1 ELSE 0 END) AS waitCount
|
||||
, SUM(CASE WHEN MSG_RESULT = '10' THEN 1 ELSE 0 END) AS successCount
|
||||
, SUM(CASE WHEN MSG_RESULT = '20' THEN 1 ELSE 0 END) AS failCount
|
||||
, SUM(CASE WHEN MSG_RESULT = '30' THEN 1 ELSE 0 END) AS kakaoResendWaitCount
|
||||
, SUM(CASE WHEN MSG_RESULT = '40' THEN 1 ELSE 0 END) AS kakaoResendSuccCount
|
||||
, SUM(CASE WHEN MSG_RESULT = '50' THEN 1 ELSE 0 END) AS kakaoResendFailCount
|
||||
FROM
|
||||
MJ_MSG_DATA
|
||||
GROUP BY
|
||||
MSG_GROUP_ID
|
||||
) MMD
|
||||
ON MMGD.MSG_GROUP_ID = MMD.MSG_GROUP_ID
|
||||
<isEqual property="yellowIdYn" compareValue="Y">
|
||||
LEFT JOIN
|
||||
MJ_KAKAO_PROFILE_INFO MKPI
|
||||
ON MKPI.SENDER_KEY = MMD.MSG_NOTICETALK_SENDER_KEY
|
||||
AND MKPI.USER_ID = MMGD.USER_ID
|
||||
</isEqual>
|
||||
</select>
|
||||
</sqlMap>
|
||||
|
||||
|
||||
|
||||
@ -4723,102 +4723,59 @@ function fnInputSmsTxt(){
|
||||
<c:choose>
|
||||
<c:when test="${not empty kakaoResultList}">
|
||||
<c:forEach var="kakaoResultList" items="${kakaoResultList}" varStatus="status">
|
||||
<c:if test="${status.count < 4}">
|
||||
<tr>
|
||||
<td><c:out value="${status.count}"/></td>
|
||||
<td>
|
||||
<c:choose>
|
||||
<c:when test="${kakaoResultList.msgType == '8'}">
|
||||
알림톡
|
||||
</c:when>
|
||||
<c:when test="${kakaoResultList.msgType == '9'}">
|
||||
친구톡
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
-
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
<td>
|
||||
<c:choose>
|
||||
<c:when test="${not empty kakaoResultList.regDate}">
|
||||
|
||||
<%-- ${fnc:setStrToDataFormatter(kakaoResultList.regDate, 'MM-dd HH:mm') } --%>
|
||||
<fmt:parseDate value="${kakaoResultList.regDate}" var="dateValue" pattern="yyyy-MM-dd HH:mm:ss"/>
|
||||
<fmt:formatDate value="${dateValue}" pattern="MM-dd HH:mm"/>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
-
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
<td>
|
||||
<c:choose>
|
||||
<c:when test="${not empty kakaoResultList.rsltDate}">
|
||||
<c:if test="${kakaoResultList.reserveYn eq 'Y'}">
|
||||
[예약]<br />
|
||||
</c:if>
|
||||
<fmt:parseDate value="${kakaoResultList.rsltDate}" var="dateValue" pattern="yyyy-MM-dd HH:mm:ss"/>
|
||||
<fmt:formatDate value="${dateValue}" pattern="MM-dd HH:mm"/>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<c:choose>
|
||||
<c:when test="${kakaoResultList.atDelayYn eq 'Y' && kakaoResultList.atDelayCompleteYn eq 'Y' && not empty kakaoResultList.cancelDate}">
|
||||
<span style="color: red;">
|
||||
[발송취소]<br />
|
||||
<c:if test="${kakaoResultList.reserveYn eq 'Y'}">
|
||||
[예약]<br />
|
||||
</c:if>
|
||||
<fmt:parseDate value="${kakaoResultList.cancelDate}" var="cancelDateValue" pattern="yyyy-MM-dd HH:mm"/>
|
||||
<fmt:formatDate value="${cancelDateValue}" pattern="MM-dd HH:mm"/>
|
||||
</span>
|
||||
</c:when>
|
||||
<c:when test="${kakaoResultList.reserveCYn eq 'Y'}">
|
||||
[예약취소]<br />
|
||||
<fmt:parseDate value="${kakaoResultList.cancelDate}" var="dateValue" pattern="yyyy-MM-dd HH:mm:ss"/>
|
||||
<fmt:formatDate value="${dateValue}" pattern="MM-dd HH:mm"/>
|
||||
</c:when>
|
||||
<c:when test="${kakaoResultList.reserveYn eq 'Y' && kakaoResultList.reserveCYn eq 'N'}">
|
||||
[예약]<br />
|
||||
<fmt:parseDate value="${kakaoResultList.reqDate}" var="dateValue" pattern="yyyy-MM-dd HH:mm:ss"/>
|
||||
<fmt:formatDate value="${dateValue}" pattern="MM-dd HH:mm"/>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
-
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
<td><c:out value="${kakaoResultList.yellowId}"/></td>
|
||||
<td class="sms_detail" style="text-align: left;">
|
||||
<c:choose>
|
||||
<c:when test="${empty kakaoResultList.smsTxt}">
|
||||
-
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<div class="ellipsis_line">
|
||||
<c:out value="${kakaoResultList.smsTxt}"/>
|
||||
<div class="kakao_detail_hover">
|
||||
<c:out value="${kakaoResultList.smsTxt}"/>
|
||||
</div>
|
||||
</div>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
|
||||
</td>
|
||||
<td><fmt:formatNumber value="${kakaoResultList.msgGroupCnt}" type="number" /></td>
|
||||
<td><fmt:formatNumber value="${kakaoResultList.successCount}" type="number" /></td>
|
||||
<td><fmt:formatNumber value="${kakaoResultList.kakaoResendSuccCount + kakaoResultList.kakaoResendFailCount}" type="number" /></td>
|
||||
<td><fmt:formatNumber value="${kakaoResultList.kakaoResendSuccCount}" type="number" /></td>
|
||||
<td><fmt:formatNumber value="${(kakaoResultList.successCount / kakaoResultList.msgGroupCnt) * 100}" pattern="#,###" />%</td>
|
||||
</tr>
|
||||
</c:if>
|
||||
<tr>
|
||||
<td><c:out value="${status.count}"/></td>
|
||||
<td>
|
||||
<c:choose>
|
||||
<c:when test="${kakaoResultList.msgType == '8'}">
|
||||
알림톡
|
||||
</c:when>
|
||||
<c:when test="${kakaoResultList.msgType == '9'}">
|
||||
친구톡
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
-
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
<td>
|
||||
<fmt:parseDate value="${kakaoResultList.regDate}" var="dateValue" pattern="yyyy-MM-dd HH:mm:ss"/>
|
||||
<fmt:formatDate value="${dateValue}" pattern="MM-dd HH:mm"/>
|
||||
</td>
|
||||
<td>
|
||||
<c:if test="${kakaoResultList.reserveYn eq 'Y'}">
|
||||
[예약]<br/>
|
||||
</c:if>
|
||||
<c:if test="${kakaoResultList.atDelayYn eq 'Y'
|
||||
and kakaoResultList.atDelayCompleteYn eq 'Y'
|
||||
and not empty kakaoResultList.cancelDate}">
|
||||
<span style="color: red;">
|
||||
[발송취소]
|
||||
</span>
|
||||
</c:if>
|
||||
<fmt:parseDate value="${kakaoResultList.reqDate}" var="dateValue" pattern="yyyy-MM-dd HH:mm:ss"/>
|
||||
<fmt:formatDate value="${dateValue}" pattern="MM-dd HH:mm"/>
|
||||
</td>
|
||||
<td><c:out value="${kakaoResultList.yellowId}"/></td>
|
||||
<td class="sms_detail" style="text-align: left;">
|
||||
<div class="ellipsis_line">
|
||||
<c:out value="${kakaoResultList.smsTxt}"/>
|
||||
<div class="kakao_detail_hover">
|
||||
<c:out value="${kakaoResultList.smsTxt}"/>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td><fmt:formatNumber value="${kakaoResultList.msgGroupCnt}" type="number" /></td>
|
||||
<td><fmt:formatNumber value="${kakaoResultList.successCount}" type="number" /></td>
|
||||
<td><fmt:formatNumber value="${kakaoResultList.kakaoResendSuccCount + kakaoResultList.kakaoResendFailCount + kakaoResultList.kakaoResendWaitCount}" type="number" /></td>
|
||||
<td><fmt:formatNumber value="${kakaoResultList.kakaoResendSuccCount}" type="number" /></td>
|
||||
<td><fmt:formatNumber value="${(kakaoResultList.successCount / kakaoResultList.msgGroupCnt) * 100}" pattern="#,###" />%</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<tr>
|
||||
<td colspan="11">카카오톡 발송 내역이 없습니다.</td>
|
||||
<td colspan="11">카카오톡 전송 내역이 없습니다.</td>
|
||||
</tr>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
@ -4841,10 +4798,6 @@ function fnInputSmsTxt(){
|
||||
<col style="width:15%;">
|
||||
<col style="width:auto;">
|
||||
<col style="width:8%;">
|
||||
<col style="width:8%;">
|
||||
<col style="width:8%;">
|
||||
<col style="width:8%;">
|
||||
<col style="width:8%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -4855,112 +4808,61 @@ function fnInputSmsTxt(){
|
||||
<th>채널ID</th>
|
||||
<th>내용</th>
|
||||
<th>발송</th>
|
||||
<th>성공</th>
|
||||
<th>발송(대)</th>
|
||||
<th>성공(대)</th>
|
||||
<th>성공율</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<c:choose>
|
||||
<c:when test="${not empty kakaoReserveList}">
|
||||
<c:forEach var="kakaoReserveList" items="${kakaoReserveList}" varStatus="status">
|
||||
<c:if test="${status.count < 4}">
|
||||
<tr>
|
||||
<td><c:out value="${status.count}"/></td>
|
||||
<td>
|
||||
<c:choose>
|
||||
<c:when test="${kakaoReserveList.msgType == '8'}">
|
||||
알림톡
|
||||
</c:when>
|
||||
<c:when test="${kakaoReserveList.msgType == '9'}">
|
||||
친구톡
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
-
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
<td>
|
||||
<c:choose>
|
||||
<c:when test="${not empty kakaoReserveList.regDate}">
|
||||
<%-- ${fnc:setStrToDataFormatter(kakaoReserveList.regDate, 'MM-dd HH:mm') } --%>
|
||||
<fmt:parseDate value="${kakaoReserveList.regDate}" var="dateValue" pattern="yyyy-MM-dd HH:mm:ss"/>
|
||||
<fmt:formatDate value="${dateValue}" pattern="MM-dd HH:mm"/>
|
||||
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
-
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
<td>
|
||||
<c:choose>
|
||||
<c:when test="${not empty kakaoReserveList.rsltDate}">
|
||||
<c:if test="${kakaoReserveList.reserveYn eq 'Y'}">
|
||||
[예약]<br />
|
||||
</c:if>
|
||||
<fmt:parseDate value="${kakaoReserveList.rsltDate}" var="dateValue" pattern="yyyy-MM-dd HH:mm:ss"/>
|
||||
<fmt:formatDate value="${dateValue}" pattern="MM-dd HH:mm"/>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<c:choose>
|
||||
<c:when test="${kakaoReserveList.atDelayYn eq 'Y' && kakaoReserveList.atDelayCompleteYn eq 'Y' && not empty kakaoReserveList.cancelDate}">
|
||||
<span style="color: red;">
|
||||
[발송취소]<br />
|
||||
<c:if test="${kakaoReserveList.reserveYn eq 'Y'}">
|
||||
[예약]<br />
|
||||
</c:if>
|
||||
<fmt:parseDate value="${kakaoReserveList.cancelDate}" var="cancelDateValue" pattern="yyyy-MM-dd HH:mm"/>
|
||||
<fmt:formatDate value="${cancelDateValue}" pattern="MM-dd HH:mm"/>
|
||||
</span>
|
||||
</c:when>
|
||||
<c:when test="${kakaoReserveList.reserveCYn eq 'Y'}">
|
||||
[예약취소]<br />
|
||||
<fmt:parseDate value="${kakaoReserveList.cancelDate}" var="dateValue" pattern="yyyy-MM-dd HH:mm:ss"/>
|
||||
<fmt:formatDate value="${dateValue}" pattern="MM-dd HH:mm"/>
|
||||
</c:when>
|
||||
<c:when test="${kakaoReserveList.reserveYn eq 'Y' && kakaoReserveList.reserveCYn eq 'N'}">
|
||||
[예약]<br />
|
||||
<fmt:parseDate value="${kakaoReserveList.reqDate}" var="dateValue" pattern="yyyy-MM-dd HH:mm:ss"/>
|
||||
<fmt:formatDate value="${dateValue}" pattern="MM-dd HH:mm"/>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
-
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
</td>
|
||||
<td><c:out value="${kakaoReserveList.yellowId}"/></td>
|
||||
<td class="sms_detail" style="text-align: left;">
|
||||
<c:choose>
|
||||
<c:when test="${empty kakaoReserveList.smsTxt}">
|
||||
-
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<div class="ellipsis_line">
|
||||
<c:out value="${kakaoReserveList.smsTxt}"/>
|
||||
<div class="kakao_detail_hover">
|
||||
<c:out value="${kakaoReserveList.smsTxt}"/>
|
||||
</div>
|
||||
</div>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
<td><fmt:formatNumber value="${kakaoReserveList.msgGroupCnt}" type="number" /></td>
|
||||
<td><fmt:formatNumber value="${kakaoReserveList.successCount}" type="number" /></td>
|
||||
<td><fmt:formatNumber value="${kakaoReserveList.kakaoResendSuccCount + kakaoReserveList.kakaoResendFailCount}" type="number" /></td>
|
||||
<td><fmt:formatNumber value="${kakaoReserveList.kakaoResendSuccCount}" type="number" /></td>
|
||||
<td><fmt:formatNumber value="${(kakaoReserveList.successCount / kakaoReserveList.msgGroupCnt) * 100}" pattern="#,###" />%</td>
|
||||
</tr>
|
||||
</c:if>
|
||||
<tr>
|
||||
<td><c:out value="${status.count}"/></td>
|
||||
<td>
|
||||
<c:choose>
|
||||
<c:when test="${kakaoReserveList.msgType == '8'}">
|
||||
알림톡
|
||||
</c:when>
|
||||
<c:when test="${kakaoReserveList.msgType == '9'}">
|
||||
친구톡
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
-
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
<td>
|
||||
<fmt:parseDate value="${kakaoReserveList.regDate}" var="dateValue" pattern="yyyy-MM-dd HH:mm:ss"/>
|
||||
<fmt:formatDate value="${dateValue}" pattern="MM-dd HH:mm"/>
|
||||
</td>
|
||||
<td>
|
||||
<c:if test="${kakaoReserveList.reserveYn eq 'Y'}">
|
||||
[예약]<br/>
|
||||
</c:if>
|
||||
<c:if test="${kakaoReserveList.atDelayYn eq 'Y'
|
||||
and kakaoReserveList.atDelayCompleteYn eq 'Y'
|
||||
and not empty kakaoReserveList.cancelDate}">
|
||||
<span style="color: red;">
|
||||
[발송취소]
|
||||
</span>
|
||||
</c:if>
|
||||
<fmt:parseDate value="${kakaoReserveList.reqDate}" var="dateValue" pattern="yyyy-MM-dd HH:mm:ss"/>
|
||||
<fmt:formatDate value="${dateValue}" pattern="MM-dd HH:mm"/>
|
||||
</td>
|
||||
<td><c:out value="${kakaoReserveList.yellowId}"/></td>
|
||||
<td class="sms_detail" style="text-align: left;">
|
||||
<div class="ellipsis_line">
|
||||
<c:out value="${kakaoReserveList.smsTxt}"/>
|
||||
<div class="kakao_detail_hover">
|
||||
<c:out value="${kakaoReserveList.smsTxt}"/>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td><fmt:formatNumber value="${kakaoReserveList.msgGroupCnt}" type="number" /></td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<tr>
|
||||
<td colspan="11">카카오톡 발송 내역이 없습니다.</td>
|
||||
<td colspan="7">카카오톡 예약 내역이 없습니다.</td>
|
||||
</tr>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user