diff --git a/src/main/java/itn/com/cmm/util/PdfUtil.java b/src/main/java/itn/com/cmm/util/PdfUtil.java index a93216c0..a5a4cf73 100644 --- a/src/main/java/itn/com/cmm/util/PdfUtil.java +++ b/src/main/java/itn/com/cmm/util/PdfUtil.java @@ -110,7 +110,7 @@ public final class PdfUtil { File imgFiles = new File(imgDir + "." +extsn); Image img = ImageIO.read(imgFiles); - PDPage page = new PDPage(PDRectangle.A4); + PDPage page = new PDPage(PDRectangle.A2); doc.addPage(page); PDImageXObject pdImage = PDImageXObject.createFromFile(imgFiles.toString(), doc); @@ -132,6 +132,7 @@ public final class PdfUtil { contents.drawImage(pdImage, pageWidthPosition, pageHeightPosition, imgWidth, imgHeight); contents.close(); doc.save("/usr/local/tomcat/file/sht/pdf/" + uuid + ".pdf"); + //doc.save("C:/TEST/" + uuid + ".pdf"); } catch (Exception e) { System.out.println("Exception! : " + e.getMessage()); diff --git a/src/main/java/itn/com/cmm/web/EgovFileDownloadController.java b/src/main/java/itn/com/cmm/web/EgovFileDownloadController.java index 2c9f7e60..36bc34e8 100644 --- a/src/main/java/itn/com/cmm/web/EgovFileDownloadController.java +++ b/src/main/java/itn/com/cmm/web/EgovFileDownloadController.java @@ -9,10 +9,6 @@ import java.io.PrintWriter; import java.net.URLEncoder; import java.util.Map; -import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; -import itn.com.cmm.service.EgovFileMngService; -import itn.com.cmm.service.FileVO; - import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -25,6 +21,9 @@ import org.springframework.util.FileCopyUtils; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; +import itn.com.cmm.service.EgovFileMngService; +import itn.com.cmm.service.FileVO; + /** * 파일 다운로드를 위한 컨트롤러 클래스 * @author 공통서비스개발팀 이삼섭 @@ -468,6 +467,8 @@ public class EgovFileDownloadController { File uFile = new File("/usr/local/tomcat/file/sht/pdf/", fileNm); + //File uFile = new File("C:/TEST/", fileNm); + long fSize = uFile.length(); if (fSize > 0) { diff --git a/src/main/java/itn/com/cmm/web/EgovFileMngController.java b/src/main/java/itn/com/cmm/web/EgovFileMngController.java index fd106d72..0939e859 100644 --- a/src/main/java/itn/com/cmm/web/EgovFileMngController.java +++ b/src/main/java/itn/com/cmm/web/EgovFileMngController.java @@ -218,6 +218,33 @@ public class EgovFileMngController { return "cmm/fms/EgovAddrAgencyFileList"; } + /** + * 게시판 첨부파일에 대한 목록을 조회한다. + * + * @param fileVO + * @param commandMap + * @param model + * @return + * @throws Exception + */ + @RequestMapping("/cmm/fms/selectMberFileInfs.do") + public String selectMberFileInfs(@ModelAttribute("searchVO") FileVO fileVO, @RequestParam Map commandMap, ModelMap model) throws Exception { + String atchFileId = (String) commandMap.get("param_atchFileId"); + String pdfView = (String) commandMap.get("pdf_view"); //'Y' 이면 pdf 직접 보여주기 + + fileVO.setAtchFileId(atchFileId); + List result = fileService.selectFileInfs(fileVO); + model.addAttribute("fileList", result); + model.addAttribute("updateFlag", "N"); + model.addAttribute("fileListCnt", result.size()); + model.addAttribute("atchFileId", atchFileId); + if("Y".equals(pdfView)){ + model.addAttribute("pdfView", pdfView); + } + + return "cmm/fms/EgovMberFileList"; + } + /** * 게시판 첨부파일에 대한 목록을 조회한다. * diff --git a/src/main/java/itn/let/cop/bbs/web/EgovBBSManageController.java b/src/main/java/itn/let/cop/bbs/web/EgovBBSManageController.java index a09f49fc..7b68e99f 100644 --- a/src/main/java/itn/let/cop/bbs/web/EgovBBSManageController.java +++ b/src/main/java/itn/let/cop/bbs/web/EgovBBSManageController.java @@ -73,6 +73,7 @@ import itn.com.cmm.service.EgovFileMngService; import itn.com.cmm.service.EgovFileMngUtil; import itn.com.cmm.service.FileVO; import itn.com.cmm.service.ReadService; +import itn.com.cmm.util.EgovDoubleSubmitHelper; import itn.com.cmm.util.StringUtil; import itn.com.cmm.util.WebUtil; import itn.com.uss.ion.cnf.service.ProhibitMngService; @@ -2712,6 +2713,12 @@ public class EgovBBSManageController { ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("jsonView"); + + if (!EgovDoubleSubmitHelper.checkAndSaveToken("someKey", multiRequest)) { + modelAndView.addObject("message", "너무많은 글쓰기가 시도되었습니다."); + modelAndView.addObject("result", "fail"); + return modelAndView; + } // Start => bbsId를 변조해서 공지사항에 글 등록 방지 처리 //boardVO.setBbsId("BBSMSTR_000000000651"); // 공지사항 List userBbsWriteList = bbsMngService.selectUserBbsWriteList(boardVO); diff --git a/src/main/java/itn/let/fax/admin/web/FaxAdmController.java b/src/main/java/itn/let/fax/admin/web/FaxAdmController.java index b2eb261c..439c8a06 100644 --- a/src/main/java/itn/let/fax/admin/web/FaxAdmController.java +++ b/src/main/java/itn/let/fax/admin/web/FaxAdmController.java @@ -128,6 +128,32 @@ public class FaxAdmController { return "/uss/ion/fax/faxAdmSendList"; } + // 팩스 금일/금월/금년 통계 + @RequestMapping(value = "/uss/ion/fax/selectFaxSendThisSumAjax.do") + public ModelAndView FaxSendThisSumAjax( + @ModelAttribute("faxGroupDataVO") FaxGroupDataVO faxGroupDataVO) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + boolean isSuccess = true; + String msg = ""; + FaxGroupDataVO result = null; + + try { + result = faxService.selectFaxSendThisSum(faxGroupDataVO); + } + catch(Exception e) { + isSuccess = false; + msg = e.getMessage(); + } + + modelAndView.addObject("result", result); + modelAndView.addObject("isSuccess", isSuccess); + modelAndView.addObject("msg", msg); + + return modelAndView; + } /** * @methodName : faxAdmSendDetailList diff --git a/src/main/java/itn/let/fax/user/service/FaxGroupDataVO.java b/src/main/java/itn/let/fax/user/service/FaxGroupDataVO.java index 3fa4746b..e9e02810 100644 --- a/src/main/java/itn/let/fax/user/service/FaxGroupDataVO.java +++ b/src/main/java/itn/let/fax/user/service/FaxGroupDataVO.java @@ -17,8 +17,6 @@ package itn.let.fax.user.service; import java.io.Serializable; -import itn.com.cmm.ComDefaultVO; - /** * @@ -206,6 +204,61 @@ public class FaxGroupDataVO extends FaxTranVO implements Serializable { private String searchMonth; private String searchQuarter; + private String successDay; + private String successMonth; + private String successYear; + private String successCntDay; + private String successCntMonth; + private String successCntYear; + + public String getSuccessDay() { + return successDay; + } + + public void setSuccessDay(String successDay) { + this.successDay = successDay; + } + + public String getSuccessMonth() { + return successMonth; + } + + public void setSuccessMonth(String successMonth) { + this.successMonth = successMonth; + } + + public String getSuccessYear() { + return successYear; + } + + public void setSuccessYear(String successYear) { + this.successYear = successYear; + } + + public String getSuccessCntDay() { + return successCntDay; + } + + public void setSuccessCntDay(String successCntDay) { + this.successCntDay = successCntDay; + } + + public String getSuccessCntMonth() { + return successCntMonth; + } + + public void setSuccessCntMonth(String successCntMonth) { + this.successCntMonth = successCntMonth; + } + + public String getSuccessCntYear() { + return successCntYear; + } + + public void setSuccessCntYear(String successCntYear) { + this.successCntYear = successCntYear; + } + public FaxGroupDataVO() {}; diff --git a/src/main/java/itn/let/fax/user/service/FaxService.java b/src/main/java/itn/let/fax/user/service/FaxService.java index 00266e93..34c19ebc 100644 --- a/src/main/java/itn/let/fax/user/service/FaxService.java +++ b/src/main/java/itn/let/fax/user/service/FaxService.java @@ -32,6 +32,9 @@ public interface FaxService { FaxGroupDataVO selectFaxSendDetailInfo(FaxGroupDataVO faxGroupDataVO); + // 팩스 금일/금월/금년 통계 + FaxGroupDataVO selectFaxSendThisSum(FaxGroupDataVO faxGroupDataVO); + List selectMyFaxSendList(FaxGroupDataVO faxGroupDataVO); diff --git a/src/main/java/itn/let/fax/user/service/impl/FaxDAO.java b/src/main/java/itn/let/fax/user/service/impl/FaxDAO.java index 045ed6c7..71d2d3f6 100644 --- a/src/main/java/itn/let/fax/user/service/impl/FaxDAO.java +++ b/src/main/java/itn/let/fax/user/service/impl/FaxDAO.java @@ -136,6 +136,11 @@ public class FaxDAO extends EgovComAbstractDAO{ return (FaxGroupDataVO)select("faxDAO.selectFaxSendDetailInfo", faxGroupDataVO); } + // 팩스 금일/금월/금년 통계 + public FaxGroupDataVO selectFaxSendThisSum(FaxGroupDataVO faxGroupDataVO) { + return (FaxGroupDataVO)select("faxDAO.selectFaxSendThisSum", faxGroupDataVO); + } + public List selectBookMarkMsgList(MjonMsgDataVO mjonMsgDataVO) throws Exception{ return list("faxDAO.selectBookMarkMsgList", mjonMsgDataVO); } diff --git a/src/main/java/itn/let/fax/user/service/impl/FaxServiceImpl.java b/src/main/java/itn/let/fax/user/service/impl/FaxServiceImpl.java index 2a7615ba..d11c564f 100644 --- a/src/main/java/itn/let/fax/user/service/impl/FaxServiceImpl.java +++ b/src/main/java/itn/let/fax/user/service/impl/FaxServiceImpl.java @@ -2,8 +2,6 @@ package itn.let.fax.user.service.impl; import java.io.File; import java.io.IOException; -import java.math.BigDecimal; -import java.math.RoundingMode; import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.util.ArrayList; @@ -15,7 +13,6 @@ import java.util.List; import java.util.Map; import javax.annotation.Resource; -import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; @@ -33,7 +30,6 @@ import egovframework.rte.fdl.idgnr.EgovIdGnrService; import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; import itn.com.cmm.util.DateUtil; import itn.com.cmm.util.FaxUtil; -import itn.com.cmm.util.MJUtil; import itn.let.fax.user.service.FaxConvertMngVO; import itn.let.fax.user.service.FaxConvertVO; import itn.let.fax.user.service.FaxGroupDataVO; @@ -41,14 +37,12 @@ import itn.let.fax.user.service.FaxReceiverVO; import itn.let.fax.user.service.FaxService; import itn.let.fax.user.service.FaxTranVO; import itn.let.mail.service.StatusResponse; -import itn.let.mjo.msg.service.MjonMsgVO; import itn.let.mjo.msgdata.service.MjonMsgDataVO; import itn.let.mjo.msgdata.service.impl.MjonMsgDataDAO; import itn.let.mjo.pay.service.MjonPayVO; import itn.let.mjo.pay.service.impl.MjonPayDAO; import itn.let.module.base.PriceAndPoint; import itn.let.sym.site.service.JoinSettingVO; -import itn.let.uss.umt.service.MberManageVO; import itn.let.utl.fcc.service.EgovStringUtil; @@ -587,6 +581,12 @@ public class FaxServiceImpl extends EgovAbstractServiceImpl implements FaxServic return faxDao.selectFaxSendDetailInfo(faxGroupDataVO); } + // 팩스 금일/금월/금년 통계 + @Override + public FaxGroupDataVO selectFaxSendThisSum(FaxGroupDataVO faxGroupDataVO) { + return faxDao.selectFaxSendThisSum(faxGroupDataVO); + } + @Override public List selectMyFaxSendList(FaxGroupDataVO faxGroupDataVO) { return faxDao.selectMyFaxSendList(faxGroupDataVO); diff --git a/src/main/java/itn/let/kakao/admin/kakaoAt/web/MjonKakaoATController.java b/src/main/java/itn/let/kakao/admin/kakaoAt/web/MjonKakaoATController.java index 24bca3cb..8e834b4e 100644 --- a/src/main/java/itn/let/kakao/admin/kakaoAt/web/MjonKakaoATController.java +++ b/src/main/java/itn/let/kakao/admin/kakaoAt/web/MjonKakaoATController.java @@ -265,7 +265,7 @@ public class MjonKakaoATController { // 알림톡 금일/금월/금년 통계 @RequestMapping(value = "/uss/umt/user/selectMjonKakaoAtThisSumAjax.do") - public ModelAndView DashBoardAdminLogAjax( + public ModelAndView MjonKakaoAtThisSumAjax( @ModelAttribute("kakaoVO") KakaoVO kakaoVO) throws Exception { ModelAndView modelAndView = new ModelAndView(); diff --git a/src/main/java/itn/let/kakao/user/sent/web/KakaoSentController.java b/src/main/java/itn/let/kakao/user/sent/web/KakaoSentController.java index 62f26551..411c98da 100644 --- a/src/main/java/itn/let/kakao/user/sent/web/KakaoSentController.java +++ b/src/main/java/itn/let/kakao/user/sent/web/KakaoSentController.java @@ -162,6 +162,7 @@ public class KakaoSentController { //전체 발송 리스트 불러오기 List resultAllSentList = kakaoSentService.selectAllKakaoSentList(kakaoSentVO); + System.out.println("??"); model.addAttribute("resultAllSentList", resultAllSentList); model.addAttribute("resultAllSentCnt", resultAllSentList.size()); diff --git a/src/main/java/itn/let/mjo/apikey/service/ApiKeyMngService.java b/src/main/java/itn/let/mjo/apikey/service/ApiKeyMngService.java index 0803bbb8..9ef6698c 100644 --- a/src/main/java/itn/let/mjo/apikey/service/ApiKeyMngService.java +++ b/src/main/java/itn/let/mjo/apikey/service/ApiKeyMngService.java @@ -37,5 +37,7 @@ public interface ApiKeyMngService { //REST API 신청상태 public List selectApiKeyApplyStatus(ApiKeyVO apiKeyVO) throws Exception; + + public int selectMberApiKeyChk(ApiKeyVO apiKeyVO) throws Exception; } \ No newline at end of file diff --git a/src/main/java/itn/let/mjo/apikey/service/impl/ApiKeyMngDAO.java b/src/main/java/itn/let/mjo/apikey/service/impl/ApiKeyMngDAO.java index 1cecc81e..df4835a9 100644 --- a/src/main/java/itn/let/mjo/apikey/service/impl/ApiKeyMngDAO.java +++ b/src/main/java/itn/let/mjo/apikey/service/impl/ApiKeyMngDAO.java @@ -55,5 +55,9 @@ public class ApiKeyMngDAO extends EgovComAbstractDAO{ public List selectApiKeyApplyStatus(ApiKeyVO apiKeyVO){ return (List) list("ApiKeyMngDAO.selectApiKeyApplyStatus", apiKeyVO); } + + public int selectMberApiKeyChk(ApiKeyVO apiKeyVO) { + return (int) select("ApiKeyMngDAO.selectMberApiKeyChk", apiKeyVO); + } } \ No newline at end of file diff --git a/src/main/java/itn/let/mjo/apikey/service/impl/ApiKeyMngServiceImpl.java b/src/main/java/itn/let/mjo/apikey/service/impl/ApiKeyMngServiceImpl.java index a7688141..0c43e249 100644 --- a/src/main/java/itn/let/mjo/apikey/service/impl/ApiKeyMngServiceImpl.java +++ b/src/main/java/itn/let/mjo/apikey/service/impl/ApiKeyMngServiceImpl.java @@ -41,6 +41,11 @@ public class ApiKeyMngServiceImpl extends EgovAbstractServiceImpl implements Api return apiKeyMngDAO.selectMberApiKeyList(apiKeyVO); } + @Override + public int selectMberApiKeyChk(ApiKeyVO apiKeyVO) throws Exception { + return apiKeyMngDAO.selectMberApiKeyChk(apiKeyVO); + } + @Override public void deleteApiKey(ApiKeyVO apiKeyVO) throws Exception { apiKeyMngDAO.deleteApiKey(apiKeyVO); diff --git a/src/main/java/itn/let/mjo/msg/web/MjonMsgController.java b/src/main/java/itn/let/mjo/msg/web/MjonMsgController.java index b0d2169f..c6c23fac 100644 --- a/src/main/java/itn/let/mjo/msg/web/MjonMsgController.java +++ b/src/main/java/itn/let/mjo/msg/web/MjonMsgController.java @@ -1,6 +1,5 @@ package itn.let.mjo.msg.web; -import java.io.File; import java.io.OutputStream; import java.net.URL; import java.text.SimpleDateFormat; @@ -5044,7 +5043,40 @@ public class MjonMsgController { } @RequestMapping(value = {"/uss/ion/msg/pdfView.do"}) - public String pdfView(FileVO fileVO, ModelMap model) throws Exception { + public String pdfView(FileVO fileVO + , ModelMap model + , HttpServletRequest request) throws Exception { + + FileVO fvo = fileService.selectFileInf(fileVO); + String path = ""; + + if(fvo != null) { + if("pdf".equals(fvo.getFileExtsn())) { + path = "/cmm/fms/FileDown.do?atchFileId="+ fvo.getAtchFileId() + "&fileSn=" + fvo.getFileSn(); + }else { + String storePath = fvo.getFileStreCours() + fvo.getStreFileNm(); + path = "/cmm/fms/FileDowntest.do?fileNm="+ PdfUtil.makeImgPdf(storePath, fvo.getFileExtsn()); + } + } + + String mberNm = request.getParameter("mberNm"); + String bizNo = request.getParameter("bizNo"); + String ceoNm = request.getParameter("ceoNm"); + String hstManagerNm = request.getParameter("hstManagerNm"); + String hstMbtlNum = request.getParameter("hstMbtlNum"); + + model.addAttribute("pdfPath", path); + model.addAttribute("mberNm", mberNm); + model.addAttribute("bizNo", bizNo); + model.addAttribute("ceoNm", ceoNm); + model.addAttribute("hstManagerNm", hstManagerNm); + model.addAttribute("hstMbtlNum", hstMbtlNum); + + return "/uss/ion/msg/pdfView"; + } + + @RequestMapping(value = {"/uss/ion/msg/pdfViewAjax.do"}) + public String pdfViewAjax(FileVO fileVO, ModelMap model) throws Exception { FileVO fvo = fileService.selectFileInf(fileVO); String path = ""; @@ -5061,8 +5093,6 @@ public class MjonMsgController { model.addAttribute("pdfPath", path); return "/uss/ion/msg/pdfView"; - } - - + } } \ No newline at end of file diff --git a/src/main/java/itn/let/mjo/msgsent/service/MjonMsgSentCntVO.java b/src/main/java/itn/let/mjo/msgsent/service/MjonMsgSentCntVO.java new file mode 100644 index 00000000..70e67714 --- /dev/null +++ b/src/main/java/itn/let/mjo/msgsent/service/MjonMsgSentCntVO.java @@ -0,0 +1,46 @@ +package itn.let.mjo.msgsent.service; + +import itn.let.uss.umt.service.UserDefaultVO; + +public class MjonMsgSentCntVO extends UserDefaultVO{ + + private static final long serialVersionUID = 1L; + + + + + // 각 통계별 총 건수 + public int totCnt;// 전체 건수 + + // 각 통계별 성공, 실패 건수 처리 + public int waitCnt;// 전체 대기 건수 + public int succCnt;// 전체 성공 건수 + public int failCnt;// 전체 실패 건수 + + + public int getTotCnt() { + return totCnt; + } + public void setTotCnt(int totCnt) { + this.totCnt = totCnt; + } + public int getWaitCnt() { + return waitCnt; + } + public void setWaitCnt(int waitCnt) { + this.waitCnt = waitCnt; + } + public int getSuccCnt() { + return succCnt; + } + public void setSuccCnt(int succCnt) { + this.succCnt = succCnt; + } + public int getFailCnt() { + return failCnt; + } + public void setFailCnt(int failCnt) { + this.failCnt = failCnt; + } + +} diff --git a/src/main/java/itn/let/mjo/msgsent/service/MjonMsgSentVO.java b/src/main/java/itn/let/mjo/msgsent/service/MjonMsgSentVO.java index 85306f36..87e15895 100644 --- a/src/main/java/itn/let/mjo/msgsent/service/MjonMsgSentVO.java +++ b/src/main/java/itn/let/mjo/msgsent/service/MjonMsgSentVO.java @@ -70,14 +70,14 @@ public class MjonMsgSentVO extends UserDefaultVO{ private int successCnt; // 문자발송 성공건수 - private String sendKind; //문자 전송 타입(H:홈페이지 A: API) - private String msgKind; //문자종류(일반:N, 광고:A , 선거:C, 관리자:S, 이벤트:E) private String delayYn; //지연 문자 유무 private String delayCompleteYn; //지연문자 처리 완료 여부 private String msgId; //문자아이디 private String atchFiles; // 그림문자 파일정보 + + private String sendKind; // 그림문자 파일정보 public String getAtchFiles() { return atchFiles; @@ -428,4 +428,5 @@ public class MjonMsgSentVO extends UserDefaultVO{ public void setSendKind(String sendKind) { this.sendKind = sendKind; } + } diff --git a/src/main/java/itn/let/mjo/msgsent/service/impl/MjonMsgSentServiceImpl.java b/src/main/java/itn/let/mjo/msgsent/service/impl/MjonMsgSentServiceImpl.java index 0fdd02a7..46f61440 100644 --- a/src/main/java/itn/let/mjo/msgsent/service/impl/MjonMsgSentServiceImpl.java +++ b/src/main/java/itn/let/mjo/msgsent/service/impl/MjonMsgSentServiceImpl.java @@ -72,10 +72,12 @@ public class MjonMsgSentServiceImpl extends EgovAbstractServiceImpl implements if(listType.equals("groupList")) {//전송건별 리스트 불러오기 resultList = mjonMsgSentDAO.selectAllMsgSentList(mjonMsgSentVO); + System.out.println("====="); }else {//개인별 리스트 불러오기 resultList = mjonMsgSentDAO.selectAllPrivateMsgSentList(mjonMsgSentVO); + System.out.println("===================="); } diff --git a/src/main/java/itn/let/mjo/msgsent/web/MjonMsgSentController.java b/src/main/java/itn/let/mjo/msgsent/web/MjonMsgSentController.java index 1639c254..7928a599 100644 --- a/src/main/java/itn/let/mjo/msgsent/web/MjonMsgSentController.java +++ b/src/main/java/itn/let/mjo/msgsent/web/MjonMsgSentController.java @@ -7,6 +7,7 @@ import java.util.Calendar; import java.util.Date; import java.util.List; import java.util.Locale; +import java.util.stream.Collectors; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -40,6 +41,9 @@ import itn.let.mjo.addr.service.AddrGroupService; import itn.let.mjo.addr.service.AddrGroupVO; import itn.let.mjo.addr.service.AddrService; import itn.let.mjo.addr.service.AddrVO; +import itn.let.mjo.apikey.service.ApiKeyMngService; +import itn.let.mjo.apikey.service.ApiKeyVO; +import itn.let.mjo.msgsent.service.MjonMsgSentCntVO; import itn.let.mjo.msgsent.service.MjonMsgSentService; import itn.let.mjo.msgsent.service.MjonMsgSentVO; @@ -67,6 +71,11 @@ public class MjonMsgSentController { @Resource(name = "KakaoSentService") private KakaoSentService kakaoSentService; + + //api key 정보 + @Resource(name = "apiKeyMngService") + private ApiKeyMngService apiKeyMngService; + private static final Logger logger = LoggerFactory.getLogger(MjonMsgSentController.class); @@ -91,7 +100,6 @@ private static final Logger logger = LoggerFactory.getLogger(MjonMsgSentControll mjonMsgSentVO.setUserId(userId); - /* //전체 발송 건수 통계 불러오기 mjonMsgSentVO.setMsgType(""); @@ -119,31 +127,83 @@ private static final Logger logger = LoggerFactory.getLogger(MjonMsgSentControll //전체 발송 건수 통계 불러오기 mjonMsgSentVO.setMsgType(""); List totalMsgCnt = mjonMsgSentService.selectDetailMsgSentCntMix(mjonMsgSentVO); - model.addAttribute("totalMsgCnt", totalMsgCnt); - - List smsMsgCnt = new ArrayList(); - List lmsMsgCnt = new ArrayList(); - List mmsMsgCnt = new ArrayList(); + // H:홈페이지, A:API 로 sms, lms, mms 나누는 영역 + List H_totalMsgCnt = totalMsgCnt.stream().filter(t -> "H".equals(t.getSendKind())).collect(Collectors.toList()); + List H_smsMsgCnt = new ArrayList(); + List H_lmsMsgCnt = new ArrayList(); + List H_mmsMsgCnt = new ArrayList(); - totalMsgCnt.forEach(t->{ + List A_totalMsgCnt = totalMsgCnt.stream().filter(t -> "A".equals(t.getSendKind())).collect(Collectors.toList()); + List A_smsMsgCnt = new ArrayList(); + List A_lmsMsgCnt = new ArrayList(); + List A_mmsMsgCnt = new ArrayList(); + + System.out.println(" ::H_totalMsgCnt :: "+ H_totalMsgCnt.size()); + System.out.println(" ::A_totalMsgCnt :: "+ A_totalMsgCnt.size()); + + H_totalMsgCnt.forEach(t->{ if (Integer.parseInt(t.getFilePath1())>0) { - smsMsgCnt.add(t); + H_smsMsgCnt.add(t); } else if (Integer.parseInt(t.getFilePath2())>0) { - lmsMsgCnt.add(t); + H_lmsMsgCnt.add(t); } else if (Integer.parseInt(t.getFilePath3())>0) { - mmsMsgCnt.add(t); + H_mmsMsgCnt.add(t); } }); - //단문 성공건, 실패건 불러오기 - model.addAttribute("smsMsgCnt", smsMsgCnt); + A_totalMsgCnt.forEach(t->{ + if (Integer.parseInt(t.getFilePath1())>0) { + A_smsMsgCnt.add(t); + } else if (Integer.parseInt(t.getFilePath2())>0) { + A_lmsMsgCnt.add(t); + } else if (Integer.parseInt(t.getFilePath3())>0) { + A_mmsMsgCnt.add(t); + } + }); + + + /* + * 홈페이지에서 보낸 데이터 LIST + * SEND_KIND = "H" + * */ + // 전체 영역 + model.addAttribute("H_allSentCntVO", this.getResultCntProc(H_totalMsgCnt)); + // 전체 단문(SMS) + model.addAttribute("H_smsSentCntVO", this.getResultCntProc(H_smsMsgCnt)); + // 전체 장문(LMS) + model.addAttribute("H_lmsSentCntVO", this.getResultCntProc(H_lmsMsgCnt)); + // 전체 장문(LMS) + model.addAttribute("H_mmsSentCntVO", this.getResultCntProc(H_mmsMsgCnt)); + + + /* ==================================================================================== */ + + + /* + * 홈페이지에서 보낸 데이터 LIST + * SEND_KIND = "A" + * */ + // 전체 영역 + model.addAttribute("A_allSentCntVO", this.getResultCntProc(A_totalMsgCnt)); + // 전체 단문(SMS) + model.addAttribute("A_smsSentCntVO", this.getResultCntProc(A_smsMsgCnt)); + // 전체 장문(LMS) + model.addAttribute("A_lmsSentCntVO", this.getResultCntProc(A_lmsMsgCnt)); + // 전체 장문(LMS) + model.addAttribute("A_mmsSentCntVO", this.getResultCntProc(A_mmsMsgCnt)); + + + + /* + a.mber_nm LIKE CONCAT('%',#searchKeyword#,'%') + + */ + ApiKeyVO apiKeyVO = new ApiKeyVO(); + apiKeyVO.setMberId(userId); + model.addAttribute("appMgmt", apiKeyMngService.selectMberApiKeyChk(apiKeyVO) > 0 ? true : false); - //장문 성공건, 실패건 불러오기 - model.addAttribute("lmsMsgCnt", lmsMsgCnt); - //그림문자 성공건, 실패건 불러오기 - model.addAttribute("mmsMsgCnt", mmsMsgCnt); // 검색 리스트 불러오기 @@ -171,8 +231,48 @@ private static final Logger logger = LoggerFactory.getLogger(MjonMsgSentControll return "web/msgsent/MsgSentView"; } + - /** + /** + * @methodName : getResultCntProc + * @author : 이호영 + * @date : 2023.07.26 + * @description : MsgSentView.jsp에서 JSTL로 계산하는 것을 JAVA로 분리 + * @param msgCnt + * @param smsMsgCnt + * @param lmsMsgCnt + * @param mmsMsgCnt + * @return + */ + private MjonMsgSentCntVO getResultCntProc(List msgCnt) { +// MjonMsgSentCntVO mjonSentCntVO = new MjonMsgSentCntVO(); + MjonMsgSentCntVO cntVO = new MjonMsgSentCntVO(); + + + /* + * 전체 통계 + * */ + // 전체 대기 갯수 + cntVO.setWaitCnt(msgCnt.stream() + .filter(f->"W".equals(f.getMsgResultSts())) + .mapToInt(t -> Integer.parseInt(t.getMsgResultCnt())).sum()); + // 전체 성공 갯수 + cntVO.setSuccCnt(msgCnt.stream() + .filter(f->"S".equals(f.getMsgResultSts())) + .mapToInt(t -> Integer.parseInt(t.getMsgResultCnt())).sum()); + // 전체 실패 갯수 + cntVO.setFailCnt(msgCnt.stream() + .filter(f->"F".equals(f.getMsgResultSts())) + .mapToInt(t -> Integer.parseInt(t.getMsgResultCnt())).sum()); + + // 전체 갯수 구하기 + cntVO.setTotCnt(cntVO.getWaitCnt() + cntVO.getSuccCnt() + cntVO.getFailCnt()); + + + return cntVO; + } + + /** * 발송관리 탭 리스트 화면 * @param searchVO * @param model diff --git a/src/main/java/itn/let/mjo/reservmsg/service/MjonMsgReservCntVO.java b/src/main/java/itn/let/mjo/reservmsg/service/MjonMsgReservCntVO.java new file mode 100644 index 00000000..d34e3adf --- /dev/null +++ b/src/main/java/itn/let/mjo/reservmsg/service/MjonMsgReservCntVO.java @@ -0,0 +1,56 @@ +package itn.let.mjo.reservmsg.service; + +import itn.let.uss.umt.service.UserDefaultVO; + +public class MjonMsgReservCntVO extends UserDefaultVO{ + + private static final long serialVersionUID = 1L; + + + + + // 각 통계별 총 건수 + public int totCnt;// 전체 건수 + + // 각 통계별 성공, 실패 건수 처리 + public int waitCnt;// 대기 건수 + public int succCnt;// 성공 건수 + public int failCnt;// 실패 건수 + public int cnclCnt;// 예약취소 건수 + + + public int getTotCnt() { + return totCnt; + } + public void setTotCnt(int totCnt) { + this.totCnt = totCnt; + } + public int getWaitCnt() { + return waitCnt; + } + public void setWaitCnt(int waitCnt) { + this.waitCnt = waitCnt; + } + public int getSuccCnt() { + return succCnt; + } + public void setSuccCnt(int succCnt) { + this.succCnt = succCnt; + } + public int getFailCnt() { + return failCnt; + } + public void setFailCnt(int failCnt) { + this.failCnt = failCnt; + } + public int getCnclCnt() { + return cnclCnt; + } + public void setCnclCnt(int cnclCnt) { + this.cnclCnt = cnclCnt; + } + + + + +} diff --git a/src/main/java/itn/let/mjo/reservmsg/service/MjonResvMsgVO.java b/src/main/java/itn/let/mjo/reservmsg/service/MjonResvMsgVO.java index 0247f9ce..74102782 100644 --- a/src/main/java/itn/let/mjo/reservmsg/service/MjonResvMsgVO.java +++ b/src/main/java/itn/let/mjo/reservmsg/service/MjonResvMsgVO.java @@ -57,6 +57,8 @@ public class MjonResvMsgVO extends UserDefaultVO{ private int orderByCode; // 문자타입 정렬번호 private String strReqDate; // 문자열 타입 발송시간 + private String sendKind; // 문자열 타입 발송시간 + public int getOrderByCode() { return orderByCode; } @@ -297,4 +299,13 @@ public class MjonResvMsgVO extends UserDefaultVO{ public void setReserveYn(String reserveYn) { this.reserveYn = reserveYn; } + public String getSendKind() { + return sendKind; + } + public void setSendKind(String sendKind) { + this.sendKind = sendKind; + } + + + } diff --git a/src/main/java/itn/let/mjo/reservmsg/web/MjonReservMsgController.java b/src/main/java/itn/let/mjo/reservmsg/web/MjonReservMsgController.java index b63dafe5..b5110638 100644 --- a/src/main/java/itn/let/mjo/reservmsg/web/MjonReservMsgController.java +++ b/src/main/java/itn/let/mjo/reservmsg/web/MjonReservMsgController.java @@ -8,6 +8,7 @@ import java.util.Calendar; import java.util.Date; import java.util.List; import java.util.Locale; +import java.util.stream.Collectors; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -42,6 +43,11 @@ import itn.com.cmm.util.StringUtil; import itn.com.utl.fcc.service.EgovStringUtil; import itn.let.kakao.user.sent.service.KakaoSentService; import itn.let.kakao.user.sent.service.KakaoSentVO; +import itn.let.mjo.apikey.service.ApiKeyMngService; +import itn.let.mjo.apikey.service.ApiKeyVO; +import itn.let.mjo.msgsent.service.MjonMsgSentCntVO; +import itn.let.mjo.msgsent.service.MjonMsgSentVO; +import itn.let.mjo.reservmsg.service.MjonMsgReservCntVO; import itn.let.mjo.reservmsg.service.MjonReservMsgService; import itn.let.mjo.reservmsg.service.MjonResvMsgVO; @@ -63,6 +69,10 @@ public class MjonReservMsgController { @Resource(name = "KakaoSentService") private KakaoSentService kakaoSentService; + + //api key 정보 + @Resource(name = "apiKeyMngService") + private ApiKeyMngService apiKeyMngService; private static final Logger logger = LoggerFactory.getLogger(MjonReservMsgController.class); @@ -91,24 +101,77 @@ public class MjonReservMsgController { //전체 발송 건수 통계 불러오기 mjonResvMsgVO.setMsgType(""); List totalMsgCnt = mjonReservMsgService.selectDetailMsgCnt(mjonResvMsgVO);//mjonReservMsgService.selectTotalMsgCnt(mjonResvMsgVO); + + List H_totalMsgCnt = totalMsgCnt.stream().filter(t -> "H".equals(t.getSendKind())).collect(Collectors.toList()); + List A_totalMsgCnt = totalMsgCnt.stream().filter(t -> "A".equals(t.getSendKind())).collect(Collectors.toList()); + model.addAttribute("totalMsgCnt", totalMsgCnt); //단문 성공건, 실패건 불러오기 mjonResvMsgVO.setMsgType("4"); List smsMsgCnt = mjonReservMsgService.selectDetailMsgCnt(mjonResvMsgVO); + + List H_smsMsgCnt = smsMsgCnt.stream().filter(t -> "H".equals(t.getSendKind())).collect(Collectors.toList()); + List A_smsMsgCnt = smsMsgCnt.stream().filter(t -> "A".equals(t.getSendKind())).collect(Collectors.toList()); + model.addAttribute("smsMsgCnt", smsMsgCnt); //장문 성공건, 실패건 불러오기 mjonResvMsgVO.setMsgType("6"); mjonResvMsgVO.setFileCnt("0"); List lmsMsgCnt = mjonReservMsgService.selectDetailMsgCnt(mjonResvMsgVO); + + List H_lmsMsgCnt = lmsMsgCnt.stream().filter(t -> "H".equals(t.getSendKind())).collect(Collectors.toList()); + List A_lmsMsgCnt = lmsMsgCnt.stream().filter(t -> "A".equals(t.getSendKind())).collect(Collectors.toList()); model.addAttribute("lmsMsgCnt", lmsMsgCnt); //그림문자 성공건, 실패건 불러오기 mjonResvMsgVO.setMsgType("6"); mjonResvMsgVO.setFileCnt("1"); List mmsMsgCnt = mjonReservMsgService.selectDetailMsgCnt(mjonResvMsgVO); + + + List H_mmsMsgCnt = mmsMsgCnt.stream().filter(t -> "H".equals(t.getSendKind())).collect(Collectors.toList()); + List A_mmsMsgCnt = mmsMsgCnt.stream().filter(t -> "A".equals(t.getSendKind())).collect(Collectors.toList()); model.addAttribute("mmsMsgCnt", mmsMsgCnt); + + + + /* + * 홈페이지에서 보낸 데이터 LIST + * SEND_KIND = "H" + * */ + // 전체 영역 + model.addAttribute("H_allSentCntVO", this.getResultCntProc(H_totalMsgCnt)); + // 전체 단문(SMS) + model.addAttribute("H_smsSentCntVO", this.getResultCntProc(H_smsMsgCnt)); + // 전체 장문(LMS) + model.addAttribute("H_lmsSentCntVO", this.getResultCntProc(H_lmsMsgCnt)); + // 전체 장문(LMS) + model.addAttribute("H_mmsSentCntVO", this.getResultCntProc(H_mmsMsgCnt)); + + + /* ==================================================================================== */ + + + /* + * 홈페이지에서 보낸 데이터 LIST + * SEND_KIND = "A" + * */ + // 전체 영역 + model.addAttribute("A_allSentCntVO", this.getResultCntProc(A_totalMsgCnt)); + // 전체 단문(SMS) + model.addAttribute("A_smsSentCntVO", this.getResultCntProc(A_smsMsgCnt)); + // 전체 장문(LMS) + model.addAttribute("A_lmsSentCntVO", this.getResultCntProc(A_lmsMsgCnt)); + // 전체 장문(LMS) + model.addAttribute("A_mmsSentCntVO", this.getResultCntProc(A_mmsMsgCnt)); + + ApiKeyVO apiKeyVO = new ApiKeyVO(); + apiKeyVO.setMberId(userId); + model.addAttribute("appMgmt", apiKeyMngService.selectMberApiKeyChk(apiKeyVO) > 0 ? true : false); + +// model.addAttribute("mmsMsgCnt", mmsMsgCnt); // 검색 리스트 불러오기 if(mjonResvMsgVO.getPageUnit() != 10) { @@ -155,6 +218,52 @@ public class MjonReservMsgController { return "web/reservedmsg/ReservedMsgView"; } + + + /** + * @methodName : getResultCntProc + * @author : 이호영 + * @date : 2023.07.26 + * @description : MsgSentView.jsp에서 JSTL로 계산하는 것을 JAVA로 분리 + * @param msgCnt + * @param smsMsgCnt + * @param lmsMsgCnt + * @param mmsMsgCnt + * @return + */ + private MjonMsgReservCntVO getResultCntProc(List msgCnt) { +// MjonMsgSentCntVO mjonSentCntVO = new MjonMsgSentCntVO(); + MjonMsgReservCntVO cntVO = new MjonMsgReservCntVO(); + + + /* + * 전체 통계 + * */ + // 대기 갯수 + cntVO.setWaitCnt(msgCnt.stream() + .filter(f->"W".equals(f.getMsgResultSts())) + .mapToInt(t -> Integer.parseInt(t.getMsgResultCnt())).sum()); + // 성공 갯수 + cntVO.setSuccCnt(msgCnt.stream() + .filter(f->"S".equals(f.getMsgResultSts())) + .mapToInt(t -> Integer.parseInt(t.getMsgResultCnt())).sum()); + // 실패 갯수 + cntVO.setFailCnt(msgCnt.stream() + .filter(f->"F".equals(f.getMsgResultSts())) + .mapToInt(t -> Integer.parseInt(t.getMsgResultCnt())).sum()); + // 예약취소 갯수 + cntVO.setCnclCnt(msgCnt.stream() + .filter(f->"C".equals(f.getMsgResultSts())) + .mapToInt(t -> Integer.parseInt(t.getMsgResultCnt())).sum()); + + // 전체 갯수 구하기 + cntVO.setTotCnt(cntVO.getWaitCnt() + cntVO.getSuccCnt() + cntVO.getFailCnt() + cntVO.getCnclCnt()); + + + return cntVO; + } + + /** * 예약관리 탭 리스트 화면 * @param searchVO @@ -164,7 +273,7 @@ public class MjonReservMsgController { */ @RequestMapping(value= {"/web/mjon/reservmsg/selectReservMsgListViewAjax.do"}) public String selectReservMsgListViewAjax(@ModelAttribute("searchVO") MjonResvMsgVO mjonResvMsgVO, ModelMap model) throws Exception{ - + //로그인 권한정보 불러오기 LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); diff --git a/src/main/java/itn/let/uat/uia/web/EgovLoginController.java b/src/main/java/itn/let/uat/uia/web/EgovLoginController.java index 0d4b6af4..62f0cf26 100644 --- a/src/main/java/itn/let/uat/uia/web/EgovLoginController.java +++ b/src/main/java/itn/let/uat/uia/web/EgovLoginController.java @@ -585,6 +585,34 @@ public class EgovLoginController { ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("jsonView"); + //비밀번호 규칙성 검증 추가 - 취약점 조치 + mberManageVO.setPassword(mberManageVO.getPassword().trim()); + String passWord = mberManageVO.getPassword(); + + if(passWord.length() < 8 || passWord.length() > 20) { + modelAndView.addObject("resultSts", "passWordFail"); + return modelAndView; + } + + Pattern digitPattern = Pattern.compile("[0-9]"); + Matcher digitMatcher = digitPattern.matcher(passWord); + boolean hasDigit = digitMatcher.find(); + + Pattern letterPattern = Pattern.compile("[a-zA-Z]"); + Matcher letterMatcher = letterPattern.matcher(passWord); + boolean hasLetter = letterMatcher.find(); + + Pattern specialPattern = Pattern.compile("[`~!@@#$%^&*|\\\\'\";:/?]"); + Matcher specialMatcher = specialPattern.matcher(passWord); + boolean hasSpecialCharacter = specialMatcher.find(); + + + if(hasDigit == false || hasLetter == false || hasSpecialCharacter == false) { + modelAndView.addObject("resultSts", "passWordFail"); + return modelAndView; + } + + // 사업자등록증 업로드 List result = null; String wAtchFileId = ""; //사업자등록증 첨부파일 ID @@ -3205,6 +3233,30 @@ public class EgovLoginController { try { + //비밀번호 규칙성 검증 추가 - 취약점 조치 + userManageVO.setPassword(userManageVO.getPassword().trim()); + String passWord = userManageVO.getPassword(); + + Pattern digitPattern = Pattern.compile("[0-9]"); + Matcher digitMatcher = digitPattern.matcher(passWord); + boolean hasDigit = digitMatcher.find(); + + Pattern letterPattern = Pattern.compile("[a-zA-Z]"); + Matcher letterMatcher = letterPattern.matcher(passWord); + boolean hasLetter = letterMatcher.find(); + + Pattern specialPattern = Pattern.compile("[`~!@@#$%^&*|\\\\'\";:/?]"); + Matcher specialMatcher = specialPattern.matcher(passWord); + boolean hasSpecialCharacter = specialMatcher.find(); + + + if(hasDigit == false || hasLetter == false || hasSpecialCharacter == false || passWord.length() < 8 || passWord.length() > 20) { + modelAndView.addObject("pwRuleCheck", false); + return modelAndView; + }else { + modelAndView.addObject("pwRuleCheck", true); + } + // 해당 정보의 등록 페스워드 조회 int pwCheck = mberManageService.selectMberPWOverlapCheck(userManageVO); diff --git a/src/main/java/itn/let/uat/uia/web/EgovMypageController.java b/src/main/java/itn/let/uat/uia/web/EgovMypageController.java index cdbf7c72..1407da45 100644 --- a/src/main/java/itn/let/uat/uia/web/EgovMypageController.java +++ b/src/main/java/itn/let/uat/uia/web/EgovMypageController.java @@ -1231,6 +1231,28 @@ public class EgovMypageController { return modelAndView; } + //비밀번호 규칙섬 검증 추가 - 취약점 조치 + userManageVO.setPassword(userManageVO.getPassword().trim()); + String passWord = userManageVO.getPassword(); + Pattern digitPattern = Pattern.compile("[0-9]"); + Matcher digitMatcher = digitPattern.matcher(passWord); + boolean hasDigit = digitMatcher.find(); + + Pattern letterPattern = Pattern.compile("[a-zA-Z]"); + Matcher letterMatcher = letterPattern.matcher(passWord); + boolean hasLetter = letterMatcher.find(); + + Pattern specialPattern = Pattern.compile("[`~!@@#$%^&*|\\\\'\";:/?]"); + Matcher specialMatcher = specialPattern.matcher(passWord); + boolean hasSpecialCharacter = specialMatcher.find(); + + if(hasDigit == false || hasLetter == false || hasSpecialCharacter == false || passWord.length() < 8 || passWord.length() > 20) { + modelAndView.addObject("errType", "04"); + modelAndView.addObject("message", "비밀번호 규칙을 확인해주세요."); + modelAndView.addObject("result", "fail"); + return modelAndView; + } + userManageVO.setEmplyrId(loginVO.getId()); userManageService.updateUserPWAjax(userManageVO); modelAndView.addObject("result", "success"); diff --git a/src/main/java/itn/let/uat/uia/web/EgovMypageRESTAPIController.java b/src/main/java/itn/let/uat/uia/web/EgovMypageRESTAPIController.java index 11fb25dd..997dcab6 100644 --- a/src/main/java/itn/let/uat/uia/web/EgovMypageRESTAPIController.java +++ b/src/main/java/itn/let/uat/uia/web/EgovMypageRESTAPIController.java @@ -195,7 +195,7 @@ public class EgovMypageRESTAPIController{ List resultList = new ArrayList(); resultList = apiKeyMngService.selectApiKeyApplyStatus(apiKeyVO); - + System.out.println("============="); if (resultList.size()>0) { model.addAttribute("apiVO", resultList.get(0)); diff --git a/src/main/resources/egovframework/sqlmap/let/fax/Fax_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/let/fax/Fax_SQL_Mysql.xml index 01c0dcfe..ee5f684e 100644 --- a/src/main/resources/egovframework/sqlmap/let/fax/Fax_SQL_Mysql.xml +++ b/src/main/resources/egovframework/sqlmap/let/fax/Fax_SQL_Mysql.xml @@ -773,7 +773,39 @@ ORDER BY 1=1 - + + + + diff --git a/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgResv_SQL_mysql.xml b/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgResv_SQL_mysql.xml index e409bae6..bdc4822d 100644 --- a/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgResv_SQL_mysql.xml +++ b/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgResv_SQL_mysql.xml @@ -41,6 +41,7 @@ , A0.RSLT_CODE AS rsltCode , A0.RSLT_CODE2 AS rsltCode2 , A0.AGENT_CODE AS agentCode + , A0.SEND_KIND AS sendKind FROM ( SELECT A.MSG_ID @@ -48,6 +49,7 @@ , A.MSG_SEQ , A.CUR_STATE , A.SENT_DATE + , B.SEND_KIND , ( CASE WHEN A.RESERVE_C_YN = 'Y' @@ -214,6 +216,7 @@ AGENT_CODE AS agentCode, RESERVE_C_YN AS reserveCYn, CANCELDATE AS cancelDate, + SEND_KIND as sendKind, CASE WHEN RESERVE_C_YN = 'Y' THEN '예약취소' @@ -253,7 +256,8 @@ MGD.CANCELDATE, MD.CUR_STATE, MD.RSLT_CODE, - MD.RSLT_CODE2 + MD.RSLT_CODE2, + MGD.SEND_KIND FROM mj_msg_data MD INNER JOIN MJ_MSG_GROUP_DATA MGD ON MD.MSG_GROUP_ID = MGD.MSG_GROUP_ID @@ -322,6 +326,9 @@ AND CALL_FROM = #searchKeyword# + + AND SEND_KIND = #searchCondition_01# + = DATE_FORMAT(#startDate#, '%Y-%m-%d') diff --git a/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgSent_SQL_mysql.xml b/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgSent_SQL_mysql.xml index cfcc99cc..cda1d231 100644 --- a/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgSent_SQL_mysql.xml +++ b/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgSent_SQL_mysql.xml @@ -25,8 +25,8 @@ , sum(if(A0.tab1=0,0,1)) as filePath1 /* 단문여부 */ , sum(if(A0.tab2=0,0,1)) as filePath2 /* 장문여부 */ - , sum(if(A0.tab3=0,0,1)) as filePath3 /* 그림여부 */ - + , sum(if(A0.tab3=0,0,1)) as filePath3 /* 그림여부 */ + , SEND_KIND as sendKind FROM( SELECT A.MSG_ID @@ -39,7 +39,7 @@ , A.RSLT_CODE2 , A.AGENT_CODE , B.EACH_PRICE - + , B.SEND_KIND , if (A.MSG_TYPE= '4' AND B.MSG_TYPE= '4' ,'01','00') AS tab1 , if (A.MSG_TYPE= '6' AND B.MSG_TYPE= '6' AND B.FILE_CNT = '0' @@ -264,6 +264,7 @@ , msgTypeName AS msgTypeName , orderByCode AS orderByCode , RESULT AS msgResult + , sendKind AS sendKind FROM ( SELECT B.USER_ID @@ -287,6 +288,10 @@ , A.CUR_STATE , A.RSLT_CODE , A.RSLT_CODE2 + , CASE + WHEN B.SEND_KIND = 'H' THEN 'WEB' + ELSE 'API' + END as sendKind , CASE WHEN B.MSG_TYPE = '6' AND B.FILE_CNT > 0 @@ -394,6 +399,9 @@ AND CALL_TO LIKE CONCAT('%', #searchKeyword#, '%') + + AND sendKind = #searchCondition_01# + = DATE_FORMAT(#startDate#, '%Y-%m-%d') @@ -462,6 +470,7 @@ , CANCELDATE AS cancelDate , MSG_ID AS msgId , RESULT AS msgResult + , sendKind FROM (SELECT MGD.USER_ID @@ -487,6 +496,7 @@ , MD.CUR_STATE , MD.RSLT_CODE , MD.RSLT_CODE2 + , CASE WHEN MGD.SEND_KIND = 'H' THEN 'WEB' ELSE 'API' END as sendKind ,() AS RESULT FROM mj_msg_data MD diff --git a/src/main/webapp/WEB-INF/jsp/cmm/fms/EgovMberFileList.jsp b/src/main/webapp/WEB-INF/jsp/cmm/fms/EgovMberFileList.jsp new file mode 100644 index 00000000..af8d75bb --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cmm/fms/EgovMberFileList.jsp @@ -0,0 +1,40 @@ +<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> + +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<% + +/** + * @Class Name : EgovFileList.jsp + * @Description : 파일 목록화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ---------- ------ --------------------------- + * @ 2009.03.26 이삼섭 최초 생성 + * @ 2011.07.20 옥찬우 Tag id속성 추가( Line : 68 ) + * + * @author 공통서비스 개발팀 이삼섭 + * @since 2009.03.26 + * @version 1.0 + * @see + * + */ +%> + + + + + ','')" class="fileName" title="다운로드">첨부파일 + + + + diff --git a/src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovMberCmpHstListByType.jsp b/src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovMberCmpHstListByType.jsp index bc0fc7c1..3cce2e5b 100644 --- a/src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovMberCmpHstListByType.jsp +++ b/src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovMberCmpHstListByType.jsp @@ -21,6 +21,38 @@ $( document ).ready(function() { }); +// PdfView +function pdfViewPop(atchFileId,mberNm,bizNo,ceoNm,hstManagerNm,hstMbtlNum) { + document.pdfForm.atchFileId.value = atchFileId; + document.pdfForm.mberNm.value = mberNm; + document.pdfForm.bizNo.value = bizNo; + document.pdfForm.ceoNm.value = ceoNm; + document.pdfForm.hstManagerNm.value = hstManagerNm; + document.pdfForm.hstMbtlNum.value = hstMbtlNum; + document.pdfForm.fileSn.value = 0; + window.open("about:blank", 'taxListPopup', 'width=1020, height=800, top=100, left=0, fullscreen=no, menubar=no, status=no, toolbar=no, titlebar=no, location=no, scrollbars=yes'); + document.pdfForm.action = ""; + document.pdfForm.target = "taxListPopup"; + document.pdfForm.submit(); +} + +// 첨부파일 PdfView +function pdfViewPop2(atchFileId) { + $.ajax({ + type: "POST", + url: "/uss/ion/msg/pdfViewAjax.do", + data: {"atchFileId" : atchFileId, "fileSn" : "0"}, + dataType:'html', + async: true, + success: function (data) { + alert(data); + }, + error: function (e) { + //alert("ERROR : " + JSON.stringify(e)); + } + }); +} + function fnChkAll() { if($("#chkAll").is(':checked') ){ $("input[name=chkSttusY]").prop("checked", true); @@ -268,6 +300,16 @@ function fnSetCalMonth(val) { +
+ + + + + + + +
+
" /> @@ -427,17 +469,25 @@ function fnSetCalMonth(val) { - + + + - + + <%-- + + + + + --%> @@ -445,6 +495,12 @@ function fnSetCalMonth(val) { + <%-- + + + + + --%> diff --git a/src/main/webapp/WEB-INF/jsp/uss/ion/fax/faxAdmSendList.jsp b/src/main/webapp/WEB-INF/jsp/uss/ion/fax/faxAdmSendList.jsp index 8a5bca56..59190ece 100644 --- a/src/main/webapp/WEB-INF/jsp/uss/ion/fax/faxAdmSendList.jsp +++ b/src/main/webapp/WEB-INF/jsp/uss/ion/fax/faxAdmSendList.jsp @@ -18,6 +18,9 @@ $(document).ready(function(){ fn_init(); + //팩스 금일/금월/금년 통계 + getFaxSendThisSum(); + $('.sort').click(function(){ /* 내림차순 sortBtnDesc @@ -117,7 +120,36 @@ function linkPage(page){ } - +//팩스 금일/금월/금년 통계 +function getFaxSendThisSum() { + $("#faxSendThisSumArea").html(""); + + $.ajax({ + type: "POST", + url: "/uss/ion/fax/selectFaxSendThisSumAjax.do", + data: {}, + dataType:'json', + async: true, + success: function (data) { + var jsonInfo = data.result; + if (data.isSuccess) { + try { + var sHtml = ""; + sHtml = "(" + jsonInfo.successDay + " : " + jsonInfo.successCntDay + "건 / " + jsonInfo.successMonth + "월 누적 : " + jsonInfo.successCntMonth + "건 / " + jsonInfo.successYear + "년 누적 : " + jsonInfo.successCntYear + "건)"; + $("#faxSendThisSumArea").html(sHtml); + } catch (error) { + console.error(error); + } + } + else { + //alert("Msg : " + data.msg); + } + }, + error: function (e) { + //alert("ERROR : " + JSON.stringify(e)); + } + }); +}