diff --git a/src/main/java/kcc/ve/aplct/cmdTrgt/service/CmdTrgtService.java b/src/main/java/kcc/ve/aplct/cmdTrgt/service/CmdTrgtService.java new file mode 100644 index 00000000..d9c8643a --- /dev/null +++ b/src/main/java/kcc/ve/aplct/cmdTrgt/service/CmdTrgtService.java @@ -0,0 +1,26 @@ +package kcc.ve.aplct.cmdTrgt.service; + + +import org.springframework.web.servlet.ModelAndView; + +import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO; +import kcc.ve.oprtn.cmdTrgt.trgtMng.service.CmdTrgtMngVO; + +public interface CmdTrgtService { + + void insertVeEduAplct(VEEduAplctVO paramVO); + + void updateAprvlCd(VEEduAplctVO paramVO) throws Exception; + + VEEduAplctVO findByAprvlCd(VEEduAplctVO vEEduAplctReqVO); + +// String findByTrgtNmAndDBirthAndEduStateCd(CndtnTrgtMngVO cndtnTrgtInfoMngVO); + //교육대상자 확인 + ModelAndView findByTrgtNmAndDBirthAndEduStateCd(CmdTrgtMngVO cndtnTrgtInfoMngVO); + + //교육대상자 확인 - new + ModelAndView checkSspnIdtmt(CmdTrgtMngVO cndtnTrgtInfoMngVO); + + + +} diff --git a/src/main/java/kcc/ve/aplct/cmdTrgt/service/impl/CmdTrgtServiceImpl.java b/src/main/java/kcc/ve/aplct/cmdTrgt/service/impl/CmdTrgtServiceImpl.java new file mode 100644 index 00000000..e13051ae --- /dev/null +++ b/src/main/java/kcc/ve/aplct/cmdTrgt/service/impl/CmdTrgtServiceImpl.java @@ -0,0 +1,297 @@ +package kcc.ve.aplct.cmdTrgt.service.impl; + +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; + +import org.apache.commons.lang.RandomStringUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.web.servlet.ModelAndView; + +import egovframework.rte.fdl.idgnr.EgovIdGnrService; +import kcc.com.cmm.LoginVO; +import kcc.com.utl.user.service.CheckLoginUtil; +import kcc.let.utl.fcc.service.EgovCryptoUtil; +import kcc.ve.aplct.cmdTrgt.service.CmdTrgtService; +import kcc.ve.cmm.VeSendSMS; +import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctSndHstryService; +import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO; +import kcc.ve.instr.tngrVisitEdu.eduInfo.service.impl.VEEduAplctDAO; +import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO; +import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrMixService; +import kcc.ve.oprtn.cmdTrgt.trgtMng.service.CmdTrgtMngVO; +import kcc.ve.oprtn.cmdTrgt.trgtMng.service.impl.CmdTrgtMngDAO; + +@Service("cmdTrgtService") +public class CmdTrgtServiceImpl implements CmdTrgtService { + + //과정 + @Resource(name="vEEduAplctDAO") + private VEEduAplctDAO vEEduAplctDAO; + + // 기소유예 관련 + @Resource(name="cmdTrgtInfoMngDAO") + private CmdTrgtMngDAO cmdTrgtMngDAO; + + //snd_hstry id gen + @Resource(name = "sndGnrService") + private EgovIdGnrService sndGnrService; + + //로그인 체크 util + @Resource(name = "checkLoginUtil") + private CheckLoginUtil checkLoginUtil; + + //암복호화 유틸 + @Resource(name = "egovCryptoUtil") + EgovCryptoUtil egovCryptoUtil; + + //강사 정보 MIX + @Resource(name="vEInstrMixService") + private VEInstrMixService vEInstrMixService; + + // 교육신청발송이력 + @Resource(name = "vEEduAplctSndHstryService") + private VEEduAplctSndHstryService vEEduAplctSndHstryService; + + @Override + public void insertVeEduAplct(VEEduAplctVO paramVO) { + vEEduAplctDAO.insertVeEduAplct(paramVO); + } + + @Override + public void updateAprvlCd(VEEduAplctVO paramVO) throws Exception { + vEEduAplctDAO.updateReg(paramVO); + } + + @Override + public VEEduAplctVO findByAprvlCd(VEEduAplctVO vEEduAplctReqVO) { + return vEEduAplctDAO.findByAprvlCd(vEEduAplctReqVO); + } + + @Override + public ModelAndView findByTrgtNmAndDBirthAndEduStateCd(CmdTrgtMngVO cndtnTrgtInfoMngVO) { + + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + String result=""; + String msg=""; + String id=""; + String next=""; + try { + result="success"; +// +// // 교육 신청한 대상자 조회 + id = cmdTrgtMngDAO.findByTrgtNmAndDBirthAndEduStateCd(cndtnTrgtInfoMngVO); + + if(StringUtils.isNotEmpty(id)) { + msg = "이미 신청한 대상자 입니다."; + + // 신청한 대상자가 없으면 + // 신청하지 않은 대상자가 있는지 조회 + }else { + + id = cmdTrgtMngDAO.findByTrgtNmAndDBirthAndUserIdAndEduStateCd(cndtnTrgtInfoMngVO); + msg = "대상자가 없습니다."; + + if(StringUtils.isNotEmpty(id)) { + msg = "확인됐습니다."; + next = "Y"; + } + } + } catch (Exception e) { + result="fail"; + msg = "오류가 발생하였습니다 관리자에게 문의하세요. "; + e.printStackTrace(); + // TODO: handle exception + } + modelAndView.addObject("msg", msg); + modelAndView.addObject("result", result); + modelAndView.addObject("id", id); + modelAndView.addObject("next", next); + + + return modelAndView; + } + + @Override + public ModelAndView checkSspnIdtmt(CmdTrgtMngVO cmdTrgtMngVO) { + /* + * step0.해당 계정으로 신청한 정보가 있는지 확인 하고, 있다면 동일한 정보로 신청했는지 확인 할것. + * step1.신청 가능한 대상이 있는지 찾는다. + * 있으면 신청처리 but 2개 이상이면 선택하도록, 1개면 신청 처리 + * step2.대상이 없으면 기존 이력이 있는지 확인 + * 있으면 기존 사유 노출 + * step3.기존 이력이 없으면 관리자에게 문의 하도록 한다. + * */ + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + String result=""; + String msg=""; + String id=""; + String next=""; //? + String smsYn = ""; //휴대폰 인증 번호 발송 여부 + try { + result=""; +// +// // step0.해당 계정으로 신청한 정보가 있는지 확인 하고, 있다면 동일한 정보로 신청했는지 확인 할것. + CmdTrgtMngVO cndtnTrgtMngVO = cmdTrgtMngDAO.checkSspnIdtmtNewStep0(cmdTrgtMngVO); + /* + if ("F".equals(cndtnTrgtMngVO.getResultCd())) { //해당 계정으로 신청한 정보중에 다른 개인정보(이름, 생년월일, 성별)를 사용해서 신청한 내용이 있다. + + result="fail"; + msg = "하나의 계정은 한 명의 대상자만 신청할 수 있습니다."; + + modelAndView.addObject("msg", msg); + modelAndView.addObject("result", result); + + return modelAndView; + + } + */ + + + // step1.신청 가능한 대상이 있는지 찾는다. + List cmdTrgtMngVOList = cmdTrgtMngDAO.checkSspnIdtmtStep1(cmdTrgtMngVO); + + System.out.println(cmdTrgtMngVOList); + System.out.println(cmdTrgtMngVOList.size()); + + if (cmdTrgtMngVOList==null || cmdTrgtMngVOList.size()<=0) { //대상자가 없음 + + //step2.대상이 없으면 기존 이력이 있는지 확인 + cmdTrgtMngVOList = cmdTrgtMngDAO.checkSspnIdtmtStep2(cmdTrgtMngVO); + + if (cmdTrgtMngVOList==null || cmdTrgtMngVOList.size()<=0) { //step3.기존 이력이 없으면 관리자에게 문의 하도록 한다. + result = "fail"; + msg = "대상자 정보와 입력하신 정보가 일치하지 않습니다.\n담당자에게 문의 바랍니다.\n문의: 055-792-0223"; + next = "Y"; //? + + }else if (cmdTrgtMngVOList.size()>0) { + //기존 이력의 사유를 사용자에게 전달한다. + result = "fail"; + msg = "기존 이력을 전달한다.------"; + + if ("20".equals(cmdTrgtMngVOList.get(0).getEduStateCd())) { + msg = "이미 이수한 이력이 있습니다. 관리자에게 문의 바랍니다."; + next = "Y"; //? + + /* + }else if ("25".equals(cmdTrgtMngVOList.get(0).getEduStateCd())) { + msg = "이미 신청한 교육이 있습니다."; + next = ""; //? + + }else if ("30".equals(cmdTrgtMngVOList.get(0).getEduStateCd())) { + msg = "현재 진행중인 교육이 있습니다."; + next = ""; //? + + }else if ("40".equals(cmdTrgtMngVOList.get(0).getEduStateCd())) { + msg = "미이수한 이력이 있습니다. 관리자에게 문의 바랍니다."; + next = "Y"; //? + + + }else if ("60".equals(cmdTrgtMngVOList.get(0).getEduStateCd())) { + msg = "교육취소 이력이 있습니다. 관리자에게 문의 바랍니다."; + next = "Y"; //? + */ + } + + } + + }else if (cmdTrgtMngVOList.size()==1) { //성공 신청 진행 + result = "success"; + msg = ""; + id = cmdTrgtMngVOList.get(0).getCmdTrgtInfoOrd(); + next = "Y"; + smsYn = "Y"; + //next = Integer.toString(cmdTrgtMngVOList.size()); //대상자 수 + + }else if (cmdTrgtMngVOList.size()>1) { //대상 리스트 던질것 + //to do + result = "success"; + msg = ""; + id = ""; //여기에 대상 선택을 위한 데이터를 넣어준다. + next = "N"; + smsYn = "Y"; + modelAndView.addObject("cndtnTrgtMngVOList", cmdTrgtMngVOList); + + //cndtnTrgtMngVOList.get(0).getreg + //next = Integer.toString(cndtnTrgtMngVOList.size()); //대상자 수 + + } + + //핸드폰으로 인증번호 발송 + if ("Y".equals(smsYn) && !"Y".equals(cmdTrgtMngVO.getChkYn())) { + //인증번호 생성 + String code = RandomStringUtils.randomNumeric(6); + VEEduAplctVO vEEduAplctVO = new VEEduAplctVO(); + VeSendSMS sendSMS = new VeSendSMS(); + cmdTrgtMngVO = egovCryptoUtil.decryptCmdTrgtMngVOInfo(cmdTrgtMngVO); //핸드폰번호 복호화 + vEEduAplctVO.setEduAplctOrd("기소유예 대상자 인증"); + vEEduAplctVO.setSndCn("안녕하세요. 저작권배움터 기소유예 담당자입니다.\n인증번호는 " + code + " 입니다."); + vEEduAplctVO.setClphone(cmdTrgtMngVO.getClphone()); + vEEduAplctVO.setSndFlag("B"); + Map resultMap = sendSMS.VeSendSMS(vEEduAplctVO.getClphone(), vEEduAplctVO.getSndCn(), vEEduAplctVO.getSndFlag()); + //문자 발송 성공 시 + if("1".equals(resultMap.get("result_code"))){ + //발송 로그 + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); + String snd_ord = sndGnrService.getNextStringId(); + vEEduAplctVO.setSndHstryOrd(snd_ord); + vEEduAplctVO.setSndId(loginVO.getUniqId()); + vEEduAplctVO.setTrgt(vEEduAplctVO.getClphone()); + vEEduAplctVO.setSndCd("10"); + vEEduAplctVO.setTrgtId(loginVO.getUniqId()); + vEEduAplctSndHstryService.insert(vEEduAplctVO); + + + //인증번호 row 생성 (기존 강사인증 테이블 사용) + VEInstrDetailVO vEInstrDetailVO = new VEInstrDetailVO(); + vEInstrDetailVO.setEmail(vEEduAplctVO.getClphone()); + vEInstrDetailVO.setCrtfdNumber(code); + vEInstrDetailVO.setUserId(loginVO.getUniqId()); + vEInstrMixService.deleteInstrEmailCrtfd(vEInstrDetailVO); + vEInstrMixService.insertInstrEmailCrtfd(vEInstrDetailVO); + + } + } + + + /* + if(StringUtils.isNotEmpty(id)) { + msg = "이미 신청한 대상자 입니다."; + + // 신청한 대상자가 없으면 + // 신청하지 않은 대상자가 있는지 조회 + }else { + + id = cndtnTrgtInfoMngDAO.findByTrgtNmAndDBirthAndUserIdAndEduStateCd(cndtnTrgtInfoMngVO); + msg = "대상자가 없습니다."; + + if(StringUtils.isNotEmpty(id)) { + msg = "확인됐습니다."; + next = "Y"; + } + } + */ + } catch (Exception e) { + result="fail"; + msg = "오류가 발생하였습니다 관리자에게 문의하세요. "; + next = "Y"; + e.printStackTrace(); + // TODO: handle exception + } + + modelAndView.addObject("msg", msg); + modelAndView.addObject("id", id); + modelAndView.addObject("result", result); + modelAndView.addObject("next", next); //fail & Y = 관리자 문의 버튼 노출 + + return modelAndView; + } +} diff --git a/src/main/java/kcc/ve/aplct/cmdTrgt/web/CmdTrgtController.java b/src/main/java/kcc/ve/aplct/cmdTrgt/web/CmdTrgtController.java index ad6aa867..368e6412 100644 --- a/src/main/java/kcc/ve/aplct/cmdTrgt/web/CmdTrgtController.java +++ b/src/main/java/kcc/ve/aplct/cmdTrgt/web/CmdTrgtController.java @@ -34,8 +34,8 @@ import kcc.let.uss.olp.qri.service.QustnrRespondInfoVO; import kcc.let.utl.fcc.service.EgovCryptoUtil; import kcc.let.utl.fcc.service.ITNotiUtil; import kcc.ve.aplct.adultVisitEdu.eduAplct.service.EduAplctAdultService; +import kcc.ve.aplct.cmdTrgt.service.CmdTrgtService; import kcc.ve.aplct.fndtnEnhanceTrn.service.FndtnEnhanceTrnService; -import kcc.ve.aplct.sspnIdtmt.service.SspnIdtmtService; import kcc.ve.cmm.VeConstants; import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrAsgnmVO; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctOnlnService; @@ -50,6 +50,7 @@ import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsMIXService; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsOnlnCntntService; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService; import kcc.ve.instr.tngrVisitEdu.rprtInfo.service.VEEduRprtVO; +import kcc.ve.oprtn.cmdTrgt.trgtMng.service.CmdTrgtMngVO; import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngService; import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngVO; @@ -165,9 +166,12 @@ public class CmdTrgtController { private CmmUseDAO cmmUseDAO; //온라인콘텐츠과정 관리 - @Resource(name = "sspnIdtmtService") - private SspnIdtmtService sspnIdtmtService; - + //@Resource(name = "sspnIdtmtService") + //private SspnIdtmtService sspnIdtmtService; + + @Resource(name = "cmdTrgtService") + private CmdTrgtService cmdTrgtService; + @Resource(name = "NotifyManageService") private NotifyManageService notifyManageService; @@ -365,6 +369,10 @@ public class CmdTrgtController { , HttpServletRequest request ) throws Exception { + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + model.addAttribute("loginVO", loginVO); + System.out.println("s_actionaaaaaaaaaaa"); + String s_action = request.getParameter("action"); //insert or select System.out.println("s_action"); System.out.println(s_action); @@ -529,7 +537,7 @@ public class CmdTrgtController { vEEduAplctReqVO.setLctrDivCd(vEPrcsDetailVODetail.getLctrDivCd()); vEEduAplctReqVO.setPrcsAplctPrdOrd(vEPrcsDetailVODetail.getPrcsAplctPrdOrd()); vEEduAplctReqVO.setLctrDivCd(p_lctr_div_cd); - VEEduAplctVO vEEduAplctVO = sspnIdtmtService.findByAprvlCd(vEEduAplctReqVO); + VEEduAplctVO vEEduAplctVO = cmdTrgtService.findByAprvlCd(vEEduAplctReqVO); // VO를 먼저 null 체크 후 진행해야 에러안남 // vEEduAplctVO != null && if(vEEduAplctVO != null && StringUtils.isNotEmpty(vEEduAplctVO.getAprvlCd())) { @@ -685,7 +693,7 @@ public class CmdTrgtController { //암호화 vEEduAplctVO = egovCryptoUtil.encryptVEEduAplctVOInfo(vEEduAplctVO); vEEduAplctVO.setRndsOrd(vEPrcsDetailVO.getSspnIdtmtTrgtOrd()); //2024-02-07 추가 신청서 정보에 대상자 정보를 넣어야 추후 구분이 가능해서 추가함 - sspnIdtmtService.insertVeEduAplct(vEEduAplctVO); + cmdTrgtService.insertVeEduAplct(vEEduAplctVO); CndtnTrgtMngVO cndtnTrgtMngVO = new CndtnTrgtMngVO(); @@ -920,7 +928,7 @@ public class CmdTrgtController { String result = "false"; try { - sspnIdtmtService.updateAprvlCd(vEEduAplctVO); + cmdTrgtService.updateAprvlCd(vEEduAplctVO); result = "success"; } catch (Exception e) { @@ -940,7 +948,7 @@ public class CmdTrgtController { */ @RequestMapping("/web/ve/aplct/cmdTrgt/userConfirmAjax.do") public ModelAndView userConfirmAjax( - @ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO + @ModelAttribute("cndtnTrgtInfoMngVO") CmdTrgtMngVO cndtnTrgtInfoMngVO , ModelMap model , HttpServletRequest request ) throws Exception { @@ -956,7 +964,7 @@ public class CmdTrgtController { return modelAndView; } - return sspnIdtmtService.checkSspnIdtmt(cndtnTrgtInfoMngVO); + return cmdTrgtService.checkSspnIdtmt(cndtnTrgtInfoMngVO); /* try { @@ -992,7 +1000,7 @@ public class CmdTrgtController { */ @RequestMapping("/web/ve/aplct/cmdTrgt/userNewConfirmAjax.do") public ModelAndView userNewConfirmAjax( - @ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO + @ModelAttribute("cndtnTrgtInfoMngVO") CmdTrgtMngVO cndtnTrgtInfoMngVO , ModelMap model , HttpServletRequest request ) throws Exception { @@ -1022,11 +1030,11 @@ public class CmdTrgtController { System.out.println(cndtnTrgtInfoMngVO.getTrgtNm()); */ - cndtnTrgtInfoMngVO = egovCryptoUtil.encryptCndtnTrgtMngVOInfo(cndtnTrgtInfoMngVO); + cndtnTrgtInfoMngVO = egovCryptoUtil.encryptCmdTrgtMngVOInfo(cndtnTrgtInfoMngVO); //return modelAndView; - return sspnIdtmtService.checkSspnIdtmt(cndtnTrgtInfoMngVO); + return cmdTrgtService.checkSspnIdtmt(cndtnTrgtInfoMngVO); } diff --git a/src/main/java/kcc/ve/aplct/sspnIdtmt/web/SspnIdtmtController.java b/src/main/java/kcc/ve/aplct/sspnIdtmt/web/SspnIdtmtController.java index 31a6a1e9..24467a67 100644 --- a/src/main/java/kcc/ve/aplct/sspnIdtmt/web/SspnIdtmtController.java +++ b/src/main/java/kcc/ve/aplct/sspnIdtmt/web/SspnIdtmtController.java @@ -366,12 +366,6 @@ public class SspnIdtmtController { ) throws Exception { LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - System.out.println("loginVO.getMembName()"); - System.out.println(loginVO.getMembName()); - System.out.println(loginVO.getMembBirth()); - System.out.println(loginVO.getMembCelnum()); - System.out.println(loginVO.getSexCode()); - model.addAttribute("loginVO", loginVO); String s_action = request.getParameter("action"); //insert or select diff --git a/src/main/webapp/WEB-INF/jsp/web/ve/aplct/cmdTrgt/popup/eduAplctPopList.jsp b/src/main/webapp/WEB-INF/jsp/web/ve/aplct/cmdTrgt/popup/eduAplctPopList.jsp new file mode 100644 index 00000000..64a1056c --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/web/ve/aplct/cmdTrgt/popup/eduAplctPopList.jsp @@ -0,0 +1,624 @@ +<%-- + + Class Name : eduAplctPopList.jsp + Description : 신청팝업 + Modification Information + + 1.강의 종류(청소년, 성인 ... VE0011) 및 설문 종류 (10-기본, 20-신청자, 30-강사) 및 상태(등록, 완료) 에 맞는 설문 레이어 팝업을 만든다. + + 수정일 수정자 수정내용 + ------- -------- --------------------------- + 2021.12.02 조용준 내용 + + author : 조용준 + since : 2021.12.02 + +--%> +<%@ 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="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%> + + + + +
+ + + + +
+ +
+ + + + + + + + +