테스트 수정사항 완료

This commit is contained in:
hehihoho3@gmail.com 2025-02-12 11:19:02 +09:00
parent b6d95f72f7
commit 4a3faa34b8
19 changed files with 137 additions and 169 deletions

View File

@ -194,7 +194,6 @@ public final class DateUtils {
LocalDateTime dateTime = LocalDateTime.parse(str, inputFormatter); LocalDateTime dateTime = LocalDateTime.parse(str, inputFormatter);
// 원하는 출력 포맷 적용 // 원하는 출력 포맷 적용
// DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("MM-dd HH:mm");
DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern(formatter); DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern(formatter);
String formattedDate = dateTime.format(outputFormatter); String formattedDate = dateTime.format(outputFormatter);

View File

@ -276,7 +276,6 @@ public final class MsgSendUtils {
for (Map.Entry<String, Function<MjonMsgSendVO, String>> entry : placeholders.entrySet()) { for (Map.Entry<String, Function<MjonMsgSendVO, String>> entry : placeholders.entrySet()) {
String placeholder = entry.getKey(); String placeholder = entry.getKey();
String value = entry.getValue().apply(sendVO); String value = entry.getValue().apply(sendVO);
System.out.println("");
// log.info(" + smsTxtTemp [{}]", smsTxtTemp); // log.info(" + smsTxtTemp [{}]", smsTxtTemp);
// log.info(" + placeholder [{}]", placeholder); // log.info(" + placeholder [{}]", placeholder);
// log.info(" + value [{}]", value); // log.info(" + value [{}]", value);

View File

@ -498,7 +498,6 @@ public class KakaoSentController {
* 발송관리 엑셀다운로드 기능 - 카카오톡 * 발송관리 엑셀다운로드 기능 - 카카오톡
* @param searchVO * @param searchVO
* @param model * @param model
* @return "/web/mjon/msgsent/msgSentExcelDownLoadAjax.do"
* @throws Exception * @throws Exception
*/ */
@RequestMapping(value= {"/web/mjon/msgsent/kakaoSentExcelDownLoadAjax.do"}) @RequestMapping(value= {"/web/mjon/msgsent/kakaoSentExcelDownLoadAjax.do"})

View File

@ -28,6 +28,7 @@ public class MjonMsgDataVO extends UserDefaultVO{
private List msgIdList; private List msgIdList;
private List msgSeqList; private List msgSeqList;
private String subject; private String subject;
private String subjectChkYn;
private String mmsSubject; private String mmsSubject;
private String smsTxt; private String smsTxt;
private String smsLen; private String smsLen;

View File

@ -5963,7 +5963,6 @@ public class MjonMsgDataController {
* 발송관리 엑셀다운로드 기능 * 발송관리 엑셀다운로드 기능
* @param searchVO * @param searchVO
* @param model * @param model
* @return "/web/mjon/msgsent/msgSentExcelDownLoadAjax.do"
* @throws Exception * @throws Exception
*/ */
@RequestMapping(value= {"/web/mjon/msgdata/recieveCallToListExcelDownAjax.do"}) @RequestMapping(value= {"/web/mjon/msgdata/recieveCallToListExcelDownAjax.do"})

View File

@ -25,6 +25,7 @@ public class MjonMsgDetailSentVO extends UserDefaultVO{
private String userId; private String userId;
private String smsTxt; private String smsTxt;
private String subject; private String subject;
private String subjectChkYn;
private String msgType; private String msgType;
private String fileCnt; private String fileCnt;
private String msgKind; private String msgKind;

View File

@ -27,8 +27,8 @@ public class MjonMsgSentVO extends UserDefaultVO{
private String smsTxt; //문자 내용 private String smsTxt; //문자 내용
private String subject; //문자 제목 private String subject; //문자 제목
private String subjectChkYn; //문자 제목 private String subjectChkYn; //문자 제목
private Date regdate; //문자 등록일자 private String regDate; //문자 등록일자
private Date reqdate; //문자 예약 발송 일자 private String reqDate; //문자 예약 발송 일자
private String callFrom; //발신번호 private String callFrom; //발신번호
private String callTo; //수신자 번호 private String callTo; //수신자 번호
private List callToList; //수신자 번호 리스트 private List callToList; //수신자 번호 리스트

View File

@ -13,8 +13,6 @@ import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
import java.util.Map; import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@ -24,7 +22,6 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.BorderStyle; import org.apache.poi.ss.usermodel.BorderStyle;
import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.FillPatternType;
import org.apache.poi.ss.usermodel.Font; import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.HorizontalAlignment; import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.IndexedColors; import org.apache.poi.ss.usermodel.IndexedColors;
@ -33,12 +30,11 @@ import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.VerticalAlignment; import org.apache.poi.ss.usermodel.VerticalAlignment;
import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.streaming.SXSSFWorkbook; import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFFont;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
import egovframework.rte.fdl.idgnr.EgovIdGnrService; import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import itn.com.cmm.util.StringUtil2;
import itn.let.cmm.vo.FileInfoVO; import itn.let.cmm.vo.FileInfoVO;
import itn.let.fax.addr.service.FaxAddrGroupVO; import itn.let.fax.addr.service.FaxAddrGroupVO;
import itn.let.mjo.addr.service.AddrGroupVO; import itn.let.mjo.addr.service.AddrGroupVO;
@ -185,6 +181,8 @@ public class MjonMsgSentServiceImpl extends EgovAbstractServiceImpl implements
// 목록 // 목록
MjonMsgDetailSentVO resultVO = mjonMsgSentDAO.selectAllMsgSentDetailView(mjonMsgDetailSentVO); MjonMsgDetailSentVO resultVO = mjonMsgSentDAO.selectAllMsgSentDetailView(mjonMsgDetailSentVO);
log.info(" + :: [{}]", resultVO.getSmsTxt());
// 성공 대기 실패 발송금액 분할여부 // 성공 대기 실패 발송금액 분할여부
MjonMsgSentVO updatedVO = getDetailFunction(resultVO.getMsgGroupId(), resultVO.getEachPrice()); MjonMsgSentVO updatedVO = getDetailFunction(resultVO.getMsgGroupId(), resultVO.getEachPrice());
@ -479,6 +477,9 @@ public class MjonMsgSentServiceImpl extends EgovAbstractServiceImpl implements
public List<MjonMsgDetailSentVO> findByMsgDetailListAjax(MjonMsgDetailSentVO mjonMsgDetailSentVO) { public List<MjonMsgDetailSentVO> findByMsgDetailListAjax(MjonMsgDetailSentVO mjonMsgDetailSentVO) {
List<MjonMsgDetailSentVO> list = mjonMsgSentDAO.findByMsgDetailListAjax(mjonMsgDetailSentVO); List<MjonMsgDetailSentVO> list = mjonMsgSentDAO.findByMsgDetailListAjax(mjonMsgDetailSentVO);
list.stream().forEach(t->{
t.setCallTo(StringUtil2.formatPhone(t.getCallTo()));
});
return list; return list;
} }
@ -628,8 +629,14 @@ public class MjonMsgSentServiceImpl extends EgovAbstractServiceImpl implements
for (int i = 0; i < resultAllSentList.size(); i++) { for (int i = 0; i < resultAllSentList.size(); i++) {
MjonMsgSentVO vo = resultAllSentList.get(i); MjonMsgSentVO vo = resultAllSentList.get(i);
data[i][0] = i; data[i][0] = i+1;
data[i][1] = vo.getReqdate(); data[i][1] = vo.getReqDate();
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// data[i][1] = sdf.format(vo.getReqDate());
log.info("엑셀에 넣을 데이터: [{}]", data[i][1]);
data[i][2] = "H".equals(vo.getSendKind()) ? "WEB" : "API"; data[i][2] = "H".equals(vo.getSendKind()) ? "WEB" : "API";
String msgType="단문"; String msgType="단문";

View File

@ -247,12 +247,16 @@ private static final Logger logger = LoggerFactory.getLogger(MjonMsgSentControll
//* SEND_KIND = "H" //* SEND_KIND = "H"
// 전체 영역 // 전체 영역
model.addAttribute("H_allSentCntVO", this.getResultCntProc(H_smsMsgCnt)); log.info("all");
model.addAttribute("H_allSentCntVO", this.getResultCntProc(totalMsgCnt));
// 전체 단문(SMS) // 전체 단문(SMS)
log.info("sms");
model.addAttribute("H_smsSentCntVO", this.getResultCntProc(H_smsMsgCnt)); model.addAttribute("H_smsSentCntVO", this.getResultCntProc(H_smsMsgCnt));
// 전체 장문(LMS) // 전체 장문(LMS)
log.info("lms");
model.addAttribute("H_lmsSentCntVO", this.getResultCntProc(H_lmsMsgCnt)); model.addAttribute("H_lmsSentCntVO", this.getResultCntProc(H_lmsMsgCnt));
// 전체 장문(LMS) // 전체 그림(MMS)
log.info("mms");
model.addAttribute("H_mmsSentCntVO", this.getResultCntProc(H_mmsMsgCnt)); model.addAttribute("H_mmsSentCntVO", this.getResultCntProc(H_mmsMsgCnt));
@ -283,14 +287,17 @@ private static final Logger logger = LoggerFactory.getLogger(MjonMsgSentControll
cntVO.setWaitCnt(msgCnt.stream() cntVO.setWaitCnt(msgCnt.stream()
.filter(f->"W".equals(f.getMsgResultSts())) .filter(f->"W".equals(f.getMsgResultSts()))
.mapToInt(t -> Integer.parseInt(t.getMsgResultCnt())).sum()); .mapToInt(t -> Integer.parseInt(t.getMsgResultCnt())).sum());
log.info(" :: cntVO.getWaitCnt() :: [{}]", cntVO.getWaitCnt());
// 전체 성공 갯수 // 전체 성공 갯수
cntVO.setSuccCnt(msgCnt.stream() cntVO.setSuccCnt(msgCnt.stream()
.filter(f->"S".equals(f.getMsgResultSts())) .filter(f->"S".equals(f.getMsgResultSts()))
.mapToInt(t -> Integer.parseInt(t.getMsgResultCnt())).sum()); .mapToInt(t -> Integer.parseInt(t.getMsgResultCnt())).sum());
log.info(" :: cntVO.getSuccCnt() :: [{}]", cntVO.getSuccCnt());
// 전체 실패 갯수 // 전체 실패 갯수
cntVO.setFailCnt(msgCnt.stream() cntVO.setFailCnt(msgCnt.stream()
.filter(f->"F".equals(f.getMsgResultSts())) .filter(f->"F".equals(f.getMsgResultSts()))
.mapToInt(t -> Integer.parseInt(t.getMsgResultCnt())).sum()); .mapToInt(t -> Integer.parseInt(t.getMsgResultCnt())).sum());
log.info(" :: cntVO.getFailCnt() :: [{}]", cntVO.getFailCnt());
// 전체 갯수 구하기 // 전체 갯수 구하기
cntVO.setTotCnt(cntVO.getWaitCnt() + cntVO.getSuccCnt() + cntVO.getFailCnt()); cntVO.setTotCnt(cntVO.getWaitCnt() + cntVO.getSuccCnt() + cntVO.getFailCnt());
@ -314,6 +321,7 @@ private static final Logger logger = LoggerFactory.getLogger(MjonMsgSentControll
log.info(" ListView pageIndex :: [{}]", mjonMsgSentVO.getPageIndex()); log.info(" ListView pageIndex :: [{}]", mjonMsgSentVO.getPageIndex());
log.info(" ListView pageUnit :: [{}]", mjonMsgSentVO.getPageUnit());
//로그인 권한정보 불러오기 //로그인 권한정보 불러오기

View File

@ -371,6 +371,7 @@
, MD.FILE_PATH2 as filePath2 , MD.FILE_PATH2 as filePath2
, MD.FILE_PATH3 as filePath3 , MD.FILE_PATH3 as filePath3
, TIMESTAMPDIFF(minute, DATE_FORMAT(MGD.REQ_DATE, '%Y-%m-%d %T'), DATE_FORMAT(NOW(), '%Y-%m-%d %T')) as diffMin , TIMESTAMPDIFF(minute, DATE_FORMAT(MGD.REQ_DATE, '%Y-%m-%d %T'), DATE_FORMAT(NOW(), '%Y-%m-%d %T')) as diffMin
, SUBJECT_CHK_YN as subjectChkYn
from from
MJ_MSG_GROUP_DATA MGD MJ_MSG_GROUP_DATA MGD
inner join MJ_MSG_DATA MD on inner join MJ_MSG_DATA MD on
@ -429,8 +430,8 @@
, B.SMS_TXT as smsTxt , B.SMS_TXT as smsTxt
, B.SUBJECT as subject , B.SUBJECT as subject
, B.SUBJECT_CHK_YN as subjectChkYn , B.SUBJECT_CHK_YN as subjectChkYn
, DATE_FORMAT(B.REGDATE, '%Y-%m-%d %T') AS regdate , CAST(DATE_FORMAT(B.REGDATE, '%Y-%m-%d %H:%i') AS CHAR) AS regDate
, DATE_FORMAT(B.REQ_DATE, '%Y-%m-%d %T') AS reqDate , CAST(DATE_FORMAT(B.REQ_DATE, '%Y-%m-%d %H:%i') AS CHAR) AS reqDate
, ( , (
CASE CASE
WHEN B.DELAY_YN = 'Y' AND B.DELAY_COMPLETE_YN = 'N' THEN DATE_ADD(B.REQ_DATE, INTERVAL -30 MINUTE) WHEN B.DELAY_YN = 'Y' AND B.DELAY_COMPLETE_YN = 'N' THEN DATE_ADD(B.REQ_DATE, INTERVAL -30 MINUTE)
@ -452,7 +453,7 @@
, B.DELAY_COMPLETE_YN as delayCompleteYn , B.DELAY_COMPLETE_YN as delayCompleteYn
, B.RESERVE_YN as reserveYn , B.RESERVE_YN as reserveYn
, B.RESERVE_C_YN as reserveCYn , B.RESERVE_C_YN as reserveCYn
, TIMESTAMPDIFF(minute, DATE_FORMAT(B.REQ_DATE, '%Y-%m-%d %T'), DATE_FORMAT(NOW(), '%Y-%m-%d %T')) as diffMin , TIMESTAMPDIFF(minute, CAST(DATE_FORMAT(B.REQ_DATE, '%Y-%m-%d %H:%i') AS CHAR), DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i')) as diffMin
FROM MJ_MSG_DATA A FROM MJ_MSG_DATA A
JOIN MJ_MSG_GROUP_DATA B ON A.MSG_GROUP_ID = B.MSG_GROUP_ID JOIN MJ_MSG_GROUP_DATA B ON A.MSG_GROUP_ID = B.MSG_GROUP_ID
WHERE (B.DEL_FLAG = 'N' OR B.DEL_FLAG IS NULL) WHERE (B.DEL_FLAG = 'N' OR B.DEL_FLAG IS NULL)

View File

@ -22,6 +22,7 @@
<%@ taglib prefix="double-submit" uri="http://www.egovframe.go.kr/tags/double-submit/jsp" %> <%@ taglib prefix="double-submit" uri="http://www.egovframe.go.kr/tags/double-submit/jsp" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="ec" uri="/WEB-INF/tld/ecnet_tld.tld"%> <%@ taglib prefix="ec" uri="/WEB-INF/tld/ecnet_tld.tld"%>
<%@ taglib prefix="fnc" uri="/WEB-INF/tld/functions.tld"%>
<% pageContext.setAttribute("newLineChar", "\r\n"); %> <% pageContext.setAttribute("newLineChar", "\r\n"); %>
<% pageContext.setAttribute("newLineChar2", "\n"); %> <% pageContext.setAttribute("newLineChar2", "\n"); %>
<% String serverName = request.getServerName(); %> <% String serverName = request.getServerName(); %>
@ -4157,8 +4158,10 @@ function fnInputSmsTxt(){
</td> </td>
<td> <td>
<c:choose> <c:choose>
<c:when test="${not empty mjonMsgSentList.regdate}"> <c:when test="${not empty mjonMsgSentList.regDate}">
<fmt:formatDate value="${mjonMsgSentList.regdate}" pattern="MM-dd HH:mm"/> <%-- <fmt:formatDate value="${mjonMsgSentList.regDate}" pattern="MM-dd HH:mm"/> --%>
${fnc:setStrToDataFormatter(mjonMsgSentList.regDate, 'MM-dd HH:mm') }
<%-- <c:out value="${mjonMsgSentList.regDate}" /> --%>
</c:when> </c:when>
<c:otherwise> <c:otherwise>
- -
@ -4367,8 +4370,11 @@ function fnInputSmsTxt(){
</td> </td>
<td> <td>
<c:choose> <c:choose>
<c:when test="${not empty mjonMsgSentList.regdate}"> <c:when test="${not empty mjonMsgSentList.regDate}">
<fmt:formatDate value="${mjonMsgSentList.regdate}" pattern="MM-dd HH:mm"/> <%-- <fmt:formatDate value="${mjonMsgSentList.regDate}" pattern="MM-dd HH:mm"/> --%>
<%-- <c:out value="${mjonMsgSentList.regDate}" /> --%>
${fnc:setStrToDataFormatter(mjonMsgSentList.regDate, 'MM-dd HH:mm') }
</c:when> </c:when>
<c:otherwise> <c:otherwise>
- -
@ -4586,8 +4592,8 @@ function fnInputSmsTxt(){
</td> </td>
<td> <td>
<c:choose> <c:choose>
<c:when test="${not empty mjonMsgDelaySentList.regdate}"> <c:when test="${not empty mjonMsgDelaySentList.regDate}">
<fmt:formatDate value="${mjonMsgDelaySentList.regdate}" pattern="yyyy-MM-dd HH:mm"/> <fmt:formatDate value="${mjonMsgDelaySentList.regDate}" pattern="yyyy-MM-dd HH:mm"/>
</c:when> </c:when>
<c:otherwise> <c:otherwise>
- -
@ -4785,6 +4791,10 @@ function fnInputSmsTxt(){
<td> <td>
<c:choose> <c:choose>
<c:when test="${not empty kakaoResultList.regDate}"> <c:when test="${not empty kakaoResultList.regDate}">
<c:out value="${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:parseDate value="${kakaoResultList.regDate}" var="dateValue" pattern="yyyy-MM-dd HH:mm:ss"/>
<fmt:formatDate value="${dateValue}" pattern="MM-dd HH:mm"/> <fmt:formatDate value="${dateValue}" pattern="MM-dd HH:mm"/>
</c:when> </c:when>
@ -4925,8 +4935,10 @@ function fnInputSmsTxt(){
<td> <td>
<c:choose> <c:choose>
<c:when test="${not empty kakaoReserveList.regDate}"> <c:when test="${not empty kakaoReserveList.regDate}">
<fmt:parseDate value="${kakaoReserveList.regDate}" var="dateValue" pattern="yyyy-MM-dd HH:mm:ss"/> <c:out value="${kakaoReserveList.regDate}" />
<fmt:formatDate value="${dateValue}" pattern="MM-dd HH:mm"/> ${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:when>
<c:otherwise> <c:otherwise>
@ -5073,8 +5085,11 @@ function fnInputSmsTxt(){
<td> <td>
<c:choose> <c:choose>
<c:when test="${not empty kakaoDelayInfo.regDate}"> <c:when test="${not empty kakaoDelayInfo.regDate}">
<fmt:parseDate value="${kakaoDelayInfo.regDate}" var="kakaoDelayRegdate" pattern="yyyy-MM-dd HH:mm:ss"/> <%-- <c:out value="${kakaoDelayInfo.regDate}" /> --%>
<fmt:formatDate value="${kakaoDelayRegdate}" pattern="MM-dd HH:mm"/> ${fnc:setStrToDataFormatter(kakaoDelayInfo.regDate, 'MM-dd HH:mm') }
<%-- <fmt:formatDate value="${kakaoDelayRegdate}" pattern="MM-dd HH:mm"/> --%>
<%-- <fmt:parseDate value="${kakaoDelayInfo.regDate}" var="kakaoDelayRegdate" pattern="yyyy-MM-dd HH:mm:ss"/> --%>
<%-- <fmt:formatDate value="${kakaoDelayRegdate}" pattern="MM-dd HH:mm"/> --%>
</c:when> </c:when>
<c:otherwise> <c:otherwise>
- -

View File

@ -3985,6 +3985,8 @@ function getMjMsgSentListAll(pageNo) {
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
</h2> </h2>
<!-- /web/mjon/msgdata/selectMsgDataSMLViewAjax.do -->
<!-- MsgDataSMLView.jsp -->
<button type="button" class="button info" onclick="infoPop('selectMsgDataView1');">사용안내</button> <button type="button" class="button info" onclick="infoPop('selectMsgDataView1');">사용안내</button>
</div> </div>
<div class="send_general"> <div class="send_general">

View File

@ -123,18 +123,18 @@ $(document).ready(function(){
</div> </div>
</div> </div>
</div> </div>
<div class="inner"> <div class="inner">
<!-- send top --> <!-- send top -->
<div class="send_top"> <div class="send_top">
<!-- tab button --> <!-- tab button -->
<ul class="tabType1"> <ul class="tabType1">
<li class="tab ${tabDision eq 'tab01' ? 'active' : ''}"> <li class="tab ${tabDision eq 'tab01' ? 'active' : ''}">
<button type="button" onclick="javascript:fnMsgDataView(); return false;">일반문자</button> <button type="button" onclick="javascript:fnMsgDataView(); return false;">일반문자</button>
</li> </li>
<li class="tab ${tabDision eq 'tab02' ? 'active' : ''}"> <li class="tab ${tabDision eq 'tab02' ? 'active' : ''}">
<button type="button" onclick="javascript:fnMsgExcelDataView(); return false;">대량문자(광고문자)</button> <button type="button" onclick="javascript:fnMsgExcelDataView(); return false;">대량문자(광고문자)</button>
</li> </li>
</ul><!--// tab button --> </ul><!--// tab button -->
<!-- tab content1 --> <!-- tab content1 -->
<!-- <span id="contentArea"></span> --> <!-- <span id="contentArea"></span> -->
<div class="top_content ${tabDision eq 'tab02' ? 'get_excel' : ''} current contentArea" id="tab1_1" style="min-height: 555px;"></div> <div class="top_content ${tabDision eq 'tab02' ? 'get_excel' : ''} current contentArea" id="tab1_1" style="min-height: 555px;"></div>

View File

@ -151,7 +151,7 @@ function fnReservCancel(msgGroupId){
<div> <div>
<p class="cf_text c_e40000">※ 예약문자 발송취소는 예약 발송시간 기준 5분 전까지만 가능</p> <p class="cf_text c_e40000">※ 예약문자 발송취소는 예약 발송시간 기준 5분 전까지만 가능</p>
<label for="pageUnit" class="label">줄보기 선택</label> <label for="pageUnit" class="label">줄보기 선택</label>
<select id="pageUnit" name="pageUnit" class="selType2"> <select id="pageUnitS" class="selType2">
<option value="10" <c:if test="${paginationInfo.recordCountPerPage == '10'}">selected</c:if> >10개보기</option> <option value="10" <c:if test="${paginationInfo.recordCountPerPage == '10'}">selected</c:if> >10개보기</option>
<option value="20" <c:if test="${paginationInfo.recordCountPerPage == '20'}">selected</c:if> >20개보기</option> <option value="20" <c:if test="${paginationInfo.recordCountPerPage == '20'}">selected</c:if> >20개보기</option>
<option value="30" <c:if test="${paginationInfo.recordCountPerPage == '30'}">selected</c:if> >30개보기</option> <option value="30" <c:if test="${paginationInfo.recordCountPerPage == '30'}">selected</c:if> >30개보기</option>
@ -236,16 +236,16 @@ function fnReservCancel(msgGroupId){
발송 대기 상태일 때만 원래 발송시간을 보여주고, 발송이 완료되면 발송 처리 완료 시간(reqDate)을 보여준다. 발송 대기 상태일 때만 원래 발송시간을 보여주고, 발송이 완료되면 발송 처리 완료 시간(reqDate)을 보여준다.
30분 딜레이 된 건으로 관리자 승인/취소 처리가 완료 되지 않은 건에 대해서 -30분 처리하여 원래 사용자가 보내려던 시간을 표시해줌 30분 딜레이 된 건으로 관리자 승인/취소 처리가 완료 되지 않은 건에 대해서 -30분 처리하여 원래 사용자가 보내려던 시간을 표시해줌
--%> --%>
<p><fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${result.delayOrgTime}" /></p> <p>${result.delayOrgTime}</p>
</c:when> </c:when>
<c:otherwise> <c:otherwise>
<p><fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${result.reqdate}" /></p> <p>${result.reqDate}</p>
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
</c:when> </c:when>
<c:otherwise> <c:otherwise>
<p><fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${result.reqdate}" /></p> <p>${result.reqDate}</p>
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
@ -343,7 +343,7 @@ function fnReservCancel(msgGroupId){
<%-- <button type="button" class="btnType btnType15" onClick="javascript:fnAddBlockNo('${mjonMsgSentVO.listType}'); return false;"></i>수신거부번호 등록</button> --%> <%-- <button type="button" class="btnType btnType15" onClick="javascript:fnAddBlockNo('${mjonMsgSentVO.listType}'); return false;"></i>수신거부번호 등록</button> --%>
</div> </div>
<div class="table_btn_right"> <div class="table_btn_right">
<button type="button" class="excel_btn btnType" onClick="javascript:fnExcelDownLoad(); return false;"><i class="downroad"></i>엑셀 다운로드</button> <button type="button" class="excel_btn btnType" onClick="javascript:fnExcelDownLoad(); return false;"><i class="downroad"></i>발송결과 리스트</button>
<%-- <button type="button" class="print_btn btnType" onClick="javascript:fnShowPrintPopup('all','${mjonMsgSentVO.tabType}'); return false;"><i class="print_img"></i>발송결과 출력하기</button> --%> <%-- <button type="button" class="print_btn btnType" onClick="javascript:fnShowPrintPopup('all','${mjonMsgSentVO.tabType}'); return false;"><i class="print_img"></i>발송결과 출력하기</button> --%>
</div> </div>
</div> </div>

View File

@ -4,7 +4,10 @@
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="ec" uri="/WEB-INF/tld/ecnet_tld.tld"%> <%@ taglib prefix="ec" uri="/WEB-INF/tld/ecnet_tld.tld"%>
<%@ taglib prefix="fnc" uri="/WEB-INF/tld/functions.tld"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ page import="itn.com.cmm.LoginVO" %> <%@ page import="itn.com.cmm.LoginVO" %>
<% pageContext.setAttribute("newLineChar", "\n"); %>
@ -378,7 +381,7 @@ function fnMjMsgReSendAll(msgGroupId) {
// 치환문자 포함 여부에 따른 분기 // 치환문자 포함 여부에 따른 분기
var msg = ""; var msg = "";
if (replaceYn) { if (replaceYn) {
msg = "문자 내용에 포함된 특정 문구가 변환되지 않은 상태([*이름*],[*1*] 등)로 표기됩니다.\n문자내용, 받는 사람 목록 확인 후 발송해주세요"; msg = "문자발송 화면으로 이동합니다. 특정문구는 변환되지 않은 상태([*이름*],[*1*] 등)로 표기됩니다.\n문자내용, 받는 사람 목록 확인 후 발송해 주세요";
// form.msgResendAllReplaceYn.value = "Y"; // form.msgResendAllReplaceYn.value = "Y";
} else { } else {
var title = (msgKind == 'C') ? "선거문자발송" : "문자발송"; var title = (msgKind == 'C') ? "선거문자발송" : "문자발송";
@ -543,7 +546,7 @@ function fnDelAddrNo(){
}; };
let selectedTab = $(".tabType3 .tab.active button").text().trim(); let selectedTab = $(".tabType3 .tab.active button").text().trim();
if(!confirm(selectedTab+" 명단의 번호를 주소록에서 삭제하시겠습니까?")){ if(!confirm("발송"+selectedTab+" 번호를 주소록에서 삭제하시겠습니까?\n(모든 주소록 그룹에서 삭제)")){
return false; return false;
} }
@ -666,11 +669,11 @@ function getAddrGroupListShow(jsonList) {
<dd>${result.regDate }</dd> <dd>${result.regDate }</dd>
</dl> </dl>
</c:if> </c:if>
<c:if test="${not empty result.subject }"> <c:if test="${result.subjectChkYn eq 'Y'}">
<dl> <dl>
<dt>제목</dt> <dt>제목</dt>
<dd>${result.subject }</dd> <dd>${result.subject }</dd>
</dl> </dl>
</c:if> </c:if>
<dl> <dl>
<dt>형태</dt> <dt>형태</dt>
@ -688,7 +691,8 @@ function getAddrGroupListShow(jsonList) {
</dl> </dl>
<dl> <dl>
<dt>발신번호</dt> <dt>발신번호</dt>
<dd>${result.callFrom }</dd> <%-- <dd>${result.callFrom }</dd> --%>
<dd>${fnc:formatPhone(result.callFrom) }</dd>
</dl> </dl>
<dl> <dl>
<dt>진행상황 <dt>진행상황
@ -733,7 +737,18 @@ function getAddrGroupListShow(jsonList) {
<div class="res_info_btm"> <div class="res_info_btm">
<dl> <dl>
<dt class="btm_charge">발송요금</dt> <dt class="btm_charge">발송요금</dt>
<dd><span class="stcharge">78,100</span>원</dd> <dd>
<span class="stcharge">
<c:choose>
<c:when test="${result.totPrice eq '-' }">
0
</c:when>
<c:otherwise>
<fmt:formatNumber value="${result.totPrice }" type="number" groupingUsed="true" minFractionDigits="0" maxFractionDigits="1" />
</c:otherwise>
</c:choose>
</span>원
</dd>
<!--<dd><span class="stcharge">-</span>원</dd>--><!-- 예역취소 후 금액은 하이픈 처리--> <!--<dd><span class="stcharge">-</span>원</dd>--><!-- 예역취소 후 금액은 하이픈 처리-->
</dl> </dl>
</div> </div>
@ -843,7 +858,9 @@ function getAddrGroupListShow(jsonList) {
<c:if test="${result.msgKind eq 'A' }" > <c:if test="${result.msgKind eq 'A' }" >
<p class="ad_tit">(광고)</p> <p class="ad_tit">(광고)</p>
</c:if> </c:if>
<p class="none_txt" id="smsTxt"><c:out value="${result.smsTxt }" /></p> <p class="none_txt" id="smsTxt">
${fn:replace(result.smsTxt, newLineChar, "<br/>")}
</p>
<p class="realtime"></p> <p class="realtime"></p>
<c:if test="${result.msgKind eq 'A' }" > <c:if test="${result.msgKind eq 'A' }" >
<p class="deny_receipt">무료 거부 080-0000-0000</p> <p class="deny_receipt">무료 거부 080-0000-0000</p>
@ -924,31 +941,6 @@ function getAddrGroupListShow(jsonList) {
</div> </div>
</div> </div>
<!-- //발송대상 리스트 안내 팝업 --> <!-- //발송대상 리스트 안내 팝업 -->
<!--
<div class="tooltip-wrap">
<div class="popup-com adr_layer rev_popup02" tabindex="0" data-tooltip-con="rev_popup02" data-focus="rev_popup02" data-focus-prev="rev_popup02-close" style="width: 500px;">
<div class="popup_heading">
<p>그룹등록</p>
<button type="button" class="tooltip-close grpClose" data-focus="rev_popup02-close"><img src="/publish/images/content/layerPopup_close.png" alt="팝업 닫기"></button>
</div>
<div class="layer_in">
<div class="gorup_join_cont">
<p class="adr_pop_title">선택된 발송내역 전화번호를 그룹으로 등록합니다.</p>
<div class="group_input" style="margin-top: 0;">
<div class="input_left">그룹이름</div>
<div class="input_right">
<label for="grpNm" class="label">새 그룹명 입력</label>
<input type="text" id="grpNm" name="grpNm" placeholder="새 그룹명 입력" onfocus="this.placeholder=''" onblur="this.placeholder='새 그룹명 입력'" class="inputLight">
</div>
</div>
<div class="popup_btn_wrap2">
<button type="button" onclick="javascript:fnAddAddrNo(); return false;">저장</button>
<button type="button" class="tooltip-close grpClose" data-focus="rev_popup02-close" data-focus-next="rev_popup02">취소</button>
</div>
</div>
</div>
</div>
</div> -->
<!-- 주소록에 등록 팝업 --> <!-- 주소록에 등록 팝업 -->
<div class="tooltip-wrap"> <div class="tooltip-wrap">

View File

@ -107,7 +107,8 @@ $(document).ready(function(){
}); });
$(document).on('change','#pageUnit', function(){ $(document).on('change','#pageUnitS', function(){
setPageUnit($(this).val());
linkPage(1); linkPage(1);
@ -117,6 +118,10 @@ $(document).ready(function(){
}); });
function setPageUnit(val){
$('#pageUnit').val(val);
}
//탭 활성화 처리 함수 //탭 활성화 처리 함수
function fn_activateTab(tabInfo) { function fn_activateTab(tabInfo) {
@ -198,7 +203,7 @@ function fnTabLoad(tabType){
//즉시, 예약 탭은 전체로 바꿔야함 //즉시, 예약 탭은 전체로 바꿔야함
fn_activateTab(''); fn_activateTab('');
setPageUnit('10');
var form = document.searchForm; var form = document.searchForm;

View File

@ -28,7 +28,7 @@ $(document).ready(function(){
<div class="rev_admin_in"> <div class="rev_admin_in">
<div class="rev_admin_top clearfix"> <div class="rev_admin_top clearfix">
<p>전체</p> <p>전체</p>
<c:set var="allTotal" value="${H_smsSentCntVO.totCnt + H_lmsSentCntVO.totCnt + H_mmsSentCntVO.totCnt}" /> <c:set var="allTotal" value="${H_allSentCntVO.totCnt}" />
<p><span><fmt:formatNumber value="${allTotal }" pattern="#,###"/></span> 건</p> <p><span><fmt:formatNumber value="${allTotal }" pattern="#,###"/></span> 건</p>
</div> </div>
<div class="rev_admin_btm"> <div class="rev_admin_btm">
@ -46,23 +46,6 @@ $(document).ready(function(){
<dd><span class="c_e40000"><fmt:formatNumber value="${H_allSentCntVO.failCnt}" pattern="#,###"/></span>건</dd> <dd><span class="c_e40000"><fmt:formatNumber value="${H_allSentCntVO.failCnt}" pattern="#,###"/></span>건</dd>
</dl> </dl>
</div> </div>
<%-- <c:if test="${appMgmt }">
<div class="rev_admin_btm admin_btm admin_btm_api">
<P class="title_top">API<span class="title_num"><fmt:formatNumber value="${A_allSentCntVO.totCnt}" pattern="#,###"/><span>건</span></span></P>
<dl>
<dt>대기</dt>
<dd><span class="c_002c9a"><fmt:formatNumber value="${A_allSentCntVO.waitCnt}" pattern="#,###"/></span>건</dd>
</dl>
<dl>
<dt>성공</dt>
<dd><span class="c_002c9a"><fmt:formatNumber value="${A_allSentCntVO.succCnt}" pattern="#,###"/></span>건</dd>
</dl>
<dl>
<dt>실패</dt>
<dd><span class="c_e40000"><fmt:formatNumber value="${A_allSentCntVO.failCnt}" pattern="#,###"/></span>건</dd>
</dl>
</div>
</c:if> --%>
</div> </div>
<div class="rev_admin_in"> <div class="rev_admin_in">
<div class="rev_admin_top clearfix"> <div class="rev_admin_top clearfix">
@ -85,23 +68,6 @@ $(document).ready(function(){
<dd><span class="c_e40000"><fmt:formatNumber value="${H_smsSentCntVO.failCnt}" pattern="#,###"/></span>건</dd> <dd><span class="c_e40000"><fmt:formatNumber value="${H_smsSentCntVO.failCnt}" pattern="#,###"/></span>건</dd>
</dl> </dl>
</div> </div>
<%-- <c:if test="${appMgmt }">
<div class="rev_admin_btm admin_btm admin_btm_api">
<P class="title_top">API<span class="title_num"><fmt:formatNumber value="${A_smsSentCntVO.totCnt}" pattern="#,###"/><span>건</span></span></P>
<dl>
<dt>대기</dt>
<dd><span class="c_002c9a"><fmt:formatNumber value="${A_smsSentCntVO.waitCnt}" pattern="#,###"/></span>건</dd>
</dl>
<dl>
<dt>성공</dt>
<dd><span class="c_002c9a"><fmt:formatNumber value="${A_smsSentCntVO.succCnt}" pattern="#,###"/></span>건</dd>
</dl>
<dl>
<dt>실패</dt>
<dd><span class="c_e40000"><fmt:formatNumber value="${A_smsSentCntVO.failCnt}" pattern="#,###"/></span>건</dd>
</dl>
</div>
</c:if> --%>
</div> </div>
<div class="rev_admin_in"> <div class="rev_admin_in">
<div class="rev_admin_top clearfix"> <div class="rev_admin_top clearfix">
@ -124,23 +90,6 @@ $(document).ready(function(){
<dd><span class="c_e40000"><fmt:formatNumber value="${H_lmsSentCntVO.failCnt}" pattern="#,###"/></span>건</dd> <dd><span class="c_e40000"><fmt:formatNumber value="${H_lmsSentCntVO.failCnt}" pattern="#,###"/></span>건</dd>
</dl> </dl>
</div> </div>
<%-- <c:if test="${appMgmt }">
<div class="rev_admin_btm admin_btm admin_btm_api">
<P class="title_top">API<span class="title_num"><fmt:formatNumber value="${A_lmsSentCntVO.totCnt}" pattern="#,###"/><span>건</span></span></P>
<dl>
<dt>대기</dt>
<dd><span class="c_002c9a"><fmt:formatNumber value="${A_lmsSentCntVO.waitCnt}" pattern="#,###"/></span>건</dd>
</dl>
<dl>
<dt>성공</dt>
<dd><span class="c_002c9a"><fmt:formatNumber value="${A_lmsSentCntVO.succCnt}" pattern="#,###"/></span>건</dd>
</dl>
<dl>
<dt>실패</dt>
<dd><span class="c_e40000"><fmt:formatNumber value="${A_lmsSentCntVO.failCnt}" pattern="#,###"/></span>건</dd>
</dl>
</div>
</c:if> --%>
</div> </div>
<div class="rev_admin_in"> <div class="rev_admin_in">
<div class="rev_admin_top clearfix"> <div class="rev_admin_top clearfix">
@ -163,21 +112,4 @@ $(document).ready(function(){
<dd><span class="c_e40000"><fmt:formatNumber value="${H_mmsSentCntVO.failCnt}" pattern="#,###"/></span>건</dd> <dd><span class="c_e40000"><fmt:formatNumber value="${H_mmsSentCntVO.failCnt}" pattern="#,###"/></span>건</dd>
</dl> </dl>
</div> </div>
<%-- <c:if test="${appMgmt }">
<div class="rev_admin_btm admin_btm admin_btm_api">
<P class="title_top">API<span class="title_num"><fmt:formatNumber value="${A_mmsSentCntVO.totCnt}" pattern="#,###"/><span>건</span></span></P>
<dl>
<dt>대기</dt>
<dd><span class="c_002c9a"><fmt:formatNumber value="${A_mmsSentCntVO.waitCnt}" pattern="#,###"/></span>건</dd>
</dl>
<dl>
<dt>성공</dt>
<dd><span class="c_002c9a"><fmt:formatNumber value="${A_mmsSentCntVO.succCnt}" pattern="#,###"/></span>건</dd>
</dl>
<dl>
<dt>실패</dt>
<dd><span class="c_e40000"><fmt:formatNumber value="${A_mmsSentCntVO.failCnt}" pattern="#,###"/></span>건</dd>
</dl>
</div>
</c:if> --%>
</div> </div>

View File

@ -8,11 +8,17 @@
<!-- PhoneFormatUtil 클래스의 함수 --> <!-- PhoneFormatUtil 클래스의 함수 -->
<function> <function>
<name>formatPhone</name> <!-- 호출 함수명 --> <name>formatPhone</name> <!-- JSP에서 호출 함수명 -->
<function-class>itn.com.cmm.util.StringUtil2</function-class> <!-- 참조 클레스 --> <function-class>itn.com.cmm.util.StringUtil2</function-class> <!-- 해당 함수를 포함하는 Java 클래스 -->
<function-signature>java.lang.String formatPhone(java.lang.String)</function-signature> <!-- 참조 매소드의 파라미터 설정 --> <function-signature>java.lang.String formatPhone(java.lang.String)</function-signature> <!-- 함수의 반환 타입 및 매개변수 타입 (메서드 시그니처) -->
</function> </function>
<function>
<name>setStrToDataFormatter</name>
<function-class>itn.com.cmm.util.DateUtils</function-class>
<function-signature>java.lang.String setStrToDataFormatter(java.lang.String, java.lang.String)</function-signature>
</function>
<!-- 예시) function 추가 - StringUtil 클래스의 함수 --> <!-- 예시) function 추가 - StringUtil 클래스의 함수 -->
<!-- <!--
<function> <function>

View File

@ -13,6 +13,7 @@
// 문자 그룹정보 => 재전송용 // 문자 그룹정보 => 재전송용
function getMjMsgGroupInfoByResend() { function getMjMsgGroupInfoByResend() {
console.log('재전송 시 싱행되는 function');
$.ajax({ $.ajax({
type: "POST", type: "POST",
url: "/web/mjon/msgdata/selectMjMsgGroupInfoByResendAjax.do", url: "/web/mjon/msgdata/selectMjMsgGroupInfoByResendAjax.do",
@ -33,6 +34,7 @@ function getMjMsgGroupInfoByResend() {
var smsTxt = msgData.smsTxt; var smsTxt = msgData.smsTxt;
var subject = msgData.subject; var subject = msgData.subject;
var subjectChkYn = msgData.subjectChkYn;
var fileId = ""; var fileId = "";
var filePath = ""; var filePath = "";
var len = fileData.length; var len = fileData.length;
@ -56,11 +58,13 @@ function getMjMsgGroupInfoByResend() {
console.log('msgData : ', msgData); console.log('msgData : ', msgData);
console.log('msgData : ', msgData); console.log('msgData : ', msgData);
// 문자제목 // 문자제목
if (msgData.subject != null && msgData.subject != "") { if (subject != null && subject != "") {
$('.msg_title').addClass('active'); if(subjectChkYn == 'Y'){
$("input:radio[name='subjectChkYn']:radio[value='Y']").prop('checked', true); // 선택하기 $('.msg_title').addClass('active');
$('.textbox').show(); $("input:radio[name='subjectChkYn']:radio[value='Y']").prop('checked', true); // 선택하기
$("#mmsSubject").val(subject); $('.textbox').show();
$("#mmsSubject").val(subject);
}
} }
// 문자내용 // 문자내용
@ -1280,10 +1284,8 @@ function sendMsgAjax_advc(){
dataType: 'json', dataType: 'json',
success: function (data) { success: function (data) {
console.log('data : ', data);
var status = data.status; var status = data.status;
if("OK" == status){ if("OK" == status){ // 성공
var smsCnt = Number(data.object.resultSts); var smsCnt = Number(data.object.resultSts);
var blockCnt = Number(data.object.resultBlockSts); var blockCnt = Number(data.object.resultBlockSts);
@ -1309,19 +1311,19 @@ function sendMsgAjax_advc(){
} }
}else if("BAD_REQUEST" == status){ }else if("BAD_REQUEST" == status){ // 오류
alert(data.message); alert(data.message);
return false; return false;
}else if("UNAUTHORIZED" == status){ }else if("UNAUTHORIZED" == status){ // 정지 회원 처리
alert(data.message); alert(data.message);
//문자발송 URL Move //문자발송 URL Move
goMsgUrlMove(); goMsgUrlMove();
return false; return false;
}else if("NO_CONTENT" == status){ }else if("NO_CONTENT" == status){ // 발송로직에서 이미지 처리 오류 시 처리
$('.pop_msg_fails').css({'display':'block','opacity':'1','left':'50%','top':'50%','transform':'translate(-50%,-50%)'}); $('.pop_msg_fails').css({'display':'block','opacity':'1','left':'50%','top':'50%','transform':'translate(-50%,-50%)'});
$('.pop_msg_fails .msg_text').html(returnData.message); $('.pop_msg_fails .msg_text').html(returnData.message);
@ -1710,15 +1712,15 @@ function msgSpamClose(obj){
function msgResultLink(){ function msgResultLink(){
var reserYn = $("input[name=reserYn]:checked").val(); // 예약 발송 여부 확인 var reserYn = $("input[name=reserYn]:checked").val(); // 예약 발송 여부 확인
if(reserYn == 'Y'){ /*if(reserYn == 'Y'){
location.href="/web/mjon/reservmsg/selectReservMsgView.do"; location.href="/web/mjon/reservmsg/selectReservMsgView.do";
}else{ }else{*/
location.href="/web/mjon/msgsent/selectMsgSentView.do"; location.href="/web/mjon/msgsent/selectMsgSentView.do";
} /*}*/
} }