From be76b2e446ea293f642418dbe3f2513a24a8c5de Mon Sep 17 00:00:00 2001 From: ijunho Date: Mon, 20 Oct 2025 12:51:57 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B4=80=EB=A6=AC=EC=9E=90=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD=20=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pwm/web/EgovPopupManageController.java | 21 +- .../kcc/let/main/web/EgovMainController.java | 145 ++++- .../schdlr/service/web/AnotaionSchedule.java | 478 ++++++++-------- .../let/uat/uia/web/EgovLoginController.java | 30 +- .../let/utl/fcc/service/EgovCryptoUtil.java | 6 + src/main/java/kcc/ve/cmm/VeConstants.java | 13 + .../EgovAuthorRoleManage_SQL_Postgresql.xml | 8 +- .../log/clg/EgovLoginLog_SQL_Postgresql.xml | 3 + .../webapp/WEB-INF/jsp/main/EgovMainList.jsp | 529 +++++++++--------- .../WEB-INF/jsp/main/inc/EgovIncTopnav.jsp | 10 +- .../webapp/WEB-INF/jsp/web/main/mainPage.jsp | 4 +- 11 files changed, 719 insertions(+), 528 deletions(-) diff --git a/src/main/java/kcc/com/uss/ion/pwm/web/EgovPopupManageController.java b/src/main/java/kcc/com/uss/ion/pwm/web/EgovPopupManageController.java index 5158a350..ec1a1147 100644 --- a/src/main/java/kcc/com/uss/ion/pwm/web/EgovPopupManageController.java +++ b/src/main/java/kcc/com/uss/ion/pwm/web/EgovPopupManageController.java @@ -36,6 +36,8 @@ import org.springmodules.validation.commons.DefaultBeanValidator; import egovframework.rte.fdl.idgnr.EgovIdGnrService; import egovframework.rte.fdl.property.EgovPropertyService; import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; +import egovframework.rte.fdl.string.EgovStringUtil; +import egovframework.rte.psl.dataaccess.util.EgovMap; import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; import kcc.com.cmm.ComDefaultCodeVO; import kcc.com.cmm.EgovMessageSource; @@ -52,6 +54,7 @@ import kcc.com.uss.ion.pwm.service.PopupManageVO; import kcc.com.uss.ion.pwm.service.PopupzoneVO; import kcc.com.uss.ion.pwm.service.SocialVO; import kcc.let.sym.site.service.EgovSiteManagerService; +import kcc.let.utl.fcc.service.EgovCryptoUtil; /** * 개요 @@ -115,6 +118,10 @@ public class EgovPopupManageController { @Resource(name = "EgovFileMngService") private EgovFileMngService fileService; + + //암복호화 유틸 + @Resource(name = "egovCryptoUtil") + EgovCryptoUtil egovCryptoUtil; /** * 팝업창관리 목록을 조회한다. * @param popupManageVO @@ -554,7 +561,11 @@ public class EgovPopupManageController { popupzoneVo.setSearchSortCnd("SORT"); popupzoneVo.setSearchSortOrd("asc"); } - List popupzoneList = egovPopupManageService.selectPopupzoneList(popupzoneVo); + List popupzoneList = (List)egovPopupManageService.selectPopupzoneList(popupzoneVo); + + popupzoneList.forEach(t -> { + egovCryptoUtil.decryptEgovMap(t, "registerId"); + }); model.addAttribute("popupzoneList", popupzoneList); /* 타겟 코드 */ @@ -584,6 +595,7 @@ public class EgovPopupManageController { if("Modify".equals((String)commandMap.get("pageType"))){ //수정 String pozId = (String)commandMap.get("selectedId"); popupzoneVO = egovPopupManageService.selectPopupzoneVO(pozId); + popupzoneVO.setRegisterId(egovCryptoUtil.decrypt(popupzoneVO.getRegisterId())); if(popupzoneVO != null){ popupzoneVO.setBeSort(popupzoneVO.getSort()); FileVO fileVO = new FileVO(); @@ -781,7 +793,11 @@ public class EgovPopupManageController { if(null != loginVO && !"super".equals(loginVO.getSiteId())){ //각각의 사이트 mainzoneVO.setSiteId(loginVO.getSiteId()); } - List mainzoneList = egovPopupManageService.selectMainzoneList(mainzoneVO); + List mainzoneList = (List)egovPopupManageService.selectMainzoneList(mainzoneVO); + mainzoneList.forEach(t -> { + egovCryptoUtil.decryptEgovMap(t, "registerId"); + }); + model.addAttribute("mainzoneList", mainzoneList); int totCnt = egovPopupManageService.selectMainzoneCount(mainzoneVO); @@ -854,6 +870,7 @@ public class EgovPopupManageController { if("Modify".equals((String)commandMap.get("pageType"))){ //수정 String mazId = (String)commandMap.get("selectedId"); mainzoneVO = egovPopupManageService.selectMainzoneVO(mazId); + mainzoneVO.setRegisterId(egovCryptoUtil.decrypt(mainzoneVO.getRegisterId())); if(mainzoneVO != null){ mainzoneVO.setBeSort(mainzoneVO.getSort()); diff --git a/src/main/java/kcc/let/main/web/EgovMainController.java b/src/main/java/kcc/let/main/web/EgovMainController.java index 41a8db3c..40437364 100644 --- a/src/main/java/kcc/let/main/web/EgovMainController.java +++ b/src/main/java/kcc/let/main/web/EgovMainController.java @@ -10,6 +10,7 @@ import java.lang.management.ThreadMXBean; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; +import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Map; @@ -39,6 +40,7 @@ import egovframework.rte.psl.dataaccess.util.EgovMap; import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; import kcc.com.cmm.ComDefaultVO; import kcc.com.cmm.LoginVO; +import kcc.com.cmm.util.IpUtil; import kcc.com.cmm.util.RedirectUrlMaker; import kcc.com.uss.ion.bnr.service.BannerVO; import kcc.com.uss.ion.bnr.service.EgovBannerService; @@ -64,6 +66,12 @@ import kcc.let.uss.notify.service.NotifyManageService; import kcc.let.uss.notify.service.NotifyManageVO; import kcc.let.uss.olp.qmc.service.EgovQustnrManageService; import kcc.let.uss.umt.service.EgovUserManageService; +import kcc.let.utl.fcc.service.EgovCryptoUtil; +import kcc.ve.cmm.VeConstants; +import kcc.ve.oprtn.cmdTrgt.trgtMng.service.CmdTrgtMngService; +import kcc.ve.oprtn.cmdTrgt.trgtMng.service.CmdTrgtMngVO; +import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngService; +import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngVO; /** * 템플릿 메인 페이지 컨트롤러 클래스(Sample 소스) @@ -138,6 +146,17 @@ public class EgovMainController { @Resource(name = "NotifyManageService") private NotifyManageService notifyManageService; + //암복호화 유틸 + @Resource(name = "egovCryptoUtil") + EgovCryptoUtil egovCryptoUtil; + + //과정 관리 + @Resource(name = "cndtnTrgtInfoMngService") + private CndtnTrgtMngService cndtnTrgtInfoMngService; + + //과정 관리 - 시정명령 + @Resource(name = "cmdTrgtInfoMngService") + private CmdTrgtMngService cmdTrgtInfoMngService; /** @@ -222,28 +241,83 @@ public class EgovMainController { , ModelMap model , HttpSession session) throws Exception{ - + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + + /* + * notify..? + */ /** pageing */ PaginationInfo paginationInfo = new PaginationInfo(); paginationInfo.setCurrentPageNo(notifyManageVO.getPageIndex()); paginationInfo.setRecordCountPerPage(notifyManageVO.getPageUnit()); paginationInfo.setPageSize(notifyManageVO.getPageSize()); - notifyManageVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); notifyManageVO.setLastIndex(paginationInfo.getLastRecordIndex()); notifyManageVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 notifyManageVO.setToUserId(loginVO.getId()); - List resultList = notifyManageService.selectPagingList(notifyManageVO); - - + List notifyresultList = notifyManageService.selectPagingList(notifyManageVO); - paginationInfo.setTotalRecordCount(resultList.size() > 0 ? resultList.get(0).getTotCnt() : 0); + paginationInfo.setTotalRecordCount(notifyresultList.size() > 0 ? notifyresultList.get(0).getTotCnt() : 0); model.addAttribute("paginationInfo", paginationInfo); - model.addAttribute("list", resultList); + model.addAttribute("list", notifyresultList); + + + /* + * (조건부기소유예) + * 대상자 정보 + */ + Map cndtnTrgtInfoList = this.cndtnTrgtInfo(); + //전체건수 + model.addAttribute("cndtnTrgtInfoAllCnt", cndtnTrgtInfoList.get("cndtnTrgtInfoAllCnt")); + //완료건수 + model.addAttribute("cndtnTrgtInfoCompleteCnt", cndtnTrgtInfoList.get("cndtnTrgtInfoCompleteCnt")); + //취소건수 + model.addAttribute("cndtnTrgtInfoCancelCnt", cndtnTrgtInfoList.get("cndtnTrgtInfoCancelCnt")); + + /* + * (시정명령) + * 대상자 정보 + */ + Map cmdTrgtInfoList = this.cmdTrgtInfo(); + //전체건수 + model.addAttribute("cmdtnTrgtAllCnt", cmdTrgtInfoList.get("cmdtnTrgtAllCnt")); + //완료건수 + model.addAttribute("cmdtnTrgtCompleteCnt", cmdTrgtInfoList.get("cmdtnTrgtCompleteCnt")); + //취소건수 + model.addAttribute("cmdtnTrgtCancelCnt", cmdTrgtInfoList.get("cmdtnTrgtCancelCnt")); + + /* + * (조건부기소유예) + * 과정신청기간 현황 + */ + + /* + * (시정명령) + * 과정신청기간 현황 + */ + + /* + * (예방교육) + * 과정신청기간 현황 + */ + + /* + * (조건부기소유예) + * 확정과정 현황 + */ + + /* + * (시정명령) + * 확정과정 현황 + */ + + /* + * (예방교육) + * 확정과정 현황 + */ return "main/EgovMainList"; /* @@ -571,6 +645,10 @@ public class EgovMainController { List quickList = menuCreateManageService.selectQuickListIncTop(menuManageJTreeVO) ; model.addAttribute("quickList", quickList); } + + user.setName(egovCryptoUtil.decrypt(user.getName())); + model.addAttribute("userInfo", user); + model.addAttribute("userIp", IpUtil.getClientIP(req)); }catch(Exception ex) { ex.printStackTrace(); @@ -1000,5 +1078,56 @@ public class EgovMainController { System.out.println( "Calculation: " + cal ); System.out.println( "CPU Usage: " + usage ); } + + private Map cndtnTrgtInfo(){ + + CndtnTrgtMngVO cndtnTrgtInfoMngVO = new CndtnTrgtMngVO(); + cndtnTrgtInfoMngVO.setSearchQuery(""); + cndtnTrgtInfoMngVO.setRecordCountPerPage(2147483647); + cndtnTrgtInfoMngVO.setFirstIndex(0); + + List cndtnTrgtInfoMngVOList = cndtnTrgtInfoMngService.selectPagingList(cndtnTrgtInfoMngVO); + + //전체건수 + Integer allCnt = cndtnTrgtInfoMngVOList != null ? cndtnTrgtInfoMngVOList.size() : 0; + //완료건수 + Long completeCnt = cndtnTrgtInfoMngVOList.stream().filter(t -> VeConstants.REQ_STATE_CD_COMPLETE.equals(t.getReqStateCd())).count(); + //취소건수 + Long cancelCnt = cndtnTrgtInfoMngVOList.stream().filter(t -> VeConstants.REQ_STATE_CD_EDUCANCEL.equals(t.getReqStateCd())).count(); + + + Map returnMap = new HashMap(); + returnMap.put("cndtnTrgtInfoAllCnt", allCnt); + returnMap.put("cndtnTrgtInfoCompleteCnt", completeCnt); + returnMap.put("cndtnTrgtInfoCancelCnt", cancelCnt); + + return returnMap; + } + + private Map cmdTrgtInfo(){ + + CmdTrgtMngVO cmdtnTrgtMngVO = new CmdTrgtMngVO(); + cmdtnTrgtMngVO.setSearchQuery(""); + cmdtnTrgtMngVO.setRecordCountPerPage(2147483647); + cmdtnTrgtMngVO.setFirstIndex(0); + +// List cndtnTrgtInfoMngVOList = cndtnTrgtInfoMngService.selectPagingList(cndtnTrgtInfoMngVO); + List cmdtnTrgtMngVOList = cmdTrgtInfoMngService.selectPagingList(cmdtnTrgtMngVO);; + + //전체건수 + Integer allCnt = cmdtnTrgtMngVOList != null ? cmdtnTrgtMngVOList.size() : 0; + //완료건수 + Long completeCnt = cmdtnTrgtMngVOList.stream().filter(t -> VeConstants.REQ_STATE_CD_COMPLETE.equals(t.getReqStateCd())).count(); + //취소건수 + Long cancelCnt = cmdtnTrgtMngVOList.stream().filter(t -> VeConstants.REQ_STATE_CD_EDUCANCEL.equals(t.getReqStateCd())).count(); + + + Map returnMap = new HashMap(); + returnMap.put("cmdtnTrgtAllCnt", allCnt); + returnMap.put("cmdtnTrgtCompleteCnt", completeCnt); + returnMap.put("cmdtnTrgtCancelCnt", cancelCnt); + + return returnMap; + } } \ No newline at end of file diff --git a/src/main/java/kcc/let/schdlr/service/web/AnotaionSchedule.java b/src/main/java/kcc/let/schdlr/service/web/AnotaionSchedule.java index be8c3229..0a46aba5 100644 --- a/src/main/java/kcc/let/schdlr/service/web/AnotaionSchedule.java +++ b/src/main/java/kcc/let/schdlr/service/web/AnotaionSchedule.java @@ -62,243 +62,243 @@ public class AnotaionSchedule { @Resource(name = "egovCryptoUtil") EgovCryptoUtil egovCryptoUtil; - //@RequestMapping("/sym/site/AdminLogMngTest.do") - //@Scheduled(fixedDelay = 1000) -// @Scheduled(cron="30 0 0 * * ?") - public void SchDeleteMember() throws Exception { //설정에 따른 회원삭제 / 관리자로그 설정삭제 - try { - SiteManagerVO siteManagerVO =new SiteManagerVO(); - /** paging */ - PaginationInfo paginationInfo = new PaginationInfo(); - paginationInfo.setCurrentPageNo(siteManagerVO.getPageIndex()); - paginationInfo.setRecordCountPerPage(siteManagerVO.getPageUnit()); - paginationInfo.setPageSize(siteManagerVO.getPageSize()); - siteManagerVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); - siteManagerVO.setLastIndex(paginationInfo.getLastRecordIndex()); - siteManagerVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); - List siteManagerList= egovSiteManagerService.selectSiteManagerList(siteManagerVO) ; - for(SiteManagerVO tempSiteManagerVO : siteManagerList){ - if(!"9".equals(tempSiteManagerVO.getIdWithdrawCd())) { //탈퇴회원 영구보관이 아니면 - userManageService.deleteMemberSchedule(tempSiteManagerVO); - } - - if(null!=tempSiteManagerVO.getAdminlogKpCd() && !"N".equals(tempSiteManagerVO.getAdminlogKpCd())) { //관리자로그 보관설정 영구보관이 아니면 - switch (tempSiteManagerVO.getAdminlogKpCd()) {// M:1개월,3:3개월,6:6개월보관,Y:1년, N:영구보관 - case "M": - tempSiteManagerVO.setAdminlogKpCd("1"); - case "Y": - tempSiteManagerVO.setAdminlogKpCd("12"); - default: - } - userManageService.deleteAdminLogSchedule(tempSiteManagerVO); - } - } - }catch(Exception e) { - System.out.println("Exception Error"); - } - } - - /* - * 매일 새벽1시에 청소년 찾교 신청자 개인 정보 초기화 (담당자, 휴대폰, 전화 , 이메일) - * */ - // Schdule Lock (2분동안) - @Scheduled(cron = "0 0 1 * * ?") - //@Scheduled(cron = "0 * * * * ?") - public void deletePrivacy4tngr() throws Exception { - - // do something... - try { - System.out.println("=============AnotaionSchedule=====deletePrivacy4tngr =============>"); - - //문자 환불, 팩스 환불 - deletePrivacy("10"); - deletePrivacy("TWO"); - /* - // 문자 환불 - schdlrManageService.msgFailPayBack(); - * */ - - - // do something... - - }catch(Exception ex) { - ex.printStackTrace(); - } - } - - /** - * @methodName : oneDayBeforeTrainingStartDate - * @author : 이호영 - * @date : 2023.12.01 - * @description : - * @throws Exception - */ - @Scheduled(cron = "0 21 18 * * ?") -// @Scheduled(cron = "0 0 9 * * ?") - public void oneDayBeforeTrainingStartDate() throws Exception { - - // do something... - try { - System.out.println("=============AnotaionSchedule=====deletePrivacy4tngr =============>"); - - - //권한에 따른 로그인 정보 가져오기 - - //메일 발송 부 시작 - //================================================================ - //메일 발송 VeSendMail 파라미터 정리 - //1. sndFlag = 메뉴 구분 - // C -> 찾교청소년 - // Z -> 찾교청소년-교육확정알림(교육배치목록-확정된 강의 알림 버튼) : 청소년>교육확정 메일본문 수정 메뉴에서 관리 - // S -> 찾교성인 - // G -> 체험교실 - // W -> 교육콘텐츠 - // A -> 기반강화 - // B -> 기소유예 - //2. sndTo = 수신자 - //3. vEEduAplctVO = eduAplctOrd(pk) - // sndHstryOrd(pk) - // sndCd(10 - sms, 20 - email) - // sndId(발송자) - // sndCn(발송내용) - //================================================================ - - // 기반 테스트 -// this.sendLctrDivCd("50", "2", "A"); - // 기반강화 -// this.sendLctrDivCd50("50", "1", "A"); // LCTR_DIV_CD 50, A 기반강화, 1 하루후 - // 기소유예 -// this.sendLctrDivCd("60", "2", "B"); // LCTR_DIV_CD 60, A 기반강화, 1 하루후 - - - /* - - VeSendSMS sendSMS = new VeSendSMS(); - Map resultMap = sendSMS.VeSendSMS(vEEduAplctVO.getClphone(), vEEduAplctVO.getSndCn()); - - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); - - //문자 발송 성공 시 로그 - if("1".equals(resultMap.get("result_code"))){ - String snd_ord = sndGnrService.getNextStringId(); - vEEduAplctVO.setSndHstryOrd(snd_ord); - vEEduAplctVO.setSndId(loginVO.getUniqId()); - vEEduAplctVO.setTrgt(vEEduAplctVO.getClphone()); - vEEduAplctSndHstryService.insert(vEEduAplctVO); - }else { - result = "fail"; - message = resultMap.get("message").toString(); - } - */ - }catch(Exception ex) { - ex.printStackTrace(); - } - } - - private void sendLctrDivCd(String lctrDivCd, String diffDay, String sndFlag) throws Exception { - VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO(); - vEPrcsDetailVO.setLctrDivCd(lctrDivCd); - vEPrcsDetailVO.setDiffDay(diffDay); - - if("10".equals(lctrDivCd)) { //청소년 - vEPrcsDetailVO.setSndFlag("C"); - }else if("20".equals(lctrDivCd)) { //성인 - vEPrcsDetailVO.setSndFlag("S"); - }else if("30".equals(lctrDivCd)) { //체험교실 - vEPrcsDetailVO.setSndFlag("G"); - }else if("40".equals(lctrDivCd)) { //기반강화 - vEPrcsDetailVO.setSndFlag("A"); - }else { //기소유예 - vEPrcsDetailVO.setSndFlag("B"); - } - - List VEEduAplctVOList = vEPrcsAplctPrdService.selectOneDayBeforeTrainingStartDate(vEPrcsDetailVO); - - for(VEPrcsDetailVO vo : VEEduAplctVOList) { - VEEduAplctVO vEEduAplctVO = new VEEduAplctVO(); - vEEduAplctVO.setEduAplctOrd(vo.getEduAplctOrd()); - vEEduAplctVO.setEmail(vo.getEmail()); - vEEduAplctVO.setSndFlag(sndFlag); - - vEEduAplctVO.setSndCn("안녕하세요 \n"+egovCryptoUtil.decrypt(vo.getMberNm())+"님이 신청해주신 \n" - + vo.getPrcsNm()+"교육이 "+vo.getEduStrtPnttm()+"날 시작합니다."); - - System.out.println(" vEEduAplctVO.getSndCn() :: "+vEEduAplctVO.getSndCn()); - this.sendMailModule(vEEduAplctVO); - this.sendSmsModule(vEEduAplctVO); - - } - } - - private void sendSmsModule(VEEduAplctVO vEEduAplctVO) throws Exception { - VeSendSMS sendSMS = new VeSendSMS(); -// String phone = vEEduAplctVO.getClphone(); - // 테스트 - String phone = "01083584250"; - - Map resultMap = sendSMS.VeSendSMS(phone, vEEduAplctVO.getSndCn(), vEEduAplctVO.getSndFlag()); - - - //문자 발송 성공 시 로그 - if("1".equals(resultMap.get("result_code"))){ - String snd_ord = sndGnrService.getNextStringId(); - vEEduAplctVO.setSndHstryOrd(snd_ord); - vEEduAplctVO.setSndId(""); - vEEduAplctVO.setTrgt(vEEduAplctVO.getClphone()); - vEEduAplctSndHstryService.insert(vEEduAplctVO); - }else { - } - - } - - private void sendMailModule(VEEduAplctVO vEEduAplctVO) { - VeSendMail sendMail = new VeSendMail(); - if("".equals(vEEduAplctVO.getSndFlag())) { - vEEduAplctVO.setSndFlag("test"); - } - if("".equals(vEEduAplctVO.getEmail())) { - vEEduAplctVO.setEmail("tolag3@gmail.com"); - } - // 테스트 - // 테스트 - // 테스트 - vEEduAplctVO.setEmail("hehihoho3@gmail.com"); - - try { - - // String message = "정상적으로 발송되었습니다."; - String result = sendMail.VeSendMail(vEEduAplctVO.getSndFlag() // 기반강화 50 , 기소유예 60 - , vEEduAplctVO.getEmail() - , vEEduAplctVO - ); - - if("success".equals(result)) { - //메일 발송 로그 - vEEduAplctVO.setSndHstryOrd(sndGnrService.getNextStringId()); - - vEEduAplctVO.setSndId(""); - vEEduAplctVO.setTrgt(vEEduAplctVO.getEmail()); - vEEduAplctSndHstryService.insert(vEEduAplctVO); - }else { - // message = "발송 실패하였습니다."; - } - - } catch (Exception e) { - e.printStackTrace(); - // TODO: handle exception - } - } - - - //////////////////////////////////////////////// - //개인 정보 삭제 - //////////////////////////////////////////////// - private void deletePrivacy(String p_type) throws Exception { - //개인 정보 삭제 - ve_edu_aplct - System.out.println("==== deletePrivacy ===="+p_type); - VEEduAplctVO paramVO = new VEEduAplctVO(); - paramVO.setLctrDivCd(p_type); - vEEduAplctService.privacyUpdate(paramVO); - - } +// //@RequestMapping("/sym/site/AdminLogMngTest.do") +// //@Scheduled(fixedDelay = 1000) +//// @Scheduled(cron="30 0 0 * * ?") +// public void SchDeleteMember() throws Exception { //설정에 따른 회원삭제 / 관리자로그 설정삭제 +// try { +// SiteManagerVO siteManagerVO =new SiteManagerVO(); +// /** paging */ +// PaginationInfo paginationInfo = new PaginationInfo(); +// paginationInfo.setCurrentPageNo(siteManagerVO.getPageIndex()); +// paginationInfo.setRecordCountPerPage(siteManagerVO.getPageUnit()); +// paginationInfo.setPageSize(siteManagerVO.getPageSize()); +// siteManagerVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); +// siteManagerVO.setLastIndex(paginationInfo.getLastRecordIndex()); +// siteManagerVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); +// List siteManagerList= egovSiteManagerService.selectSiteManagerList(siteManagerVO) ; +// for(SiteManagerVO tempSiteManagerVO : siteManagerList){ +// if(!"9".equals(tempSiteManagerVO.getIdWithdrawCd())) { //탈퇴회원 영구보관이 아니면 +// userManageService.deleteMemberSchedule(tempSiteManagerVO); +// } +// +// if(null!=tempSiteManagerVO.getAdminlogKpCd() && !"N".equals(tempSiteManagerVO.getAdminlogKpCd())) { //관리자로그 보관설정 영구보관이 아니면 +// switch (tempSiteManagerVO.getAdminlogKpCd()) {// M:1개월,3:3개월,6:6개월보관,Y:1년, N:영구보관 +// case "M": +// tempSiteManagerVO.setAdminlogKpCd("1"); +// case "Y": +// tempSiteManagerVO.setAdminlogKpCd("12"); +// default: +// } +// userManageService.deleteAdminLogSchedule(tempSiteManagerVO); +// } +// } +// }catch(Exception e) { +// System.out.println("Exception Error"); +// } +// } +// +// /* +// * 매일 새벽1시에 청소년 찾교 신청자 개인 정보 초기화 (담당자, 휴대폰, 전화 , 이메일) +// * */ +// // Schdule Lock (2분동안) +// @Scheduled(cron = "0 0 1 * * ?") +// //@Scheduled(cron = "0 * * * * ?") +// public void deletePrivacy4tngr() throws Exception { +// +// // do something... +// try { +// System.out.println("=============AnotaionSchedule=====deletePrivacy4tngr =============>"); +// +// //문자 환불, 팩스 환불 +// deletePrivacy("10"); +// deletePrivacy("TWO"); +// /* +// // 문자 환불 +// schdlrManageService.msgFailPayBack(); +// * */ +// +// +// // do something... +// +// }catch(Exception ex) { +// ex.printStackTrace(); +// } +// } +// +// /** +// * @methodName : oneDayBeforeTrainingStartDate +// * @author : 이호영 +// * @date : 2023.12.01 +// * @description : +// * @throws Exception +// */ +// @Scheduled(cron = "0 21 18 * * ?") +//// @Scheduled(cron = "0 0 9 * * ?") +// public void oneDayBeforeTrainingStartDate() throws Exception { +// +// // do something... +// try { +// System.out.println("=============AnotaionSchedule=====deletePrivacy4tngr =============>"); +// +// +// //권한에 따른 로그인 정보 가져오기 +// +// //메일 발송 부 시작 +// //================================================================ +// //메일 발송 VeSendMail 파라미터 정리 +// //1. sndFlag = 메뉴 구분 +// // C -> 찾교청소년 +// // Z -> 찾교청소년-교육확정알림(교육배치목록-확정된 강의 알림 버튼) : 청소년>교육확정 메일본문 수정 메뉴에서 관리 +// // S -> 찾교성인 +// // G -> 체험교실 +// // W -> 교육콘텐츠 +// // A -> 기반강화 +// // B -> 기소유예 +// //2. sndTo = 수신자 +// //3. vEEduAplctVO = eduAplctOrd(pk) +// // sndHstryOrd(pk) +// // sndCd(10 - sms, 20 - email) +// // sndId(발송자) +// // sndCn(발송내용) +// //================================================================ +// +// // 기반 테스트 +//// this.sendLctrDivCd("50", "2", "A"); +// // 기반강화 +//// this.sendLctrDivCd50("50", "1", "A"); // LCTR_DIV_CD 50, A 기반강화, 1 하루후 +// // 기소유예 +//// this.sendLctrDivCd("60", "2", "B"); // LCTR_DIV_CD 60, A 기반강화, 1 하루후 +// +// +// /* +// +// VeSendSMS sendSMS = new VeSendSMS(); +// Map resultMap = sendSMS.VeSendSMS(vEEduAplctVO.getClphone(), vEEduAplctVO.getSndCn()); +// +// LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); +// +// //문자 발송 성공 시 로그 +// if("1".equals(resultMap.get("result_code"))){ +// String snd_ord = sndGnrService.getNextStringId(); +// vEEduAplctVO.setSndHstryOrd(snd_ord); +// vEEduAplctVO.setSndId(loginVO.getUniqId()); +// vEEduAplctVO.setTrgt(vEEduAplctVO.getClphone()); +// vEEduAplctSndHstryService.insert(vEEduAplctVO); +// }else { +// result = "fail"; +// message = resultMap.get("message").toString(); +// } +// */ +// }catch(Exception ex) { +// ex.printStackTrace(); +// } +// } +// +// private void sendLctrDivCd(String lctrDivCd, String diffDay, String sndFlag) throws Exception { +// VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO(); +// vEPrcsDetailVO.setLctrDivCd(lctrDivCd); +// vEPrcsDetailVO.setDiffDay(diffDay); +// +// if("10".equals(lctrDivCd)) { //청소년 +// vEPrcsDetailVO.setSndFlag("C"); +// }else if("20".equals(lctrDivCd)) { //성인 +// vEPrcsDetailVO.setSndFlag("S"); +// }else if("30".equals(lctrDivCd)) { //체험교실 +// vEPrcsDetailVO.setSndFlag("G"); +// }else if("40".equals(lctrDivCd)) { //기반강화 +// vEPrcsDetailVO.setSndFlag("A"); +// }else { //기소유예 +// vEPrcsDetailVO.setSndFlag("B"); +// } +// +// List VEEduAplctVOList = vEPrcsAplctPrdService.selectOneDayBeforeTrainingStartDate(vEPrcsDetailVO); +// +// for(VEPrcsDetailVO vo : VEEduAplctVOList) { +// VEEduAplctVO vEEduAplctVO = new VEEduAplctVO(); +// vEEduAplctVO.setEduAplctOrd(vo.getEduAplctOrd()); +// vEEduAplctVO.setEmail(vo.getEmail()); +// vEEduAplctVO.setSndFlag(sndFlag); +// +// vEEduAplctVO.setSndCn("안녕하세요 \n"+egovCryptoUtil.decrypt(vo.getMberNm())+"님이 신청해주신 \n" +// + vo.getPrcsNm()+"교육이 "+vo.getEduStrtPnttm()+"날 시작합니다."); +// +// System.out.println(" vEEduAplctVO.getSndCn() :: "+vEEduAplctVO.getSndCn()); +// this.sendMailModule(vEEduAplctVO); +// this.sendSmsModule(vEEduAplctVO); +// +// } +// } +// +// private void sendSmsModule(VEEduAplctVO vEEduAplctVO) throws Exception { +// VeSendSMS sendSMS = new VeSendSMS(); +//// String phone = vEEduAplctVO.getClphone(); +// // 테스트 +// String phone = "01083584250"; +// +// Map resultMap = sendSMS.VeSendSMS(phone, vEEduAplctVO.getSndCn(), vEEduAplctVO.getSndFlag()); +// +// +// //문자 발송 성공 시 로그 +// if("1".equals(resultMap.get("result_code"))){ +// String snd_ord = sndGnrService.getNextStringId(); +// vEEduAplctVO.setSndHstryOrd(snd_ord); +// vEEduAplctVO.setSndId(""); +// vEEduAplctVO.setTrgt(vEEduAplctVO.getClphone()); +// vEEduAplctSndHstryService.insert(vEEduAplctVO); +// }else { +// } +// +// } +// +// private void sendMailModule(VEEduAplctVO vEEduAplctVO) { +// VeSendMail sendMail = new VeSendMail(); +// if("".equals(vEEduAplctVO.getSndFlag())) { +// vEEduAplctVO.setSndFlag("test"); +// } +// if("".equals(vEEduAplctVO.getEmail())) { +// vEEduAplctVO.setEmail("tolag3@gmail.com"); +// } +// // 테스트 +// // 테스트 +// // 테스트 +// vEEduAplctVO.setEmail("hehihoho3@gmail.com"); +// +// try { +// +// // String message = "정상적으로 발송되었습니다."; +// String result = sendMail.VeSendMail(vEEduAplctVO.getSndFlag() // 기반강화 50 , 기소유예 60 +// , vEEduAplctVO.getEmail() +// , vEEduAplctVO +// ); +// +// if("success".equals(result)) { +// //메일 발송 로그 +// vEEduAplctVO.setSndHstryOrd(sndGnrService.getNextStringId()); +// +// vEEduAplctVO.setSndId(""); +// vEEduAplctVO.setTrgt(vEEduAplctVO.getEmail()); +// vEEduAplctSndHstryService.insert(vEEduAplctVO); +// }else { +// // message = "발송 실패하였습니다."; +// } +// +// } catch (Exception e) { +// e.printStackTrace(); +// // TODO: handle exception +// } +// } +// +// +// //////////////////////////////////////////////// +// //개인 정보 삭제 +// //////////////////////////////////////////////// +// private void deletePrivacy(String p_type) throws Exception { +// //개인 정보 삭제 - ve_edu_aplct +// System.out.println("==== deletePrivacy ===="+p_type); +// VEEduAplctVO paramVO = new VEEduAplctVO(); +// paramVO.setLctrDivCd(p_type); +// vEEduAplctService.privacyUpdate(paramVO); +// +// } } \ No newline at end of file diff --git a/src/main/java/kcc/let/uat/uia/web/EgovLoginController.java b/src/main/java/kcc/let/uat/uia/web/EgovLoginController.java index c1834e2c..946ba1e9 100644 --- a/src/main/java/kcc/let/uat/uia/web/EgovLoginController.java +++ b/src/main/java/kcc/let/uat/uia/web/EgovLoginController.java @@ -211,7 +211,7 @@ public class EgovLoginController { * @exception Exception */ @RequestMapping(value = "/uat/uia/EgovLoginUsr.do") - public String adminLogin(HttpServletRequest request, HttpServletResponse response, ModelMap model) throws Exception { + public String adminLogin(HttpServletRequest request, HttpServletResponse response, ModelMap model, RedirectAttributes rttr) throws Exception { Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); System.out.println("==start="); @@ -229,21 +229,23 @@ public class EgovLoginController { LOGGER.debug("userIpCheck: [" + userIpCheck + "]"); loginPolicyGroupList = egovLoginPolicyService.selectLoginGroupPolicyAllIP(loginPolicyVOCheck); -// boolean ipCheck = false; -// if (loginPolicyGroupList != null) { -// for (LoginPolicyVO tempPolicyVO : loginPolicyGroupList) { -//// if(userIpCheck.equals(tempPolicyVO.getIpInfo())){ -// if (userIpCheck.contains(tempPolicyVO.getIpInfo())) { -// ipCheck = true; -// break; -// } -// } -// } + boolean ipCheck = false; + if (loginPolicyGroupList != null) { + for (LoginPolicyVO tempPolicyVO : loginPolicyGroupList) { +// if(userIpCheck.equals(tempPolicyVO.getIpInfo())){ + if (userIpCheck.contains(tempPolicyVO.getIpInfo())) { + ipCheck = true; + break; + } + } + } // 1. Spring Security 사용자권한 처리 -// if (!ipCheck) { -// return "/cmm/error/ipFailure"; -// } + if (!ipCheck) { + rttr.addFlashAttribute("message", "접근이 불가능한 아이피 입니다."); + return "redirect:/web/main/mainPage.do"; + } + if (!isAuthenticated) { // model.addAttribute("message", // egovMessageSource.getMessage("fail.common.login")); diff --git a/src/main/java/kcc/let/utl/fcc/service/EgovCryptoUtil.java b/src/main/java/kcc/let/utl/fcc/service/EgovCryptoUtil.java index 4b2f67d5..81cb7000 100644 --- a/src/main/java/kcc/let/utl/fcc/service/EgovCryptoUtil.java +++ b/src/main/java/kcc/let/utl/fcc/service/EgovCryptoUtil.java @@ -788,4 +788,10 @@ public class EgovCryptoUtil { return vEAStngVOOList; } + public EgovMap decryptEgovMap(EgovMap map, String keyNm) { + String encStr = map.get(keyNm).toString(); + map.put(keyNm, this.decrypt(encStr)); + return map; + } + } \ No newline at end of file diff --git a/src/main/java/kcc/ve/cmm/VeConstants.java b/src/main/java/kcc/ve/cmm/VeConstants.java index 073bca98..cb038d9c 100644 --- a/src/main/java/kcc/ve/cmm/VeConstants.java +++ b/src/main/java/kcc/ve/cmm/VeConstants.java @@ -199,5 +199,18 @@ public class VeConstants { public static final String NOTI_STATUS_97 = "97"; // 서류요청 public static final String NOTI_STATUS_98 = "98"; // 서류제출 + + /* + * VEA005 대상자 정보 : 의뢰상태 + */ + /** + * 완 + */ + public static final String REQ_STATE_CD_COMPLETE = "30"; + public static final String REQ_STATE_CD_EDUASG = "20"; + public static final String REQ_STATE_CD_EDUCANCEL = "40"; + public static final String REQ_STATE_CD_REQ = "15"; + public static final String REQ_STATE_CD_NOTCOMPLETE = "35"; + public static final String REQ_STATE_CD_EDUWAIT = "10"; } diff --git a/src/main/resources/egovframework/sqlmap/let/sec/ram/EgovAuthorRoleManage_SQL_Postgresql.xml b/src/main/resources/egovframework/sqlmap/let/sec/ram/EgovAuthorRoleManage_SQL_Postgresql.xml index 1f45ec9f..81ae02c4 100644 --- a/src/main/resources/egovframework/sqlmap/let/sec/ram/EgovAuthorRoleManage_SQL_Postgresql.xml +++ b/src/main/resources/egovframework/sqlmap/let/sec/ram/EgovAuthorRoleManage_SQL_Postgresql.xml @@ -20,7 +20,7 @@ - SELECT A.ROLE_CODE, A.ROLE_NM, A.ROLE_PTTRN, @@ -57,7 +57,7 @@ - SELECT COUNT(*) totcnt FROM ( SELECT * FROM LETTNROLEINFO WHERE 1=1 @@ -73,7 +73,7 @@ ON A.ROLE_CODE = B.ROLE_CODE - + - + diff --git a/src/main/webapp/WEB-INF/jsp/main/EgovMainList.jsp b/src/main/webapp/WEB-INF/jsp/main/EgovMainList.jsp index 2e1fedd0..e36ad34c 100644 --- a/src/main/webapp/WEB-INF/jsp/main/EgovMainList.jsp +++ b/src/main/webapp/WEB-INF/jsp/main/EgovMainList.jsp @@ -31,7 +31,6 @@ -
-
-
-
-

오늘의 교육 진행 현황

-
-
-
-

교육접수

- - 18 -
- -
-

교육진행

- - 18 -
- -
-

교육완료

- - 18 -
-
-
- -
-
-

교육건수

-
-
-
    -
  • -

    접수

    -
    -
    -
    -

    30

    -
  • -
  • -

    승인

    -
    -
    -
    -

    30

    -
  • -
  • -

    진행

    -
    -
    -
    -

    30

    -
  • -
  • -

    대기

    -
    -
    -
    -

    30

    -
  • -
  • -

    완료

    -
    -
    -
    -

    30

    -
  • -
- -
    -
  • 0
  • -
  • 10
  • -
  • 20
  • -
  • 30
  • -
  • 40
  • -
- -
-
-
-
-

교육신청현황

- -
-
-
-
-
-
-

교육진행현황

- -
-
-
-
-
-
-

교육종료현황

- -
- -
+
+
+<%-- =========================================== + 조건부 기소유예 시작 + ============================================ --%> +
+
+

조건부기소유예 대상자 목록 현황

+ +
+
+
+

전체

+ + ${cndtnTrgtInfoAllCnt} +
+
+

완료

+ + ${cndtnTrgtInfoCompleteCnt} +
+
+

취소

+ + ${cndtnTrgtInfoCancelCnt}
- +
+
+
+

과정신청현황

+ +
+
+
+
+
+
+

확정과정현황

+ +
+
+
+
+<%-- =========================================== + 조건부 기소유예 끝 + ============================================ --%> +<%-- =========================================== + 시정명령 시작 + ============================================ --%> +
+
+

시정명령 대상자 정보 현황

+ +
+
+
+

전체

+ + ${cmdtnTrgtAllCnt} +
+
+

완료

+ + ${cmdtnTrgtCompleteCnt} +
+
+

취소

+ + ${cmdtnTrgtCancelCnt} +
+
+
+
+
+

과정신청현황

+ +
+
+
+
+
+
+

확정과정현황

+ +
+
+
+
+<%-- =========================================== + 시정명령 끝 + ============================================ --%> +<%-- =========================================== + 예방교육 시작 + ============================================ --%> +
+
+

과정신청현황

+ +
+
+
+
+
+
+

확정과정현황

+ +
+
+
+
+<%-- =========================================== + 예방교육 끝 + ============================================ --%> +
+
+ diff --git a/src/main/webapp/WEB-INF/jsp/main/inc/EgovIncTopnav.jsp b/src/main/webapp/WEB-INF/jsp/main/inc/EgovIncTopnav.jsp index a192051d..29da8e3e 100644 --- a/src/main/webapp/WEB-INF/jsp/main/inc/EgovIncTopnav.jsp +++ b/src/main/webapp/WEB-INF/jsp/main/inc/EgovIncTopnav.jsp @@ -89,7 +89,8 @@ function modifyMem(uniqId){
  • -

    IP : 218.123.45.678

    + +

    IP : ${userIp}

  • @@ -120,14 +121,15 @@ function modifyMem(uniqId){
    diff --git a/src/main/webapp/WEB-INF/jsp/web/main/mainPage.jsp b/src/main/webapp/WEB-INF/jsp/web/main/mainPage.jsp index ceee30ae..1a65b23e 100644 --- a/src/main/webapp/WEB-INF/jsp/web/main/mainPage.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/main/mainPage.jsp @@ -309,7 +309,7 @@ function fn_egov_inqire_data(bbsId, nttId) {
    - ${popipZoneList.imgAlt} 팝업?atchFileId=' />
    @@ -317,7 +317,7 @@ function fn_egov_inqire_data(bbsId, nttId) {
    - ${popipZoneList.imgAlt} 팝업?atchFileId=' />