Merge branch 'master' of http://dudgusw@vcs.iten.co.kr:9999/hylee/mjon_git
@b8fd7df1d2bdc354fb6da5fd84cbb06e246e825c
--- src/main/java/itn/let/mjo/msg/service/MjonMsgVO.java
+++ src/main/java/itn/let/mjo/msg/service/MjonMsgVO.java
... | ... | @@ -200,6 +200,11 @@ |
| 200 | 200 |
|
| 201 | 201 |
private String searchDelayMsgYn; |
| 202 | 202 |
|
| 203 |
+ private int succSendCnt; |
|
| 204 |
+ private int failSendCnt; |
|
| 205 |
+ private double succSendPrice; |
|
| 206 |
+ private double failSendPrice; |
|
| 207 |
+ |
|
| 203 | 208 |
public String getSearchDelayMsgYn() {
|
| 204 | 209 |
return searchDelayMsgYn; |
| 205 | 210 |
} |
... | ... | @@ -1595,4 +1600,28 @@ |
| 1595 | 1600 |
public void setFtSendCount(int ftSendCount) {
|
| 1596 | 1601 |
this.ftSendCount = ftSendCount; |
| 1597 | 1602 |
} |
| 1603 |
+ public int getSuccSendCnt() {
|
|
| 1604 |
+ return succSendCnt; |
|
| 1605 |
+ } |
|
| 1606 |
+ public void setSuccSendCnt(int succSendCnt) {
|
|
| 1607 |
+ this.succSendCnt = succSendCnt; |
|
| 1608 |
+ } |
|
| 1609 |
+ public int getFailSendCnt() {
|
|
| 1610 |
+ return failSendCnt; |
|
| 1611 |
+ } |
|
| 1612 |
+ public void setFailSendCnt(int failSendCnt) {
|
|
| 1613 |
+ this.failSendCnt = failSendCnt; |
|
| 1614 |
+ } |
|
| 1615 |
+ public double getSuccSendPrice() {
|
|
| 1616 |
+ return succSendPrice; |
|
| 1617 |
+ } |
|
| 1618 |
+ public void setSuccSendPrice(double succSendPrice) {
|
|
| 1619 |
+ this.succSendPrice = succSendPrice; |
|
| 1620 |
+ } |
|
| 1621 |
+ public double getFailSendPrice() {
|
|
| 1622 |
+ return failSendPrice; |
|
| 1623 |
+ } |
|
| 1624 |
+ public void setFailSendPrice(double failSendPrice) {
|
|
| 1625 |
+ this.failSendPrice = failSendPrice; |
|
| 1626 |
+ } |
|
| 1598 | 1627 |
} |
--- src/main/java/itn/let/mjo/msgdata/service/MjonMsgDataService.java
+++ src/main/java/itn/let/mjo/msgdata/service/MjonMsgDataService.java
... | ... | @@ -79,6 +79,8 @@ |
| 79 | 79 |
|
| 80 | 80 |
public List<MjonMsgVO> selectPayUserList(MjonMsgVO mjonMsgVO) throws Exception; |
| 81 | 81 |
|
| 82 |
+ public List<MjonMsgVO> selectPayUserSWList(MjonMsgVO mjonMsgVO) throws Exception; |
|
| 83 |
+ |
|
| 82 | 84 |
public List<MjonMsgVO> selectPayUserSumList(MjonMsgVO mjonMsgVO) throws Exception; |
| 83 | 85 |
|
| 84 | 86 |
// 중계사 시스템 발송 문자 내용 입력 |
--- src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataDAO.java
+++ src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataDAO.java
... | ... | @@ -152,6 +152,11 @@ |
| 152 | 152 |
} |
| 153 | 153 |
|
| 154 | 154 |
@SuppressWarnings("unchecked")
|
| 155 |
+ public List<MjonMsgVO> selectPayUserSWList(MjonMsgVO mjonMsgVO) throws Exception{
|
|
| 156 |
+ return (List<MjonMsgVO>) list("mjonMsgDAO.selectPayUserSWList",mjonMsgVO);
|
|
| 157 |
+ } |
|
| 158 |
+ |
|
| 159 |
+ @SuppressWarnings("unchecked")
|
|
| 155 | 160 |
public List<MjonMsgVO> selectPayUserSumList(MjonMsgVO mjonMsgVO) throws Exception{
|
| 156 | 161 |
return (List<MjonMsgVO>) list("mjonMsgDAO.selectPayUserSumList",mjonMsgVO);
|
| 157 | 162 |
} |
--- src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java
+++ src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java
... | ... | @@ -1775,6 +1775,11 @@ |
| 1775 | 1775 |
} |
| 1776 | 1776 |
|
| 1777 | 1777 |
@Override |
| 1778 |
+ public List<MjonMsgVO> selectPayUserSWList(MjonMsgVO mjonMsgVO) throws Exception {
|
|
| 1779 |
+ return mjonMsgDataDAO.selectPayUserSWList(mjonMsgVO); |
|
| 1780 |
+ } |
|
| 1781 |
+ |
|
| 1782 |
+ @Override |
|
| 1778 | 1783 |
public List<MjonMsgVO> selectPayUserSumList(MjonMsgVO mjonMsgVO) throws Exception {
|
| 1779 | 1784 |
return mjonMsgDataDAO.selectPayUserSumList(mjonMsgVO); |
| 1780 | 1785 |
} |
--- src/main/java/itn/let/mjo/pay/web/MjonPayController.java
+++ src/main/java/itn/let/mjo/pay/web/MjonPayController.java
... | ... | @@ -2099,6 +2099,13 @@ |
| 2099 | 2099 |
return "/web/pay/PayListAllAjax"; |
| 2100 | 2100 |
} |
| 2101 | 2101 |
|
| 2102 |
+ //후불제 회원 여부 조회 |
|
| 2103 |
+ UserManageVO userManageVO = new UserManageVO(); |
|
| 2104 |
+ userManageVO.setMberId(userId); |
|
| 2105 |
+ userManageVO = userManageService.selectAdminSmsNoticeYn(userManageVO); |
|
| 2106 |
+ |
|
| 2107 |
+ model.addAttribute("prePaymentYn", userManageVO.getPrePaymentYn());
|
|
| 2108 |
+ |
|
| 2102 | 2109 |
return "/web/pay/PayList"; |
| 2103 | 2110 |
} |
| 2104 | 2111 |
|
... | ... | @@ -2514,7 +2521,7 @@ |
| 2514 | 2521 |
return "/web/pay/PayUserWithKakaoList"; |
| 2515 | 2522 |
} |
| 2516 | 2523 |
/** |
| 2517 |
- * 요금사용내역 |
|
| 2524 |
+ * 요금사용내역 하단 리스트 영역 |
|
| 2518 | 2525 |
* @param mjonMsgVO |
| 2519 | 2526 |
* @param model |
| 2520 | 2527 |
* @return "/web/member/pay/PayUserListAjax.do" |
... | ... | @@ -2557,6 +2564,393 @@ |
| 2557 | 2564 |
return "/web/pay/PayUserListAjax"; |
| 2558 | 2565 |
} |
| 2559 | 2566 |
|
| 2567 |
+ |
|
| 2568 |
+ |
|
| 2569 |
+ |
|
| 2570 |
+ /** |
|
| 2571 |
+ * 요금사용내역 신규 화면 |
|
| 2572 |
+ * 2023.12.22 우영두 |
|
| 2573 |
+ * @param mjonMsgVO |
|
| 2574 |
+ * @param model |
|
| 2575 |
+ * @return "/web/member/pay/PayUserSWList.do" |
|
| 2576 |
+ * @throws Exception |
|
| 2577 |
+ */ |
|
| 2578 |
+ @RequestMapping(value= {"/web/member/pay/PayUserSWList.do"})
|
|
| 2579 |
+ public String PayUserSWList(@ModelAttribute("mjonMsgVO") MjonMsgVO mjonMsgVO,
|
|
| 2580 |
+ MjonPayVO mjonPayVO, |
|
| 2581 |
+ MberManageVO mberManageVO, RedirectAttributes redirectAttributes, |
|
| 2582 |
+ HttpServletRequest request, |
|
| 2583 |
+ ModelMap model) throws Exception{
|
|
| 2584 |
+ |
|
| 2585 |
+ /*LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();*/ |
|
| 2586 |
+ LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; |
|
| 2587 |
+ |
|
| 2588 |
+ if(loginVO == null) {
|
|
| 2589 |
+ //redirectAttributes.addFlashAttribute("message", "문자온 서비스는 로그인 후 이용 가능합니다.");
|
|
| 2590 |
+ return "redirect:/web/user/login/login.do"; |
|
| 2591 |
+ } |
|
| 2592 |
+ String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); |
|
| 2593 |
+ mjonMsgVO.setUserId(userId); |
|
| 2594 |
+ |
|
| 2595 |
+ { // 충전캐시
|
|
| 2596 |
+ String sumPayMoney = mjonPayService.selectAgentSumPayMoney(userId); |
|
| 2597 |
+ model.addAttribute("sumPayMoney", sumPayMoney);
|
|
| 2598 |
+ } |
|
| 2599 |
+ |
|
| 2600 |
+ { // 충전포인트
|
|
| 2601 |
+ String sumPoint = mjonPayService.selectSumPoint(userId); |
|
| 2602 |
+ model.addAttribute("sumPoint", sumPoint);
|
|
| 2603 |
+ } |
|
| 2604 |
+ |
|
| 2605 |
+ { // 총 사용금액
|
|
| 2606 |
+ mjonPayVO.setUserId(userId); |
|
| 2607 |
+ List<MjonPayVO> usedCashTotList = mjonPayService.selectUsedCashWithKakaoTotCnt(mjonPayVO); |
|
| 2608 |
+ model.addAttribute("usedCashTotList", usedCashTotList);
|
|
| 2609 |
+ } |
|
| 2610 |
+ { // 사용가능한 금액
|
|
| 2611 |
+ mberManageVO = mjonMsgDataService.selectMberManageInfo(userId); |
|
| 2612 |
+ model.addAttribute("mberManageVO", mberManageVO);
|
|
| 2613 |
+ } |
|
| 2614 |
+ |
|
| 2615 |
+ { // 발송건수
|
|
| 2616 |
+ mjonMsgVO.setReserveYn("N");
|
|
| 2617 |
+ List<MjonMsgVO> sendTotList = mjonMsgService.selectWithKakaoSendTotCnt(mjonMsgVO); |
|
| 2618 |
+ model.addAttribute("sendTotList", sendTotList);
|
|
| 2619 |
+ } |
|
| 2620 |
+ |
|
| 2621 |
+ { // 예약건수
|
|
| 2622 |
+ mjonMsgVO.setReserveYn("Y");
|
|
| 2623 |
+ List<MjonMsgVO> reservToList = mjonMsgService.selectWithKakaoSendTotCnt(mjonMsgVO); |
|
| 2624 |
+ model.addAttribute("reservToList", reservToList);
|
|
| 2625 |
+ } |
|
| 2626 |
+ |
|
| 2627 |
+ {
|
|
| 2628 |
+ MjonCandidateVO mjonCandidateVO = new MjonCandidateVO(); |
|
| 2629 |
+ if("p".equals(mberManageVO.getDept())) { //개인회원 선거 후보자 정보 불러오기
|
|
| 2630 |
+ mjonCandidateVO = mjonCandidateService.selectCandidateDataInfo(userId); |
|
| 2631 |
+ if(mjonCandidateVO != null) {
|
|
| 2632 |
+ mjonCandidateVO.setRegidentNo1(egovCryptoUtil.decrypt(mjonCandidateVO.getRegidentNo1())); |
|
| 2633 |
+ mjonCandidateVO.setRegidentNo2(egovCryptoUtil.decrypt(mjonCandidateVO.getRegidentNo2())); |
|
| 2634 |
+ } |
|
| 2635 |
+ } |
|
| 2636 |
+ model.addAttribute("mjonCandidateVO", mjonCandidateVO);
|
|
| 2637 |
+ } |
|
| 2638 |
+ return "/web/pay/PayUserSWList"; |
|
| 2639 |
+ } |
|
| 2640 |
+ |
|
| 2641 |
+ |
|
| 2642 |
+ /** |
|
| 2643 |
+ * 요금사용내역 하단 리스트 영역 신규 화면 |
|
| 2644 |
+ * 2023.12.22 우영두 |
|
| 2645 |
+ * @param mjonMsgVO |
|
| 2646 |
+ * @param model |
|
| 2647 |
+ * @return "/web/member/pay/PayUserSWListAjax.do" |
|
| 2648 |
+ * @throws Exception |
|
| 2649 |
+ */ |
|
| 2650 |
+ @RequestMapping(value= {"/web/member/pay/PayUserSWListAjax.do"})
|
|
| 2651 |
+ public String PayUserSWListAjax(@ModelAttribute("searchVO") MjonMsgVO mjonMsgVO,
|
|
| 2652 |
+ HttpServletRequest request, |
|
| 2653 |
+ ModelMap model) throws Exception{
|
|
| 2654 |
+ |
|
| 2655 |
+ LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); |
|
| 2656 |
+ String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); |
|
| 2657 |
+ mjonMsgVO.setUserId(userId); |
|
| 2658 |
+ |
|
| 2659 |
+ if(mjonMsgVO.getPageUnit() != 10) {
|
|
| 2660 |
+ mjonMsgVO.setPageUnit(mjonMsgVO.getPageUnit()); |
|
| 2661 |
+ } |
|
| 2662 |
+ |
|
| 2663 |
+ /** pageing */ |
|
| 2664 |
+ PaginationInfo paginationInfo = new PaginationInfo(); |
|
| 2665 |
+ paginationInfo.setCurrentPageNo(mjonMsgVO.getPageIndex()); |
|
| 2666 |
+ paginationInfo.setRecordCountPerPage(mjonMsgVO.getPageUnit()); |
|
| 2667 |
+ paginationInfo.setPageSize(mjonMsgVO.getPageSize()); |
|
| 2668 |
+ |
|
| 2669 |
+ mjonMsgVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); |
|
| 2670 |
+ mjonMsgVO.setLastIndex(paginationInfo.getLastRecordIndex()); |
|
| 2671 |
+ mjonMsgVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); |
|
| 2672 |
+ |
|
| 2673 |
+ if("".equals(mjonMsgVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
|
|
| 2674 |
+ mjonMsgVO.setSearchSortCnd("regDate");
|
|
| 2675 |
+ mjonMsgVO.setSearchSortOrd("desc");
|
|
| 2676 |
+ } |
|
| 2677 |
+ |
|
| 2678 |
+ |
|
| 2679 |
+ List<MjonMsgVO> payUserSWList = mjonMsgDataService.selectPayUserSWList(mjonMsgVO); |
|
| 2680 |
+ |
|
| 2681 |
+ paginationInfo.setTotalRecordCount(payUserSWList.size()> 0 ? payUserSWList.get(0).getTotCnt() : 0); |
|
| 2682 |
+ model.addAttribute("paginationInfo", paginationInfo);
|
|
| 2683 |
+ model.addAttribute("payUserSWList", payUserSWList);
|
|
| 2684 |
+ |
|
| 2685 |
+ return "/web/pay/PayUserSWListAjax"; |
|
| 2686 |
+ } |
|
| 2687 |
+ |
|
| 2688 |
+ @RequestMapping(value= {"/web/member/pay/PayPdfSWListPopUpAjax.do"})
|
|
| 2689 |
+ public String payPrintPdfSWDataAjax( |
|
| 2690 |
+ @ModelAttribute("searchVO") MjonMsgVO mjonMsgVO
|
|
| 2691 |
+ , RedirectAttributes redirectAttributes |
|
| 2692 |
+ , ModelMap model) throws Exception {
|
|
| 2693 |
+ //로그인 권한정보 불러오기 |
|
| 2694 |
+ LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; |
|
| 2695 |
+ String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); |
|
| 2696 |
+ String userNm = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getName()); |
|
| 2697 |
+ |
|
| 2698 |
+ mjonMsgVO.setUserId(userId); |
|
| 2699 |
+ model.addAttribute("userNm", userNm);
|
|
| 2700 |
+ |
|
| 2701 |
+ mjonMsgVO.setFirstIndex(0); |
|
| 2702 |
+ mjonMsgVO.setRecordCountPerPage(10000); |
|
| 2703 |
+ |
|
| 2704 |
+ //결제 리스트 정보 불러오기 |
|
| 2705 |
+ List<MjonMsgVO> payUserList = mjonMsgDataService.selectPayUserSWList(mjonMsgVO); |
|
| 2706 |
+ model.addAttribute("payUserList", payUserList);
|
|
| 2707 |
+ |
|
| 2708 |
+ Calendar cal = Calendar.getInstance(); |
|
| 2709 |
+ |
|
| 2710 |
+ int year = cal.get(Calendar.YEAR); |
|
| 2711 |
+ int month = cal.get(Calendar.MONTH) + 1; |
|
| 2712 |
+ int day = cal.get(Calendar.DAY_OF_MONTH); |
|
| 2713 |
+ |
|
| 2714 |
+ model.addAttribute("year", year);
|
|
| 2715 |
+ model.addAttribute("month", month);
|
|
| 2716 |
+ model.addAttribute("day", day);
|
|
| 2717 |
+ |
|
| 2718 |
+ return "web/pay/PrintPayUserSWListPdfPopUp"; |
|
| 2719 |
+ } |
|
| 2720 |
+ |
|
| 2721 |
+ |
|
| 2722 |
+ /** |
|
| 2723 |
+ * 요금 사용내역 엑셀 다운 |
|
| 2724 |
+ * @param mjonMsgVO |
|
| 2725 |
+ * @param model |
|
| 2726 |
+ * @return "/web/member/pay/PayUserListAjax.do" |
|
| 2727 |
+ * @throws Exception |
|
| 2728 |
+ */ |
|
| 2729 |
+ @RequestMapping(value= {"/web/member/pay/PayUserSWListExcelDownload.do"})
|
|
| 2730 |
+ public void PayUserSWListExcelDownload(@ModelAttribute("searchVO") MjonMsgVO mjonMsgVO,
|
|
| 2731 |
+ HttpServletRequest request, |
|
| 2732 |
+ HttpServletResponse response , |
|
| 2733 |
+ ModelMap model) throws Exception{
|
|
| 2734 |
+ |
|
| 2735 |
+ // 메모리에 100개의 행을 유지합니다. 행의 수가 넘으면 디스크에 적습니다. |
|
| 2736 |
+ SXSSFWorkbook wb = new SXSSFWorkbook(100); |
|
| 2737 |
+ String fileName ="사용내역 엑셀 리스트"; // 저장 파일명 |
|
| 2738 |
+ String sheetTitle = "요금사용내역" ; // 셀 제목 |
|
| 2739 |
+ Sheet sheet = wb.createSheet(sheetTitle); |
|
| 2740 |
+ Cell cell = null; |
|
| 2741 |
+ Row row = null; |
|
| 2742 |
+ |
|
| 2743 |
+ CellStyle style = wb.createCellStyle(); |
|
| 2744 |
+ style.setBorderBottom(CellStyle.BORDER_THIN); //테두리 두껍게 |
|
| 2745 |
+ style.setBorderLeft(CellStyle.BORDER_THIN); |
|
| 2746 |
+ style.setBorderRight(CellStyle.BORDER_THIN); |
|
| 2747 |
+ style.setBorderTop(CellStyle.BORDER_THIN); |
|
| 2748 |
+ |
|
| 2749 |
+ // 정렬 |
|
| 2750 |
+ style.setAlignment(CellStyle.ALIGN_CENTER); //가운데 정렬 |
|
| 2751 |
+ style.setVerticalAlignment(CellStyle.VERTICAL_CENTER); //높이 가운데 정렬 |
|
| 2752 |
+ |
|
| 2753 |
+ Font font = wb.createFont(); |
|
| 2754 |
+ font.setBoldweight(Font.BOLDWEIGHT_BOLD); //글씨 bold |
|
| 2755 |
+ |
|
| 2756 |
+ sheet.setColumnWidth(1, 5000); // 칼럼의 폭 조절 |
|
| 2757 |
+ sheet.setColumnWidth(4, 10000); // 칼럼의 폭 조절 |
|
| 2758 |
+ |
|
| 2759 |
+ try{
|
|
| 2760 |
+ |
|
| 2761 |
+ LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); |
|
| 2762 |
+ String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); |
|
| 2763 |
+ mjonMsgVO.setUserId(userId); |
|
| 2764 |
+ |
|
| 2765 |
+ mjonMsgVO.setRecordCountPerPage(100000); |
|
| 2766 |
+ mjonMsgVO.setFirstIndex(0); |
|
| 2767 |
+ |
|
| 2768 |
+ if("".equals(mjonMsgVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
|
|
| 2769 |
+ mjonMsgVO.setSearchSortCnd("regDate");
|
|
| 2770 |
+ mjonMsgVO.setSearchSortOrd("desc");
|
|
| 2771 |
+ } |
|
| 2772 |
+ |
|
| 2773 |
+ List<MjonMsgVO> payUserList = mjonMsgDataService.selectPayUserSWList(mjonMsgVO); |
|
| 2774 |
+ {//화면 리스트
|
|
| 2775 |
+ |
|
| 2776 |
+ row = sheet.createRow(0); |
|
| 2777 |
+ |
|
| 2778 |
+ sheet.addMergedRegion(new CellRangeAddress(0,1,0,0)); //셀병합 |
|
| 2779 |
+ sheet.addMergedRegion(new CellRangeAddress(0,1,1,1)); //셀병합 |
|
| 2780 |
+ sheet.addMergedRegion(new CellRangeAddress(0,1,2,2)); //셀병합 |
|
| 2781 |
+ sheet.addMergedRegion(new CellRangeAddress(0,1,3,3)); //셀병합 |
|
| 2782 |
+ |
|
| 2783 |
+ |
|
| 2784 |
+ cell = row.createCell(0); |
|
| 2785 |
+ cell.setCellValue("번호");
|
|
| 2786 |
+ cell.setCellStyle(style); |
|
| 2787 |
+ |
|
| 2788 |
+ cell = row.createCell(1); |
|
| 2789 |
+ cell.setCellValue("날짜");
|
|
| 2790 |
+ cell.setCellStyle(style); |
|
| 2791 |
+ |
|
| 2792 |
+ cell = row.createCell(2); |
|
| 2793 |
+ cell.setCellValue("문자유형");
|
|
| 2794 |
+ cell.setCellStyle(style); |
|
| 2795 |
+ |
|
| 2796 |
+ cell = row.createCell(3); |
|
| 2797 |
+ cell.setCellValue("발송건수");
|
|
| 2798 |
+ cell.setCellStyle(style); |
|
| 2799 |
+ |
|
| 2800 |
+ cell = row.createCell(4); |
|
| 2801 |
+ cell.setCellValue("내용");
|
|
| 2802 |
+ cell.setCellStyle(style); |
|
| 2803 |
+ |
|
| 2804 |
+ /*cell = row.createCell(5); |
|
| 2805 |
+ cell.setCellValue("충전");
|
|
| 2806 |
+ sheet.addMergedRegion(new CellRangeAddress(0,0,5,6)); //셀병합 |
|
| 2807 |
+ cell.setCellStyle(style); |
|
| 2808 |
+ |
|
| 2809 |
+ cell = row.createCell(6); |
|
| 2810 |
+ cell.setCellStyle(style);*/ |
|
| 2811 |
+ |
|
| 2812 |
+ cell = row.createCell(5); |
|
| 2813 |
+ cell.setCellValue("사용");
|
|
| 2814 |
+ sheet.addMergedRegion(new CellRangeAddress(0,0,5,6)); //셀병합 |
|
| 2815 |
+ cell.setCellStyle(style); |
|
| 2816 |
+ |
|
| 2817 |
+ cell = row.createCell(6); |
|
| 2818 |
+ cell.setCellStyle(style); |
|
| 2819 |
+ |
|
| 2820 |
+ |
|
| 2821 |
+ /*cell = row.createCell(9); |
|
| 2822 |
+ cell.setCellValue("잔액");
|
|
| 2823 |
+ sheet.addMergedRegion(new CellRangeAddress(0,0,9,10)); //셀병합 |
|
| 2824 |
+ cell.setCellStyle(style); |
|
| 2825 |
+ |
|
| 2826 |
+ cell = row.createCell(10); |
|
| 2827 |
+ cell.setCellStyle(style);*/ |
|
| 2828 |
+ |
|
| 2829 |
+ row = sheet.createRow(1); |
|
| 2830 |
+ |
|
| 2831 |
+ cell = row.createCell(0); |
|
| 2832 |
+ cell.setCellStyle(style); |
|
| 2833 |
+ |
|
| 2834 |
+ cell = row.createCell(1); |
|
| 2835 |
+ cell.setCellStyle(style); |
|
| 2836 |
+ |
|
| 2837 |
+ cell = row.createCell(2); |
|
| 2838 |
+ cell.setCellStyle(style); |
|
| 2839 |
+ |
|
| 2840 |
+ cell = row.createCell(3); |
|
| 2841 |
+ cell.setCellStyle(style); |
|
| 2842 |
+ |
|
| 2843 |
+ cell = row.createCell(4); |
|
| 2844 |
+ cell.setCellStyle(style); |
|
| 2845 |
+ |
|
| 2846 |
+ /*cell = row.createCell(5); |
|
| 2847 |
+ cell.setCellValue("충전금");
|
|
| 2848 |
+ cell.setCellStyle(style); |
|
| 2849 |
+ |
|
| 2850 |
+ cell = row.createCell(6); |
|
| 2851 |
+ cell.setCellValue("포인트");
|
|
| 2852 |
+ cell.setCellStyle(style);*/ |
|
| 2853 |
+ |
|
| 2854 |
+ cell = row.createCell(5); |
|
| 2855 |
+ cell.setCellValue("충전금");
|
|
| 2856 |
+ cell.setCellStyle(style); |
|
| 2857 |
+ |
|
| 2858 |
+ cell = row.createCell(6); |
|
| 2859 |
+ cell.setCellValue("포인트");
|
|
| 2860 |
+ cell.setCellStyle(style); |
|
| 2861 |
+ |
|
| 2862 |
+ /*cell = row.createCell(9); |
|
| 2863 |
+ cell.setCellValue("충전금");
|
|
| 2864 |
+ cell.setCellStyle(style); |
|
| 2865 |
+ |
|
| 2866 |
+ cell = row.createCell(10); |
|
| 2867 |
+ cell.setCellValue("포인트");
|
|
| 2868 |
+ cell.setCellStyle(style);*/ |
|
| 2869 |
+ |
|
| 2870 |
+ DecimalFormat formatter = new DecimalFormat("###,###.##");
|
|
| 2871 |
+ String befCash = ""; |
|
| 2872 |
+ String befPoint = ""; |
|
| 2873 |
+ String totPrice = ""; |
|
| 2874 |
+ String thisPoint = ""; |
|
| 2875 |
+ |
|
| 2876 |
+ for(int i=0; i < payUserList.size(); i++) {
|
|
| 2877 |
+ |
|
| 2878 |
+ befCash = formatter.format(Double.parseDouble(((MjonMsgVO)payUserList.get(i)).getBefCash())); |
|
| 2879 |
+ befPoint = formatter.format(Double.parseDouble(((MjonMsgVO)payUserList.get(i)).getBefPoint())); |
|
| 2880 |
+ totPrice = formatter.format(Double.parseDouble(((MjonMsgVO)payUserList.get(i)).getTotPrice())); |
|
| 2881 |
+ thisPoint = formatter.format(Double.parseDouble(((MjonMsgVO)payUserList.get(i)).getThisPoint())); |
|
| 2882 |
+ |
|
| 2883 |
+ String msgType = "단문"; |
|
| 2884 |
+ if(payUserList.get(i).getMsgTypeTxt().equals("6") && payUserList.get(i).getFileCnt().equals("0")) {
|
|
| 2885 |
+ msgType = "장문"; |
|
| 2886 |
+ }else if(payUserList.get(i).getMsgTypeTxt().equals("6") && !payUserList.get(i).getFileCnt().equals("0")) {
|
|
| 2887 |
+ msgType = "그림"; |
|
| 2888 |
+ }else if(payUserList.get(i).getMsgTypeTxt().equals("8")) {
|
|
| 2889 |
+ msgType = "알림톡"; |
|
| 2890 |
+ }else if(payUserList.get(i).getMsgTypeTxt().equals("9")) {
|
|
| 2891 |
+ msgType = "친구톡"; |
|
| 2892 |
+ }else if(payUserList.get(i).getMsgTypeTxt().equals("fax")) {
|
|
| 2893 |
+ msgType = "팩스"; |
|
| 2894 |
+ } |
|
| 2895 |
+ |
|
| 2896 |
+ int sendCount = ((MjonMsgVO)payUserList.get(i)).getSendCount(); |
|
| 2897 |
+ |
|
| 2898 |
+ |
|
| 2899 |
+ String sendSum = Integer.toString(sendCount); |
|
| 2900 |
+ |
|
| 2901 |
+ if(payUserList.get(i).getMsgTypeTxt().equals("fax")) {
|
|
| 2902 |
+ sendSum = sendSum+"("+payUserList.get(i).getFileCnt()+")";
|
|
| 2903 |
+ } |
|
| 2904 |
+ |
|
| 2905 |
+ row = sheet.createRow(i+2); |
|
| 2906 |
+ for(int j=0 ; j < 7 ; j++) {
|
|
| 2907 |
+ cell = row.createCell(j); |
|
| 2908 |
+ cell.setCellStyle(style); |
|
| 2909 |
+ if(j==0) cell.setCellValue(i+1); //번호 |
|
| 2910 |
+ if(j==1) cell.setCellValue(((MjonMsgVO)payUserList.get(i)).getRegDate()); //결제일시 |
|
| 2911 |
+ if(j==2) cell.setCellValue(msgType); //문자유형 |
|
| 2912 |
+ if(j==3) cell.setCellValue(((MjonMsgVO)payUserList.get(i)).getSuccSendCnt()); //발송건수 |
|
| 2913 |
+ if(j==4) cell.setCellValue(((MjonMsgVO)payUserList.get(i)).getSmsTxt()); //내용 |
|
| 2914 |
+ if(j==5) cell.setCellValue(((MjonMsgVO)payUserList.get(i)).getSuccSendPrice()); //충전 - 충전금 |
|
| 2915 |
+ if(j==6) cell.setCellValue(0); //충전 - 포인트 |
|
| 2916 |
+ /*if(j==7) cell.setCellValue(totPrice); //사용 - 충전금 |
|
| 2917 |
+ if(j==8) cell.setCellValue(0); //사용 - 포인트 |
|
| 2918 |
+ if(j==9) cell.setCellValue(thisPoint); //잔액 - 충전금 |
|
| 2919 |
+ if(j==10) cell.setCellValue(befPoint); //잔액 - 포인트 |
|
| 2920 |
+*/ } |
|
| 2921 |
+ } |
|
| 2922 |
+ } |
|
| 2923 |
+ response.setHeader("Set-Cookie", "fileDownload=true; path=/");
|
|
| 2924 |
+ SimpleDateFormat mSimpleDateFormat = new SimpleDateFormat ( "yyyy_MM_dd_HH_mm_ss", Locale.KOREA ); |
|
| 2925 |
+ Date currentTime = new Date (); |
|
| 2926 |
+ String mTime = mSimpleDateFormat.format ( currentTime ); |
|
| 2927 |
+ fileName = fileName+"("+mTime+")";
|
|
| 2928 |
+ |
|
| 2929 |
+ response.setHeader("Content-Disposition", String.format("attachment; filename=\""+new String((fileName).getBytes("KSC5601"),"8859_1")+".xlsx"));
|
|
| 2930 |
+ wb.write(response.getOutputStream()); |
|
| 2931 |
+ }catch(Exception e) {
|
|
| 2932 |
+ response.setHeader("Set-Cookie", "fileDownload=false; path=/");
|
|
| 2933 |
+ response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
|
|
| 2934 |
+ response.setHeader("Content-Type","text/html; charset=utf-8");
|
|
| 2935 |
+ OutputStream out = null; |
|
| 2936 |
+ try {
|
|
| 2937 |
+ out = response.getOutputStream(); |
|
| 2938 |
+ byte[] data = new String("fail..").getBytes();
|
|
| 2939 |
+ out.write(data, 0, data.length); |
|
| 2940 |
+ } catch(Exception ignore) {
|
|
| 2941 |
+ ignore.printStackTrace(); |
|
| 2942 |
+ } finally {
|
|
| 2943 |
+ if(out != null) try { out.close(); } catch(Exception ignore) {}
|
|
| 2944 |
+ } |
|
| 2945 |
+ }finally {
|
|
| 2946 |
+ // 디스크 적었던 임시파일을 제거합니다. |
|
| 2947 |
+ wb.dispose(); |
|
| 2948 |
+ try { wb.close(); } catch(Exception ignore) {}
|
|
| 2949 |
+ } |
|
| 2950 |
+ } |
|
| 2951 |
+ |
|
| 2952 |
+ |
|
| 2953 |
+ |
|
| 2560 | 2954 |
/** |
| 2561 | 2955 |
* 요금사용내역 - 카카오 테스트용 |
| 2562 | 2956 |
* @param mjonMsgVO |
--- src/main/java/itn/let/uss/umt/web/EgovUserManageController.java
+++ src/main/java/itn/let/uss/umt/web/EgovUserManageController.java
... | ... | @@ -1518,6 +1518,8 @@ |
| 1518 | 1518 |
|
| 1519 | 1519 |
} |
| 1520 | 1520 |
|
| 1521 |
+ System.out.println("+++++++++++++++++++++++ prePaymentYn ::: "+mberManageVO.getPrePaymentYn());
|
|
| 1522 |
+ |
|
| 1521 | 1523 |
return "cmm/uss/umt/EgovGnrlUserSelectUpdt"; |
| 1522 | 1524 |
} |
| 1523 | 1525 |
|
--- src/main/resources/egovframework/egovProps/globals_local.properties
+++ src/main/resources/egovframework/egovProps/globals_local.properties
... | ... | @@ -87,7 +87,7 @@ |
| 87 | 87 |
#\uba54\uc77c \ubb38\uc758\ud558\uae30 \ud15c\ud50c\ub9bf URL |
| 88 | 88 |
Globals.itn.contact.us.template.url=http://localhost:8080/publish/email_form_itn_contact_us.html |
| 89 | 89 |
#\uba54\uc77c \uc218\uc2e0\uc790 \uc8fc\uc18c #TODO : \ucd94\ud6c4\uc5d0 \ubcc0\uacbd\ud574\uc57c\ud568 |
| 90 |
-Globals.itn.mail.to.address=leehoyoung250@daum.net |
|
| 90 |
+Globals.itn.mail.to.address=rlaqhal6613@duam.net |
|
| 91 | 91 |
|
| 92 | 92 |
|
| 93 | 93 |
#\ube44\uc988\ubfcc\ub9ac\uc624 \uc124\uc815 |
--- src/main/resources/egovframework/egovProps/globals_prod.properties
+++ src/main/resources/egovframework/egovProps/globals_prod.properties
... | ... | @@ -76,7 +76,7 @@ |
| 76 | 76 |
#\uba54\uc77c \ubb38\uc758\ud558\uae30 \ud15c\ud50c\ub9bf URL |
| 77 | 77 |
Globals.itn.contact.us.template.url=https://www.munjaon.co.kr/publish/email_form_itn_contact_us.html |
| 78 | 78 |
#\uba54\uc77c \uc218\uc2e0\uc790 \uc8fc\uc18c |
| 79 |
-Globals.itn.mail.to.address=phs1704@daum.net |
|
| 79 |
+Globals.itn.mail.to.address=rlaqhal6613@duam.net |
|
| 80 | 80 |
#Globals.itn.mail.to.address=leehoyoung250@daum.net |
| 81 | 81 |
|
| 82 | 82 |
#\ube44\uc988\ubfcc\ub9ac\uc624 \uc124\uc815 |
--- src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml
... | ... | @@ -3135,6 +3135,194 @@ |
| 3135 | 3135 |
LIMIT #recordCountPerPage# OFFSET #firstIndex# |
| 3136 | 3136 |
</select> |
| 3137 | 3137 |
|
| 3138 |
+ <!-- 사용자 요금 사용내역 리스트 --> |
|
| 3139 |
+ <select id="mjonMsgDAO.selectPayUserSWList" parameterClass="mjonMsgVO" resultClass="mjonMsgVO"> |
|
| 3140 |
+ SELECT |
|
| 3141 |
+ COUNT(pay.totCnt) OVER() AS totCnt |
|
| 3142 |
+ , pay.regDate AS regDate |
|
| 3143 |
+ , pay.sendCount AS sendCount |
|
| 3144 |
+ , pay.succSendCnt AS succSendCnt |
|
| 3145 |
+ , pay.failSendCnt AS failSendCnt |
|
| 3146 |
+ , pay.succSendPrice AS succSendPrice |
|
| 3147 |
+ , pay.failSendPrice AS failSendPrice |
|
| 3148 |
+ , pay.smsTxt AS smsTxt |
|
| 3149 |
+ , pay.subject AS subject |
|
| 3150 |
+ , pay.msgTypeTxt AS msgTypeTxt |
|
| 3151 |
+ , pay.fileCnt AS fileCnt |
|
| 3152 |
+ , pay.befCash AS befCash |
|
| 3153 |
+ , pay.befPoint AS befPoint |
|
| 3154 |
+ , pay.totPrice AS totPrice |
|
| 3155 |
+ , pay.thisPoint AS thisPoint |
|
| 3156 |
+ , pay.msgGroupId AS msgGroupId |
|
| 3157 |
+ , pay.totalPrice AS totalPrice |
|
| 3158 |
+ , pay.eachPrice AS eachPrice |
|
| 3159 |
+ , pay.sentDate AS sentDate |
|
| 3160 |
+ , pay.fileName1 AS fileName1 |
|
| 3161 |
+ , pay.fileName2 AS fileName2 |
|
| 3162 |
+ , pay.fileName3 AS fileName3 |
|
| 3163 |
+ , pay.orderByCode AS orderByCode |
|
| 3164 |
+ , pay.msgId AS msgId |
|
| 3165 |
+ FROM |
|
| 3166 |
+ ( |
|
| 3167 |
+ SELECT |
|
| 3168 |
+ COUNT(M.regDate) OVER() AS totCnt |
|
| 3169 |
+ , M.regDate AS regDate |
|
| 3170 |
+ , M.sendCount AS sendCount |
|
| 3171 |
+ , SUM(IF(RESULT = 'W' OR RESULT = 'S', 1, 0 )) AS succSendCnt |
|
| 3172 |
+ , SUM(IF(RESULT = 'F', 1, 0 )) AS failSendCnt |
|
| 3173 |
+ , SUM(IF(RESULT = 'W' OR RESULT = 'S', 1, 0 )) * M.eachPrice AS succSendPrice |
|
| 3174 |
+ , SUM(IF(RESULT = 'F', 1, 0 )) * M.eachPrice AS failSendPrice |
|
| 3175 |
+ , M.smsTxt AS smsTxt |
|
| 3176 |
+ , M.subject AS subject |
|
| 3177 |
+ , M.msgTypeTxt AS msgTypeTxt |
|
| 3178 |
+ , M.msgKind AS msgKind |
|
| 3179 |
+ , M.fileCnt AS fileCnt |
|
| 3180 |
+ , M.befCash AS befCash |
|
| 3181 |
+ , M.befPoint AS befPoint |
|
| 3182 |
+ , ROUND((M.eachPrice * M.sendCount), 2) AS totPrice |
|
| 3183 |
+ , (M.befCash - ROUND((M.eachPrice * M.sendCount), 2)) AS thisPoint |
|
| 3184 |
+ , M.msgGroupId AS msgGroupId |
|
| 3185 |
+ , M.totalPrice AS totalPrice |
|
| 3186 |
+ , M.eachPrice AS eachPrice |
|
| 3187 |
+ , M.sentDate AS sentDate |
|
| 3188 |
+ , M.fileName1 AS fileName1 |
|
| 3189 |
+ , M.fileName2 AS fileName2 |
|
| 3190 |
+ , M.fileName3 AS fileName3 |
|
| 3191 |
+ , M.orderByCode AS orderByCode |
|
| 3192 |
+ , M.msgId AS msgId |
|
| 3193 |
+ FROM |
|
| 3194 |
+ (SELECT |
|
| 3195 |
+ DATE_FORMAT(B.REGDATE, '%Y-%m-%d %H:%i' ) AS regDate |
|
| 3196 |
+ , B.MSG_GROUP_CNT AS sendCount |
|
| 3197 |
+ , B.SMS_TXT AS smsTxt |
|
| 3198 |
+ , B.SUBJECT AS subject |
|
| 3199 |
+ , B.MSG_TYPE AS msgTypeTxt |
|
| 3200 |
+ , B.MSG_KIND AS msgKind |
|
| 3201 |
+ , B.FILE_CNT AS fileCnt |
|
| 3202 |
+ , B.BEF_CASH AS befCash |
|
| 3203 |
+ , B.BEF_POINT AS befPoint |
|
| 3204 |
+ , B.TOT_PRICE AS totPrice |
|
| 3205 |
+ , B.MSG_GROUP_ID AS msgGroupId |
|
| 3206 |
+ , B.TOT_PRICE AS totalPrice |
|
| 3207 |
+ , B.EACH_PRICE AS eachPrice |
|
| 3208 |
+ , A.SENT_DATE AS sentDate |
|
| 3209 |
+ , A.FILE_PATH1 AS fileName1 |
|
| 3210 |
+ , A.FILE_PATH2 AS fileName2 |
|
| 3211 |
+ , A.FILE_PATH3 AS fileName3 |
|
| 3212 |
+ , A.MSG_ID AS msgId |
|
| 3213 |
+ , A.REQ_DATE AS reqDate |
|
| 3214 |
+ , CASE |
|
| 3215 |
+ WHEN B.MSG_TYPE = '6' AND B.FILE_CNT > 0 |
|
| 3216 |
+ THEN '3' |
|
| 3217 |
+ WHEN B.MSG_TYPE = '6' AND B.FILE_CNT = 0 |
|
| 3218 |
+ THEN '2' |
|
| 3219 |
+ ELSE '1' |
|
| 3220 |
+ END orderByCode |
|
| 3221 |
+ , ( |
|
| 3222 |
+ <include refid="MjonMsgSentDAO.selectAgentWithKakaoResultQuery_A"/> |
|
| 3223 |
+ ) AS RESULT |
|
| 3224 |
+ <include refid="MjonMsgSentDAO.selectJoinQuery"/> |
|
| 3225 |
+ AND A.USER_ID = #userId# |
|
| 3226 |
+ AND B.USER_ID = #userId# |
|
| 3227 |
+ AND B.RESERVE_C_YN = 'N' |
|
| 3228 |
+ ORDER BY 1=1 |
|
| 3229 |
+ , msgGroupId DESC |
|
| 3230 |
+ , sentDate DESC |
|
| 3231 |
+ , msg_id DESC |
|
| 3232 |
+ )M |
|
| 3233 |
+ WHERE 1=1 |
|
| 3234 |
+ AND RESULT IN ('W', 'S', 'F')
|
|
| 3235 |
+ GROUP BY M.msgGroupId |
|
| 3236 |
+ |
|
| 3237 |
+ UNION |
|
| 3238 |
+ |
|
| 3239 |
+ SELECT |
|
| 3240 |
+ COUNT(1) OVER () AS totCnt |
|
| 3241 |
+ , DATE_FORMAT(pf.ReqDate, '%Y-%m-%d %H:%i' ) AS regDate |
|
| 3242 |
+ , mjf.FAX_GROUP_CNT AS sendCount |
|
| 3243 |
+ , SentEA AS succSendCnt |
|
| 3244 |
+ , SentEA * mjf.EACH_PRICE AS succSendPrice |
|
| 3245 |
+ , ErrorEA AS failSendCnt |
|
| 3246 |
+ , ErrorEA * mjf.EACH_PRICE AS failSendPrice |
|
| 3247 |
+ , "" AS smsTxt |
|
| 3248 |
+ , mjf.SUBJECT AS subject |
|
| 3249 |
+ , "fax" AS msgTypeTxt |
|
| 3250 |
+ , "" AS msgKind |
|
| 3251 |
+ , mjf.FAX_PAGE_CNT AS fileCnt |
|
| 3252 |
+ , mjf.BEF_CASH AS befCash |
|
| 3253 |
+ , mjf.BEF_POINT AS befPoint |
|
| 3254 |
+ , ROUND((mjf.EACH_PRICE * mjf.FAX_PAGE_CNT * mjf.FAX_GROUP_CNT), 2) AS totPrice |
|
| 3255 |
+ , (mjf.BEF_CASH - ROUND((mjf.EACH_PRICE * mjf.FAX_PAGE_CNT * mjf.FAX_GROUP_CNT), 2)) AS thisPoint |
|
| 3256 |
+ , mjf.FAX_GROUP_ID AS msgGroupId |
|
| 3257 |
+ , mjf.TOT_PRICE AS totalPrice |
|
| 3258 |
+ , mjf.EACH_PRICE AS eachPrice |
|
| 3259 |
+ , pf.SendDate AS sentDate |
|
| 3260 |
+ , "" AS fileName1 |
|
| 3261 |
+ , "" AS fileName2 |
|
| 3262 |
+ , "" AS fileName3 |
|
| 3263 |
+ , "" AS orderByCode |
|
| 3264 |
+ , pf.SEQ AS msgId |
|
| 3265 |
+ FROM |
|
| 3266 |
+ pgi_faxtran pf |
|
| 3267 |
+ LEFT JOIN mj_fax_group_data mjf |
|
| 3268 |
+ ON pf.seq = mjf.PGI_FAXTRAN_SEQ |
|
| 3269 |
+ LEFT JOIN mj_fax_convert_mng mjc |
|
| 3270 |
+ ON mjf.CONVERT_MNG_SEQ = mjc.CONVERT_MNG_SEQ |
|
| 3271 |
+ WHERE 1 = 1 |
|
| 3272 |
+ AND pf.SentEA > 0 |
|
| 3273 |
+ AND mjf.USER_ID = #userId# |
|
| 3274 |
+ |
|
| 3275 |
+ ) AS pay |
|
| 3276 |
+ WHERE 1=1 |
|
| 3277 |
+ |
|
| 3278 |
+ <isNotEmpty property="pageType"> |
|
| 3279 |
+ <isEqual property="pageType" compareValue="sms"> |
|
| 3280 |
+ AND pay.msgTypeTxt = '4' |
|
| 3281 |
+ </isEqual> |
|
| 3282 |
+ <isEqual property="pageType" compareValue="lms"> |
|
| 3283 |
+ AND pay.msgTypeTxt = '6' |
|
| 3284 |
+ AND pay.fileCnt = 0 |
|
| 3285 |
+ </isEqual> |
|
| 3286 |
+ <isEqual property="pageType" compareValue="mms"> |
|
| 3287 |
+ AND pay.msgTypeTxt = '6' |
|
| 3288 |
+ AND pay.fileCnt != 0 |
|
| 3289 |
+ </isEqual> |
|
| 3290 |
+ <isEqual property="pageType" compareValue="cam"> |
|
| 3291 |
+ AND pay.msgKind = 'C' |
|
| 3292 |
+ </isEqual> |
|
| 3293 |
+ <isEqual property="pageType" compareValue="at"> |
|
| 3294 |
+ AND pay.msgTypeTxt = '8' |
|
| 3295 |
+ </isEqual> |
|
| 3296 |
+ <isEqual property="pageType" compareValue="ft"> |
|
| 3297 |
+ AND pay.msgTypeTxt = '9' |
|
| 3298 |
+ </isEqual> |
|
| 3299 |
+ <isEqual property="pageType" compareValue="fax"> |
|
| 3300 |
+ AND pay.msgTypeTxt = 'fax' |
|
| 3301 |
+ </isEqual> |
|
| 3302 |
+ </isNotEmpty> |
|
| 3303 |
+ <isNotEmpty property="startDate"> |
|
| 3304 |
+ <![CDATA[ |
|
| 3305 |
+ AND DATE_FORMAT(pay.regDate, '%Y-%m-%d') >= DATE_FORMAT(#startDate#, '%Y-%m-%d') |
|
| 3306 |
+ ]]> |
|
| 3307 |
+ </isNotEmpty> |
|
| 3308 |
+ <isNotEmpty property="endDate"> |
|
| 3309 |
+ <![CDATA[ |
|
| 3310 |
+ AND DATE_FORMAT(pay.regDate, '%Y-%m-%d') <= DATE_FORMAT(#endDate#, '%Y-%m-%d') |
|
| 3311 |
+ ]]> |
|
| 3312 |
+ </isNotEmpty> |
|
| 3313 |
+ |
|
| 3314 |
+ |
|
| 3315 |
+ ORDER BY 1=1 |
|
| 3316 |
+ <isNotEmpty property="searchSortCnd"> |
|
| 3317 |
+ ,$searchSortCnd$ |
|
| 3318 |
+ </isNotEmpty> |
|
| 3319 |
+ <isNotEmpty property="searchSortOrd"> |
|
| 3320 |
+ $searchSortOrd$ |
|
| 3321 |
+ </isNotEmpty> |
|
| 3322 |
+ LIMIT #recordCountPerPage# OFFSET #firstIndex# |
|
| 3323 |
+ </select> |
|
| 3324 |
+ |
|
| 3325 |
+ |
|
| 3138 | 3326 |
<!-- 사용자 요금 사용내역 Sum 리스트 --> |
| 3139 | 3327 |
<select id="mjonMsgDAO.selectPayUserSumList_bak" parameterClass="mjonMsgVO" resultClass="mjonMsgVO"> |
| 3140 | 3328 |
SELECT |
--- src/main/webapp/WEB-INF/jsp/web/com/webCommonHeader.jsp
+++ src/main/webapp/WEB-INF/jsp/web/com/webCommonHeader.jsp
... | ... | @@ -1304,7 +1304,7 @@ |
| 1304 | 1304 |
<c:forEach var="resultListOne" items="${menuResultList}" varStatus="status">
|
| 1305 | 1305 |
<c:if test="${resultListOne.depth eq '1' }">
|
| 1306 | 1306 |
<c:choose> |
| 1307 |
- <c:when test="${fn:contains(resultListOne.url, '/web/mjon/alimtalk/kakaoAlimtalkMsgDataView.do')}">
|
|
| 1307 |
+ <c:when test="${fn:contains(resultListOne.url, '/web/mjon/msgcampain/selectMsgDataView.do')}">
|
|
| 1308 | 1308 |
<li class="new"> |
| 1309 | 1309 |
</c:when> |
| 1310 | 1310 |
<c:otherwise> |
--- src/main/webapp/WEB-INF/jsp/web/main/mainPage.jsp
+++ src/main/webapp/WEB-INF/jsp/web/main/mainPage.jsp
... | ... | @@ -1160,7 +1160,7 @@ |
| 1160 | 1160 |
<button type="button" class="popup_close evntPayPopClose"><img src="/publish/images/main/btn_popup_close01.png" alt="팝업닫기"></button> |
| 1161 | 1161 |
</div> |
| 1162 | 1162 |
</div> |
| 1163 |
- <!-- |
|
| 1163 |
+ <%-- |
|
| 1164 | 1164 |
<div class="layer_popup pointPop"> |
| 1165 | 1165 |
<div class="layer_popup_cont"> |
| 1166 | 1166 |
<a href="/web/mjon/custom/selectMsgCustomView.do" title="맞춤제작 링크 이동"> |
... | ... | @@ -1172,8 +1172,8 @@ |
| 1172 | 1172 |
<button type="button" class="popup_close pointPopClose"><img src="/publish/images/main/btn_popup_close01.png" alt="팝업닫기"></button> |
| 1173 | 1173 |
</div> |
| 1174 | 1174 |
</div> |
| 1175 |
- --> |
|
| 1176 |
- <div class="layer_popup pointPop"> |
|
| 1175 |
+ --%> |
|
| 1176 |
+ <%-- <div class="layer_popup pointPop"> |
|
| 1177 | 1177 |
<div class="layer_popup_cont"> |
| 1178 | 1178 |
<a href="/web/mjon/alimtalk/kakaoAlimtalkMsgDataView.do" title="알림톡 링크 이동"> |
| 1179 | 1179 |
<img src="/publish/images/main/popup_allimtalk_230712.jpg" alt="문자 ON 문자온 알림톡, 대한민국 최저가 선언! 조건없이 무조건 6.9원! 기업전용 / 1,000자 이하 텍스트&이미지 / 문자 대비 65% 저렴 카카오 '알림톡' 서비스 오픈! 알림톡 바로가기"> |
... | ... | @@ -1183,7 +1183,7 @@ |
| 1183 | 1183 |
<input type="checkbox" id="pointPop" name="pointPop" onclick="javascript:fnPopupChk('pointPop' , 'layer')"><label for="pointPop">3일간 열지 않음</label>
|
| 1184 | 1184 |
<button type="button" class="popup_close pointPopClose"><img src="/publish/images/main/btn_popup_close01.png" alt="팝업닫기"></button> |
| 1185 | 1185 |
</div> |
| 1186 |
- </div> |
|
| 1186 |
+ </div> --%> |
|
| 1187 | 1187 |
</div> |
| 1188 | 1188 |
</div> |
| 1189 | 1189 |
|
--- src/main/webapp/WEB-INF/jsp/web/msgcampain/MsgDataView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgcampain/MsgDataView.jsp
... | ... | @@ -619,6 +619,12 @@ |
| 619 | 619 |
|
| 620 | 620 |
} |
| 621 | 621 |
|
| 622 |
+function fnMsgTWDataView(){
|
|
| 623 |
+ |
|
| 624 |
+ location.href="/web/mjon/msgcampain/selectMsgTWDataView.do"; |
|
| 625 |
+ |
|
| 626 |
+} |
|
| 627 |
+ |
|
| 622 | 628 |
function fn_saveMyMsg(){ // 내 문자 보관함 저장
|
| 623 | 629 |
|
| 624 | 630 |
var form = document.msgForm; |
... | ... | @@ -2005,10 +2011,14 @@ |
| 2005 | 2011 |
<div class="send_top"> |
| 2006 | 2012 |
<!-- tab button --> |
| 2007 | 2013 |
<ul class="tabType1"> |
| 2008 |
- <li class="tab active"><button type="button" onclick="TabType1(this,'1');">단문 · 장문 · 그림 문자</button></li> |
|
| 2014 |
+ <li class="tab active"> |
|
| 2015 |
+ <%-- <button type="button" onclick="TabType1(this,'1');">단문 · 장문 · 그림 문자</button> --%> |
|
| 2016 |
+ <button type="button" onclick="TabType1(this,'1');">단체문자(자동동보문자)</button> |
|
| 2017 |
+ </li> |
|
| 2009 | 2018 |
<li class="tab"> |
| 2010 |
- <!-- <button type="button" onclick="TabType1(this,'2');">대량 문자(엑셀·TXT)</button> --> |
|
| 2011 |
- <button type="button" onclick="javascript:fnMsgExcelDataView(); return false;">단체문자(엑셀·TXT)</button> |
|
| 2019 |
+ <%-- <button type="button" onclick="TabType1(this,'2');">대량 문자(엑셀·TXT)</button> --%> |
|
| 2020 |
+ <%-- <button type="button" onclick="javascript:fnMsgExcelDataView(); return false;">단체문자(엑셀·TXT)</button> --%> |
|
| 2021 |
+ <button type="button" onclick="javascript:fnMsgTWDataView(); return false;">20건 문자(수동문자)</button> |
|
| 2012 | 2022 |
</li> |
| 2013 | 2023 |
</ul><!--// tab button --> |
| 2014 | 2024 |
<!-- tab content1 --> |
--- src/main/webapp/WEB-INF/jsp/web/msgcampain/tw/MsgTWDataCallToListView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgcampain/tw/MsgTWDataCallToListView.jsp
... | ... | @@ -24,8 +24,6 @@ |
| 24 | 24 |
$("#sendReady").text(0);
|
| 25 | 25 |
$("#callSeq").val(0);
|
| 26 | 26 |
|
| 27 |
- //docuReload(); |
|
| 28 |
- |
|
| 29 | 27 |
} |
| 30 | 28 |
|
| 31 | 29 |
|
--- src/main/webapp/WEB-INF/jsp/web/msgcampain/tw/MsgTWDataSMLView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgcampain/tw/MsgTWDataSMLView.jsp
... | ... | @@ -11,6 +11,13 @@ |
| 11 | 11 |
<!-- --> |
| 12 | 12 |
<script type="text/javascript" src="<c:url value='/publish/js/publish.js'/>"></script> |
| 13 | 13 |
|
| 14 |
+<style> |
|
| 15 |
+/* .send_top .send_right .phone_bottom{display:flex;align-items:center;} */
|
|
| 16 |
+.send_top .send_right .send_rev{margin:0 !important;}
|
|
| 17 |
+.send_top .send_right .phone_bottom{bottom:130px;}
|
|
| 18 |
+.send_top .send_right .send_rev .send_content{padding:0 !important;;}
|
|
| 19 |
+</style> |
|
| 20 |
+ |
|
| 14 | 21 |
<% pageContext.setAttribute("newLineChar", "\r\n"); %>
|
| 15 | 22 |
<script type="text/javascript"> |
| 16 | 23 |
var tableErrorData = []; |
... | ... | @@ -276,9 +283,7 @@ |
| 276 | 283 |
function addTWCallToInfo(){
|
| 277 | 284 |
|
| 278 | 285 |
var callSeq = $("#callSeq").val();
|
| 279 |
- |
|
| 280 | 286 |
var sendData = $(document.callToForm).serializeArray(); |
| 281 |
- |
|
| 282 | 287 |
$("#twCallToList").load("/web/mjon/msgcampain/selectMsgTWCallToListAjax.do", sendData ,function(response, status, xhr){
|
| 283 | 288 |
|
| 284 | 289 |
$(document).ready(function () {
|
... | ... | @@ -1831,14 +1836,16 @@ |
| 1831 | 1836 |
//즉시 발송 라디오 버튼 선택시 숨김처리 |
| 1832 | 1837 |
$("#reserYnN").on('click', function(){
|
| 1833 | 1838 |
$('.rev_selected').hide();
|
| 1834 |
- $('.send_rev .send_content').css('padding-bottom','108px');
|
|
| 1839 |
+ //$('.send_rev .send_content').css('padding-bottom','108px');
|
|
| 1840 |
+ $(".send_top .send_right .phone_bottom").css("bottom","130px");
|
|
| 1835 | 1841 |
$('.send_btn .btnType:first-child').html('발송하기');
|
| 1836 | 1842 |
}); |
| 1837 | 1843 |
|
| 1838 | 1844 |
//예약 발송 라디오 버튼 선택시 숨김 해제처리 |
| 1839 | 1845 |
$("#reserYnY").on('click', function(){
|
| 1840 | 1846 |
$('.rev_selected').show();
|
| 1841 |
- $('.send_rev .send_content').css('padding-bottom','0');
|
|
| 1847 |
+ /* $('.send_rev .send_content').css('padding-bottom','0'); */
|
|
| 1848 |
+ $(".send_top .send_right .phone_bottom").css("bottom","64px");
|
|
| 1842 | 1849 |
$('.send_btn .btnType:first-child').html('예약하기');
|
| 1843 | 1850 |
}); |
| 1844 | 1851 |
|
... | ... | @@ -4065,7 +4072,7 @@ |
| 4065 | 4072 |
<h2>20건 문자(수동문자) 전송</h2> |
| 4066 | 4073 |
<div class="election_btnWrap"> |
| 4067 | 4074 |
<button type="button" class="button2 info" onclick="infoPop('selectMsgDataView2');">발송규정</button>
|
| 4068 |
- <button type="button" class="button2 info" data-tooltip="candidate_popup03">사용안내</button> |
|
| 4075 |
+ <!-- <button type="button" class="button2 info" data-tooltip="candidate_popup03">사용안내</button> --> |
|
| 4069 | 4076 |
<c:choose> |
| 4070 | 4077 |
<c:when test="${empty LoginVO}">
|
| 4071 | 4078 |
<button type="button" class="btnType" onclick="javascript:fn_candidateLoginChk(); return false;"><i class="election_btn1"></i>후보자 등록</button> |
--- src/main/webapp/WEB-INF/jsp/web/msgcampain/tw/MsgTWDataView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgcampain/tw/MsgTWDataView.jsp
... | ... | @@ -1685,6 +1685,7 @@ |
| 1685 | 1685 |
$("#totalPriceTxt").text("0");
|
| 1686 | 1686 |
|
| 1687 | 1687 |
//받는사람 리스트 새로 갱신해주기 |
| 1688 |
+ document.callToForm.pageIndex.value = 1; |
|
| 1688 | 1689 |
addTWCallToInfo(); |
| 1689 | 1690 |
|
| 1690 | 1691 |
} |
--- src/main/webapp/WEB-INF/jsp/web/pay/PayList.jsp
+++ src/main/webapp/WEB-INF/jsp/web/pay/PayList.jsp
... | ... | @@ -184,16 +184,28 @@ |
| 184 | 184 |
</div> |
| 185 | 185 |
<div class="pay_tab_wrap"> |
| 186 | 186 |
<!-- tab button --> |
| 187 |
- <ul class="tabType1"> |
|
| 188 |
- <li class="tab active"><button type="button" onclick="TabType5(this,'1');listLoad('/web/member/pay/PayListAllAjax.do'); return false;" >전체</button></li>
|
|
| 189 |
- <li class="tab"><button type="button" onclick="TabType5(this,'2');listLoad('/web/member/pay/PayListSPayAjax.do'); return false;">간편결제 결제내역</button></li>
|
|
| 190 |
- <li class="tab"><button type="button" onclick="TabType5(this,'2');listLoad('/web/member/pay/PayListVBankAjax.do'); return false;">전용계좌 결제내역</button></li>
|
|
| 191 |
- <li class="tab"><button type="button" onclick="TabType5(this,'3');listLoad('/web/member/pay/PayListCardAjax.do'); return false;">신용카드 결제내역</button></li>
|
|
| 192 |
- <li class="tab"><button type="button" onclick="TabType5(this,'4');listLoad('/web/member/pay/PayListMobileAjax.do'); return false;">휴대폰 결제내역</button></li>
|
|
| 193 |
- <li class="tab"><button type="button" onclick="TabType5(this,'5');listLoad('/web/member/pay/PayListBankAjax.do'); return false;">즉시이체 결제내역</button></li>
|
|
| 194 |
- <li class="tab"><button type="button" onclick="TabType5(this,'6');listLoad('/web/member/pay/PayListPointAjax.do'); return false;">포인트 교환내역</button></li>
|
|
| 195 |
- <li class="tab"><button type="button" id="tab6" onclick="TabType5(this,'7');listLoad('/web/member/pay/PayListRefundAjax.do'); return false;">환불신청</button></li>
|
|
| 196 |
- </ul> |
|
| 187 |
+ <c:choose> |
|
| 188 |
+ <c:when test="${prePaymentYn eq 'Y'}">
|
|
| 189 |
+ <ul class="tabType1"> |
|
| 190 |
+ <li class="tab active"><button type="button" onclick="TabType5(this,'1');listLoad('/web/member/pay/PayListAllAjax.do'); return false;" >전체</button></li>
|
|
| 191 |
+ <li class="tab"><button type="button" onclick="TabType5(this,'2');listLoad('/web/member/pay/PayListSPayAjax.do'); return false;">간편결제 결제내역</button></li>
|
|
| 192 |
+ <li class="tab"><button type="button" onclick="TabType5(this,'2');listLoad('/web/member/pay/PayListVBankAjax.do'); return false;">전용계좌 결제내역</button></li>
|
|
| 193 |
+ <li class="tab"><button type="button" onclick="TabType5(this,'3');listLoad('/web/member/pay/PayListCardAjax.do'); return false;">신용카드 결제내역</button></li>
|
|
| 194 |
+ <li class="tab"><button type="button" onclick="TabType5(this,'4');listLoad('/web/member/pay/PayListMobileAjax.do'); return false;">휴대폰 결제내역</button></li>
|
|
| 195 |
+ <li class="tab"><button type="button" onclick="TabType5(this,'5');listLoad('/web/member/pay/PayListBankAjax.do'); return false;">즉시이체 결제내역</button></li>
|
|
| 196 |
+ <li class="tab"><button type="button" onclick="TabType5(this,'6');listLoad('/web/member/pay/PayListPointAjax.do'); return false;">포인트 교환내역</button></li>
|
|
| 197 |
+ <li class="tab"><button type="button" id="tab6" onclick="TabType5(this,'7');listLoad('/web/member/pay/PayListRefundAjax.do'); return false;">환불신청</button></li>
|
|
| 198 |
+ </ul> |
|
| 199 |
+ </c:when> |
|
| 200 |
+ <c:otherwise> |
|
| 201 |
+ <ul class="tabType1"> |
|
| 202 |
+ <li class="tab active"><button type="button" onclick="TabType5(this,'1');listLoad('/web/member/pay/PayListAllAjax.do'); return false;" >전체</button></li>
|
|
| 203 |
+ <li class="tab"><button type="button" onclick="TabType5(this,'6');listLoad('/web/member/pay/PayListPointAjax.do'); return false;">포인트 교환내역</button></li>
|
|
| 204 |
+ </ul> |
|
| 205 |
+ </c:otherwise> |
|
| 206 |
+ </c:choose> |
|
| 207 |
+ |
|
| 208 |
+ |
|
| 197 | 209 |
<!--// tab button --> |
| 198 | 210 |
</div> |
| 199 | 211 |
<div id="payLoad"></div> |
--- src/main/webapp/WEB-INF/jsp/web/pay/PayUserListAjax.jsp
+++ src/main/webapp/WEB-INF/jsp/web/pay/PayUserListAjax.jsp
... | ... | @@ -289,7 +289,7 @@ |
| 289 | 289 |
<p>친구톡</p> |
| 290 | 290 |
</c:when> |
| 291 | 291 |
<c:when test="${payUserInfo.msgTypeTxt eq 'fax'}">
|
| 292 |
- <p>펙스</p> |
|
| 292 |
+ <p>팩스</p> |
|
| 293 | 293 |
</c:when> |
| 294 | 294 |
<c:otherwise> |
| 295 | 295 |
<p>단문</p> |
+++ src/main/webapp/WEB-INF/jsp/web/pay/PayUserSWList.jsp
... | ... | @@ -0,0 +1,399 @@ |
| 1 | +<%-- | |
| 2 | + Class Name : SendNumberList.jsp | |
| 3 | + Description : 발신번호 리스트 조회 페이지 | |
| 4 | + Modification Information | |
| 5 | + | |
| 6 | + 수정일 수정자 수정내용 | |
| 7 | + ------- -------- --------------------------- | |
| 8 | + 2021.03.31 신명섭 최초 생성 | |
| 9 | + | |
| 10 | + Copyright (C) 2009 by ITN All right reserved. | |
| 11 | +--%> | |
| 12 | +<%@ page contentType="text/html; charset=utf-8"%> | |
| 13 | +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> | |
| 14 | +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> | |
| 15 | +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> | |
| 16 | +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> | |
| 17 | +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> | |
| 18 | +<%@ taglib prefix="ec" uri="/WEB-INF/tld/ecnet_tld.tld"%> | |
| 19 | + | |
| 20 | +<script> | |
| 21 | +var thisYearStart = ""; | |
| 22 | +var thisYearEnd = ""; | |
| 23 | +var lastfulstday = ""; | |
| 24 | +var lastfuledday = ""; | |
| 25 | +var thisfulstlday = ""; | |
| 26 | +var thisfuledtlday = ""; | |
| 27 | +$(document).ready(function(){ | |
| 28 | + payUserListAjax(1); | |
| 29 | + var date = new Date() ; | |
| 30 | + //이전달 첫날/마지막날 조회 | |
| 31 | + if(date.getMonth()+1 == 1){ | |
| 32 | + lastfulstday = date.getFullYear()-1 + "/12" + "/01"; | |
| 33 | + lastfuledday = date.getFullYear()-1 + "/12" + "/"+new Date(date.getFullYear()-1, 12, 0); | |
| 34 | + }else{ | |
| 35 | + lastfulstday = date.getFullYear() + "/" ; | |
| 36 | + lastfulstday += date.getMonth() < 10 ? "0"+ (date.getMonth()) : date.getMonth()+"" ; | |
| 37 | + lastfuledday = lastfulstday + "/"+ new Date(date.getFullYear(), date.getMonth(), 0).getDate()+"" ; | |
| 38 | + lastfulstday += "/01" ; | |
| 39 | + } | |
| 40 | + | |
| 41 | + //당월 첫날/마지막날 조회 | |
| 42 | + thisfulstlday = date.getFullYear() + "/" ; | |
| 43 | + thisfulstlday += date.getMonth()+1 < 10 ? "0"+ (date.getMonth()+1) : date.getMonth()+1+"" ; | |
| 44 | + thisfuledtlday = thisfulstlday + "/"+ new Date(date.getFullYear(), date.getMonth()+1, 0).getDate()+""; | |
| 45 | + thisfulstlday += "/01" ; | |
| 46 | + | |
| 47 | + thisYearStart = date.getFullYear() + "/01/01" ; | |
| 48 | + thisYearEnd = date.getFullYear() + "/12/31" ; | |
| 49 | + | |
| 50 | +}); | |
| 51 | + | |
| 52 | +// 기간 요일 지정 | |
| 53 | +function setCalVal(val,targetObj){ | |
| 54 | + $('input[name='+targetObj+']').val(val) ; | |
| 55 | +} | |
| 56 | + | |
| 57 | +// 요금사용내역 리스트 | |
| 58 | +function payUserListAjax(pageNo){ | |
| 59 | + document.listForm.pageIndex.value = pageNo; | |
| 60 | + var sendData= $(document.listForm).serializeArray(); | |
| 61 | + $("#payUserListLoad").load("/web/member/pay/PayUserSWListAjax.do", sendData ,function(response, status, xhr){ | |
| 62 | + }); | |
| 63 | +} | |
| 64 | + | |
| 65 | +function payUserTab(obj, pageType){ | |
| 66 | + | |
| 67 | + var $tab = $(obj).closest("li"); | |
| 68 | + $tab.addClass("active"); | |
| 69 | + $tab.find("button").attr("title", "선택됨"); | |
| 70 | + $tab.siblings("li.tab").removeClass("active"); | |
| 71 | + $tab.siblings("li.tab").find("button").removeAttr("title"); | |
| 72 | + | |
| 73 | + $("#pageType").val(pageType); | |
| 74 | + payUserListAjax(1); | |
| 75 | +} | |
| 76 | + | |
| 77 | +/* 윈도우팝업 열기 */ | |
| 78 | +function infoPop(pageUrl){ | |
| 79 | + document.infoPopForm.pageType.value = pageUrl; | |
| 80 | + document.infoPopForm.action = "/web/pop/infoPop.do"; | |
| 81 | + document.infoPopForm.method = "post"; | |
| 82 | + window.open("about:blank", 'infoPop', 'width=790, height=250, top=100, left=100, fullscreen=no, menubar=no, status=no, toolbar=no, titlebar=yes, location=no, scrollbars=1'); | |
| 83 | + document.infoPopForm.target = "infoPop"; | |
| 84 | + document.infoPopForm.submit(); | |
| 85 | +} | |
| 86 | + | |
| 87 | +//상세보기 버튼 실행 | |
| 88 | +function fnRevDetailPop(msgGroupId, fileCnt){ | |
| 89 | + | |
| 90 | + document.resPopForm.msgGroupId.value = msgGroupId; | |
| 91 | + var sendData = $(document.resPopForm).serializeArray(); | |
| 92 | + | |
| 93 | + $("#resvMsgDetailPopLoad").load("/web/member/pay/selectPayUserMsgDetailDataAjax.do", sendData ,function(response, status, xhr){ | |
| 94 | + }); | |
| 95 | + | |
| 96 | +} | |
| 97 | + | |
| 98 | +//상세보기 버튼 실행 | |
| 99 | +function fnRevDetailPop02(msgGroupId){ | |
| 100 | + document.resPopForm.msgGroupId.value = msgGroupId; | |
| 101 | + var sendData = $(document.resPopForm).serializeArray(); | |
| 102 | + | |
| 103 | + // 전송건별 | |
| 104 | + $("#msgSentDetailPopLoad").load("/web/kakao/sent/selectKakaoSentDetailDataAjax.do", sendData ,function(response, status, xhr){ | |
| 105 | + // 상세보기 클릭때마다 툴팁 1 tab이 열리게 설정 | |
| 106 | + popupTab($('#atBtn'),'1'); | |
| 107 | + $('#kakaoClick').trigger('click'); | |
| 108 | + }); | |
| 109 | + | |
| 110 | +} | |
| 111 | + | |
| 112 | +//상세보기 버튼 실행 | |
| 113 | +function fnRevDetailPop03(msgGroupId){ | |
| 114 | + document.faxPopForm.faxGroupId.value = msgGroupId; | |
| 115 | + var sendData = $(document.faxPopForm).serializeArray(); | |
| 116 | + // 전송건별 | |
| 117 | + $("#faxSentDetailPopLoad").load("/web/mjon/fax/faxSendListAjax.do", sendData ,function(response, status, xhr){ | |
| 118 | + // 상세보기 클릭때마다 툴팁 1 tab이 열리게 설정 | |
| 119 | +// popupTab($('#atBtn'),'1'); | |
| 120 | + $('#faxClick').trigger('click'); | |
| 121 | + }); | |
| 122 | +} | |
| 123 | +</script> | |
| 124 | +<!-- 문자내용 팝업 --> | |
| 125 | +<div class="tooltip-wrap"> | |
| 126 | + <div class="popup-com adr_layer rev_popup01" tabindex="0" data-tooltip-con="rev_popup01" | |
| 127 | + data-focus="rev_popup01" data-focus-prev="rev_popup01-close" style="width: 440px;"> | |
| 128 | + <div class="popup_heading"> | |
| 129 | + <p>문자내용</p> | |
| 130 | + <button type="button" class="tooltip-close" data-focus="rev_popup01-close"> | |
| 131 | + <img src="/publish/images/content/layerPopup_close.png" alt="팝업 닫기"> | |
| 132 | + </button> | |
| 133 | + </div> | |
| 134 | + <div class="layer_in" id="resvMsgDetailPopLoad"> | |
| 135 | + <div class="popup_btn_wrap2" style="justify-content: center;"> | |
| 136 | + <button type="button" class="tooltip-close" data-focus="rev_popup01-close" data-focus-next="rev_popup01">닫기</button> | |
| 137 | + </div> | |
| 138 | + </div> | |
| 139 | + </div> | |
| 140 | +</div> | |
| 141 | +<!--// 문자내용 팝업 --> | |
| 142 | + | |
| 143 | +<!-- 카카오 알림톡 팝업 --> | |
| 144 | +<div class="tooltip-wrap"> | |
| 145 | + <div class="popup-com adr_layer kakao_rev_popup rev_popup02" tabindex="0" data-tooltip-con="rev_popup02" | |
| 146 | + data-focus="rev_popup02" data-focus-prev="rev_popup02-close" style="width: 440px;"> | |
| 147 | + <div class="popup_heading"> | |
| 148 | + <p>카카오 내용</p> | |
| 149 | + <button type="button" class="tooltip-close" data-focus="rev_popup02-close"> | |
| 150 | + <img src="/publish/images/content/layerPopup_close.png" alt="팝업 닫기"> | |
| 151 | + </button> | |
| 152 | + </div> | |
| 153 | + <div class="layer_in"> | |
| 154 | + | |
| 155 | + <!-- 팝업 상세내용 노출 --> | |
| 156 | + <div id="msgSentDetailPopLoad" > | |
| 157 | + </div> | |
| 158 | + <div class="popup_btn_wrap2" style="justify-content: center;"> | |
| 159 | + <button type="button" class="tooltip-close" data-focus="rev_popup02-close" | |
| 160 | + data-focus-next="rev_popup02">닫기</button> | |
| 161 | + </div> | |
| 162 | + </div> | |
| 163 | + </div> | |
| 164 | +</div> | |
| 165 | +<!-- //카카오 알림톡 팝업 --> | |
| 166 | + | |
| 167 | +<!-- 펙스 팝업 --> | |
| 168 | +<div class="tooltip-wrap"> | |
| 169 | + <div class="popup-com adr_layer fax_rev_popup rev_popup03" tabindex="0" data-tooltip-con="rev_popup03" | |
| 170 | + data-focus="rev_popup03" data-focus-prev="rev_popup03-close" style="width: 800px;"> | |
| 171 | + <div class="popup_heading"> | |
| 172 | + <p>펙스 내용</p> | |
| 173 | + <button type="button" class="tooltip-close" data-focus="rev_popup03-close"> | |
| 174 | + <img src="/publish/images/content/layerPopup_close.png" alt="팝업 닫기"> | |
| 175 | + </button> | |
| 176 | + </div> | |
| 177 | + <div class="layer_in"> | |
| 178 | + | |
| 179 | + <!-- 팝업 상세내용 노출 --> | |
| 180 | + <div id="faxSentDetailPopLoad" > | |
| 181 | + </div> | |
| 182 | + </div> | |
| 183 | + </div> | |
| 184 | +</div> | |
| 185 | +<!-- //펙스 팝업 --> | |
| 186 | + | |
| 187 | +<div class="inner"> | |
| 188 | + <!-- send top --> | |
| 189 | + <div class="send_top"> | |
| 190 | + <!-- tab button --> | |
| 191 | + <ul class="tabType4"> | |
| 192 | + <li class="tab"><button type="button" onclick="location.href='/web/pay/PayGuide.do'">요금안내/견적내기</button></li> | |
| 193 | + <li class="tab"><button type="button" onclick="location.href='/web/member/pay/PayView.do'">결제하기</button></li> | |
| 194 | + <li class="tab"><button type="button" onclick="location.href='/web/member/pay/PayList.do'">요금 결제내역</button></li> | |
| 195 | + <li class="tab active"><button type="button">요금 사용내역</button></li> | |
| 196 | + <!-- 현금영수증 자동발행 주석 --> | |
| 197 | + <!-- <li class="tab"><button type="button" onclick="location.href='/web/member/pay/BillPub.do'">계산서/현금영수증 발행 등록</button></li> --> | |
| 198 | + <li class="tab"><button type="button" onclick="location.href='/web/member/pay/BillPub.do'">세금계산서 발행 등록</button></li> | |
| 199 | + </ul> | |
| 200 | + <!-- 결제관리 - 요금 사용내역 --> | |
| 201 | + <div class="serv_content current" id="tab5_4"> | |
| 202 | + <div class="heading"> | |
| 203 | + <h2>요금 사용내역</h2> | |
| 204 | + <button type="button" class="button info" onclick="infoPop('PayUserList');">사용안내</button> | |
| 205 | + </div> | |
| 206 | + <div class="hisroy_price"> | |
| 207 | + <div class="hisroy_price_in"> | |
| 208 | + <p> | |
| 209 | + <i></i>충전금액 | |
| 210 | + </p> | |
| 211 | + | |
| 212 | + <div class="clearfix"> | |
| 213 | + <p>캐시</p> | |
| 214 | + <p> | |
| 215 | + <span> | |
| 216 | + <c:choose> | |
| 217 | + <c:when test="${not empty sumPayMoney}"> | |
| 218 | + <fmt:formatNumber value="${sumPayMoney}" pattern="#,###.#"/> | |
| 219 | + </c:when> | |
| 220 | + <c:otherwise> | |
| 221 | + <fmt:formatNumber value="0" pattern="#,###.#"/> | |
| 222 | + </c:otherwise> | |
| 223 | + </c:choose> | |
| 224 | + </span>원 | |
| 225 | + </p> | |
| 226 | + </div> | |
| 227 | + <div class="clearfix"> | |
| 228 | + <p>포인트</p> | |
| 229 | + <p> | |
| 230 | + <span> | |
| 231 | + <c:choose> | |
| 232 | + <c:when test="${not empty sumPoint}"> | |
| 233 | + <fmt:formatNumber value="${sumPoint}" pattern="#,###.#"/> | |
| 234 | + </c:when> | |
| 235 | + <c:otherwise> | |
| 236 | + <fmt:formatNumber value="0" pattern="#,###.#"/> | |
| 237 | + </c:otherwise> | |
| 238 | + </c:choose> | |
| 239 | + </span>원 | |
| 240 | + </p> | |
| 241 | + </div> | |
| 242 | + </div> | |
| 243 | + <div class="hisroy_price_in"> | |
| 244 | + <p> | |
| 245 | + <i></i>사용금액 | |
| 246 | + </p> | |
| 247 | + <c:forEach var="result" items="${usedCashTotList}" varStatus="status"> | |
| 248 | + <div class="clearfix"> | |
| 249 | + <p> | |
| 250 | + <c:if test="${result.divFlag eq 'CASH' }"> | |
| 251 | + 캐시 | |
| 252 | + </c:if> | |
| 253 | + <c:if test="${result.divFlag eq 'POINT' }"> | |
| 254 | + 포인트 | |
| 255 | + </c:if> | |
| 256 | + </p> | |
| 257 | + <p> | |
| 258 | + <span> | |
| 259 | + <fmt:formatNumber value="${result.totalPrice}" pattern="#,###.#"/> | |
| 260 | + </span>원 | |
| 261 | + </p> | |
| 262 | + </div> | |
| 263 | + </c:forEach> | |
| 264 | + </div> | |
| 265 | + <div class="hisroy_price_in"> | |
| 266 | + <p> | |
| 267 | + <i></i>잔액 | |
| 268 | + </p> | |
| 269 | + <div class="clearfix"> | |
| 270 | + <p>캐시</p> | |
| 271 | + <p> | |
| 272 | + <span> | |
| 273 | + <fmt:formatNumber value="${mberManageVO.userMoney}" pattern="" /> | |
| 274 | + </span>원 | |
| 275 | + </p> | |
| 276 | + </div> | |
| 277 | + <div class="clearfix"> | |
| 278 | + <p>포인트</p> | |
| 279 | + <p> | |
| 280 | + <span> | |
| 281 | + <fmt:formatNumber value="${mberManageVO.userPoint}" pattern="" /> | |
| 282 | + </span>원 | |
| 283 | + </p> | |
| 284 | + </div> | |
| 285 | + </div> | |
| 286 | + </div> | |
| 287 | + <div class="history_details"> | |
| 288 | + <p class="tType1_title"><img src="/publish/images/content/history_details_title.png" alt=""> 발송내역</p> | |
| 289 | + <div class="details_wrap"> | |
| 290 | + <table> | |
| 291 | + <colgroup> | |
| 292 | + <col style="width: calc(100% / 5);"> | |
| 293 | + <col style="width: calc(100% / 5);"> | |
| 294 | + <col style="width: calc(100% / 5);"> | |
| 295 | + <col style="width: calc(100% / 5);"> | |
| 296 | + <col style="width: calc(100% / 5);"> | |
| 297 | + </colgroup> | |
| 298 | + <thead> | |
| 299 | + <tr> | |
| 300 | + <th>구분</th> | |
| 301 | + <th>문자</th> | |
| 302 | + <th>알림톡</th> | |
| 303 | + <th>팩스</th> | |
| 304 | + <th>계</th> | |
| 305 | + </tr> | |
| 306 | + </thead> | |
| 307 | + <tbody> | |
| 308 | + <tr> | |
| 309 | + <td>발송건(매)수</td> | |
| 310 | + <c:set var="sandSum" value="0"/> | |
| 311 | + <c:forEach var="sendToInfo" items="${sendTotList}" varStatus="status"> | |
| 312 | + <td> | |
| 313 | + <fmt:formatNumber value="${sendToInfo.totCnt}" pattern="" /> | |
| 314 | + <c:if test="${sendToInfo.msgType eq 'fax' && sendToInfo.fileCnt ne '0'}"> | |
| 315 | + (<c:out value="${sendToInfo.fileCnt }"/>) | |
| 316 | + </c:if> | |
| 317 | + </td> | |
| 318 | + <c:set var="sandSum" value="${sandSum + sendToInfo.totCnt}"/> | |
| 319 | + </c:forEach> | |
| 320 | + <td> | |
| 321 | + <fmt:formatNumber value="${sandSum}" pattern="" /> | |
| 322 | + </td> | |
| 323 | + </tr> | |
| 324 | + <tr> | |
| 325 | + <td>예약건수</td> | |
| 326 | + <c:set var="reservSum" value="0"/> | |
| 327 | + <c:forEach var="reservToInfo" items="${reservToList}" varStatus="status"> | |
| 328 | + <td> | |
| 329 | + <fmt:formatNumber value="${reservToInfo.totCnt}" pattern="" /> | |
| 330 | + <c:if test="${reservToInfo.msgType eq 'fax' && reservToInfo.fileCnt ne '0'}"> | |
| 331 | + (<c:out value="${reservToInfo.fileCnt }"/>) | |
| 332 | + </c:if> | |
| 333 | + </td> | |
| 334 | + <c:set var="reservSum" value="${reservSum + reservToInfo.totCnt}"/> | |
| 335 | + </c:forEach> | |
| 336 | + <td> | |
| 337 | + <fmt:formatNumber value="${reservSum}" pattern="" /> | |
| 338 | + </td> | |
| 339 | + </tr> | |
| 340 | + </tbody> | |
| 341 | + </table> | |
| 342 | + </div> | |
| 343 | + </div> | |
| 344 | + <form id="listForm" name="listForm" method="post"> | |
| 345 | + <input type="hidden" id="pageType" name="pageType" value="<c:out value='${searchVO.pageType}'/>"/> | |
| 346 | + <input type="hidden" id="pageIndex" name="pageIndex" value="<c:out value='${searchVO.pageIndex}'/>"/> | |
| 347 | + <div class="excel_middle"> | |
| 348 | + <div class="select_btnWrap clearfix"> | |
| 349 | + <div class="btn_left"> | |
| 350 | + <span class="cal_label">기간선택</span> | |
| 351 | + <div class="calendar_wrap"> | |
| 352 | + <input type="text" class="startDate inp calendar" title="검색 시작일" id="startDate" name="startDate" value="" data-datecontrol="true"> | |
| 353 | + <span class="dateEtc">~</span> | |
| 354 | + <input type="text" class="endDate inp calendar" title="검색 종료일" id="endDate" name="endDate" value="" data-datecontrol="true"> | |
| 355 | + </div> | |
| 356 | + <button type="button" onclick="setCalVal(thisYearStart,'startDate');setCalVal( thisYearEnd,'endDate'); return false;" class="btnType btnType19">이번년도</button> | |
| 357 | + <button type="button" onclick="setCalVal(lastfulstday,'startDate');setCalVal( lastfuledday,'endDate'); return false;" class="btnType btnType19">전월</button> | |
| 358 | + <button type="button" onclick="setCalVal(thisfulstlday,'startDate');setCalVal( thisfuledtlday,'endDate'); return false;" class="btnType btnType19">당월</button> | |
| 359 | + <button type="button" class="btnType6" onclick="payUserListAjax(1); return false;">조회</button> | |
| 360 | + <span class="reqTxt4"> | |
| 361 | + <span class="vMiddle">*</span> 조회기간의 사용내역만 보여집니다. | |
| 362 | + </span> | |
| 363 | + </div> | |
| 364 | + <div></div> | |
| 365 | + </div> | |
| 366 | + </div> | |
| 367 | + <div class="list_tab_wrap2 type2"> | |
| 368 | + <!-- tab button --> | |
| 369 | + <ul class="list_tab"> | |
| 370 | + <li class="tab active"><button type="button" onclick="payUserTab(this,'');">전체</button></li> | |
| 371 | + <li class="tab"><button type="button" onclick="payUserTab(this,'sms');">단문</button></li> | |
| 372 | + <li class="tab"><button type="button" onclick="payUserTab(this,'lms');">장문</button></li> | |
| 373 | + <li class="tab"><button type="button" onclick="payUserTab(this,'mms');">그림</button></li> | |
| 374 | + <li class="tab"><button type="button" onclick="payUserTab(this,'cam');">선거</button></li> | |
| 375 | + <li class="tab"><button type="button" onclick="payUserTab(this,'at');">알림톡</button></li> | |
| 376 | +<!-- <li class="tab"><button type="button" onclick="payUserTab(this,'ft');">친구톡</button></li> --> | |
| 377 | + <li class="tab"><button type="button" onclick="payUserTab(this,'fax');">팩스</button></li> | |
| 378 | + </ul> | |
| 379 | + <!--// tab button --> | |
| 380 | + </div> | |
| 381 | + <div id="payUserListLoad"> | |
| 382 | + | |
| 383 | + </div> | |
| 384 | + </form> | |
| 385 | + <!-- 결제관리 - 요금 사용내역 --> | |
| 386 | + </div> | |
| 387 | + </div> | |
| 388 | + <!--// send top --> | |
| 389 | +</div> | |
| 390 | +<form name="infoPopForm" id="infoPopForm" method="post"> | |
| 391 | + <input type="hidden" name="pageType" id="pageType" value=""/> | |
| 392 | +</form> | |
| 393 | +<form id="resPopForm" name="resPopForm" method="post"> | |
| 394 | + <input type="hidden" id="msgGroupId" name="msgGroupId" value=""/> | |
| 395 | + <input type="hidden" id="fileCnt" name="fileCnt" value=""/> | |
| 396 | +</form> | |
| 397 | +<form id="faxPopForm" name="faxPopForm" method="post"> | |
| 398 | + <input type="hidden" id="faxGroupId" name="faxGroupId" value=""/> | |
| 399 | +</form> |
+++ src/main/webapp/WEB-INF/jsp/web/pay/PayUserSWListAjax.jsp
... | ... | @@ -0,0 +1,433 @@ |
| 1 | +<%-- | |
| 2 | + Class Name : SendNumberList.jsp | |
| 3 | + Description : 발신번호 리스트 조회 페이지 | |
| 4 | + Modification Information | |
| 5 | + | |
| 6 | + 수정일 수정자 수정내용 | |
| 7 | + ------- -------- --------------------------- | |
| 8 | + 2021.03.31 신명섭 최초 생성 | |
| 9 | + | |
| 10 | + Copyright (C) 2009 by ITN All right reserved. | |
| 11 | +--%> | |
| 12 | +<%@ page contentType="text/html; charset=utf-8"%> | |
| 13 | +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> | |
| 14 | +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> | |
| 15 | +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> | |
| 16 | +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> | |
| 17 | +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> | |
| 18 | +<%@ taglib prefix="ec" uri="/WEB-INF/tld/ecnet_tld.tld"%> | |
| 19 | + | |
| 20 | +<script src="/publish/js/content.js"></script> | |
| 21 | +<script> | |
| 22 | +$(document).ready(function(){ | |
| 23 | + /* 목록 정렬 항목 아이콘 표시 */ | |
| 24 | + var searchSortCnd = $("[name='searchSortCnd']").val(); | |
| 25 | + var searchSortOrd = $("[name='searchSortOrd']").val(); | |
| 26 | + if (searchSortCnd != "" && searchSortOrd != "" && searchSortCnd != undefined && searchSortOrd != undefined) { | |
| 27 | + var $sort_div = $("#sort_"+ searchSortCnd); | |
| 28 | + var sortClass = 'sortBtn' ; | |
| 29 | + if (searchSortOrd == "desc") sortClass = "sortBtnDesc"; | |
| 30 | + $sort_div.replaceClass('sortBtn' , sortClass) ; | |
| 31 | + $sort_div.attr("sortOrd", searchSortOrd); | |
| 32 | + }; | |
| 33 | + | |
| 34 | + // 정렬 항목 이벤트 | |
| 35 | + $(".sort").click(function(e) { | |
| 36 | + listSortOrd(this); | |
| 37 | + }); | |
| 38 | + | |
| 39 | + //목록 정렬 항목 클릭 | |
| 40 | + function listSortOrd(obj){ | |
| 41 | + var sortOrd = $(obj).attr("sortOrd"); | |
| 42 | + var sortCnd = $(obj).attr("id"); | |
| 43 | + | |
| 44 | + $("[name='searchSortCnd']").val(sortCnd.substring(5)); // 구분자 제거 | |
| 45 | + if (sortOrd == "desc") $("[name='searchSortOrd']").val("asc"); | |
| 46 | + else $("[name='searchSortOrd']").val("desc"); | |
| 47 | + payUserListAjax('1'); //각 JSP마다 다를때 메소드 정의해 줘야됨 | |
| 48 | + }; | |
| 49 | + | |
| 50 | + //프린트 워커 마크 | |
| 51 | + /* $('.print_btn').click(function(e){ | |
| 52 | + if(!confirm("프린트 하시겠습니까?")){ | |
| 53 | + return false; | |
| 54 | + } | |
| 55 | + var printPopup ; | |
| 56 | + printPopup= window.open("/tempPayPrint.html","print_open","width=760,height=750,top=0,left=0,noresizable,toolbar=no,status=no,scrollbars=yes,directory=n"); | |
| 57 | + }); */ | |
| 58 | + | |
| 59 | + // PDF 다운버튼 | |
| 60 | + $('.pdf_btn').click(function(e){ | |
| 61 | + if(!confirm("PDF저장 하시겠습니까?")){ | |
| 62 | + return false; | |
| 63 | + } | |
| 64 | + }); | |
| 65 | + | |
| 66 | + //엑셀 다운버튼 | |
| 67 | + $('.excel_btn').click(function(e){ | |
| 68 | + if(!confirm("엑셀 다운로드를 하시겠습니까?")){ | |
| 69 | + return false; | |
| 70 | + } | |
| 71 | + | |
| 72 | + var frm = document.listForm; | |
| 73 | + frm.method = "post"; | |
| 74 | + frm.action = "/web/member/pay/PayUserSWListExcelDownload.do"; | |
| 75 | + frm.submit(); | |
| 76 | + }); | |
| 77 | +}); | |
| 78 | + | |
| 79 | + | |
| 80 | +/* 사용내역서 클릭 시 내역서 새창 팝업 오픈 */ | |
| 81 | +function fnShowPrintPopup() { | |
| 82 | + //만들려는 팝업의 크기 | |
| 83 | + var url = ""; | |
| 84 | + var popup_wid = '830'; | |
| 85 | + var popup_ht = '800'; | |
| 86 | + var popup_left = (window.screen.width/2)-(popup_wid/2); | |
| 87 | + var popup_top =(window.screen.height/2)-(popup_ht/2); | |
| 88 | + | |
| 89 | + if($('input[name=publish]').is(':checked')){ | |
| 90 | + if($('input[name=publish]:checked').val() == 'statement'){ | |
| 91 | + url = "printMsgStatementAjax.do"; | |
| 92 | + }else{ | |
| 93 | + url = "printMsgUsageDetailsAjax.do"; | |
| 94 | + } | |
| 95 | + }else{ | |
| 96 | + alert('거래명세서, 사용내역서중\n발급 받으시려는 항목을 체크 후 눌러주세요.'); | |
| 97 | + return; | |
| 98 | + } | |
| 99 | + | |
| 100 | + //날자 체크 | |
| 101 | + if(($('#startDate').val() != '' && $('#endDate').val() == '') || ($('#startDate').val() == '' && $('#endDate').val() != '')){ | |
| 102 | + alert("기간설정을 정상적으로 선택해 주세요."); | |
| 103 | + return; | |
| 104 | + } | |
| 105 | + | |
| 106 | + if( $('#startDate').val() != '' && $('#endDate').val() != '' ){ | |
| 107 | + var iChkBeginDe = Number($('#startDate').val().replaceAll("/", "")); | |
| 108 | + var iChkEndDe = Number($('#endDate').val().replaceAll("/", "")); | |
| 109 | + if(iChkBeginDe > iChkEndDe || iChkEndDe < iChkBeginDe ){ | |
| 110 | + alert("기간설정의 시작일자는 종료일자 보다 클수 없습니다."); | |
| 111 | + return; | |
| 112 | + } | |
| 113 | + } | |
| 114 | + | |
| 115 | + document.listForm.action = url; | |
| 116 | + document.listForm.method = "post"; | |
| 117 | + window.open("about:blank", 'printPop', 'width='+ popup_wid +', height='+ popup_ht +', left=' + popup_left + ', top='+ popup_top + ', fullscreen=no, menubar=no, status=no, toolbar=no, titlebar=yes, location=no, scrollbars=1'); | |
| 118 | + document.listForm.target = "printPop"; | |
| 119 | + document.listForm.submit(); | |
| 120 | +} | |
| 121 | + | |
| 122 | +/* 사용내역서 클릭 시 내역서 새창 팝업 오픈 */ | |
| 123 | +function fnShowPrintPopup_OLD() { | |
| 124 | + //만들려는 팝업의 크기 | |
| 125 | + var popup_wid = '830'; | |
| 126 | + var popup_ht = '800'; | |
| 127 | + | |
| 128 | + var popup_left = (window.screen.width/2)-(popup_wid/2); | |
| 129 | + var popup_top =(window.screen.height/2)-(popup_ht/2); | |
| 130 | + | |
| 131 | + if($('input[name=publish]').is(':checked')){ | |
| 132 | + if($('input[name=publish]:checked').val() == 'statement'){ | |
| 133 | + window.open('printMsgStatementAjax.do', 'reservMsgPrint', 'width='+ popup_wid +', height='+ popup_ht +', left=' + popup_left + ', top='+ popup_top ); | |
| 134 | + }else{ | |
| 135 | + window.open('printMsgUsageDetailsAjax.do', 'reservMsgPrint', 'width='+ popup_wid +', height='+ popup_ht +', left=' + popup_left + ', top='+ popup_top ); | |
| 136 | + } | |
| 137 | + }else{ | |
| 138 | + alert('거래명세서, 사용내역서중\n발급 받으시려는 항목을 체크 후 눌러주세요.'); | |
| 139 | + } | |
| 140 | +} | |
| 141 | + | |
| 142 | +function fnPayUserPrintPopup(){ | |
| 143 | + | |
| 144 | + //날자 체크 | |
| 145 | + if( $('#startDate').val() != '' && $('#endDate').val() != '' ){ | |
| 146 | + var iChkBeginDe = Number($('#startDate').val().replaceAll("/", "")); | |
| 147 | + var iChkEndDe = Number($('#endDate').val().replaceAll("/", "")); | |
| 148 | + if(iChkBeginDe > iChkEndDe || iChkEndDe < iChkBeginDe ){ | |
| 149 | + alert("기간설정의 시작일자는 종료일자 보다 클수 없습니다."); | |
| 150 | + return; | |
| 151 | + } | |
| 152 | + } | |
| 153 | + | |
| 154 | + //만들려는 팝업의 크기 | |
| 155 | + var popup_wid = '840'; | |
| 156 | + var popup_ht = '900'; | |
| 157 | + | |
| 158 | + var popup_left = (window.screen.width / 2) - (popup_wid / 2); | |
| 159 | + var popup_top =(window.screen.height / 2) - (popup_ht / 2); | |
| 160 | + | |
| 161 | + $("#listForm").attr("target","msgSentPrint"); | |
| 162 | + window.open('', 'msgSentPrint', 'width='+ popup_wid +', height='+ popup_ht +', left=' + popup_left + ', top='+ popup_top ); | |
| 163 | + $("#listForm").attr({"action":"/web/member/pay/PrintPayUserListAjax.do", "method":"post"}).submit(); | |
| 164 | +} | |
| 165 | + | |
| 166 | +//환불요청 내역 프린트 출력 팝업 | |
| 167 | +function fnShowPdfPrintPopup(){ | |
| 168 | + | |
| 169 | + //날자 체크 | |
| 170 | + if( $('#startDate').val() != '' && $('#endDate').val() != '' ){ | |
| 171 | + var iChkBeginDe = Number($('#startDate').val().replaceAll("/", "")); | |
| 172 | + var iChkEndDe = Number($('#endDate').val().replaceAll("/", "")); | |
| 173 | + if(iChkBeginDe > iChkEndDe || iChkEndDe < iChkBeginDe ){ | |
| 174 | + alert("기간설정의 시작일자는 종료일자 보다 클수 없습니다."); | |
| 175 | + return; | |
| 176 | + } | |
| 177 | + } | |
| 178 | + | |
| 179 | + //만들려는 팝업의 크기 | |
| 180 | + var popup_wid = '840'; | |
| 181 | + var popup_ht = '900'; | |
| 182 | + | |
| 183 | + var popup_left = (window.screen.width / 2) - (popup_wid / 2); | |
| 184 | + var popup_top =(window.screen.height / 2) - (popup_ht / 2); | |
| 185 | + | |
| 186 | + $("#listForm").attr("target","msgSentPdfPrint"); | |
| 187 | + window.open('', 'msgSentPdfPrint', 'width='+ popup_wid +', height='+ popup_ht +', left=' + popup_left + ', top='+ popup_top +',scrollbars=1'); | |
| 188 | + $("#listForm").attr({"action":"/web/member/pay/PayPdfSWListPopUpAjax.do", "method":"post"}).submit(); | |
| 189 | +} | |
| 190 | + | |
| 191 | +//체크박스 전체선택/해제 | |
| 192 | +/* $(document).on("click", "#chkAll", function(e) { | |
| 193 | + var isChecked = $(this).is(":checked"); | |
| 194 | + $("input[name=eachChk]:checkbox").prop("checked", isChecked); | |
| 195 | +}); */ | |
| 196 | + | |
| 197 | +</script> | |
| 198 | +<input type="button" id="faxClick" data-tooltip="rev_popup03" style="display:none;"/> | |
| 199 | +<input type="button" id="kakaoClick" data-tooltip="rev_popup02" style="display:none;"/> | |
| 200 | +<div class="pay_cont current" id="listTab2_1"> | |
| 201 | + <input type="hidden" id="searchSortCnd" name="searchSortCnd" value="<c:out value="${searchVO.searchSortCnd}" />" /> | |
| 202 | + <input type="hidden" id="searchSortOrd" name="searchSortOrd" value="<c:out value="${searchVO.searchSortOrd}" />" /> | |
| 203 | + <div class="list_info"> | |
| 204 | + <p>총 <span>${paginationInfo.totalRecordCount}</span>건</p> | |
| 205 | + <div> | |
| 206 | + <button type="button" class="print_btn" onclick="javascript:fnPayUserPrintPopup();"> | |
| 207 | + <i class="print_img"></i>인쇄하기 | |
| 208 | + </button> | |
| 209 | + <button type="button" class="pdf_btn" onclick="javascript:fnShowPdfPrintPopup();"> | |
| 210 | + <i class="pdf_img"></i>PDF저장 | |
| 211 | + </button> | |
| 212 | + <button type="button" class="excel_btn"> | |
| 213 | + <i class="downroad"></i>엑셀 다운로드 | |
| 214 | + </button> | |
| 215 | + </div> | |
| 216 | + </div> | |
| 217 | + <div class="tb_wrap"> | |
| 218 | + <table class="tType4"> | |
| 219 | + <colgroup> | |
| 220 | + <%-- <col style="width: 5%;"> --%> | |
| 221 | + <col style="width: *%;"> | |
| 222 | + <col style="width: 15%;"> | |
| 223 | + <col style="width: 15%;"> | |
| 224 | + <col style="width: 15%;"> | |
| 225 | + <col style="width: 20%;"> | |
| 226 | + <col style="width: 20%;"> | |
| 227 | + <%-- <col style="width: 10%;"> | |
| 228 | + <col style="width: 10%;"> | |
| 229 | + <col style="width: 10%;"> | |
| 230 | + <col style="width: 10%;"> --%> | |
| 231 | + </colgroup> | |
| 232 | + <thead> | |
| 233 | + <tr> | |
| 234 | + <%-- <th rowspan="2"> | |
| 235 | + <label for="" class="label">전체 선택</label> | |
| 236 | + <input type="checkbox" id="chkAll"> | |
| 237 | + </th> --%> | |
| 238 | + <th rowspan="2"> | |
| 239 | + 발송일시 | |
| 240 | + <div class="sort_wrap"> | |
| 241 | + <input type="button" class="sort sortBtn" id="sort_regDate"> | |
| 242 | + </div> | |
| 243 | + </th> | |
| 244 | + <th rowspan="2"> | |
| 245 | + 문자유형 | |
| 246 | + <div class="sort_wrap"> | |
| 247 | + <input type="button" class="sort sortBtn" id="sort_orderByCode"> | |
| 248 | + </div> | |
| 249 | + </th> | |
| 250 | + <th rowspan="2">내용</th> | |
| 251 | + <th rowspan="2">발송건수</th> | |
| 252 | + <!-- <th colspan="2">충전</th> | |
| 253 | + <th colspan="2">사용</th> | |
| 254 | + <th colspan="2">잔액</th> --> | |
| 255 | + <th colspan="2">사용</th> | |
| 256 | + <!-- <th>반환(실패)</th> --> | |
| 257 | + <!-- <th colspan="2">잔액</th> --> | |
| 258 | + </tr> | |
| 259 | + <tr> | |
| 260 | + <th>캐시</th> | |
| 261 | + <th>포인트</th> | |
| 262 | + <!-- <th>캐시</th> --> | |
| 263 | + <!-- <th>포인트</th> --> | |
| 264 | + <!-- <th>충전금</th> | |
| 265 | + <th>포인트</th> --> | |
| 266 | + </tr> | |
| 267 | + </thead> | |
| 268 | + <tbody> | |
| 269 | + <c:choose> | |
| 270 | + <c:when test="${not empty payUserSWList}"> | |
| 271 | + <c:forEach var="payUserInfo" items="${payUserSWList}" varStatus="status"> | |
| 272 | + <tr> | |
| 273 | + <%-- <td> | |
| 274 | + <label for="" class="label">선택</label> | |
| 275 | + <input type="checkbox" name="eachChk"> | |
| 276 | + </td> --%> | |
| 277 | + <td> | |
| 278 | + <p><c:out value="${payUserInfo.regDate}"/></p> | |
| 279 | + </td> | |
| 280 | + <td> | |
| 281 | + <c:choose> | |
| 282 | + <c:when test="${payUserInfo.msgTypeTxt eq '6' && payUserInfo.fileCnt eq 0 }"> | |
| 283 | + <p>장문</p> | |
| 284 | + </c:when> | |
| 285 | + <c:when test="${payUserInfo.msgTypeTxt eq '6' && payUserInfo.fileCnt ne 0 }"> | |
| 286 | + <p>그림</p> | |
| 287 | + </c:when> | |
| 288 | + <c:when test="${payUserInfo.msgTypeTxt eq '8'}"> | |
| 289 | + <p>알림톡</p> | |
| 290 | + </c:when> | |
| 291 | + <c:when test="${payUserInfo.msgTypeTxt eq '9'}"> | |
| 292 | + <p>친구톡</p> | |
| 293 | + </c:when> | |
| 294 | + <c:when test="${payUserInfo.msgTypeTxt eq 'fax'}"> | |
| 295 | + <p>팩스</p> | |
| 296 | + </c:when> | |
| 297 | + <c:otherwise> | |
| 298 | + <p>단문</p> | |
| 299 | + </c:otherwise> | |
| 300 | + </c:choose> | |
| 301 | + </td> | |
| 302 | + <td> | |
| 303 | + <p> | |
| 304 | + <c:choose> | |
| 305 | + <c:when test="${payUserInfo.msgTypeTxt eq '8'}"> | |
| 306 | + <button class="btnType btnType20" onClick="javascript:fnRevDetailPop02('${payUserInfo.msgGroupId}'); return false;">상세보기</button> | |
| 307 | + </c:when> | |
| 308 | + <c:when test="${payUserInfo.msgTypeTxt eq '9'}"> | |
| 309 | + <button class="btnType btnType20" onClick="javascript:fnRevDetailPop02('${payUserInfo.msgGroupId}'); return false;">상세보기</button> | |
| 310 | + </c:when> | |
| 311 | + <c:when test="${payUserInfo.msgTypeTxt eq 'fax'}"> | |
| 312 | + <button class="btnType btnType20" onClick="javascript:fnRevDetailPop03('${payUserInfo.msgGroupId}'); return false;">상세보기</button> | |
| 313 | + </c:when> | |
| 314 | + <c:otherwise> | |
| 315 | + <button class="btnType btnType20" data-tooltip="rev_popup01" onClick="javascript:fnRevDetailPop('${payUserInfo.msgGroupId}','${payUserInfo.fileCnt}'); return false;">상세보기</button> | |
| 316 | + </c:otherwise> | |
| 317 | + </c:choose> | |
| 318 | + </p> | |
| 319 | + </td> | |
| 320 | + <td> | |
| 321 | + <p class="fwRg c_002c9a"> | |
| 322 | + | |
| 323 | + <c:out value="${payUserInfo.succSendCnt}"/> | |
| 324 | + <c:if test="${payUserInfo.msgTypeTxt eq 'fax'}"> | |
| 325 | + (<c:out value="${payUserInfo.fileCnt}"/>매) | |
| 326 | + </c:if> | |
| 327 | + / <c:out value="${payUserInfo.failSendCnt}"/> | |
| 328 | + <%-- <c:out value="${payUserInfo.sendCount}"/> | |
| 329 | + <c:if test="${payUserInfo.msgTypeTxt eq 'fax'}"> | |
| 330 | + (<c:out value="${payUserInfo.fileCnt}"/>) | |
| 331 | + </c:if> --%> | |
| 332 | + </p> | |
| 333 | + </td> | |
| 334 | + <td> | |
| 335 | + <p> | |
| 336 | + <fmt:formatNumber type="number" maxFractionDigits="3" value="${payUserInfo.succSendPrice}" var="succCash" /> | |
| 337 | + <c:out value="${succCash}"/> | |
| 338 | + </p> | |
| 339 | + </td> | |
| 340 | + <td> | |
| 341 | + <p> | |
| 342 | + <%-- <fmt:formatNumber type="number" maxFractionDigits="3" value="${payUserInfo.befPoint}" var="befPoint" /> | |
| 343 | + <c:out value="${befPoint}"/> --%> | |
| 344 | + 0 | |
| 345 | + </p> | |
| 346 | + </td> | |
| 347 | + <%-- <td> | |
| 348 | + <p class="fwRg c_002c9a"> | |
| 349 | + <fmt:formatNumber type="number" maxFractionDigits="3" value="${payUserInfo.failSendPrice}" var="failPrice" /> | |
| 350 | + <c:out value="${failPrice}"/> | |
| 351 | + </p> | |
| 352 | + </td> --%> | |
| 353 | + <!-- <td> | |
| 354 | + <p class="fwRg c_002c9a"> | |
| 355 | + 0 | |
| 356 | + </p> | |
| 357 | + </td> --> | |
| 358 | + <%-- <td> | |
| 359 | + <p> | |
| 360 | + <fmt:formatNumber type="number" maxFractionDigits="3" value="${payUserInfo.befCash}" var="befCash" /> | |
| 361 | + <c:out value="${befCash}"/> | |
| 362 | + </p> | |
| 363 | + </td> | |
| 364 | + <td> | |
| 365 | + <p> | |
| 366 | + <fmt:formatNumber type="number" maxFractionDigits="3" value="${payUserInfo.befPoint}" var="befPoint" /> | |
| 367 | + <c:out value="${befPoint}"/> | |
| 368 | + </p> | |
| 369 | + </td> | |
| 370 | + <td> | |
| 371 | + <p class="fwRg c_002c9a"> | |
| 372 | + <fmt:formatNumber type="number" maxFractionDigits="3" value="${payUserInfo.totPrice}" var="totPrice" /> | |
| 373 | + <c:out value="${totPrice}"/> | |
| 374 | + </p> | |
| 375 | + </td> | |
| 376 | + <td> | |
| 377 | + <p class="fwRg c_002c9a"> | |
| 378 | + 0 | |
| 379 | + </p> | |
| 380 | + </td> --%> | |
| 381 | + <%-- <td> | |
| 382 | + <p class="fwRg c_222"> | |
| 383 | + <fmt:formatNumber type="number" maxFractionDigits="3" value="${payUserInfo.thisPoint}" var="thisPoint" /> | |
| 384 | + <c:out value="${thisPoint}"/> | |
| 385 | + </p> | |
| 386 | + </td> | |
| 387 | + <td> | |
| 388 | + <p class="fwRg c_222"> | |
| 389 | + <fmt:formatNumber type="number" maxFractionDigits="3" value="${payUserInfo.befPoint}" var="befPoint" /> | |
| 390 | + <c:out value="${befPoint}"/> | |
| 391 | + </p> | |
| 392 | + </td> --%> | |
| 393 | + </tr> | |
| 394 | + </c:forEach> | |
| 395 | + </c:when> | |
| 396 | + <c:otherwise> | |
| 397 | + <tr> | |
| 398 | + <td colspan="8"> | |
| 399 | + 검색 결과가 없습니다. | |
| 400 | + </td> | |
| 401 | + </tr> | |
| 402 | + </c:otherwise> | |
| 403 | + </c:choose> | |
| 404 | + </tbody> | |
| 405 | + </table> | |
| 406 | + </div> | |
| 407 | + <div class="publish_btn clearfix"> | |
| 408 | + <div> | |
| 409 | + <input type="radio" name="publish" id="publish1" value="statement"> | |
| 410 | + <label for="publish1">거래명세서</label> | |
| 411 | + <input type="radio" name="publish" id="publish2" value="details"> | |
| 412 | + <label for="publish2">사용내역서</label> | |
| 413 | + </div> | |
| 414 | + <div> | |
| 415 | + <c:choose> | |
| 416 | + <c:when test="${not empty payUserSWList}"> | |
| 417 | + <button type="button" class="btnType" onclick="fnShowPrintPopup(); return false;">발행하기</button> | |
| 418 | + </c:when> | |
| 419 | + <c:otherwise> | |
| 420 | + <button type="button" class="btnType" onclick="alert('거래명세서, 사용내역서 발행할 요금사용내역이 없습니다.');">발행하기</button> | |
| 421 | + </c:otherwise> | |
| 422 | + </c:choose> | |
| 423 | + </div> | |
| 424 | + </div> | |
| 425 | + | |
| 426 | + <!-- pagination --> | |
| 427 | + <c:if test="${!empty payUserSWList}"> | |
| 428 | + <ul class="pagination"> | |
| 429 | + <ui:pagination paginationInfo = "${paginationInfo}" type="imageWeb" jsFunction="payUserListAjax" /> | |
| 430 | + </ul> | |
| 431 | + </c:if> | |
| 432 | + <!-- pagination --> | |
| 433 | +</div><!-- 결제관리 - 요금 사용내역 --> |
+++ src/main/webapp/WEB-INF/jsp/web/pay/PrintPayUserSWListPdfPopUp.jsp
... | ... | @@ -0,0 +1,270 @@ |
| 1 | +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> | |
| 2 | +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> | |
| 3 | +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> | |
| 4 | +<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> | |
| 5 | +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> | |
| 6 | +<%@ page import="itn.com.cmm.LoginVO" %> | |
| 7 | +<!DOCTYPE html> | |
| 8 | +<html lang="ko"> | |
| 9 | + <head> | |
| 10 | + <meta charset="UTF-8"> | |
| 11 | + <meta http-equiv="X-UA-Compatible" content="IE=edge"> | |
| 12 | + <title>요금 사용내역</title> | |
| 13 | + <link href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@100;300;400;500;700;900&display=swap" rel="stylesheet"> | |
| 14 | + <link rel="stylesheet" href="/publish/css/reset.css"> | |
| 15 | + <link rel="stylesheet" href="/publish/css/common.css"> | |
| 16 | + <link rel="stylesheet" href="/publish/css/estimate.css"> | |
| 17 | + <link rel="stylesheet" href="/publish/css/font.css"> | |
| 18 | + <link rel="stylesheet" href="/publish/css/button.css"> | |
| 19 | + <script type="text/javascript" src="/publish/js/jquery-3.5.0.js"></script> | |
| 20 | + <script type="text/javascript" src="/js/jsPdf/bluebird.min.js"></script> | |
| 21 | + <script type="text/javascript" src="/js/jsPdf/html2canvas.js"></script> | |
| 22 | + <script type="text/javascript" src="/js/jsPdf/jspdf.min.js"></script> | |
| 23 | + | |
| 24 | + </head> | |
| 25 | + <script type="text/javascript"> | |
| 26 | + | |
| 27 | + $(document).ready(function() { | |
| 28 | + $('.savePdf').click(function() { // pdf저장 button id | |
| 29 | + | |
| 30 | + var HTML_Width = $(".pdfPage").width(); | |
| 31 | + var HTML_Height = $(".pdfPage").height(); | |
| 32 | + var top_left_margin = 15; | |
| 33 | + var PDF_Width = HTML_Width+(top_left_margin*2); | |
| 34 | + var PDF_Height = (PDF_Width*1.5)+(top_left_margin*2); | |
| 35 | + var canvas_image_width = HTML_Width; | |
| 36 | + var canvas_image_height = HTML_Height; | |
| 37 | + | |
| 38 | + var totalPDFPages = Math.ceil(HTML_Height/PDF_Height)-1; | |
| 39 | + | |
| 40 | + //이미지 생성시 스크롤이 있는경우 스크롤을 상단으로 이동 시킨 후 캡쳐를 진행하도록 한다. | |
| 41 | + html2canvas($(".pdfPage")[0],{allowTaint:true, | |
| 42 | + scrollX: 0, | |
| 43 | + scrollY: -window.scrollY, | |
| 44 | + windowWidth: document.documentElement.offsetWidth, | |
| 45 | + windowHeight: document.documentElement.offsetHeight}).then(function(canvas) { | |
| 46 | + canvas.getContext('2d'); | |
| 47 | + | |
| 48 | + var imgData = canvas.toDataURL("image/jpeg", 1.0); | |
| 49 | + var pdf = new jsPDF('p', 'pt', [PDF_Width, PDF_Height]); | |
| 50 | + pdf.addImage(imgData, 'JPG', top_left_margin, top_left_margin,canvas_image_width,canvas_image_height); | |
| 51 | + | |
| 52 | + //1페이지 이상인 경우 추가 페이지 처리 | |
| 53 | + if(totalPDFPages >= 1){ | |
| 54 | + for (var i = 1; i <= totalPDFPages; i++) { | |
| 55 | + pdf.addPage(PDF_Width, PDF_Height); | |
| 56 | + pdf.addImage(imgData, 'JPG', top_left_margin, -(PDF_Height*i)+(top_left_margin*4),canvas_image_width,canvas_image_height); | |
| 57 | + } | |
| 58 | + } | |
| 59 | + | |
| 60 | + var strDate = nowDate(); | |
| 61 | + pdf.save('요금 사용내역_' + strDate + '.pdf'); | |
| 62 | + }); | |
| 63 | + | |
| 64 | + }); | |
| 65 | + }); | |
| 66 | + | |
| 67 | + //현재 날짜를 반환해주는 함수 | |
| 68 | + function nowDate(){ | |
| 69 | + var today = new Date(); | |
| 70 | + var year = today.getFullYear(); | |
| 71 | + var month = today.getMonth() + 1; //월은 0부터 시작하므로 1을 더해준다. | |
| 72 | + var day = today.getDate(); | |
| 73 | + var nowDate = year + "" + month+ "" + day; | |
| 74 | + return nowDate; | |
| 75 | + } | |
| 76 | + | |
| 77 | + </script> | |
| 78 | + <body> | |
| 79 | + <!-- 견적서 --> | |
| 80 | + <div class="estimate_wrap pdfPage" id="pdfPage"> | |
| 81 | + <div class="estimate"> | |
| 82 | + <div class="est_head clearfix"> | |
| 83 | + <img src="/publish/images/CI.png" alt="문자온 CI"> | |
| 84 | + <div class="clearfix"> | |
| 85 | + <p>(12248) 경기도 남양주시 다산순환로 20, A동 735호(다산동, 현대프리미어캠퍼스)</p> | |
| 86 | + <p>TEL 010-8432-9333</p> | |
| 87 | + </div> | |
| 88 | + </div> | |
| 89 | + <div class="est_body"> | |
| 90 | + <h2>요금 사용내역</h2> | |
| 91 | + <div class="cont1 tb_ver2"> | |
| 92 | + <div> | |
| 93 | + <table class="est_table"> | |
| 94 | + <caption>발신자 정보</caption> | |
| 95 | + <colgroup> | |
| 96 | + <col style="width: 50px;"> | |
| 97 | + <col style="width: auto;"> | |
| 98 | + </colgroup> | |
| 99 | + <tbody> | |
| 100 | + <tr> | |
| 101 | + <th></th> | |
| 102 | + <td colspan="2" class="colspan"> | |
| 103 | + <span><c:out value="${userNm}"/></span> 님의 사용내역을 아래와 같이 확인합니다. | |
| 104 | + </td> | |
| 105 | + </tr> | |
| 106 | + </tbody> | |
| 107 | + </table> | |
| 108 | + </div> | |
| 109 | + </div> | |
| 110 | + <div class="cont3"> | |
| 111 | + <div class="est_table2_wrap"> | |
| 112 | + <table class="est_table2"> | |
| 113 | + <caption>사용날짜, 문자유형, 문자내용, 충전 충전금, 충전 포인트, 사용 충전금, 사용 포인트, 잔액 충전금, 잔액 포인트를 제공하는 표</caption> | |
| 114 | + <colgroup> | |
| 115 | + <col style="width: 15%;"> | |
| 116 | + <col style="width: 10%;"> | |
| 117 | + <col style="width: 15%;"> | |
| 118 | + <col style="width: 15%;"> | |
| 119 | + <col style="width: 10%;"> | |
| 120 | + <%-- <col style="width: 10%;"> --%> | |
| 121 | + <%-- <col style="width: 15%;"> | |
| 122 | + <col style="width: 10%;"> --%> | |
| 123 | + </colgroup> | |
| 124 | + <thead> | |
| 125 | + <tr> | |
| 126 | + <th><span style="position:relative;display:block;top:17px;background:#f2f2f2;">날짜</span></th> | |
| 127 | + <th><span style="position:relative;display:block;top:17px;background:#f2f2f2;">문자유형</span></th> | |
| 128 | + <th><span style="position:relative;display:block;top:17px;background:#f2f2f2;">발송건수</span></th> | |
| 129 | + <!-- <th colspan="2">충전</th> --> | |
| 130 | + <th colspan="2">사용</th> | |
| 131 | + <!-- <th colspan="2">잔액</th> --> | |
| 132 | + </tr> | |
| 133 | + <tr> | |
| 134 | + <th></th> | |
| 135 | + <th></th> | |
| 136 | + <th></th> | |
| 137 | + <th>충전금</th> | |
| 138 | + <th>포인트</th> | |
| 139 | + <!-- <th>충전금</th> | |
| 140 | + <th>포인트</th> | |
| 141 | + <th>충전금</th> | |
| 142 | + <th>포인트</th> --> | |
| 143 | + </tr> | |
| 144 | + </thead> | |
| 145 | + <tbody> | |
| 146 | + <c:choose> | |
| 147 | + <c:when test="${not empty payUserList}"> | |
| 148 | + <c:forEach var="payUserInfo" items="${payUserList}" varStatus="status"> | |
| 149 | + <tr> | |
| 150 | + <td> | |
| 151 | + <c:out value="${payUserInfo.regDate}"/> | |
| 152 | + </td> | |
| 153 | + <td> | |
| 154 | + <p style="text-align:center;"> | |
| 155 | + <c:choose> | |
| 156 | + <c:when test="${payUserInfo.msgTypeTxt eq '6' && payUserInfo.fileCnt eq 0 }"> | |
| 157 | + 장문 | |
| 158 | + </c:when> | |
| 159 | + <c:when test="${payUserInfo.msgTypeTxt eq '6' && payUserInfo.fileCnt ne 0 }"> | |
| 160 | + 그림 | |
| 161 | + </c:when> | |
| 162 | + <c:when test="${payUserInfo.msgTypeTxt eq '8'}"> | |
| 163 | + 알림톡 | |
| 164 | + </c:when> | |
| 165 | + <c:when test="${payUserInfo.msgTypeTxt eq '9'}"> | |
| 166 | + 친구톡 | |
| 167 | + </c:when> | |
| 168 | + <c:when test="${payUserInfo.msgTypeTxt eq 'fax'}"> | |
| 169 | + 팩스 | |
| 170 | + </c:when> | |
| 171 | + <c:otherwise> | |
| 172 | + 단문 | |
| 173 | + </c:otherwise> | |
| 174 | + </c:choose> | |
| 175 | + </p> | |
| 176 | + </td> | |
| 177 | + <td> | |
| 178 | + <c:out value="${payUserInfo.succSendCnt}"/> | |
| 179 | + <c:if test="${payUserInfo.msgTypeTxt eq 'fax'}"> | |
| 180 | + (<c:out value="${payUserInfo.fileCnt}"/>) | |
| 181 | + </c:if> | |
| 182 | + <%-- <c:out value="${payUserInfo.sendCount}"/> | |
| 183 | + <c:if test="${payUserInfo.msgTypeTxt eq 'fax'}"> | |
| 184 | + (<c:out value="${payUserInfo.fileCnt}"/>) | |
| 185 | + </c:if> --%> | |
| 186 | + </td> | |
| 187 | + <%-- <td> | |
| 188 | + <p> | |
| 189 | + <fmt:formatNumber type="number" maxFractionDigits="3" value="${payUserInfo.befCash}" var="befCash" /> | |
| 190 | + <c:out value="${befCash}"/> | |
| 191 | + </p> | |
| 192 | + </td> | |
| 193 | + <td> | |
| 194 | + <p> | |
| 195 | + <c:out value="${payUserInfo.befPoint}"/> | |
| 196 | + </p> | |
| 197 | + </td> --%> | |
| 198 | + <td> | |
| 199 | + <p class="fwRg c_002c9a" style="text-align:center;"> | |
| 200 | + <fmt:formatNumber type="number" maxFractionDigits="3" value="${payUserInfo.succSendPrice}" var="succCash" /> | |
| 201 | + <c:out value="${succCash}"/> | |
| 202 | + </p> | |
| 203 | + </td> | |
| 204 | + <td> | |
| 205 | + <p class="fwRg c_002c9a" style="text-align:center;"> | |
| 206 | + 0 | |
| 207 | + </p> | |
| 208 | + </td> | |
| 209 | + <%-- <td> | |
| 210 | + <p class="fwRg c_222"> | |
| 211 | + <fmt:formatNumber type="number" maxFractionDigits="3" value="${payUserInfo.thisPoint}" var="thisPoint" /> | |
| 212 | + <c:out value="${thisPoint}"/> | |
| 213 | + </p> | |
| 214 | + </td> | |
| 215 | + <td> | |
| 216 | + <p class="fwRg c_222"> | |
| 217 | + <c:out value="${payUserInfo.befPoint}"/> | |
| 218 | + </p> | |
| 219 | + </td> --%> | |
| 220 | + </tr> | |
| 221 | + </c:forEach> | |
| 222 | + </c:when> | |
| 223 | + <c:otherwise> | |
| 224 | + <tr> | |
| 225 | + <td colspan="5"> | |
| 226 | + 사용내역이 없습니다. | |
| 227 | + </td> | |
| 228 | + </tr> | |
| 229 | + </c:otherwise> | |
| 230 | + </c:choose> | |
| 231 | + </tbody> | |
| 232 | + </table> | |
| 233 | + </div> | |
| 234 | + </div> | |
| 235 | + <div class="cont4"> | |
| 236 | + <table class="est_table"> | |
| 237 | + <caption>공급가액, 부가세, 총 결제금액에 대한 표</caption> | |
| 238 | + <colgroup> | |
| 239 | + <col style="width: 64px;"> | |
| 240 | + <col style="width: auto;"> | |
| 241 | + </colgroup> | |
| 242 | + <tbody> | |
| 243 | + <tr> | |
| 244 | + <th>대표번호</th> | |
| 245 | + <td>010-8432-9333</td> | |
| 246 | + </tr> | |
| 247 | + <tr> | |
| 248 | + <th>이메일</th> | |
| 249 | + <td>help@iten.co.kr</td> | |
| 250 | + </tr> | |
| 251 | + </tbody> | |
| 252 | + </table> | |
| 253 | + </div> | |
| 254 | + <div class="cont5"> | |
| 255 | + <p><span><c:out value="${year}"/></span> 년 <span><c:out value="${month}"/></span> 월 <span><c:out value="${day}"/></span> 일</p> | |
| 256 | + <div> | |
| 257 | + <span>주식회사 아이티앤 대표이사</span> | |
| 258 | + <span>유 인 식</span> | |
| 259 | + <span class="big_stamp"><img src="/publish/images/content/big_stamp.png"></span> | |
| 260 | + </div> | |
| 261 | + </div> | |
| 262 | + </div> | |
| 263 | + </div> | |
| 264 | + </div> | |
| 265 | + <div class="est_btn_wrap" id="est_btn_wrap"> | |
| 266 | + <button type="button" class="btnType savePdf" ><i class="print_img"></i>pdf저장</button> | |
| 267 | + </div> | |
| 268 | + <!--// 견적서 --> | |
| 269 | + </body> | |
| 270 | +</html> |
--- src/main/webapp/index.jsp
+++ src/main/webapp/index.jsp
... | ... | @@ -11,7 +11,7 @@ |
| 11 | 11 |
<meta name="Keywords" content="문자사이트, 대량문자, 단체문자, 문자발송, 문자전송, 인터넷문자, 단체문자사이트, 대량문자발송, 문자보내기, 단체문자발송"> |
| 12 | 12 |
<meta name="description" content="LMS문자,MMS문자,WEB발신,인터넷,컴퓨터로 문자메세지보내기,웹발신문자,문자서비스,대량문자전송,단체문자보내기"> |
| 13 | 13 |
<meta property="og:type" content="website"> |
| 14 |
- <meta property="og:title" content="문자온"> |
|
| 14 |
+ <meta property="og:title" content="문자온 인터넷 웹문자 단체문자 대량문자발송 사이트"> |
|
| 15 | 15 |
<meta property="og:description" content="LMS문자,MMS문자,WEB발신,인터넷,컴퓨터로 문자메세지보내기,웹발신문자,문자서비스,대량문자전송,단체문자보내기"> |
| 16 | 16 |
<meta property="og:image" content="https://www.munjaon.co.kr/publish/images/favicon/ms-icon-144x144.png"> |
| 17 | 17 |
<meta property="og:url" content="https://www.munjaon.co.kr/web/main/mainPage.do"> |
+++ src/main/webapp/publish/publish_m/css/reset.css
... | ... | @@ -0,0 +1,66 @@ |
| 1 | +html, body, div, span, applet, object, iframe, | |
| 2 | +h1, h2, h3, h4, h5, h6, p, blockquote, pre, | |
| 3 | +a, abbr, acronym, address, big, cite, code, | |
| 4 | +del, dfn, em, font, img, ins, kbd, q, s, samp, | |
| 5 | +small, strike, strong, sub, sup, tt, var, | |
| 6 | +b, u, i, center, | |
| 7 | +dl, dt, dd, ol, ul, li, | |
| 8 | +fieldset, form, label, legend, | |
| 9 | +table, caption, tbody, tfoot, thead, tr, th, td { | |
| 10 | + margin: 0; | |
| 11 | + padding: 0; | |
| 12 | + border: 0; | |
| 13 | + outline: 0; | |
| 14 | + font-size: 100%; | |
| 15 | + vertical-align: baseline; | |
| 16 | + background: transparent; | |
| 17 | +} | |
| 18 | +body { | |
| 19 | + line-height: 1; | |
| 20 | + font-family: 'Noto Sans KR', sans-serif; | |
| 21 | + color: #222222; | |
| 22 | + font-size: 20px; | |
| 23 | + box-sizing: border-box; | |
| 24 | +} | |
| 25 | +ol, ul { | |
| 26 | + list-style: none; | |
| 27 | +} | |
| 28 | +blockquote, q { | |
| 29 | + quotes: none; | |
| 30 | +} | |
| 31 | +blockquote:before, blockquote:after, | |
| 32 | +q:before, q:after { | |
| 33 | + content: ''; | |
| 34 | + content: none; | |
| 35 | +} | |
| 36 | + | |
| 37 | +/* remember to define focus styles! */ | |
| 38 | +:focus { | |
| 39 | + outline: 0; | |
| 40 | +} | |
| 41 | + | |
| 42 | +/* remember to highlight inserts somehow! */ | |
| 43 | +ins { | |
| 44 | + text-decoration: none; | |
| 45 | +} | |
| 46 | +del { | |
| 47 | + text-decoration: line-through; | |
| 48 | +} | |
| 49 | + | |
| 50 | +/* tables still need 'cellspacing="0"' in the markup */ | |
| 51 | +table { | |
| 52 | + border-collapse: collapse; | |
| 53 | + border-spacing: 0; | |
| 54 | +} | |
| 55 | + | |
| 56 | +/* 여기어때 잘난체 */ | |
| 57 | +@font-face { | |
| 58 | + font-family: 'yg-jalnan'; | |
| 59 | + src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_four@1.2/JalnanOTF00.woff') format('woff'); | |
| 60 | + font-weight: normal; | |
| 61 | + font-style: normal; | |
| 62 | +} | |
| 63 | + | |
| 64 | +/* Noto Sans KR */ | |
| 65 | +@import url('https://fonts.googleapis.com/css2?family=Dancing+Script&family=Lora&family=Noto+Sans+KR:wght@100;400;700&display=swap'); | |
| 66 | +/*font-family: 'Noto Sans KR', sans-serif;*/(No newline at end of file) |
+++ src/main/webapp/publish/publish_m/css/style.css
... | ... | @@ -0,0 +1,116 @@ |
| 1 | +@charset "utf-8"; | |
| 2 | +html{scroll-behavior: smooth; min-width: 280px; margin: 0 auto;} | |
| 3 | + | |
| 4 | +*{margin: 0; padding: 0; word-break: keep-all; max-width: 1024px;} | |
| 5 | +a{text-decoration: none;color: #222222;} | |
| 6 | + | |
| 7 | + | |
| 8 | +.con_wrap{background-color: #f0f3f7; letter-spacing: -0.5px;} | |
| 9 | +/*header*/ | |
| 10 | +header .inner{position: absolute; padding: 7px 20px; background-color: #fff; border-radius: 0 0 30px 0;} | |
| 11 | +header .inner a{display: flex; align-items: center;} | |
| 12 | +header .inner a p{font-size: 26px; font-weight: 300; padding: 0 0 0 20px;} | |
| 13 | + | |
| 14 | +/*메인비주얼*/ | |
| 15 | +.visual{background-image: url(/publish/publish_m/img/main_bg_big.png); background-repeat: no-repeat; /*background-position: calc(100% - 30px) 0;*/ background-color: #0b4aa7; width: 100%; border-radius: 0 0 35px 0; text-align: center;} | |
| 16 | +.visual .inner h2{padding: 110px 0 25px 0; font-family: 'yg-jalnan'; font-size: 60px; color: #fff; line-height: 74px;} | |
| 17 | +.visual .inner h2 span{color: #ffe329;} | |
| 18 | +.visual .inner .button{display: inline-block;} | |
| 19 | +.visual .inner .button a p{margin: 0 auto; width: 340px; height: 74px;border: 2px solid #cec442; border-radius: 50px; font-size: 30px; font-family: 'yg-jalnan'; color: #ffe329; line-height: 74px;} | |
| 20 | +.visual .inner .button a p span{font-family: 'Noto Sans KR', sans-serif; font-weight: 500;} | |
| 21 | + | |
| 22 | +/*메인비주얼 > 요금표*/ | |
| 23 | +.visual .price .text{font-size: 18px; color: #fff; font-weight: 300;} | |
| 24 | +.visual .price .text01{padding: 38px 20px 10px 0; text-align: right; opacity: 40%;} | |
| 25 | +.visual .price .text02{padding: 10px 0 25px 20px; text-align: left; opacity: 50%;} | |
| 26 | +.visual .price ul{display: flex; justify-content: space-between; padding: 0 20px;} | |
| 27 | +.visual .price ul li{width: calc((100% - 20px)/3);} | |
| 28 | +.visual .price ul .wrap{border: 3px solid #ffcd05; border-radius: 10px; background-color: #eaedf1; color: #082550; font-weight: 400;} | |
| 29 | +.visual .price ul .wrap .title{padding: 9px 0; border-radius: 6px 6px 0 0; background-color: #ffcd05; text-align: center; font-size: 20px;} | |
| 30 | +.visual .price ul .wrap .title p img{margin: 0 0 4px 0;} | |
| 31 | +.visual .price ul .wrap .inner_text{padding: 7px 7px 10px 7px; border-radius: 0 0 8px 8px; background-color: #fff; font-size: 26px;} | |
| 32 | +.visual .price ul .wrap .inner_text span{font-size: 18px;} | |
| 33 | + | |
| 34 | +/*con*/ | |
| 35 | +.con{margin: 80px 20px 0 20px;} | |
| 36 | +.con .title{font-family: 'yg-jalnan'; display: flex; align-items: center;} | |
| 37 | +.con .title p{font-size: 36px; margin: 1px 0 0 0;} | |
| 38 | +.con .title .num{padding: 2px 0 0 0; display: flex; align-items: center; justify-content: center; width: 50px; height: 50px; margin: 0 20px 0 0; border-radius: 13px; background-color: #ffcd05; font-size: 32px;} | |
| 39 | +.con .text_wrap{background-color: #fff; box-shadow: 0 0 9px rgba(0,0,0,0.1 ); padding: 44px 44px 44px 74px; margin: 30px 0 0 0; border-radius: 20px;} | |
| 40 | +.con .text{position: relative; margin: 0 0 35px 0;} | |
| 41 | +.con .text:last-child{margin: 0;} | |
| 42 | +.con .text p{font-size: 32px; font-weight: 400; line-height: 1.5;} | |
| 43 | +.con .text .te::after{content: ""; position: absolute; top: 24px; left: -22px; transform: translateY(-50%); border-radius: 50%; width: 10px; height: 10px; background-color: #ffcd05;} | |
| 44 | +.con .text .text_sub p{font-size: 28px; font-weight: 300; color: #666; line-height: 1.5; word-break: break-all; text-indent: -17px; margin: 0 0 0 21px;} | |
| 45 | + | |
| 46 | +/*footer*/ | |
| 47 | +footer{ margin: 80px 0 0 0; text-align: center; background-color: #393939; color: #fff;} | |
| 48 | +footer .title{padding: 40px 0 18px 0; display: flex; align-items: center; justify-content: center; font-size: 30px; font-weight: 500;} | |
| 49 | +footer .title p{margin: 0 0 0 16px;} | |
| 50 | +footer ul li{width: 380px; /*display: flex; align-items: center; justify-content: center;*/ margin: 0 auto 16px auto; padding: 8px 0 12PX 0; border-radius: 10px; border: 1px solid #888; font-size: 40px; font-weight: 700;} | |
| 51 | +footer ul li a{color: #fff;} | |
| 52 | +footer ul li:last-child{margin: 0 auto;} | |
| 53 | +footer .iten{padding: 22px 0 40px 0; font-size: 26px; font-weight: 300; opacity: 40%;} | |
| 54 | + | |
| 55 | +/*미디어쿼리_640x*/ | |
| 56 | +@media screen and (max-width:640px){ | |
| 57 | + .visual{background-image: url(/publish/publish_m/img/main_bg.png);} | |
| 58 | +} | |
| 59 | + | |
| 60 | +/*미디어쿼리_500x*/ | |
| 61 | +@media screen and (max-width:500px){ | |
| 62 | + /*header*/ | |
| 63 | + header .inner{border-radius: 0 0 20px 0; padding: 3px 20px;} | |
| 64 | + header .inner a img{width: 64%;} | |
| 65 | + header .inner a p{font-size: 14px; padding: 0; margin: 0 0 0 -20px;} | |
| 66 | + /*메인비주얼*/ | |
| 67 | + .visual{border-radius: 0 0 25px 0;} | |
| 68 | + .visual .inner h2{padding: 70px 0 15px 0; font-size: 32px; line-height: 1.3;} | |
| 69 | + .visual .inner .button a p{width: 180px; height: 40px; font-size: 16px; line-height: 42px;} | |
| 70 | + .visual .inner .button a p img{width: 5%;} | |
| 71 | + /*요금*/ | |
| 72 | + .visual .price .text{font-size: 12px;} | |
| 73 | + .visual .price ul .wrap{border: 2px solid #ffcd05; border-radius: 7px;} | |
| 74 | + .visual .price ul .wrap .title{font-size: 14px; border-radius: 5px 5px 0 0; padding: 6px 0;} | |
| 75 | + .visual .price ul .wrap .inner_text{font-size: 15px; border-radius: 0 0 6px 6px; padding: 5px 7px 6px 7px;} | |
| 76 | + .visual .price ul .wrap .inner_text span{font-size: 13px;} | |
| 77 | + .visual .price .text01{padding: 15px 20px 10px 0;} | |
| 78 | + /*con*/ | |
| 79 | + .con{margin: 40px 20px 0 20px;} | |
| 80 | + .con .title p{font-size: 20px;} | |
| 81 | + .con .title .num{/*padding: 8px 12px 7px 12px; */width: 30px; height: 30px; margin: 0 10px 0 0; border-radius: 6px; font-size: 18px;} | |
| 82 | + .con .text_wrap{padding: 22px 22px 22px 37px; margin: 20px 0 0 0; border-radius: 15px;} | |
| 83 | + .con .text{margin: 0 0 14px 0;} | |
| 84 | + .con .text p{font-size: 17px;} | |
| 85 | + .con .text .te::after{top: 10px; left: -11px; width: 5px; height: 5px;} | |
| 86 | + .con .text .text_sub p{font-size: 15px; text-indent:-8px; margin: 0 0 0 9px;} | |
| 87 | + /*footer*/ | |
| 88 | + footer{margin: 40px 0 0 0;} | |
| 89 | + footer .title{padding: 20px 0 10px 0; font-size: 16px;} | |
| 90 | + footer .title img{width: 8%;} | |
| 91 | + footer .title p{margin: 0 0 0 10px;} | |
| 92 | + footer ul li{width: 210px; margin: 0 auto 8px auto; border-radius: 8px; font-size: 22px; padding: 8px 0 5px 0;} | |
| 93 | + footer .iten{padding: 12px 0 20px 0; font-size: 13px;} | |
| 94 | +} | |
| 95 | + | |
| 96 | +/*미디어쿼리_460pxx*/ | |
| 97 | +@media screen and (max-width:460px){ | |
| 98 | + .visual{background-image: url(/publish//publish_m/img/main_bg_small_01.png);} | |
| 99 | +} | |
| 100 | + | |
| 101 | +/*미디어쿼리_360x*/ | |
| 102 | +@media screen and (max-width:360px){ | |
| 103 | + .visual{background-image: url(/publish/publish_m/img/main_bg_small_02.png);} | |
| 104 | +} | |
| 105 | + | |
| 106 | +/*미디어쿼리_340x*/ | |
| 107 | +@media screen and (max-width:340px){ | |
| 108 | + .visual .price ul .wrap .title{font-size: 13px;} | |
| 109 | + .visual .price ul{padding: 0 15px;} | |
| 110 | +} | |
| 111 | + | |
| 112 | +/*미디어쿼리_310x*/ | |
| 113 | +@media screen and (max-width:310px){ | |
| 114 | + .visual .price ul .wrap .title{font-size: 12px;} | |
| 115 | + .visual .price ul{padding: 0 9px;} | |
| 116 | +}(No newline at end of file) |
+++ src/main/webapp/publish/publish_m/img/arrow.png
| Binary file is not shown |
+++ src/main/webapp/publish/publish_m/img/header_logo.png
| Binary file is not shown |
+++ src/main/webapp/publish/publish_m/img/main_bg.png
| Binary file is not shown |
+++ src/main/webapp/publish/publish_m/img/main_bg_big.png
| Binary file is not shown |
+++ src/main/webapp/publish/publish_m/img/main_bg_small_01.png
| Binary file is not shown |
+++ src/main/webapp/publish/publish_m/img/main_bg_small_02.png
| Binary file is not shown |
+++ src/main/webapp/publish/publish_m/img/main_img.png
| Binary file is not shown |
+++ src/main/webapp/publish/publish_m/img/preview_logo.png
| Binary file is not shown |
+++ src/main/webapp/publish/publish_m/img/tel_icon.png
| Binary file is not shown |
+++ src/main/webapp/publish/publish_m/munjaon_intro_01.html
... | ... | @@ -0,0 +1,154 @@ |
| 1 | +<!DOCTYPE html> | |
| 2 | +<html lang="ko"> | |
| 3 | +<head> | |
| 4 | + <meta charset="UTF-8"> | |
| 5 | + <meta http-equiv="X-UA-Compatible" content="IE=edge"> | |
| 6 | + <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| 7 | + <title>프리미엄 문자 발송 서비스 문자온</title> | |
| 8 | + <meta property="og:title" content="프리미엄 문자 발송 서비스 문자온"> | |
| 9 | + <meta property="og:image" content="https://www.munjaon.co.kr/publish/publish_m/img/preview_logo.png"> | |
| 10 | + | |
| 11 | + <link rel="apple-touch-icon" sizes="57x57" href="/publish/images/favicon/apple-icon-57x57.png"> | |
| 12 | + <link rel="apple-touch-icon" sizes="60x60" href="/publish/images/favicon/apple-icon-60x60.png"> | |
| 13 | + <link rel="apple-touch-icon" sizes="72x72" href="/publish/images/favicon/apple-icon-72x72.png"> | |
| 14 | + <link rel="apple-touch-icon" sizes="76x76" href="/publish/images/favicon/apple-icon-76x76.png"> | |
| 15 | + <link rel="apple-touch-icon" sizes="114x114" href="/publish/images/favicon/apple-icon-114x114.png"> | |
| 16 | + <link rel="apple-touch-icon" sizes="120x120" href="/publish/images/favicon/apple-icon-120x120.png"> | |
| 17 | + <link rel="apple-touch-icon" sizes="144x144" href="/publish/images/favicon/apple-icon-144x144.png"> | |
| 18 | + <link rel="apple-touch-icon" sizes="152x152" href="/publish/images/favicon/apple-icon-152x152.png"> | |
| 19 | + <link rel="apple-touch-icon" sizes="180x180" href="/publish/images/favicon/apple-icon-180x180.png"> | |
| 20 | + <link rel="icon" type="image/png" sizes="192x192" href="/publish/images/favicon/android-icon-192x192.png"> | |
| 21 | + <link rel="icon" type="image/png" sizes="32x32" href="/publish/images/favicon/favicon-32x32.png"> | |
| 22 | + <link rel="icon" type="image/png" sizes="96x96" href="/publish/images/favicon/favicon-96x96.png"> | |
| 23 | + <link rel="icon" type="image/png" sizes="16x16" href="/publish/images/favicon/favicon-16x16.png"> | |
| 24 | + <link rel="manifest" href="/publish/images/favicon/manifest.json"> | |
| 25 | + | |
| 26 | + <link rel="stylesheet" href="/publish/publish_m/css/reset.css"> | |
| 27 | + <link rel="stylesheet" href="/publish/publish_m/css/style.css"> | |
| 28 | +</head> | |
| 29 | + | |
| 30 | +<body> | |
| 31 | + <div class="con_wrap"> | |
| 32 | + <header> | |
| 33 | + <div class="inner"> | |
| 34 | + <a href="https://www.munjaon.co.kr"> | |
| 35 | + <h1><img src="/publish/publish_m/img/header_logo.png" alt="문자온 로고"></h1> | |
| 36 | + <p>munjaon.co.kr</p> | |
| 37 | + </a> | |
| 38 | + </div> | |
| 39 | + </header> | |
| 40 | + <div class="visual"> | |
| 41 | + <div class="inner"> | |
| 42 | + <h2><span>프리미엄</span> 문자<br>발송 서비스</h2> | |
| 43 | + <div class="button"> | |
| 44 | + <a href="https://www.munjaon.co.kr"> | |
| 45 | + <p>문자온 바로가기 <span>(클릭)</span></p> | |
| 46 | + </a> | |
| 47 | + </div> | |
| 48 | + <div class="price"> | |
| 49 | + <p class="text text01">(부가세 별도)</p> | |
| 50 | + <ul> | |
| 51 | + <li> | |
| 52 | + <div class="wrap"> | |
| 53 | + <p class="title">단문(SMS)</p> | |
| 54 | + <p class="inner_text">7.5<span>원</span></p> | |
| 55 | + </div> | |
| 56 | + </li> | |
| 57 | + <li> | |
| 58 | + <div class="wrap"> | |
| 59 | + <p class="title">장문(LMS)</p> | |
| 60 | + <p class="inner_text">24<span>원</span></p> | |
| 61 | + </div> | |
| 62 | + </li> | |
| 63 | + <li> | |
| 64 | + <div class="wrap"> | |
| 65 | + <p class="title">그림단문(MMS)</p> | |
| 66 | + <p class="inner_text">55<span>원</span></p> | |
| 67 | + </div> | |
| 68 | + </li> | |
| 69 | + </ul> | |
| 70 | + <p class="text text02">※ 발송량에 따른 단가 조정 가능 </p> | |
| 71 | + </div> | |
| 72 | + </div> | |
| 73 | + </div> | |
| 74 | + <section> | |
| 75 | + <div class="con"> | |
| 76 | + <div class="title"> | |
| 77 | + <p class="num">1</p> | |
| 78 | + <p>특장점</p> | |
| 79 | + </div> | |
| 80 | + <div class="text_wrap"> | |
| 81 | + <div class="text"> | |
| 82 | + <p class="te">단문(SMS), 장문(LMS), 그림문자(MMS), 카카오 알림톡, 팩스 발송 기능 제공</p> | |
| 83 | + </div> | |
| 84 | + <div class="text"> | |
| 85 | + <p class="te">업계 최저가 요금</p> | |
| 86 | + </div> | |
| 87 | + <div class="text"> | |
| 88 | + <p class="te">최신 트렌드 반영 서비스 제공</p> | |
| 89 | + <div class="text_sub"> | |
| 90 | + <p>- 주소록 입력 대행(무료)</p> | |
| 91 | + <p>- 예약발송 기능 제공(분 단위)</p> | |
| 92 | + <p>- 문자메시지 지도‧약도 자동 첨부 가능</p> | |
| 93 | + <p>- 그림문자 주문제작 서비스 제공</p> | |
| 94 | + <p>- 다양한 결제수단 제공(신용카드, 휴대폰 결제, 전용계좌, 즉시이체, 간편결제 등)</p> | |
| 95 | + <p>- 무제한 발송량 제공</p> | |
| 96 | + <p>- 특정 공통문구(이름, 일시, 비용 등) 일괄 변경 기능 제공</p> | |
| 97 | + </div> | |
| 98 | + </div> | |
| 99 | + <div class="text"> | |
| 100 | + <p class="te">다양한 방식의 20건 선거문자 발송기능 제공</p> | |
| 101 | + </div> | |
| 102 | + <div class="text"> | |
| 103 | + <p class="te">기업‧단체‧공공기관 B2B 전용라인 제공</p> | |
| 104 | + </div> | |
| 105 | + </div> | |
| 106 | + </div> | |
| 107 | + </section> | |
| 108 | + <section> | |
| 109 | + <div class="con"> | |
| 110 | + <div class="title"> | |
| 111 | + <p class="num">2</p> | |
| 112 | + <p>이용고객</p> | |
| 113 | + </div> | |
| 114 | + <div class="text_wrap"> | |
| 115 | + <div class="text"> | |
| 116 | + <p class="te">개인(사업자)</p> | |
| 117 | + <div class="text_sub"> | |
| 118 | + <p>- 동호회, 동문회, 향우회, 병원, 부동산, 음식점, 마트, 대리점, 숙박업, 전문직 사무실, 소셜커머스 사업자, 교육시설(학원, 학교, 유치원, 어린이집), 스포츠시설(골프장, 피트니스) 등</p> | |
| 119 | + </div> | |
| 120 | + </div> | |
| 121 | + <div class="text"> | |
| 122 | + <p class="te">기업‧협회‧단체</p> | |
| 123 | + <div class="text_sub"> | |
| 124 | + <p>- 기업(대‧중‧소기업), 협회, 조합, 비영리단체, 종교단체(교회, 사찰), 은행, 카드사, 쇼핑몰, 택배사, 보험사, 리서치사 등</p> | |
| 125 | + </div> | |
| 126 | + </div> | |
| 127 | + <div class="text"> | |
| 128 | + <p class="te">공공</p> | |
| 129 | + <div class="text_sub"> | |
| 130 | + <p>- 정부, 지방자치단체, 국회, 지방의회, 법원, 공공기관, 공직유관단체, 도서관, 미술관, 전시관, 공연시설, 영화관 등</p> | |
| 131 | + </div> | |
| 132 | + </div> | |
| 133 | + </div> | |
| 134 | + </div> | |
| 135 | + </section> | |
| 136 | + <footer> | |
| 137 | + <div class="title"> | |
| 138 | + <img src="/publish/publish_m/img/tel_icon.png" alt="고객센터 아이콘"> | |
| 139 | + <p>고객센터</p> | |
| 140 | + </div> | |
| 141 | + <ul> | |
| 142 | + <li> | |
| 143 | + <a href="tel:010-8432-9333">010-8432-9333</a> | |
| 144 | + </li> | |
| 145 | + <li> | |
| 146 | + <a href="tel:010-2290-4789">010-2290-4789</a> | |
| 147 | + </li> | |
| 148 | + </ul> | |
| 149 | + <p class="iten">주식회사 아이티앤</p> | |
| 150 | + </footer> | |
| 151 | + </div> | |
| 152 | + | |
| 153 | +</body> | |
| 154 | +</html>(No newline at end of file) |
+++ src/main/webapp/publish/publish_m/munjaon_intro_02.html
... | ... | @@ -0,0 +1,154 @@ |
| 1 | +<!DOCTYPE html> | |
| 2 | +<html lang="ko"> | |
| 3 | +<head> | |
| 4 | + <meta charset="UTF-8"> | |
| 5 | + <meta http-equiv="X-UA-Compatible" content="IE=edge"> | |
| 6 | + <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| 7 | + <title>프리미엄 문자 발송 서비스 문자온</title> | |
| 8 | + <meta property="og:title" content="프리미엄 문자 발송 서비스 문자온"> | |
| 9 | + <meta property="og:image" content="https://www.munjaon.co.kr/publish/publish_m/img/preview_logo.png"> | |
| 10 | + | |
| 11 | + <link rel="apple-touch-icon" sizes="57x57" href="/publish/images/favicon/apple-icon-57x57.png"> | |
| 12 | + <link rel="apple-touch-icon" sizes="60x60" href="/publish/images/favicon/apple-icon-60x60.png"> | |
| 13 | + <link rel="apple-touch-icon" sizes="72x72" href="/publish/images/favicon/apple-icon-72x72.png"> | |
| 14 | + <link rel="apple-touch-icon" sizes="76x76" href="/publish/images/favicon/apple-icon-76x76.png"> | |
| 15 | + <link rel="apple-touch-icon" sizes="114x114" href="/publish/images/favicon/apple-icon-114x114.png"> | |
| 16 | + <link rel="apple-touch-icon" sizes="120x120" href="/publish/images/favicon/apple-icon-120x120.png"> | |
| 17 | + <link rel="apple-touch-icon" sizes="144x144" href="/publish/images/favicon/apple-icon-144x144.png"> | |
| 18 | + <link rel="apple-touch-icon" sizes="152x152" href="/publish/images/favicon/apple-icon-152x152.png"> | |
| 19 | + <link rel="apple-touch-icon" sizes="180x180" href="/publish/images/favicon/apple-icon-180x180.png"> | |
| 20 | + <link rel="icon" type="image/png" sizes="192x192" href="/publish/images/favicon/android-icon-192x192.png"> | |
| 21 | + <link rel="icon" type="image/png" sizes="32x32" href="/publish/images/favicon/favicon-32x32.png"> | |
| 22 | + <link rel="icon" type="image/png" sizes="96x96" href="/publish/images/favicon/favicon-96x96.png"> | |
| 23 | + <link rel="icon" type="image/png" sizes="16x16" href="/publish/images/favicon/favicon-16x16.png"> | |
| 24 | + <link rel="manifest" href="/publish/images/favicon/manifest.json"> | |
| 25 | + | |
| 26 | + <link rel="stylesheet" href="/publish/publish_m/css/reset.css"> | |
| 27 | + <link rel="stylesheet" href="/publish/publish_m/css/style.css"> | |
| 28 | +</head> | |
| 29 | + | |
| 30 | +<body> | |
| 31 | + <div class="con_wrap"> | |
| 32 | + <header> | |
| 33 | + <div class="inner"> | |
| 34 | + <a href="https://www.munjaon.co.kr"> | |
| 35 | + <h1><img src="/publish/publish_m/img/header_logo.png" alt="문자온 로고"></h1> | |
| 36 | + <p>munjaon.co.kr</p> | |
| 37 | + </a> | |
| 38 | + </div> | |
| 39 | + </header> | |
| 40 | + <div class="visual"> | |
| 41 | + <div class="inner"> | |
| 42 | + <h2><span>프리미엄</span> 문자<br>발송 서비스</h2> | |
| 43 | + <div class="button"> | |
| 44 | + <a href="https://www.munjaon.co.kr"> | |
| 45 | + <p>문자온 바로가기 <span>(클릭)</span></p> | |
| 46 | + </a> | |
| 47 | + </div> | |
| 48 | + <div class="price"> | |
| 49 | + <p class="text text01">(부가세 별도)</p> | |
| 50 | + <ul> | |
| 51 | + <li> | |
| 52 | + <div class="wrap"> | |
| 53 | + <p class="title">단문(SMS)</p> | |
| 54 | + <p class="inner_text">8<span>원</span></p> | |
| 55 | + </div> | |
| 56 | + </li> | |
| 57 | + <li> | |
| 58 | + <div class="wrap"> | |
| 59 | + <p class="title">장문(LMS)</p> | |
| 60 | + <p class="inner_text">26<span>원</span></p> | |
| 61 | + </div> | |
| 62 | + </li> | |
| 63 | + <li> | |
| 64 | + <div class="wrap"> | |
| 65 | + <p class="title">그림단문(MMS)</p> | |
| 66 | + <p class="inner_text">60<span>원</span></p> | |
| 67 | + </div> | |
| 68 | + </li> | |
| 69 | + </ul> | |
| 70 | + <p class="text text02">※ 발송량에 따른 단가 조정 가능 </p> | |
| 71 | + </div> | |
| 72 | + </div> | |
| 73 | + </div> | |
| 74 | + <section> | |
| 75 | + <div class="con"> | |
| 76 | + <div class="title"> | |
| 77 | + <p class="num">1</p> | |
| 78 | + <p>특장점</p> | |
| 79 | + </div> | |
| 80 | + <div class="text_wrap"> | |
| 81 | + <div class="text"> | |
| 82 | + <p class="te">단문(SMS), 장문(LMS), 그림문자(MMS), 카카오 알림톡, 팩스 발송 기능 제공</p> | |
| 83 | + </div> | |
| 84 | + <div class="text"> | |
| 85 | + <p class="te">업계 최저가 요금</p> | |
| 86 | + </div> | |
| 87 | + <div class="text"> | |
| 88 | + <p class="te">최신 트렌드 반영 서비스 제공</p> | |
| 89 | + <div class="text_sub"> | |
| 90 | + <p>- 주소록 입력 대행(무료)</p> | |
| 91 | + <p>- 예약발송 기능 제공(분 단위)</p> | |
| 92 | + <p>- 문자메시지 지도‧약도 자동 첨부 가능</p> | |
| 93 | + <p>- 그림문자 주문제작 서비스 제공</p> | |
| 94 | + <p>- 다양한 결제수단 제공(신용카드, 휴대폰 결제, 전용계좌, 즉시이체, 간편결제 등)</p> | |
| 95 | + <p>- 무제한 발송량 제공</p> | |
| 96 | + <p>- 특정 공통문구(이름, 일시, 비용 등) 일괄 변경 기능 제공</p> | |
| 97 | + </div> | |
| 98 | + </div> | |
| 99 | + <div class="text"> | |
| 100 | + <p class="te">다양한 방식의 20건 선거문자 발송기능 제공</p> | |
| 101 | + </div> | |
| 102 | + <div class="text"> | |
| 103 | + <p class="te">기업‧단체‧공공기관 B2B 전용라인 제공</p> | |
| 104 | + </div> | |
| 105 | + </div> | |
| 106 | + </div> | |
| 107 | + </section> | |
| 108 | + <section> | |
| 109 | + <div class="con"> | |
| 110 | + <div class="title"> | |
| 111 | + <p class="num">2</p> | |
| 112 | + <p>이용고객</p> | |
| 113 | + </div> | |
| 114 | + <div class="text_wrap"> | |
| 115 | + <div class="text"> | |
| 116 | + <p class="te">개인(사업자)</p> | |
| 117 | + <div class="text_sub"> | |
| 118 | + <p>- 동호회, 동문회, 향우회, 병원, 부동산, 음식점, 마트, 대리점, 숙박업, 전문직 사무실, 소셜커머스 사업자, 교육시설(학원, 학교, 유치원, 어린이집), 스포츠시설(골프장, 피트니스) 등</p> | |
| 119 | + </div> | |
| 120 | + </div> | |
| 121 | + <div class="text"> | |
| 122 | + <p class="te">기업‧협회‧단체</p> | |
| 123 | + <div class="text_sub"> | |
| 124 | + <p>- 기업(대‧중‧소기업), 협회, 조합, 비영리단체, 종교단체(교회, 사찰), 은행, 카드사, 쇼핑몰, 택배사, 보험사, 리서치사 등</p> | |
| 125 | + </div> | |
| 126 | + </div> | |
| 127 | + <div class="text"> | |
| 128 | + <p class="te">공공</p> | |
| 129 | + <div class="text_sub"> | |
| 130 | + <p>- 정부, 지방자치단체, 국회, 지방의회, 법원, 공공기관, 공직유관단체, 도서관, 미술관, 전시관, 공연시설, 영화관 등</p> | |
| 131 | + </div> | |
| 132 | + </div> | |
| 133 | + </div> | |
| 134 | + </div> | |
| 135 | + </section> | |
| 136 | + <footer> | |
| 137 | + <div class="title"> | |
| 138 | + <img src="/publish/publish_m/img/tel_icon.png" alt="고객센터 아이콘"> | |
| 139 | + <p>고객센터</p> | |
| 140 | + </div> | |
| 141 | + <ul> | |
| 142 | + <li> | |
| 143 | + <a href="tel:010-8432-9333">010-8432-9333</a> | |
| 144 | + </li> | |
| 145 | + <li> | |
| 146 | + <a href="tel:010-2290-4789">010-2290-4789</a> | |
| 147 | + </li> | |
| 148 | + </ul> | |
| 149 | + <p class="iten">주식회사 아이티앤</p> | |
| 150 | + </footer> | |
| 151 | + </div> | |
| 152 | + | |
| 153 | +</body> | |
| 154 | +</html>(No newline at end of file) |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?