From f9932ed489ef9958acc22d71cfaff59851e12da3 Mon Sep 17 00:00:00 2001 From: myname Date: Thu, 13 Nov 2025 14:21:20 +0900 Subject: [PATCH] =?UTF-8?q?2025-11-13=2014:21=20=EC=A2=85=EB=A3=8C?= =?UTF-8?q?=EB=90=9C=20=EA=B0=95=EC=9D=98=20=EB=AA=A9=EB=A1=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/kcc/let/my/web/MyPageController.java | 179 ++++++++- .../ve/prcs/VEPrcsAplctPrd_SQL_Postgresql.xml | 27 +- .../jsp/web/my/myPageAplctDashBoard.jsp | 372 +++++++++++++++++ .../jsp/web/my/myPageCompletedDashBoard.jsp | 374 ++++++++++++++++++ .../jsp/web/my/myPageInClassDashBoard.jsp | 372 +++++++++++++++++ 5 files changed, 1315 insertions(+), 9 deletions(-) create mode 100644 src/main/webapp/WEB-INF/jsp/web/my/myPageAplctDashBoard.jsp create mode 100644 src/main/webapp/WEB-INF/jsp/web/my/myPageCompletedDashBoard.jsp create mode 100644 src/main/webapp/WEB-INF/jsp/web/my/myPageInClassDashBoard.jsp diff --git a/src/main/java/kcc/let/my/web/MyPageController.java b/src/main/java/kcc/let/my/web/MyPageController.java index da5fe7d7..591d848c 100644 --- a/src/main/java/kcc/let/my/web/MyPageController.java +++ b/src/main/java/kcc/let/my/web/MyPageController.java @@ -2,6 +2,7 @@ package kcc.let.my.web; import java.time.LocalDate; import java.time.format.DateTimeFormatter; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -23,12 +24,10 @@ import egovframework.rte.fdl.idgnr.EgovIdGnrService; import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; import kcc.com.cmm.LoginVO; import kcc.com.utl.user.service.CheckLoginUtil; -import kcc.let.cop.bbs.service.BoardMasterVO; import kcc.let.cop.bbs.service.BoardVO; import kcc.let.uat.uia.service.SsoLoginVO; import kcc.let.utl.fcc.service.EgovCryptoUtil; import kcc.ve.aplct.fndtnEnhanceTrn.service.FndtnEnhanceTrnService; -import kcc.ve.cmm.VeConstants; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService; @@ -111,6 +110,77 @@ public class MyPageController { vEPrcsDetailVOList.stream().forEach(t->{ t.setDateChk(this.dateChk(t, currentDate)); }); + + Map countMap = new HashMap<>(); + + vEPrcsDetailVO.setSearchStatus("Completed"); + List vEPrcsDetailVOListCnt = vEPrcsAplctPrdService.findByAprvlQustnrAllList(vEPrcsDetailVO); + countMap.put("COUNT_END_CD", vEPrcsDetailVOListCnt.size()); + + vEPrcsDetailVO.setSearchStatus("InClass"); + vEPrcsDetailVOListCnt = vEPrcsAplctPrdService.findByAprvlQustnrAllList(vEPrcsDetailVO); + countMap.put("COUNT_APRVL_CD_20", vEPrcsDetailVOListCnt.size()); + + vEPrcsDetailVO.setSearchStatus("Aplct"); + vEPrcsDetailVOListCnt = vEPrcsAplctPrdService.findByAprvlQustnrAllList(vEPrcsDetailVO); + countMap.put("COUNT_APRVL_CD_10", vEPrcsDetailVOListCnt.size()); + + + + + //vEPrcsAplctPrdService.findAllSspnldtmtDashboardCnt(vEPrcsDetailVO); + + + //Map countMap = vEPrcsAplctPrdService.findAllSspnldtmtDashboardCnt(vEPrcsDetailVO); + // 리스트 row마다 신청 확인하기 + //대상 리스트, 페이징 정보 전달 + model.addAttribute("list", vEPrcsDetailVOList); + model.addAttribute("countMap", countMap); + + return "web/my/myPageDashBoard"; + } + + + /** + * 신청중 강의 리스트 + * @param request + * @param vEPrcsDetailVO + * @param model + * @param boardVO + * @param redirectAttributes + * @return + * @throws Exception + */ + @RequestMapping(value = { "/web/my/myPageAplctDashBoard.do" }) + public String myPageAplctDashBoard(HttpServletRequest request, @ModelAttribute("vEEduAplctVO") VEPrcsDetailVO vEPrcsDetailVO, + ModelMap model, BoardVO boardVO, RedirectAttributes redirectAttributes) throws Exception { + + //로그인 처리==================================== + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + if (loginVO == null || ssoLoginVO == null) { + //이전 url 처리(beforeSiteUrl)_이준호_220228추가 + return checkLoginUtil.getUserLoginPage(model, request); //로그인 정보가 없으면 로그인 페이지로 이동한다. + } + vEPrcsDetailVO.setUserId(loginVO.getUniqId()); + + //1.pageing step1 + //5개만 select을 위한 설정 + vEPrcsDetailVO.setPageUnit(5); + PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO); + + //2. pageing step2 + vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo); + + List vEPrcsDetailVOList = vEPrcsAplctPrdService.findByAprvlQustnrAllList(vEPrcsDetailVO); + + // 현재 날짜를 가져옵니다. + LocalDate currentDate = LocalDate.now(); + // 날짜비교 + vEPrcsDetailVOList.stream().forEach(t->{ + t.setDateChk(this.dateChk(t, currentDate)); + }); Map countMap = vEPrcsAplctPrdService.findAllSspnldtmtDashboardCnt(vEPrcsDetailVO); @@ -119,9 +189,112 @@ public class MyPageController { model.addAttribute("list", vEPrcsDetailVOList); model.addAttribute("countMap", countMap); - return "web/my/myPageDashBoard"; + return "web/my/myPageAplctDashBoard"; } + /** + * 수강중 강의 리스트 + * @param request + * @param vEPrcsDetailVO + * @param model + * @param boardVO + * @param redirectAttributes + * @return + * @throws Exception + */ + @RequestMapping(value = { "/web/my/myPageInClassDashBoard.do" }) + public String myPageInClassDashBoard(HttpServletRequest request, @ModelAttribute("vEEduAplctVO") VEPrcsDetailVO vEPrcsDetailVO, + ModelMap model, BoardVO boardVO, RedirectAttributes redirectAttributes) throws Exception { + + //로그인 처리==================================== + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + if (loginVO == null || ssoLoginVO == null) { + //이전 url 처리(beforeSiteUrl)_이준호_220228추가 + return checkLoginUtil.getUserLoginPage(model, request); //로그인 정보가 없으면 로그인 페이지로 이동한다. + } + vEPrcsDetailVO.setUserId(loginVO.getUniqId()); + + //1.pageing step1 + //5개만 select을 위한 설정 + vEPrcsDetailVO.setPageUnit(5); + PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO); + + //2. pageing step2 + vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo); + + List vEPrcsDetailVOList = vEPrcsAplctPrdService.findByAprvlQustnrAllList(vEPrcsDetailVO); + + // 현재 날짜를 가져옵니다. + LocalDate currentDate = LocalDate.now(); + // 날짜비교 + vEPrcsDetailVOList.stream().forEach(t->{ + t.setDateChk(this.dateChk(t, currentDate)); + }); + + + Map countMap = vEPrcsAplctPrdService.findAllSspnldtmtDashboardCnt(vEPrcsDetailVO); + // 리스트 row마다 신청 확인하기 + //대상 리스트, 페이징 정보 전달 + model.addAttribute("list", vEPrcsDetailVOList); + model.addAttribute("countMap", countMap); + + return "web/my/myPageInClassDashBoard"; + } + + /** + * 완료된 강의 리스트 + * @param request + * @param vEPrcsDetailVO + * @param model + * @param boardVO + * @param redirectAttributes + * @return + * @throws Exception + */ + @RequestMapping(value = { "/web/my/myPageCompletedDashBoard.do" }) + public String myPageCompletedDashBoard(HttpServletRequest request, @ModelAttribute("vEEduAplctVO") VEPrcsDetailVO vEPrcsDetailVO, + ModelMap model, BoardVO boardVO, RedirectAttributes redirectAttributes) throws Exception { + + //로그인 처리==================================== + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + if (loginVO == null || ssoLoginVO == null) { + //이전 url 처리(beforeSiteUrl)_이준호_220228추가 + return checkLoginUtil.getUserLoginPage(model, request); //로그인 정보가 없으면 로그인 페이지로 이동한다. + } + vEPrcsDetailVO.setUserId(loginVO.getUniqId()); + + //1.pageing step1 + //5개만 select을 위한 설정 + vEPrcsDetailVO.setPageUnit(5); + PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO); + + //2. pageing step2 + vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo); + + vEPrcsDetailVO.setSearchStatus("Completed"); + List vEPrcsDetailVOList = vEPrcsAplctPrdService.findByAprvlQustnrAllList(vEPrcsDetailVO); + + // 현재 날짜를 가져옵니다. + LocalDate currentDate = LocalDate.now(); + // 날짜비교 + vEPrcsDetailVOList.stream().forEach(t->{ + t.setDateChk(this.dateChk(t, currentDate)); + }); + + + Map countMap = vEPrcsAplctPrdService.findAllSspnldtmtDashboardCnt(vEPrcsDetailVO); + // 리스트 row마다 신청 확인하기 + //대상 리스트, 페이징 정보 전달 + model.addAttribute("list", vEPrcsDetailVOList); + model.addAttribute("countMap", countMap); + + return "web/my/myPageCompletedDashBoard"; + } + @RequestMapping(value = { "/web/my/myQnaMngList.do" }) public String myQnaMngList( HttpServletRequest request diff --git a/src/main/resources/egovframework/sqlmap/ve/prcs/VEPrcsAplctPrd_SQL_Postgresql.xml b/src/main/resources/egovframework/sqlmap/ve/prcs/VEPrcsAplctPrd_SQL_Postgresql.xml index ab5254e4..1c3ce551 100644 --- a/src/main/resources/egovframework/sqlmap/ve/prcs/VEPrcsAplctPrd_SQL_Postgresql.xml +++ b/src/main/resources/egovframework/sqlmap/ve/prcs/VEPrcsAplctPrd_SQL_Postgresql.xml @@ -1991,7 +1991,7 @@ ) I30 ON (1 = 1) - where + where a.user_id = #userId# @@ -2003,10 +2003,10 @@ /*VEA003 미이수 : 수강중 강의*/ AND vadi.aplct_state_cd = '10' - + /*취소 : 취소*/ AND vadi.aplct_state_cd = #searchStatus# - + /*이수완료 : 종료 강의*/ AND vadi.aplct_state_cd is not null AND a.aprvl_cd = #searchStatus# @@ -2014,11 +2014,26 @@ /*수강중 강의*/ AND vadi.aplct_state_cd is null AND a.aprvl_cd = '20' - + /*요청 : 요청 강의*/ AND a.aprvl_cd = #searchStatus# - - + + + /*요청 : 완료된 강의*/ + AND a.APRVL_CD ='60' + AND to_char(now(), 'YYYY.MM.DD') > vpap.edu_strt_pnttm + + + /*요청 : 수강중 강의*/ + AND a.APRVL_CD ='60' + AND vpap.edu_strt_pnttm >= to_char(now(), 'YYYY.MM.DD') + + + /*요청 : 수강중 강의*/ + AND a.APRVL_CD IN('10', '20') + AND vpap.edu_strt_pnttm >= to_char(now(), 'YYYY.MM.DD') + + ORDER BY vpap.edu_strt_pnttm desc diff --git a/src/main/webapp/WEB-INF/jsp/web/my/myPageAplctDashBoard.jsp b/src/main/webapp/WEB-INF/jsp/web/my/myPageAplctDashBoard.jsp new file mode 100644 index 00000000..29ed7939 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/web/my/myPageAplctDashBoard.jsp @@ -0,0 +1,372 @@ +<%@ page contentType="text/html; charset=utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%> +<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %> +<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%> + + + + + +
+
" method="post"> + +
+
+ + +
+ + + " /> + " /> + + +
+

교육현황

+
+
    + <%--
  • 신청중 강의

  • --%> +
  • 신청중 강의

  • + <%--
  • 수강중 강의

  • --%> +
  • 수강중 강의

  • + <%--
  • 종료된 강의

  • --%> +
  • 종료된 강의

  • +
+ +
+
+
교육 신청 목록
+
+
+ <%-- --%> +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
교육 신청 목록 - 교육과정, 교육일자, 신청결과, 설문조사등의 정보제공
구분교육과정교육일자신청결과설문조사이수증
+ + ', '', '');" onkeypress="if(event.keyCode == 13){fncGoDetail('', '', '');}" style="cursor:pointer;" tabindex="0"> + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + 대상설문없음 + + + + + + + + + - + + + + + + + - + + + + + + + + + + + 교육완료 + + + - + + +
+
+
+
+ + +
+ +
+ +
+ +
+ +
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/web/my/myPageCompletedDashBoard.jsp b/src/main/webapp/WEB-INF/jsp/web/my/myPageCompletedDashBoard.jsp new file mode 100644 index 00000000..be9be3be --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/web/my/myPageCompletedDashBoard.jsp @@ -0,0 +1,374 @@ +<%@ page contentType="text/html; charset=utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%> +<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %> +<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%> + + + + + +
+
" method="post"> + +
+
+ + +
+ + + " /> + " /> + + +
+

교육현황

+
+ + +
+
+
종료된 강의 목록
+
+
+ <%-- --%> +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
종료된 강의 목록 - 교육과정, 교육일자, 신청결과, 설문조사등의 정보제공
구분교육과정교육일자신청결과설문조사이수증
+ + ', '', '');" onkeypress="if(event.keyCode == 13){fncGoDetail('', '', '');}" style="cursor:pointer;" tabindex="0"> + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + 대상설문없음 + + + + + + + + + - + + + + + + + - + + + + + + + + + + + 교육완료 + + + - + + +
+
+
+
+ + +
+ +
+ +
+ +
+ +
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/web/my/myPageInClassDashBoard.jsp b/src/main/webapp/WEB-INF/jsp/web/my/myPageInClassDashBoard.jsp new file mode 100644 index 00000000..29ed7939 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/web/my/myPageInClassDashBoard.jsp @@ -0,0 +1,372 @@ +<%@ page contentType="text/html; charset=utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%> +<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %> +<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%> + + + + + +
+
" method="post"> + +
+
+ + +
+ + + " /> + " /> + + +
+

교육현황

+
+
    + <%--
  • 신청중 강의

  • --%> +
  • 신청중 강의

  • + <%--
  • 수강중 강의

  • --%> +
  • 수강중 강의

  • + <%--
  • 종료된 강의

  • --%> +
  • 종료된 강의

  • +
+ +
+
+
교육 신청 목록
+
+
+ <%-- --%> +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
교육 신청 목록 - 교육과정, 교육일자, 신청결과, 설문조사등의 정보제공
구분교육과정교육일자신청결과설문조사이수증
+ + ', '', '');" onkeypress="if(event.keyCode == 13){fncGoDetail('', '', '');}" style="cursor:pointer;" tabindex="0"> + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + 대상설문없음 + + + + + + + + + - + + + + + + + - + + + + + + + + + + + 교육완료 + + + - + + +
+
+
+
+ + +
+ +
+ +
+ +
+ +
\ No newline at end of file