Compare commits
15 Commits
master
...
fix/restor
| Author | SHA1 | Date | |
|---|---|---|---|
| f0492581c8 | |||
| 3c59329a8b | |||
| 5e18163bd3 | |||
| 5087d7b50d | |||
| beb276acac | |||
| ff1a3089bf | |||
|
|
80ececb39e | ||
|
|
10298022fc | ||
|
|
517c2195eb | ||
|
|
73017623c1 | ||
|
|
a463da77da | ||
|
|
d3fdc340f0 | ||
|
|
c2d918f022 | ||
|
|
1a67655492 | ||
|
|
c8ad04a401 |
11
.gitignore
vendored
11
.gitignore
vendored
@ -201,14 +201,3 @@ rebel.xml
|
||||
|
||||
#Mac OS
|
||||
.DS_Store
|
||||
/src/main/java/kcc/web/.editorconfig
|
||||
/.smarttomcat/ipedu/conf/catalina.policy
|
||||
/.smarttomcat/ipedu/conf/catalina.properties
|
||||
/.smarttomcat/ipedu/conf/context.xml
|
||||
/.smarttomcat/ipedu/conf/jaspic-providers.xml
|
||||
/.smarttomcat/ipedu/conf/jaspic-providers.xsd
|
||||
/.smarttomcat/ipedu/conf/logging.properties
|
||||
/.smarttomcat/ipedu/conf/server.xml
|
||||
/.smarttomcat/ipedu/conf/tomcat-users.xml
|
||||
/.smarttomcat/ipedu/conf/tomcat-users.xsd
|
||||
/.smarttomcat/ipedu/conf/web.xml
|
||||
|
||||
47
pom.xml
47
pom.xml
@ -339,6 +339,24 @@
|
||||
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/simplecaptcha-1.2.1_exp.jar</systemPath>
|
||||
</dependency>
|
||||
|
||||
<!-- sci 평가 siren24. 본인인증 -->
|
||||
<dependency>
|
||||
<groupId>sciSecuPCC</groupId>
|
||||
<artifactId>sciSecuPCC</artifactId>
|
||||
<version>2</version>
|
||||
<scope>system</scope>
|
||||
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/sciSecuPCC.jar</systemPath>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>sciSecuPIN_v3</groupId>
|
||||
<artifactId>sciSecuPIN_v3</artifactId>
|
||||
<version>2</version>
|
||||
<scope>system</scope>
|
||||
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/sciSecuIPIN_v3.jar</systemPath>
|
||||
</dependency>
|
||||
|
||||
|
||||
<!-- magicline 공동인증서 시작 -->
|
||||
<dependency>
|
||||
<groupId>jcaos</groupId>
|
||||
@ -542,21 +560,8 @@
|
||||
<artifactId>spring-security-crypto</artifactId>
|
||||
<version>4.2.13.RELEASE</version> <!-- 프로젝트와 호환되는 4.x 라인 -->
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<version>1.18.36</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- sci본인인증 v3 -->
|
||||
<dependency>
|
||||
<groupId>com.sci.v3</groupId>
|
||||
<artifactId>sciSecuPCC_v3</artifactId>
|
||||
<version>v3</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<defaultGoal>install</defaultGoal>
|
||||
@ -654,20 +659,6 @@
|
||||
<artifactId>maven-javadoc-plugin</artifactId>
|
||||
<version>2.9.1</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.zeroturnaround</groupId>
|
||||
<artifactId>jrebel-maven-plugin</artifactId>
|
||||
<version>1.2.1</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>generate-rebel-xml</id>
|
||||
<phase>process-resources</phase>
|
||||
<goals>
|
||||
<goal>generate</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<reporting>
|
||||
|
||||
@ -60,7 +60,7 @@ public class LoginVO implements Serializable{
|
||||
private String siteNm;
|
||||
|
||||
private String authority;
|
||||
|
||||
|
||||
/** 로그인 후 리턴 url */
|
||||
private String beforeUrl;
|
||||
/** 회원탈퇴 사유 */
|
||||
|
||||
@ -56,6 +56,9 @@ public class EgovFileDownloadController {
|
||||
@Resource(name = "EgovFileMngService")
|
||||
private EgovFileMngService fileService;
|
||||
|
||||
@Value("#{globalSettings['Globals.pdf.makepath.out']}")
|
||||
private String pdfMakepathOut; //c:/usr/local/tomcat/file/sht/out
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(EgovFileDownloadController.class);
|
||||
|
||||
/**
|
||||
@ -228,7 +231,7 @@ public class EgovFileDownloadController {
|
||||
String s_path = (String) commandMap.get("path");
|
||||
String s_file = (String) commandMap.get("file");
|
||||
|
||||
File uFile = new File("/usr/local/tomcat/file/sht/out/" + s_path, s_file);
|
||||
File uFile = new File(pdfMakepathOut + "/" + s_path, s_file);
|
||||
|
||||
String mimetype = "application/x-msdownload";
|
||||
|
||||
|
||||
@ -111,8 +111,6 @@ public class QustnrCommonUtil {
|
||||
, String p_eduChasiOrd
|
||||
, VEALettnQestnrMIXService p_vEALettnQestnrMIXService
|
||||
)throws Exception{
|
||||
//답변결과 정보
|
||||
System.out.println("===========!답변결과정보!===========");
|
||||
VEAQestnrVO vEAQestnrVO = new VEAQestnrVO();
|
||||
vEAQestnrVO.setSiteId(p_siteId); //청소년
|
||||
vEAQestnrVO.setSiteIdCd(p_siteIdCd); //10-기본설문, 20-신청자설문, 30-강사설문
|
||||
@ -127,41 +125,9 @@ public class QustnrCommonUtil {
|
||||
p_model.addAttribute("chasiSrvyList",chasiSrvyList);
|
||||
}
|
||||
|
||||
List<VEAQestnrVO> chasiSrvyAllList = p_vEALettnQestnrMIXService.selectDetail_MIX_LQI_03_ALL(vEAQestnrVO);
|
||||
|
||||
if(chasiSrvyAllList.size() > 0) {
|
||||
p_model.addAttribute("chasiSrvyAllList",chasiSrvyAllList);
|
||||
}
|
||||
|
||||
return p_model;
|
||||
}
|
||||
|
||||
public ModelMap _chasiSrvyItemList(
|
||||
ModelMap p_model
|
||||
, String p_siteId
|
||||
, String p_siteIdCd
|
||||
, String p_eduAplctOrd
|
||||
, String p_eduChasiOrd
|
||||
, VEALettnQestnrMIXService p_vEALettnQestnrMIXService
|
||||
)throws Exception{
|
||||
//항목 정보
|
||||
VEAQestnrVO vEAQestnrVO = new VEAQestnrVO();
|
||||
vEAQestnrVO.setSiteId(p_siteId); //청소년
|
||||
vEAQestnrVO.setSiteIdCd(p_siteIdCd); //10-기본설문, 20-신청자설문, 30-강사설문
|
||||
vEAQestnrVO.setEduAplctOrd(p_eduAplctOrd);
|
||||
vEAQestnrVO.setEduChasiOrd(p_eduChasiOrd);
|
||||
vEAQestnrVO = p_vEALettnQestnrMIXService.selectDetail_MIX_LQI_02(vEAQestnrVO);
|
||||
|
||||
System.out.println("===========!항목별 문항 정보!===========");
|
||||
List<VEAQestnrVO> chasiSrvyList = p_vEALettnQestnrMIXService.selectDetail_MIX_LQI_05(vEAQestnrVO);
|
||||
|
||||
if(chasiSrvyList.size() > 0) {
|
||||
p_model.addAttribute("chasiSrvyItemList",chasiSrvyList);
|
||||
}
|
||||
|
||||
return p_model;
|
||||
}
|
||||
|
||||
public ModelMap _chasiSrvyList_TA(
|
||||
ModelMap p_model
|
||||
, String p_siteId
|
||||
@ -197,7 +163,6 @@ public class QustnrCommonUtil {
|
||||
)throws Exception{
|
||||
|
||||
//설문지 정보
|
||||
System.out.println("===========!개별만족도정보!===========");
|
||||
System.out.println("===========!설문지정보!===========");
|
||||
VEAQestnrVO vEAQestnrVO = new VEAQestnrVO();
|
||||
vEAQestnrVO.setSiteId(p_siteId); //청소년
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,26 @@
|
||||
package kcc.kccadr.xxx.web;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.Cookie;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.ModelMap;
|
||||
import org.springframework.validation.BindingResult;
|
||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
||||
|
||||
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
|
||||
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
|
||||
import kcc.com.cmm.CmmUtil;
|
||||
@ -10,43 +30,18 @@ import kcc.com.cmm.service.EgovCmmUseService;
|
||||
import kcc.com.cmm.service.EgovFileMngService;
|
||||
import kcc.com.cmm.service.EgovFileMngUtil;
|
||||
import kcc.com.cmm.service.FileVO;
|
||||
import kcc.com.utl.user.service.CheckLoginUtil;
|
||||
import kcc.kccadr.xxx.service.XxxService;
|
||||
import kcc.kccadr.xxx.service.XxxVO;
|
||||
import kcc.ve.cmm.VeConstants;
|
||||
import kcc.ve.cmm.crt.CertPhoneRequestUtill;
|
||||
import kcc.ve.cmm.sendAt.SendAtUtill;
|
||||
import kcc.ve.cmm.sendAt.SendService;
|
||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService;
|
||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.http.*;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.ModelMap;
|
||||
import org.springframework.validation.BindingResult;
|
||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
|
||||
/**
|
||||
* 대국민(사용자)
|
||||
* XXX에 관한 controller 클래스를 정의한다.
|
||||
*
|
||||
* @author 이준호
|
||||
* @since 2021.08.09
|
||||
* @version 1.0
|
||||
* @see <pre>
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* << 개정이력(Modification Information) >>
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
@ -54,7 +49,6 @@ import java.util.regex.Pattern;
|
||||
* 2021.08.09 이준호 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
* @since 2021.08.09
|
||||
*/
|
||||
@Controller
|
||||
public class XxxWebController {
|
||||
@ -72,57 +66,36 @@ public class XxxWebController {
|
||||
// eGov 공통코드
|
||||
@Resource(name = "EgovCmmUseService")
|
||||
private EgovCmmUseService cmmUseService;
|
||||
|
||||
|
||||
// global 프로퍼티
|
||||
@Resource(name = "globalSettings")
|
||||
@Resource(name="globalSettings")
|
||||
protected Properties propertiesService;
|
||||
|
||||
|
||||
//첨부파일 경로, realPath 설정
|
||||
@Resource(name = "EgovFileMngUtil")
|
||||
@Resource(name="EgovFileMngUtil")
|
||||
private EgovFileMngUtil fileUtil;
|
||||
|
||||
|
||||
// 첨부파일 정보
|
||||
@Resource(name = "EgovFileMngService")
|
||||
private EgovFileMngService fileMngService;
|
||||
|
||||
// 첨부파일 정보
|
||||
@Resource(name = "certPhoneRequestUtill")
|
||||
private CertPhoneRequestUtill certPhoneRequestUtill;
|
||||
|
||||
//로그인 체크 util
|
||||
@Resource(name = "checkLoginUtil")
|
||||
private CheckLoginUtil checkLoginUtil;
|
||||
|
||||
@Resource(name = "SendService")
|
||||
private SendService sendService;
|
||||
|
||||
//과정차시 관리
|
||||
@Resource(name = "vEPrcsAplctPrdService")
|
||||
private VEPrcsAplctPrdService vEPrcsAplctPrdService;
|
||||
|
||||
|
||||
//과정차시 관리
|
||||
@Resource(name = "sendAtUtill")
|
||||
private SendAtUtill sendAtUtill;
|
||||
|
||||
|
||||
@Resource(name="EgovFileMngService")
|
||||
private EgovFileMngService fileMngService;
|
||||
|
||||
/**
|
||||
* XXX 목록 화면
|
||||
*/
|
||||
@RequestMapping("/web/kccadr/xxx/xxxList.do")
|
||||
public String xxxList( @ModelAttribute("searchVO") XxxVO xxxVO, ModelMap model ) throws Exception {
|
||||
public String xxxList(@ModelAttribute("searchVO") XxxVO xxxVO, ModelMap model) throws Exception {
|
||||
|
||||
LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser(); //로그인 정보
|
||||
model.addAttribute("user", user);
|
||||
|
||||
|
||||
List<XxxVO> xxxList = xxxService.selectXxxList(xxxVO); // 목록 조회
|
||||
|
||||
|
||||
// 페이징 처리 객체
|
||||
PaginationInfo paginationInfo = CmmUtil.getPageing(xxxVO, xxxVO.getPageUnit());
|
||||
paginationInfo.setTotalRecordCount(xxxList.size() > 0 ? xxxList.get(0).getTotCnt() : 0);
|
||||
|
||||
|
||||
//최초조회시 최신것 조회List
|
||||
if("".equals(xxxVO.getSearchSortCnd())) {
|
||||
if("".equals(xxxVO.getSearchSortCnd())){
|
||||
xxxVO.setSearchSortCnd("xxxId");
|
||||
xxxVO.setSearchSortOrd("desc");
|
||||
}
|
||||
@ -140,7 +113,7 @@ public class XxxWebController {
|
||||
* XXX 등록화면
|
||||
*/
|
||||
@RequestMapping("/web/kccadr/xxx/xxxRegist.do")
|
||||
public String xxxRegist( @ModelAttribute("xxxVO") XxxVO xxxVO, ModelMap model ) throws Exception {
|
||||
public String xxxRegist(@ModelAttribute("xxxVO") XxxVO xxxVO, ModelMap model) throws Exception {
|
||||
|
||||
return "/web/kccadr/xxx/xxxRegist";
|
||||
}
|
||||
@ -149,42 +122,42 @@ public class XxxWebController {
|
||||
* XXX 등록 처리
|
||||
*/
|
||||
@RequestMapping("/web/kccadr/xxx/insertXxx.do")
|
||||
public String insertXxx( @ModelAttribute("xxxVO") XxxVO xxxVO, ModelMap mode, RedirectAttributes redirectAttributes ) throws Exception {
|
||||
public String insertXxx(@ModelAttribute("xxxVO") XxxVO xxxVO, ModelMap mode, RedirectAttributes redirectAttributes) throws Exception {
|
||||
|
||||
xxxService.insertXxx(xxxVO); // 등록
|
||||
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.insert")); // 공통메세지
|
||||
|
||||
return "redirect:/web/kccadr/xxx/xxxList.do";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* XXX 등록 Ajax
|
||||
*/
|
||||
@RequestMapping(value = { "/web/kccadr/xxx/insertXxxAjax.do" })
|
||||
public ModelAndView insertXxxAjax( final MultipartHttpServletRequest multiRequest
|
||||
* XXX 등록 Ajax
|
||||
*/
|
||||
@RequestMapping(value = {"/web/kccadr/xxx/insertXxxAjax.do"})
|
||||
public ModelAndView insertXxxAjax(final MultipartHttpServletRequest multiRequest
|
||||
, XxxVO xxxVO
|
||||
, RedirectAttributes redirectAttributes
|
||||
, HttpServletRequest request ) throws Exception {
|
||||
|
||||
, HttpServletRequest request) throws Exception {
|
||||
|
||||
LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
|
||||
|
||||
|
||||
ModelAndView modelAndView = new ModelAndView();
|
||||
modelAndView.setViewName("jsonView");
|
||||
|
||||
|
||||
String atchFileId = "";
|
||||
final Map<String, MultipartFile> files = multiRequest.getFileMap();
|
||||
if(!files.isEmpty()) {
|
||||
if (!files.isEmpty()) {
|
||||
//XXX_로 첨부파일 네이밍
|
||||
List<FileVO> result = fileUtil.parseFileInf(files, "XXX_", 0, "", "", "");
|
||||
atchFileId = fileMngService.insertFileInfs(result);
|
||||
//첨부파일Id(atchFileId)를 해당 VO atchFileId변수에 저장
|
||||
xxxVO.setAtchFileId(atchFileId);
|
||||
}
|
||||
|
||||
|
||||
xxxVO.setFrstRegisterId(user.getId());
|
||||
//게시글 등록 서비스
|
||||
xxxService.insertXxx(xxxVO);
|
||||
|
||||
|
||||
modelAndView.addObject("result", "success");
|
||||
return modelAndView;
|
||||
}
|
||||
@ -193,7 +166,7 @@ public class XxxWebController {
|
||||
* XXX 상세화면
|
||||
*/
|
||||
@RequestMapping("/web/kccadr/xxx/xxxDetail.do")
|
||||
public String xxxDetail( @ModelAttribute("xxxVO") XxxVO xxxVO, ModelMap model ) throws Exception {
|
||||
public String xxxDetail(@ModelAttribute("xxxVO") XxxVO xxxVO, ModelMap model) throws Exception {
|
||||
|
||||
XxxVO result = xxxService.selectXxxDetail(xxxVO); // 상세 조회
|
||||
model.addAttribute("result", result);
|
||||
@ -205,7 +178,7 @@ public class XxxWebController {
|
||||
* XXX 수정화면
|
||||
*/
|
||||
@RequestMapping("/web/kccadr/xxx/xxxModify.do")
|
||||
public String xxxModify( @ModelAttribute("xxxVO") XxxVO xxxVO, ModelMap model ) throws Exception {
|
||||
public String xxxModify(@ModelAttribute("xxxVO") XxxVO xxxVO, ModelMap model) throws Exception {
|
||||
|
||||
XxxVO result = xxxService.selectXxxDetail(xxxVO); // 상세 조회
|
||||
model.addAttribute("result", result);
|
||||
@ -217,34 +190,34 @@ public class XxxWebController {
|
||||
* XXX 수정 처리
|
||||
*/
|
||||
@RequestMapping("/web/kccadr/xxx/updateXxx.do")
|
||||
public String updateXxx( @ModelAttribute("xxxVO") XxxVO xxxVO, ModelMap mode, RedirectAttributes redirectAttributes ) throws Exception {
|
||||
|
||||
public String updateXxx(@ModelAttribute("xxxVO") XxxVO xxxVO, ModelMap mode, RedirectAttributes redirectAttributes) throws Exception {
|
||||
|
||||
xxxService.updateXxx(xxxVO); // 수정
|
||||
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.update")); // 공통메세지
|
||||
|
||||
return "redirect:/web/kccadr/xxx/xxxDetail.do";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* xxx 수정 Ajax
|
||||
*/
|
||||
@RequestMapping(value = { "/web/kccadr/xxx/updateXxxAjax.do" })
|
||||
public ModelAndView updateXxxAjax( final MultipartHttpServletRequest multiRequest
|
||||
* xxx 수정 Ajax
|
||||
*/
|
||||
@RequestMapping(value = {"/web/kccadr/xxx/updateXxxAjax.do"})
|
||||
public ModelAndView updateXxxAjax(final MultipartHttpServletRequest multiRequest
|
||||
, XxxVO xxxVO
|
||||
, RedirectAttributes redirectAttributes
|
||||
, HttpServletRequest request ) throws Exception {
|
||||
|
||||
, HttpServletRequest request) throws Exception {
|
||||
|
||||
ModelAndView modelAndView = new ModelAndView();
|
||||
modelAndView.setViewName("jsonView");
|
||||
|
||||
|
||||
String atchFileId = "";
|
||||
final Map<String, MultipartFile> files = multiRequest.getFileMap();
|
||||
|
||||
if(!files.isEmpty()) {
|
||||
if("".equals(atchFileId)) {
|
||||
|
||||
if (!files.isEmpty()) {
|
||||
if ("".equals(atchFileId)) {
|
||||
//XXX_로 첨부파일 네이밍
|
||||
List<FileVO> result = fileUtil.parseFileInf(files, "XXX_", 0, atchFileId, "", "");
|
||||
|
||||
|
||||
atchFileId = fileMngService.insertFileInfs(result);
|
||||
//첨부파일Id(atchFileId)를 해당 VO atchFileId변수에 저장
|
||||
xxxVO.setAtchFileId(atchFileId);
|
||||
@ -253,13 +226,13 @@ public class XxxWebController {
|
||||
fvo.setAtchFileId(atchFileId);
|
||||
int cnt = fileMngService.getMaxFileSN(fvo);
|
||||
List<FileVO> result = fileUtil.parseFileInf(files, "XXX_", cnt, atchFileId, "", "");
|
||||
|
||||
|
||||
fileMngService.updateFileInfs(result);
|
||||
}
|
||||
}
|
||||
//게시글 수정 서비스
|
||||
xxxService.updateXxx(xxxVO);
|
||||
|
||||
|
||||
modelAndView.addObject("result", "success");
|
||||
return modelAndView;
|
||||
}
|
||||
@ -268,29 +241,29 @@ public class XxxWebController {
|
||||
* XXX 삭제 처리
|
||||
*/
|
||||
@RequestMapping("/web/kccadr/xxx/deleteXxx.do")
|
||||
public String deleteXxx( @ModelAttribute("xxxVO") XxxVO xxxVO, ModelMap mode, RedirectAttributes redirectAttributes ) throws Exception {
|
||||
public String deleteXxx(@ModelAttribute("xxxVO") XxxVO xxxVO, ModelMap mode, RedirectAttributes redirectAttributes) throws Exception {
|
||||
|
||||
xxxService.deleteXxx(xxxVO); // 삭제
|
||||
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.delete")); // 공통메세지
|
||||
|
||||
|
||||
return "redirect:/web/kccadr/xxx/xxxList.do";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* XXX 삭제 처리(delete가 아닌 useYn컬럼을 상태값으로 'N'처리할때)
|
||||
* XXX 삭제 처리(delete가 아닌 useYn컬럼을 상태값으로 'N'처리할때)
|
||||
*/
|
||||
@RequestMapping("/web/kccadr/xxx/deleteXxx2.do")
|
||||
public String deleteXxx2( HttpServletRequest request, @ModelAttribute("searchVO") XxxVO xxxVO,
|
||||
ModelMap model, RedirectAttributes redirectAttributes ) throws Exception {
|
||||
public String deleteXxx2(HttpServletRequest request, @ModelAttribute("searchVO") XxxVO xxxVO,
|
||||
ModelMap model, RedirectAttributes redirectAttributes)throws Exception {
|
||||
|
||||
LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
|
||||
|
||||
xxxVO.setLastUpdusrId(user.getUniqId());
|
||||
xxxVO.setLastUpdusrNm(user.getName()); // 변경이력에 사용
|
||||
xxxVO.setLastUpdusrNm(user.getName()); // 변경이력에 사용
|
||||
|
||||
xxxService.deleteXxx2(xxxVO);
|
||||
xxxVO.setPageIndex(1); //삭제후 첫페이지로 로딩
|
||||
|
||||
|
||||
redirectAttributes.addAttribute("pageIndex", xxxVO.getPageIndex());
|
||||
redirectAttributes.addAttribute("searchCnd", xxxVO.getSearchCnd());
|
||||
redirectAttributes.addAttribute("searchWrd", xxxVO.getSearchWrd());
|
||||
@ -298,13 +271,15 @@ public class XxxWebController {
|
||||
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.useN"));
|
||||
return "redirect:/web/kccadr/xxx/xxxList.do";
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* XXX 팝업화면
|
||||
*/
|
||||
@RequestMapping("/web/kccadr/xxx/xxxDetailPop.do")
|
||||
public String xxxDetailPop( @ModelAttribute("xxxVO") XxxVO xxxVO, ModelMap model ) throws Exception {
|
||||
public String xxxDetailPop(@ModelAttribute("xxxVO") XxxVO xxxVO, ModelMap model) throws Exception {
|
||||
|
||||
XxxVO result = xxxService.selectXxxDetail(xxxVO); // 상세 조회
|
||||
model.addAttribute("result", result);
|
||||
@ -316,44 +291,21 @@ public class XxxWebController {
|
||||
* XXX YYYY(처리) Ajax 처리
|
||||
*/
|
||||
@RequestMapping("/web/kccadr/xxx/xxxYyyyAjax.do")
|
||||
public ModelAndView xxxYyyyAjax( @ModelAttribute("xxxVO") XxxVO xxxVO, BindingResult bindingResult ) throws Exception {
|
||||
|
||||
public ModelAndView xxxYyyyAjax(@ModelAttribute("xxxVO") XxxVO xxxVO, BindingResult bindingResult) throws Exception {
|
||||
|
||||
String result = "success";
|
||||
ModelAndView modelAndView = new ModelAndView();
|
||||
modelAndView.setViewName("jsonView");
|
||||
|
||||
|
||||
// YYYY 처리 로직
|
||||
|
||||
|
||||
// YYYY 처리 상태 체크
|
||||
if(1 == 0) {
|
||||
if (1 == 0) {
|
||||
result = "fail";
|
||||
}
|
||||
|
||||
|
||||
modelAndView.addObject("result", result);
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
/**
|
||||
* XXX YYYY(처리) Ajax 처리
|
||||
*/
|
||||
@RequestMapping("/web/kccadr/xxx/atTest.do")
|
||||
public String atTest() throws Exception {
|
||||
|
||||
// Map<String, String> chihwan = new HashMap<>();
|
||||
// chihwan.put("content", "귀하의 상표권 교육조건부 기소유예 교육 신청이 완료되었습니다.\n");
|
||||
// chihwan.put("eduDay", "2025.11.28 (금) 9시~18시");
|
||||
// chihwan.put("eduRegDay", "(교육등록:8:50~9시)");
|
||||
// chihwan.put("eduPlace", "서울 강남구 테헤란로 131, 한국지식재산센터 지하 1층 훈민정음 홀 (역삼역 4번출구 인근)");
|
||||
//
|
||||
// sendService.sendAt("01030266269", "TEMPLATE_EDU_SUBMIT", chihwan);
|
||||
|
||||
// sendService.sendSms("01030266269", "테스트문자제목", "테스트 내용", "SMS");
|
||||
|
||||
Map<String, String> chihwan = sendAtUtill.chihwanSet(VeConstants.LCTR_DIV_CD_70, "prcsAplctPrd_0000240");
|
||||
|
||||
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -39,6 +39,9 @@ public class pdfViewerSampleController {
|
||||
/** 로그설정 */
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(pdfViewerSampleController.class);
|
||||
|
||||
@Value("#{globalSettings['Globals.pdf.webpath']}")
|
||||
private String pdfWebpath; // /pdf/out/
|
||||
|
||||
@Resource(name="adjstIncidentService")
|
||||
private AdjstIncidentService adjstIncidentService;
|
||||
|
||||
@ -80,11 +83,11 @@ public class pdfViewerSampleController {
|
||||
|
||||
//compare session & register_userid
|
||||
if (loginVO.getUniqId().equals(master.getFrstRegisterId())) {
|
||||
model.addAttribute("file", "/pdf/out/" + s_webFile + "/pdf/"+s_time_dir+"/"+s_bookmark_name);
|
||||
model.addAttribute("file", pdfWebpath + s_webFile + "/pdf/"+s_time_dir+"/"+s_bookmark_name);
|
||||
|
||||
}else {
|
||||
//model.addAttribute("file", "");
|
||||
model.addAttribute("file", "/pdf/out/" + s_webFile + "/pdf/"+s_time_dir+"/"+s_bookmark_name);
|
||||
model.addAttribute("file", pdfWebpath + s_webFile + "/pdf/"+s_time_dir+"/"+s_bookmark_name);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -1,31 +1,29 @@
|
||||
package kcc.let.cop.bbs.web;
|
||||
|
||||
import NiceID.Check.CPClient;
|
||||
import com.penta.scpdb.ScpDbAgent;
|
||||
import egovframework.rte.fdl.property.EgovPropertyService;
|
||||
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
|
||||
import egovframework.rte.psl.dataaccess.util.EgovMap;
|
||||
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
|
||||
import kcc.com.cmm.*;
|
||||
import kcc.com.cmm.service.*;
|
||||
import kcc.com.cmm.util.StringUtil;
|
||||
import kcc.com.cmm.util.WebUtil;
|
||||
import kcc.com.uss.ion.cnf.service.ProhibitMngService;
|
||||
import kcc.com.uss.ion.cnf.service.WordFilterService;
|
||||
import kcc.com.uss.ion.cnf.service.WordFilterVO;
|
||||
import kcc.com.utl.fcc.service.EgovStringUtil;
|
||||
import kcc.com.utl.user.service.CheckLoginUtil;
|
||||
import kcc.let.cop.bbs.service.*;
|
||||
import kcc.let.sym.mnu.mpm.service.EgovMenuManageService;
|
||||
import kcc.let.sym.mnu.mpm.service.MenuManageVO;
|
||||
import kcc.let.sym.site.service.EgovSiteManagerService;
|
||||
import kcc.let.sym.site.service.SiteManagerVO;
|
||||
import kcc.let.uat.uia.service.SsoLoginVO;
|
||||
import kcc.let.utl.fcc.service.ITNotiUtil;
|
||||
import kcc.let.utl.sim.service.EgovClntInfo;
|
||||
import kcc.ve.cmm.VeConstants;
|
||||
import java.io.OutputStream;
|
||||
import java.security.SecureRandom;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import org.apache.commons.lang3.ArrayUtils;
|
||||
import org.apache.poi.ss.usermodel.*;
|
||||
import org.apache.poi.ss.usermodel.Cell;
|
||||
import org.apache.poi.ss.usermodel.CellStyle;
|
||||
import org.apache.poi.ss.usermodel.Font;
|
||||
import org.apache.poi.ss.usermodel.Row;
|
||||
import org.apache.poi.ss.usermodel.Sheet;
|
||||
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
|
||||
import org.jsoup.Jsoup;
|
||||
import org.jsoup.nodes.Document;
|
||||
@ -48,15 +46,47 @@ import org.springframework.web.servlet.ModelAndView;
|
||||
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
||||
import org.springmodules.validation.commons.DefaultBeanValidator;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.servlet.http.HttpSession;
|
||||
import java.io.OutputStream;
|
||||
import java.security.SecureRandom;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.Map.Entry;
|
||||
import com.penta.scpdb.ScpDbAgent;
|
||||
import com.sci.v2.pcc.secu.SciSecuManager;
|
||||
import com.sci.v2.pcc.secu.hmac.SciHmac;
|
||||
|
||||
import NiceID.Check.CPClient;
|
||||
import egovframework.rte.fdl.property.EgovPropertyService;
|
||||
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
|
||||
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;
|
||||
import kcc.com.cmm.EgovMultiPartEmail;
|
||||
import kcc.com.cmm.LoginVO;
|
||||
import kcc.com.cmm.ReadVO;
|
||||
import kcc.com.cmm.UserVO;
|
||||
import kcc.com.cmm.service.EgovCmmUseService;
|
||||
import kcc.com.cmm.service.EgovFileMngService;
|
||||
import kcc.com.cmm.service.EgovFileMngUtil;
|
||||
import kcc.com.cmm.service.FileVO;
|
||||
import kcc.com.cmm.service.ReadService;
|
||||
import kcc.com.cmm.util.StringUtil;
|
||||
import kcc.com.cmm.util.WebUtil;
|
||||
import kcc.com.uss.ion.cnf.service.ProhibitMngService;
|
||||
import kcc.com.uss.ion.cnf.service.WordFilterService;
|
||||
import kcc.com.uss.ion.cnf.service.WordFilterVO;
|
||||
import kcc.com.utl.fcc.service.EgovStringUtil;
|
||||
import kcc.let.cop.bbs.service.Board;
|
||||
import kcc.let.cop.bbs.service.BoardChgHst;
|
||||
import kcc.let.cop.bbs.service.BoardMaster;
|
||||
import kcc.let.cop.bbs.service.BoardMasterVO;
|
||||
import kcc.let.cop.bbs.service.BoardVO;
|
||||
import kcc.let.cop.bbs.service.EgovBBSAttributeManageService;
|
||||
import kcc.let.cop.bbs.service.EgovBBSManageService;
|
||||
import kcc.let.sym.mnu.mpm.service.EgovMenuManageService;
|
||||
import kcc.let.sym.mnu.mpm.service.MenuManageVO;
|
||||
import kcc.let.sym.site.service.EgovSiteManagerService;
|
||||
import kcc.let.sym.site.service.SiteManagerVO;
|
||||
import kcc.let.uat.uia.service.SsoLoginVO;
|
||||
import kcc.let.utl.fcc.service.ITNotiUtil;
|
||||
import kcc.let.utl.sim.service.EgovClntInfo;
|
||||
import kcc.ve.cmm.VeConstants;
|
||||
|
||||
/**
|
||||
* 게시물 관리를 위한 컨트롤러 클래스
|
||||
@ -133,10 +163,6 @@ public class EgovBBSManageController {
|
||||
//알림
|
||||
@Resource(name = "iTNotiUtil")
|
||||
private ITNotiUtil iTNotiUtil;
|
||||
|
||||
// 로그인 체크 util
|
||||
@Resource(name = "checkLoginUtil")
|
||||
private CheckLoginUtil checkLoginUtil;
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(EgovBBSManageController.class);
|
||||
|
||||
@ -1461,24 +1487,14 @@ public class EgovBBSManageController {
|
||||
BoardMasterVO brdMstrVO ,
|
||||
RedirectAttributes redirectAttributes ) throws Exception {
|
||||
|
||||
/*SsoLoginVO ssoLoginVO = new SsoLoginVO();
|
||||
SsoLoginVO ssoLoginVO = new SsoLoginVO();
|
||||
if(null != request.getSession().getAttribute("SSOLoginVO")) {
|
||||
ssoLoginVO = (SsoLoginVO) request.getSession().getAttribute("SSOLoginVO");
|
||||
boardVO.setNtcrId(ssoLoginVO.getMembId());
|
||||
boardVO.setNtcrNm(ssoLoginVO.getMembName());
|
||||
}else {
|
||||
return "redirect:/";
|
||||
}*/
|
||||
|
||||
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
|
||||
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
|
||||
|
||||
if (loginVO == null || ssoLoginVO == null) {
|
||||
//이전 url 처리(beforeSiteUrl)_이준호_220228추가
|
||||
return checkLoginUtil.getUserLoginPage(model, request); //로그인 정보가 없으면 로그인 페이지로 이동한다.
|
||||
}
|
||||
boardVO.setNtcrId(loginVO.getUniqId());
|
||||
boardVO.setNtcrNm(loginVO.getMembName());
|
||||
}
|
||||
|
||||
/*UserVO userVO = new UserVO();
|
||||
if(null != request.getSession().getAttribute("userVO")) { //세션체크
|
||||
@ -2239,7 +2255,7 @@ public class EgovBBSManageController {
|
||||
redirectAttributes.addAttribute("bbsId", boardVO.getBbsId());
|
||||
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.delete"));
|
||||
/*return "redirect:/web/cop/bbsWeb/selectBoardList.do";*/
|
||||
return "redirect:/web/cop/bbsWeb/selectBoardList.do";
|
||||
return "redirect:/web/cop/bbs/selectBoardList2024.do";
|
||||
}
|
||||
|
||||
/**
|
||||
@ -2310,21 +2326,21 @@ public class EgovBBSManageController {
|
||||
|
||||
request.getSession().setAttribute("reqNum", reqNum); // 결과값 복호화시 필요
|
||||
|
||||
// //01. 암호화 모듈 선언
|
||||
// SciSecuManager seed = new SciSecuManager();
|
||||
//
|
||||
// //02. 1차 암호화
|
||||
// String encStr = "";
|
||||
// String reqInfo = SELFAUTH_SITE_ID+"^"+SELFAUTH_SRV_NO+"^"+reqNum+"^"+certDate+"^"+certGb+"^"+addVar+"^"+exVar; // 데이터 암호화
|
||||
// encStr = seed.getEncPublic(reqInfo);
|
||||
//
|
||||
// //03. 위변조 검증 값 생성
|
||||
// String hmacMsg = SciHmac.HMacEncriptPublic(encStr);
|
||||
//
|
||||
// //03. 2차 암호화
|
||||
// reqInfo = seed.getEncPublic(encStr + "^" + hmacMsg + "^" + "0000000000000000"); //2차암호화
|
||||
//
|
||||
// request.getSession().setAttribute("reqInfo", reqInfo); // 본인확인 요청 정보
|
||||
//01. 암호화 모듈 선언
|
||||
SciSecuManager seed = new SciSecuManager();
|
||||
|
||||
//02. 1차 암호화
|
||||
String encStr = "";
|
||||
String reqInfo = SELFAUTH_SITE_ID+"^"+SELFAUTH_SRV_NO+"^"+reqNum+"^"+certDate+"^"+certGb+"^"+addVar+"^"+exVar; // 데이터 암호화
|
||||
encStr = seed.getEncPublic(reqInfo);
|
||||
|
||||
//03. 위변조 검증 값 생성
|
||||
String hmacMsg = SciHmac.HMacEncriptPublic(encStr);
|
||||
|
||||
//03. 2차 암호화
|
||||
reqInfo = seed.getEncPublic(encStr + "^" + hmacMsg + "^" + "0000000000000000"); //2차암호화
|
||||
|
||||
request.getSession().setAttribute("reqInfo", reqInfo); // 본인확인 요청 정보
|
||||
request.getSession().setAttribute("SITE_URL", SITE_URL); // 사이트 URL
|
||||
|
||||
return "web/cop/selfauth/selfauth";
|
||||
@ -2340,41 +2356,41 @@ public class EgovBBSManageController {
|
||||
@RequestMapping("/web/cop/selfauth/resultSeed.do")
|
||||
public String resultSeed(HttpServletRequest request, ModelMap model, RedirectAttributes redirectAttributes)throws Exception {
|
||||
|
||||
// String retInfo = request.getParameter("retInfo").trim();
|
||||
// String cookiereqNum = (String)request.getSession().getAttribute("reqNum");
|
||||
//
|
||||
// //복화화용 변수
|
||||
// String encPara = "";
|
||||
// String encMsg = "";
|
||||
// String msgChk = "N";
|
||||
//
|
||||
// // 1. 암호화 모듈 (jar) Loading
|
||||
// SciSecuManager sciSecuMg = new SciSecuManager();
|
||||
// //쿠키에서 생성한 값을 Key로 생성 한다.
|
||||
// retInfo = sciSecuMg.getDec(retInfo, cookiereqNum);
|
||||
//
|
||||
// // 2.1차 파싱---------------------------------------------------------------
|
||||
// String[] aRetInfo1 = retInfo.split("\\^");
|
||||
//
|
||||
// encPara = aRetInfo1[0]; //암호화된 통합 파라미터
|
||||
// encMsg = aRetInfo1[1]; //암호화된 통합 파라미터의 Hash값
|
||||
//
|
||||
// String encMsg2 = sciSecuMg.getMsg(encPara);
|
||||
// // 3.위/변조 검증 ---------------------------------------------------------------
|
||||
// if(encMsg2.equals(encMsg)) msgChk="Y";
|
||||
//
|
||||
// if(msgChk.equals("N")) {
|
||||
// // 비정상 접근 처리
|
||||
// }
|
||||
//
|
||||
// retInfo = sciSecuMg.getDec(encPara, cookiereqNum);
|
||||
//
|
||||
// String[] aRetInfo = retInfo.split("\\^");
|
||||
// String name = aRetInfo[0]; //성명
|
||||
String retInfo = request.getParameter("retInfo").trim();
|
||||
String cookiereqNum = (String)request.getSession().getAttribute("reqNum");
|
||||
|
||||
//복화화용 변수
|
||||
String encPara = "";
|
||||
String encMsg = "";
|
||||
String msgChk = "N";
|
||||
|
||||
// 1. 암호화 모듈 (jar) Loading
|
||||
SciSecuManager sciSecuMg = new SciSecuManager();
|
||||
//쿠키에서 생성한 값을 Key로 생성 한다.
|
||||
retInfo = sciSecuMg.getDec(retInfo, cookiereqNum);
|
||||
|
||||
// 2.1차 파싱---------------------------------------------------------------
|
||||
String[] aRetInfo1 = retInfo.split("\\^");
|
||||
|
||||
encPara = aRetInfo1[0]; //암호화된 통합 파라미터
|
||||
encMsg = aRetInfo1[1]; //암호화된 통합 파라미터의 Hash값
|
||||
|
||||
String encMsg2 = sciSecuMg.getMsg(encPara);
|
||||
// 3.위/변조 검증 ---------------------------------------------------------------
|
||||
if(encMsg2.equals(encMsg)) msgChk="Y";
|
||||
|
||||
if(msgChk.equals("N")) {
|
||||
// 비정상 접근 처리
|
||||
}
|
||||
|
||||
retInfo = sciSecuMg.getDec(encPara, cookiereqNum);
|
||||
|
||||
String[] aRetInfo = retInfo.split("\\^");
|
||||
String name = aRetInfo[0]; //성명
|
||||
// String birYMD = aRetInfo[1]; //생년월일
|
||||
// String sex = aRetInfo[2]; //성별
|
||||
// String fgnGbn = aRetInfo[3]; //내외국인 구분값
|
||||
// String di = aRetInfo[4]; //DI
|
||||
String di = aRetInfo[4]; //DI
|
||||
// String ci1 = aRetInfo[5]; //CI
|
||||
// String ci2 = aRetInfo[6]; //CI
|
||||
// String civersion = aRetInfo[7]; //CI Version
|
||||
@ -2388,8 +2404,8 @@ public class EgovBBSManageController {
|
||||
|
||||
// 사용자 세션생성
|
||||
UserVO userVO = new UserVO();
|
||||
// userVO.setName(name);
|
||||
// userVO.setMblDn(di);
|
||||
userVO.setName(name);
|
||||
userVO.setMblDn(di);
|
||||
request.getSession().setAttribute("userVO", userVO);
|
||||
|
||||
String url = (String)request.getSession().getAttribute("url");
|
||||
|
||||
@ -643,11 +643,10 @@ public class EgovMainController {
|
||||
SiteManagerVO siteManagerVO = new SiteManagerVO();
|
||||
siteManagerVO = egovSiteManagerService.selectSiteManagerVO(siteManagerVO);
|
||||
|
||||
int i_session_time = 10;//기본 시간 60분
|
||||
int i_session_time = 60;//기본 시간 60분
|
||||
|
||||
//운영관리-코드관리-ITN014-의 코드6의 코드설명 값을 기본 시간의 분으로 가져온다.
|
||||
try{
|
||||
i_session_time = Integer.parseInt(siteManagerVO.getSessionTimeCdText());
|
||||
// i_session_time = Integer.parseInt(siteManagerVO.getSessionTimeCdText());
|
||||
}catch(Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
package kcc.let.my.web;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
@ -20,14 +20,20 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
||||
|
||||
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.uss.notify.service.NotifyManageService;
|
||||
import kcc.let.uss.notify.service.NotifyManageVO;
|
||||
import kcc.let.utl.fcc.service.EgovCryptoUtil;
|
||||
import kcc.ve.aplct.fndtnEnhanceTrn.service.FndtnEnhanceTrnService;
|
||||
import kcc.ve.cmm.VeConstants;
|
||||
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
|
||||
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiVO;
|
||||
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduMIXService;
|
||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService;
|
||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
|
||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService;
|
||||
@ -54,263 +60,288 @@ import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService;
|
||||
@Controller
|
||||
public class MyPageController {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(MyPageController.class);
|
||||
|
||||
// 로그인 체크 util
|
||||
@Resource(name = "checkLoginUtil")
|
||||
private CheckLoginUtil checkLoginUtil;
|
||||
|
||||
// 교육과정신청
|
||||
@Resource(name = "vEEduMIXService")
|
||||
private VEEduMIXService vEEduMIXService;
|
||||
|
||||
//암복호화 유틸
|
||||
@Resource(name = "egovCryptoUtil")
|
||||
EgovCryptoUtil egovCryptoUtil;
|
||||
|
||||
//과정 관리
|
||||
@Resource(name = "vEPrcsService")
|
||||
private VEPrcsService vEPrcsService;
|
||||
|
||||
//과정차시 관리
|
||||
@Resource(name = "vEPrcsAplctPrdService")
|
||||
private VEPrcsAplctPrdService vEPrcsAplctPrdService;
|
||||
|
||||
//qna순번
|
||||
@Resource(name="prcsAplctPrdQnaOrdGnrService")
|
||||
private EgovIdGnrService prcsAplctPrdQnaOrdGnrService;
|
||||
|
||||
//과정 관리
|
||||
@Resource(name = "vEPrcsService")
|
||||
private VEPrcsService vEPrcsService;
|
||||
|
||||
//온라인콘텐츠과정 관리
|
||||
@Resource(name = "fndtnEnhanceTrnService")
|
||||
private FndtnEnhanceTrnService fndtnEnhanceTrnService;
|
||||
|
||||
@Resource(name = "NotifyManageService")
|
||||
private NotifyManageService notifyManageService;
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(MyPageController.class);
|
||||
|
||||
@RequestMapping(value = { "/web/my/myPageDashBoard.do" })
|
||||
public String selectFaqListWeb(HttpServletRequest request, @ModelAttribute("vEEduAplctVO") VEPrcsDetailVO vEPrcsDetailVO,
|
||||
public String selectFaqListWeb(HttpServletRequest request, @ModelAttribute("searchVO") BoardMasterVO boardMasterVO,
|
||||
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<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsAplctPrdService.findByAprvlQustnrAllList(vEPrcsDetailVO);
|
||||
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); // 권한에 따른 로그인 정보 가져오기
|
||||
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); // SSO 로그인 정보 가져오기
|
||||
|
||||
// 현재 날짜를 가져옵니다.
|
||||
LocalDate currentDate = LocalDate.now();
|
||||
// 날짜비교
|
||||
vEPrcsDetailVOList.stream().forEach(t->{
|
||||
t.setDateChk(this.dateChk(t, currentDate));
|
||||
});
|
||||
|
||||
Map<String, Object> countMap = new HashMap<>();
|
||||
|
||||
vEPrcsDetailVO.setSearchStatus("Completed");
|
||||
List<VEPrcsDetailVO> 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<String,Object> countMap = vEPrcsAplctPrdService.findAllSspnldtmtDashboardCnt(vEPrcsDetailVO);
|
||||
// 리스트 row마다 신청 확인하기
|
||||
//대상 리스트, 페이징 정보 전달
|
||||
model.addAttribute("list", vEPrcsDetailVOList);
|
||||
model.addAttribute("countMap", countMap);
|
||||
if (loginVO == null || ssoLoginVO == null) {
|
||||
return checkLoginUtil.getUserLoginPage(model, request); // 로그인 정보가 없으면 로그인 페이지로 이동한다.
|
||||
}
|
||||
|
||||
/*
|
||||
* 청소년 진행목록
|
||||
*/
|
||||
{
|
||||
/*진행/종료 건수에서 신청/완료 건수로 변경 > 진행/종료는 차시 기준. 신청은 신청 기준이라 조회쿼리 변경*/
|
||||
/*VEEduAplctVO vEEduAplctVO = new VEEduAplctVO();
|
||||
// 청소년
|
||||
|
||||
// 사용자 교육신청 차시 리스트
|
||||
VEEduChasiVO vEEduChasiVO = new VEEduChasiVO();
|
||||
vEEduChasiVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd());
|
||||
vEEduChasiVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_10);
|
||||
vEEduChasiVO.setAprvlCd(VeConstants.STATUS_CD_EDU_SELCT);
|
||||
vEEduChasiVO.setUserId(loginVO.getUniqId());
|
||||
vEEduChasiVO.setRecordCountPerPage(1000000);
|
||||
vEEduChasiVO.setFirstIndex(0);
|
||||
// List<VEEduChasiVO> vEEduChasiVOList =
|
||||
// vEEduMIXService.selectChasiList(vEEduChasiVO);
|
||||
|
||||
vEEduChasiVO.setPageIndex(vEEduAplctVO.getPageIndex());
|
||||
vEEduChasiVO.setPageUnit(vEEduAplctVO.getPageUnit());
|
||||
vEEduChasiVO.setPageSize(vEEduAplctVO.getPageSize());
|
||||
|
||||
List<VEEduChasiVO> tngrList = vEEduMIXService.selectChasiListMypage(vEEduChasiVO);
|
||||
|
||||
|
||||
Map<String, String> tngrMap = tngrList.stream()
|
||||
.collect(Collectors.partitioningBy(vo -> "30".equals(vo.getAsgnmAprvlCd()), Collectors.counting()))
|
||||
//.collect(Collectors.partitioningBy(vo -> "60".equals(vo.getAprvlCd()), Collectors.counting()))
|
||||
.entrySet().stream()
|
||||
.collect(Collectors.toMap(
|
||||
entry -> entry.getKey() ? "tngrEnd" : "tngrIng",
|
||||
entry -> entry.getValue().toString()
|
||||
)
|
||||
);
|
||||
|
||||
System.out.println(tngrMap);
|
||||
System.out.println(tngrMap);
|
||||
|
||||
|
||||
model.addAttribute("tngrMap", tngrMap);
|
||||
model.addAttribute("tngrList", tngrList);*/
|
||||
|
||||
//신청목록
|
||||
VEEduAplctVO vEEduAplctVO = new VEEduAplctVO();
|
||||
vEEduAplctVO.setUserId(loginVO.getUniqId());
|
||||
vEEduAplctVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_10);
|
||||
vEEduAplctVO.setRecordCountPerPage(10);
|
||||
vEEduAplctVO.setFirstIndex(0);
|
||||
List<VEEduAplctVO> vEEduAplctVOList = vEEduMIXService.selectPagingApplyList(vEEduAplctVO);
|
||||
int tngrAplctCnt = 0;
|
||||
if(vEEduAplctVOList != null && !vEEduAplctVOList.isEmpty()) {
|
||||
tngrAplctCnt = vEEduAplctVOList.get(0).getTotCnt();
|
||||
}
|
||||
model.addAttribute("tngrAplctCnt", tngrAplctCnt);
|
||||
|
||||
//완료목록
|
||||
VEEduChasiVO vEEduChasiVO = new VEEduChasiVO();
|
||||
vEEduChasiVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_10);
|
||||
vEEduChasiVO.setAprvlCd(VeConstants.STATUS_CD_EDU_SELCT);
|
||||
vEEduChasiVO.setUserId(loginVO.getUniqId());
|
||||
vEEduChasiVO.setSearchStartDt(vEEduAplctVO.getSearchStartDt());
|
||||
vEEduChasiVO.setSearchEndDt(vEEduAplctVO.getSearchEndDt());
|
||||
vEEduChasiVO.setRecordCountPerPage(10);
|
||||
vEEduChasiVO.setFirstIndex(0);
|
||||
List<VEEduChasiVO> vEEduChasiVOList = vEEduMIXService.selectChasiList(vEEduChasiVO);
|
||||
int tngrEndCnt = 0;
|
||||
if(vEEduChasiVOList != null && !vEEduChasiVOList.isEmpty()) {
|
||||
tngrEndCnt = vEEduChasiVOList.get(0).getTotCnt();
|
||||
}
|
||||
model.addAttribute("tngrEndCnt", tngrEndCnt);
|
||||
model.addAttribute("tngrList", vEEduChasiVOList);
|
||||
}
|
||||
|
||||
/*
|
||||
* 성인 진행목록
|
||||
*/
|
||||
{
|
||||
/*진행/종료 건수에서 신청/완료 건수로 변경 > 진행/종료는 차시 기준. 신청은 신청 기준이라 조회쿼리 변경*/
|
||||
/*VEEduAplctVO vEEduAplctVO = new VEEduAplctVO();
|
||||
// 청소년
|
||||
|
||||
// 사용자 교육신청 차시 리스트
|
||||
VEEduChasiVO vEEduChasiVO = new VEEduChasiVO();
|
||||
vEEduChasiVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd());
|
||||
vEEduChasiVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_20);
|
||||
vEEduChasiVO.setAprvlCd(VeConstants.STATUS_CD_EDU_SELCT);
|
||||
vEEduChasiVO.setUserId(loginVO.getUniqId());
|
||||
vEEduChasiVO.setRecordCountPerPage(1000000);
|
||||
vEEduChasiVO.setFirstIndex(0);
|
||||
// List<VEEduChasiVO> vEEduChasiVOList =
|
||||
// vEEduMIXService.selectChasiList(vEEduChasiVO);
|
||||
|
||||
vEEduChasiVO.setPageIndex(vEEduAplctVO.getPageIndex());
|
||||
vEEduChasiVO.setPageUnit(vEEduAplctVO.getPageUnit());
|
||||
vEEduChasiVO.setPageSize(vEEduAplctVO.getPageSize());
|
||||
|
||||
List<VEEduChasiVO> adultList = vEEduMIXService.selectChasiListMypage(vEEduChasiVO);
|
||||
|
||||
|
||||
Map<String, String> adultMap = adultList.stream()
|
||||
.collect(Collectors.partitioningBy(vo -> "30".equals(vo.getAsgnmAprvlCd()), Collectors.counting()))
|
||||
.entrySet().stream()
|
||||
.collect(Collectors.toMap(
|
||||
entry -> entry.getKey() ? "adultEnd" : "adultIng",
|
||||
entry -> entry.getValue().toString()
|
||||
)
|
||||
);
|
||||
|
||||
model.addAttribute("adultMap", adultMap);
|
||||
model.addAttribute("adultList", adultList);*/
|
||||
//신청목록
|
||||
VEEduAplctVO vEEduAplctVO = new VEEduAplctVO();
|
||||
vEEduAplctVO.setUserId(loginVO.getUniqId());
|
||||
vEEduAplctVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_20);
|
||||
vEEduAplctVO.setRecordCountPerPage(10);
|
||||
vEEduAplctVO.setFirstIndex(0);
|
||||
List<VEEduAplctVO> vEEduAplctVOList = vEEduMIXService.selectPagingList(vEEduAplctVO);
|
||||
int adultAplctCnt = 0;
|
||||
if(vEEduAplctVOList != null && !vEEduAplctVOList.isEmpty()) {
|
||||
adultAplctCnt = vEEduAplctVOList.get(0).getTotCnt();
|
||||
}
|
||||
model.addAttribute("adultAplctCnt", adultAplctCnt);
|
||||
|
||||
//완료목록
|
||||
VEEduChasiVO vEEduChasiVO = new VEEduChasiVO();
|
||||
vEEduChasiVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_20);
|
||||
vEEduChasiVO.setAprvlCd(VeConstants.STATUS_CD_EDU_SELCT);
|
||||
vEEduChasiVO.setUserId(loginVO.getUniqId());
|
||||
vEEduChasiVO.setRecordCountPerPage(10);
|
||||
vEEduChasiVO.setFirstIndex(0);
|
||||
List<VEEduChasiVO> vEEduChasiVOList = vEEduMIXService.selectChasiList(vEEduChasiVO);
|
||||
int adultEndCnt = 0;
|
||||
if(vEEduChasiVOList != null && !vEEduChasiVOList.isEmpty()) {
|
||||
adultEndCnt = vEEduChasiVOList.get(0).getTotCnt();
|
||||
}
|
||||
model.addAttribute("adultEndCnt", adultEndCnt);
|
||||
model.addAttribute("adultList", vEEduChasiVOList);
|
||||
}
|
||||
/*
|
||||
* 체험교실
|
||||
* */
|
||||
{
|
||||
VEEduAplctVO vEEduAplctVO = new VEEduAplctVO();
|
||||
// 저작권
|
||||
vEEduAplctVO.setUserId(loginVO.getUniqId());
|
||||
vEEduAplctVO.setRecordCountPerPage(1000000);
|
||||
vEEduAplctVO.setFirstIndex(0);
|
||||
vEEduAplctVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_30);
|
||||
|
||||
List<VEEduAplctVO> vEEduAplctVOList = vEEduMIXService.selectExprnPagingList(vEEduAplctVO);
|
||||
vEEduAplctVOList = egovCryptoUtil.decryptVEEduAplctVOList(vEEduAplctVOList);
|
||||
|
||||
System.out.println("vEEduAplctVOList.size() :: "+vEEduAplctVOList.size());
|
||||
// vEEduAplctVOList에서 10, 11, 12, 13 값 제거
|
||||
List<VEEduAplctVO> filteredList = vEEduAplctVOList.stream()
|
||||
/*
|
||||
.filter(item -> !item.getAprvlCd().equals("10")
|
||||
&& !item.getAprvlCd().equals("11")
|
||||
&& !item.getAprvlCd().equals("12")
|
||||
&& !item.getAprvlCd().equals("13"))
|
||||
*/
|
||||
.filter(item -> item.getAprvlCd().equals("80")
|
||||
|| item.getAprvlCd().equals("20")
|
||||
)
|
||||
.collect(Collectors.toList());
|
||||
// -- 종료 80
|
||||
// -- 진행중 20~70
|
||||
|
||||
Map<String, String> exprnMap = filteredList.stream()
|
||||
.collect(Collectors.partitioningBy(vo -> "80".equals(vo.getAprvlCd()), Collectors.counting()))
|
||||
.entrySet().stream()
|
||||
.collect(Collectors.toMap(
|
||||
entry -> entry.getKey() ? "exprnEnd" : "exprnIng",
|
||||
entry -> entry.getValue().toString()
|
||||
)
|
||||
);
|
||||
|
||||
model.addAttribute("exprnMap", exprnMap);
|
||||
model.addAttribute("exprnList", filteredList);
|
||||
}
|
||||
|
||||
/*
|
||||
* 실무역량강화
|
||||
* */
|
||||
{
|
||||
|
||||
|
||||
VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO();
|
||||
|
||||
vEPrcsDetailVO.setUserId(loginVO.getUniqId());
|
||||
//기반강화 조회
|
||||
vEPrcsDetailVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_50); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
|
||||
vEPrcsDetailVO.setRecordCountPerPage(1000000);
|
||||
vEPrcsDetailVO.setFirstIndex(0);
|
||||
|
||||
|
||||
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsAplctPrdService.findByAprvlList(vEPrcsDetailVO);
|
||||
// 요청
|
||||
long cont = vEPrcsDetailVOList.stream().filter(t-> "10".equals(t.getAprvlCd())).count();
|
||||
// 미이수
|
||||
long aplctStateCd10 = vEPrcsDetailVOList.stream().filter(t-> "10".equals(t.getAplctStateCd())).count();
|
||||
// 이수완료
|
||||
long aplctStateCd20 = vEPrcsDetailVOList.stream().filter(t-> "20".equals(t.getAplctStateCd())).count();
|
||||
|
||||
Map<String, String> fndtnMap = new HashMap<>();
|
||||
fndtnMap.put("fndtnEnd", String.valueOf(aplctStateCd20));
|
||||
fndtnMap.put("fndtnIng", String.valueOf(aplctStateCd10+cont));
|
||||
|
||||
model.addAttribute("fndtnMap", fndtnMap);
|
||||
model.addAttribute("fndtnList", vEPrcsDetailVOList);
|
||||
|
||||
|
||||
//신청중, 수강중, 종료된 수량
|
||||
Map<String,Object> countMap = vEPrcsAplctPrdService.findAllDashboardCnt(vEPrcsDetailVO);
|
||||
model.addAttribute("countMap", countMap);
|
||||
|
||||
}
|
||||
|
||||
//내 문의 목록
|
||||
{
|
||||
|
||||
VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO();
|
||||
vEPrcsDetailVO.setRecordCountPerPage(3);
|
||||
vEPrcsDetailVO.setFirstIndex(0);
|
||||
vEPrcsDetailVO.setQnaRegist(loginVO.getUniqId());
|
||||
List<VEPrcsDetailVO> qnaList = vEPrcsService.selectQnaPagingList(vEPrcsDetailVO);
|
||||
model.addAttribute("qnaList", qnaList);
|
||||
}
|
||||
|
||||
// return "/web/cop/bbs/FaqListAjax";
|
||||
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<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsAplctPrdService.findByAprvlQustnrAllList(vEPrcsDetailVO);
|
||||
|
||||
// 현재 날짜를 가져옵니다.
|
||||
LocalDate currentDate = LocalDate.now();
|
||||
// 날짜비교
|
||||
vEPrcsDetailVOList.stream().forEach(t->{
|
||||
t.setDateChk(this.dateChk(t, currentDate));
|
||||
});
|
||||
|
||||
|
||||
Map<String,Object> countMap = vEPrcsAplctPrdService.findAllSspnldtmtDashboardCnt(vEPrcsDetailVO);
|
||||
// 리스트 row마다 신청 확인하기
|
||||
//대상 리스트, 페이징 정보 전달
|
||||
model.addAttribute("list", vEPrcsDetailVOList);
|
||||
model.addAttribute("countMap", countMap);
|
||||
|
||||
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<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsAplctPrdService.findByAprvlQustnrAllList(vEPrcsDetailVO);
|
||||
|
||||
// 현재 날짜를 가져옵니다.
|
||||
LocalDate currentDate = LocalDate.now();
|
||||
// 날짜비교
|
||||
vEPrcsDetailVOList.stream().forEach(t->{
|
||||
t.setDateChk(this.dateChk(t, currentDate));
|
||||
});
|
||||
|
||||
|
||||
Map<String,Object> 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<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsAplctPrdService.findByAprvlQustnrAllList(vEPrcsDetailVO);
|
||||
|
||||
// 현재 날짜를 가져옵니다.
|
||||
LocalDate currentDate = LocalDate.now();
|
||||
// 날짜비교
|
||||
vEPrcsDetailVOList.stream().forEach(t->{
|
||||
t.setDateChk(this.dateChk(t, currentDate));
|
||||
});
|
||||
|
||||
|
||||
Map<String,Object> 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
|
||||
, @ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
|
||||
, ModelMap model
|
||||
) 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); //로그인 정보가 없으면 로그인 페이지로 이동한다.
|
||||
}
|
||||
|
||||
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); // 권한에 따른 로그인 정보 가져오기
|
||||
//1.pageing step1
|
||||
PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO);
|
||||
//2. pageing step2
|
||||
@ -336,12 +367,140 @@ public class MyPageController {
|
||||
|
||||
model.addAttribute("paginationInfo", paginationInfo);
|
||||
|
||||
// 사용자 이름 디코딩
|
||||
// vEPrcsDetailVOList.stream().forEach(t->t.setMberNm(egovCryptoUtil.decrypt(t.getMberNm())));
|
||||
|
||||
//대상 리스트, 페이징 정보 전달
|
||||
model.addAttribute("list", vEPrcsDetailVOList);
|
||||
|
||||
return "web/my/myQnaMngList";
|
||||
}
|
||||
|
||||
@RequestMapping(value = { "/web/my/myNotifyMngList.do" })
|
||||
public String myNotifyMngList(
|
||||
HttpServletRequest request
|
||||
, @ModelAttribute("notifyManageVO") NotifyManageVO notifyManageVO
|
||||
, ModelMap model
|
||||
) throws Exception {
|
||||
|
||||
// try {
|
||||
|
||||
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
|
||||
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
|
||||
|
||||
if (loginVO == null || ssoLoginVO == null) {
|
||||
//이전 url 처리(beforeSiteUrl)_이준호_220228추가
|
||||
return checkLoginUtil.getUserLoginPage(model, request); //로그인 정보가 없으면 로그인 페이지로 이동한다.
|
||||
// return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다.
|
||||
}
|
||||
|
||||
notifyManageService.updateM7DaysUseYnN();
|
||||
|
||||
|
||||
//1.pageing step1
|
||||
PaginationInfo paginationInfo = this.setNotiPagingStep1(notifyManageVO);
|
||||
//2. pageing step2
|
||||
notifyManageVO = this.setNotiPagingStep2(notifyManageVO, paginationInfo);
|
||||
//
|
||||
|
||||
|
||||
notifyManageVO.setToUserId(loginVO.getUniqId());
|
||||
|
||||
|
||||
/*if(StringUtils.isNotEmpty(notifyManageVO.getSearchStatus())) {
|
||||
String status = "";
|
||||
if("Y".equals(notifyManageVO.getSearchStatus()))
|
||||
status = "IS NOT NULL";
|
||||
if("N".equals(notifyManageVO.getSearchStatus()))
|
||||
status = "IS NULL";
|
||||
|
||||
notifyManageVO.setSearchQuery(" AND qn.QNA_ANSWER_CN "+status);
|
||||
} */
|
||||
|
||||
List<NotifyManageVO> notifyManageVOList = notifyManageService.selectPagingList(notifyManageVO);
|
||||
|
||||
//3.pageing step3
|
||||
paginationInfo = this.setNotiPagingStep3(notifyManageVOList, paginationInfo);
|
||||
|
||||
model.addAttribute("paginationInfo", paginationInfo);
|
||||
|
||||
// 사용자 이름 디코딩
|
||||
// vEPrcsDetailVOList.stream().forEach(t->t.setMberNm(egovCryptoUtil.decrypt(t.getMberNm())));
|
||||
|
||||
//대상 리스트, 페이징 정보 전달
|
||||
model.addAttribute("list", notifyManageVOList);
|
||||
// } catch (Exception e) {
|
||||
// e.printStackTrace();
|
||||
// // TODO: handle exception
|
||||
// }
|
||||
// return "web/my/myQnaMngList";
|
||||
return "web/my/myNotifyMngList";
|
||||
}
|
||||
|
||||
@RequestMapping(value = { "/web/my/myNotifyMngDetail.do"})
|
||||
public String myNotifyMngDetail(
|
||||
@ModelAttribute("notifyManageVO") NotifyManageVO notifyManageVO
|
||||
, ModelMap model
|
||||
, RedirectAttributes redirectAttributes
|
||||
, HttpSession session
|
||||
, HttpServletRequest request
|
||||
) throws Exception {
|
||||
|
||||
//로그인 처리====================================
|
||||
//로그인 정보 가져오기
|
||||
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
|
||||
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
|
||||
|
||||
if (loginVO == null || ssoLoginVO == null) {
|
||||
return checkLoginUtil.getUserLoginPage(model, request); //로그인 정보가 없으면 로그인 페이지로 이동한다.
|
||||
}
|
||||
//로그인 처리====================================
|
||||
|
||||
//과정 조회
|
||||
NotifyManageVO notifyManageInfo = notifyManageService.findById(notifyManageVO);
|
||||
|
||||
model.addAttribute("info", notifyManageInfo);
|
||||
|
||||
|
||||
try {
|
||||
if ("30".equals(notifyManageInfo.getLctrDivCd())){ //체험교실은 다른게 바로가기를 만든다.
|
||||
//eduAplctOrd:eduAplct_00000015581
|
||||
List<NotifyManageVO> notifyParamList = new ArrayList<NotifyManageVO>();
|
||||
NotifyManageVO tInfo = new NotifyManageVO();
|
||||
tInfo.setSiteNm("eduAplctOrd");
|
||||
tInfo.setParams(notifyManageInfo.getEduAplctOrd());
|
||||
|
||||
notifyParamList.add(tInfo);
|
||||
|
||||
model.addAttribute("notifyParamList", notifyParamList);
|
||||
|
||||
}else{
|
||||
//세부과정 목록 조회
|
||||
String[] a_params = notifyManageInfo.getParams().split(",");
|
||||
|
||||
List<NotifyManageVO> notifyParamList = new ArrayList<NotifyManageVO>();
|
||||
|
||||
for (int i=0;i<a_params.length;i++) {
|
||||
NotifyManageVO tInfo = new NotifyManageVO();
|
||||
tInfo.setSiteNm(a_params[i].split(":")[0]);
|
||||
tInfo.setParams(a_params[i].split(":")[1]);
|
||||
|
||||
notifyParamList.add(tInfo);
|
||||
}
|
||||
|
||||
model.addAttribute("notifyParamList", notifyParamList);
|
||||
}
|
||||
|
||||
|
||||
}catch(Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
|
||||
|
||||
|
||||
return "web/my/myNotifyMngDetail";
|
||||
}
|
||||
|
||||
@RequestMapping(value = { "/web/my/myQnaMngDetail.do"})
|
||||
public String myQnaMngDetail(
|
||||
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
|
||||
@ -371,30 +530,15 @@ public class MyPageController {
|
||||
|
||||
return "web/my/myQnaMngDetail";
|
||||
}
|
||||
|
||||
@RequestMapping(value = { "/web/my/myQnaMngRegist.do" })
|
||||
public String myQnaMngRegist(
|
||||
HttpServletRequest request
|
||||
, ModelMap model
|
||||
) 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); //로그인 정보가 없으면 로그인 페이지로 이동한다.
|
||||
}
|
||||
|
||||
return "web/my/myQnaMngRegist";
|
||||
}
|
||||
|
||||
@RequestMapping("/web/my/myQnaMngRegistAjax.do")
|
||||
public ModelAndView myQnaMngRegistAjax(
|
||||
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
|
||||
@RequestMapping(value = { "/web/my/myNotifyMngDeleteAjax.do"})
|
||||
public ModelAndView myNotifyMngDeleteAjax(
|
||||
@ModelAttribute("notifyManageVO") NotifyManageVO notifyManageVO
|
||||
, ModelMap model
|
||||
, RedirectAttributes redirectAttributes
|
||||
, HttpSession session
|
||||
, HttpServletRequest request
|
||||
, String[] chk
|
||||
) throws Exception {
|
||||
|
||||
ModelAndView modelAndView = new ModelAndView();
|
||||
@ -402,42 +546,28 @@ public class MyPageController {
|
||||
|
||||
//로그인 처리====================================
|
||||
//로그인 정보 가져오기
|
||||
|
||||
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
|
||||
if (!"".equals(s_oprtnLoginCheckNInfo)) {
|
||||
modelAndView.addObject("result", "loginFail");
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
//로그인 처리====================================
|
||||
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
|
||||
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
|
||||
|
||||
if (loginVO == null || ssoLoginVO == null) {
|
||||
modelAndView.addObject("result", "loginFail");
|
||||
}
|
||||
//로그인 처리====================================
|
||||
|
||||
vEPrcsDetailVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
|
||||
vEPrcsDetailVO.setQnaRegist(loginVO.getUniqId()); //esntl_id
|
||||
vEPrcsDetailVO.setPrcsAplctPrdQnaOrd(prcsAplctPrdQnaOrdGnrService.getNextStringId());
|
||||
vEPrcsDetailVO.setQnaRegist(loginVO.getUniqId());
|
||||
|
||||
String msg = "등록되었습니다";
|
||||
try {
|
||||
fndtnEnhanceTrnService.insertVeEduQna(vEPrcsDetailVO);
|
||||
} catch (Exception e) {
|
||||
// TODO: handle exception
|
||||
try {
|
||||
notifyManageVO.setCmmNotifyOrdArr(chk);
|
||||
notifyManageService.updateChkedUseYnN(notifyManageVO);
|
||||
modelAndView.addObject("result", "success");
|
||||
}catch(Exception e) {
|
||||
e.printStackTrace();
|
||||
msg = "등록에 실패하였습니다. 관리자에게 문의해주세요";
|
||||
modelAndView.addObject("result", "fail");
|
||||
}
|
||||
|
||||
modelAndView.addObject("msg", msg);
|
||||
modelAndView.addObject("result", "success");
|
||||
//세부과정 목록 조회
|
||||
|
||||
return modelAndView;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
//
|
||||
@ -491,28 +621,41 @@ public class MyPageController {
|
||||
|
||||
return p_paginationInfo;
|
||||
}
|
||||
|
||||
|
||||
private String dateChk(VEPrcsDetailVO vEPrcsDetailVO , LocalDate currentDate) {
|
||||
|
||||
String returnDate = "";
|
||||
|
||||
String targetDateString = vEPrcsDetailVO.getEduStrtPnttm();
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy.MM.dd");
|
||||
|
||||
// 문자열로부터 LocalDate 객체를 생성합니다.
|
||||
LocalDate targetDate = LocalDate.parse(targetDateString, formatter);
|
||||
|
||||
|
||||
// 교육종료 날짜와 현재날짜 비교
|
||||
if (currentDate.isBefore(targetDate)) { //현재날짜가 종료날짜보다 이전이면 0
|
||||
returnDate = "0";
|
||||
} else if (currentDate.isAfter(targetDate)) { //현재날짜가 종료날짜 이후면 1
|
||||
returnDate = "1";
|
||||
} else { // 종료날짜와 같으면 2
|
||||
returnDate = "2";
|
||||
}
|
||||
|
||||
return returnDate;
|
||||
private PaginationInfo setNotiPagingStep1(NotifyManageVO notifyManageVO) {
|
||||
// pageing step1
|
||||
PaginationInfo paginationInfo = new PaginationInfo();
|
||||
paginationInfo.setCurrentPageNo(notifyManageVO.getPageIndex());
|
||||
paginationInfo.setRecordCountPerPage(notifyManageVO.getPageUnit());
|
||||
paginationInfo.setPageSize(notifyManageVO.getPageSize());
|
||||
|
||||
return paginationInfo;
|
||||
}
|
||||
|
||||
private NotifyManageVO setNotiPagingStep2(NotifyManageVO notifyManageVO, PaginationInfo paginationInfo) {
|
||||
// pageing step2
|
||||
notifyManageVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
|
||||
notifyManageVO.setLastIndex(paginationInfo.getLastRecordIndex());
|
||||
notifyManageVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
|
||||
|
||||
if("".equals(notifyManageVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
|
||||
notifyManageVO.setSearchSortCnd("prcs_ord");
|
||||
notifyManageVO.setSearchSortOrd("desc");
|
||||
}
|
||||
|
||||
return notifyManageVO;
|
||||
}
|
||||
|
||||
private PaginationInfo setNotiPagingStep3(List<NotifyManageVO> vEPrcsDetailVOList, PaginationInfo paginationInfo) {
|
||||
// pageing step3
|
||||
int totCnt = 0;
|
||||
if(vEPrcsDetailVOList.size() > 0) totCnt = vEPrcsDetailVOList.get(0).getTotCnt();
|
||||
paginationInfo.setTotalRecordCount(totCnt);
|
||||
|
||||
return paginationInfo;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -71,8 +71,6 @@ public interface EgovLoginLogService {
|
||||
public EgovMap selectMethodEgov(LoginLog loginLog) throws Exception;
|
||||
|
||||
public void updateLogMethod(LoginLog tempLoginLog) throws Exception;
|
||||
|
||||
public void updateLogMethodAuto(LoginLog tempLoginLog) throws Exception;
|
||||
|
||||
public void insertLogMethod(LoginLog loginLog) throws Exception;
|
||||
|
||||
|
||||
@ -130,8 +130,6 @@ public class LoginLog extends ComDefaultVO implements Serializable {
|
||||
/*관리자 메소드 부분 추가*/
|
||||
private String methodNm; //메소드 이름
|
||||
|
||||
private String methodCd; //메소드 타입
|
||||
|
||||
private String param; //파라미터
|
||||
|
||||
private String admotId; //메소드 ID
|
||||
@ -501,13 +499,5 @@ public class LoginLog extends ComDefaultVO implements Serializable {
|
||||
public void setSortNum(String sortNum) {
|
||||
this.sortNum = sortNum;
|
||||
}
|
||||
|
||||
public String getMethodCd() {
|
||||
return methodCd;
|
||||
}
|
||||
|
||||
public void setMethodCd(String methodCd) {
|
||||
this.methodCd = methodCd;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -206,11 +206,6 @@ public class EgovLoginLogServiceImpl extends EgovAbstractServiceImpl implements
|
||||
loginLogDAO.updateLogMethod(loginLog);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateLogMethodAuto(LoginLog loginLog) throws Exception {
|
||||
loginLogDAO.updateLogMethodAuto(loginLog);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void insertLogMethod(LoginLog loginLog) throws Exception {
|
||||
loginLogDAO.insertLogMethod(loginLog);
|
||||
|
||||
@ -128,11 +128,6 @@ public class LoginLogDAO extends EgovAbstractDAO {
|
||||
public void updateLogMethod(LoginLog loginLog) throws Exception{
|
||||
update("LoginLogDAO.updateLogMethod", loginLog);
|
||||
}
|
||||
|
||||
//위의 동일한 명칭을 한번에 수정하기 위해서 만듬
|
||||
public void updateLogMethodAuto(LoginLog loginLog) throws Exception{
|
||||
update("LoginLogDAO.updateLogMethodAuto", loginLog);
|
||||
}
|
||||
|
||||
public void insertLogMethod(LoginLog loginLog) throws Exception{
|
||||
insert("LoginLogDAO.insertLogMethod", loginLog);
|
||||
|
||||
@ -107,7 +107,7 @@ public class EgovLoginLogController {
|
||||
loginLog.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
|
||||
|
||||
if("".equals(loginLog.getSearchSortCnd())){ //최초조회시 최신것 조회List
|
||||
loginLog.setSearchSortCnd("b.CREAT_DT");
|
||||
loginLog.setSearchSortCnd("a.CREAT_DT");
|
||||
loginLog.setSearchSortOrd("desc");
|
||||
}
|
||||
|
||||
@ -462,60 +462,7 @@ public class EgovLoginLogController {
|
||||
loginLog.setAdmotId(loginLog.getAdmotId().trim());
|
||||
|
||||
LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
|
||||
|
||||
loginLogService.updateLogMethod(loginLog);
|
||||
//사업 런칭 초기나 등등 같은 데이터를 한번에 수정하기 위해서 추가함...오류 발생시 주석처리 할것.
|
||||
|
||||
|
||||
System.out.println(loginLog.getMethodNm());
|
||||
System.out.println(loginLog.getMethodNm());
|
||||
System.out.println(loginLog.getMethodNm());
|
||||
String[] s_arr_1 = null;
|
||||
try {
|
||||
s_arr_1 = loginLog.getMethodNm().split("\\?");
|
||||
System.out.println(s_arr_1.length);
|
||||
System.out.println(s_arr_1.length);
|
||||
System.out.println(loginLog.getMethodNm().split("\\?").length);
|
||||
System.out.println(loginLog.getMethodNm().split("\\?")[0]);
|
||||
}catch(Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
|
||||
String[] s_arr_2 = null;
|
||||
try {
|
||||
s_arr_2 = loginLog.getMethodNm().split("\\;");
|
||||
System.out.println(s_arr_2.length);
|
||||
System.out.println(s_arr_2.length);
|
||||
System.out.println(loginLog.getMethodNm().split("\\;").length);
|
||||
System.out.println(loginLog.getMethodNm().split("\\;")[0]);
|
||||
}catch(Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
|
||||
//BBSMSTR_000000000010 - 공지사항
|
||||
//BBSMSTR_000000000040 - 교육자료실
|
||||
//BBSMSTR_000000000030 - FAQ
|
||||
|
||||
if (loginLog.getMethodNm().indexOf("BBSMSTR_000000000010")>-1
|
||||
|| loginLog.getMethodNm().indexOf("BBSMSTR_000000000040")>-1
|
||||
|| loginLog.getMethodNm().indexOf("BBSMSTR_000000000030")>-1
|
||||
) {
|
||||
//loginLog.setMethodNm(loginLog.getMethodNm().substring(0, loginLog.getMethodNm().split("\\?")[0].length()));
|
||||
;
|
||||
|
||||
}else {
|
||||
if (s_arr_2.length>1) {
|
||||
loginLog.setMethodNm(loginLog.getMethodNm().substring(0, loginLog.getMethodNm().split("\\;")[0].length()));
|
||||
|
||||
}else if (s_arr_1.length>1) {
|
||||
loginLog.setMethodNm(loginLog.getMethodNm().substring(0, loginLog.getMethodNm().split("\\?")[0].length()));
|
||||
}
|
||||
|
||||
//loginLogService.updateLogMethodAuto(loginLog);
|
||||
}
|
||||
|
||||
loginLogService.updateLogMethodAuto(loginLog);
|
||||
|
||||
loginLogService.updateLogMethod(loginLog);
|
||||
model.addAttribute("message", egovMessageSource.getMessage("success.common.update"));
|
||||
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.insert"));
|
||||
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/sym/log/clg/SelectLogMethodList.do");
|
||||
|
||||
@ -66,6 +66,9 @@ public class EgovLoginServiceImpl extends EgovAbstractServiceImpl implements
|
||||
LoginVO loginVO = null;
|
||||
String s_password = vo.getPassword();
|
||||
String s_ci = vo.getMberCi();
|
||||
System.out.println("======1========================"+s_password);
|
||||
System.out.println("======1========================"+EgovNewPasswordUtil.hashPassword(s_password));
|
||||
System.out.println("======1========================"+EgovFileScrty.encryptPassword(s_password, vo.getId()));
|
||||
|
||||
//step1.new 로그인인 경우 loginvo ret
|
||||
//최고관리자를 제외한 사용자 sso 로그인으로 비밀번호 암호화 삭제(210818, 이준호)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
48
src/main/java/kcc/let/uat/uia/web/SsoAgentInfo.java
Normal file
48
src/main/java/kcc/let/uat/uia/web/SsoAgentInfo.java
Normal file
@ -0,0 +1,48 @@
|
||||
package kcc.let.uat.uia.web;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
public class SsoAgentInfo {
|
||||
|
||||
//SSO agent 관련 설정
|
||||
|
||||
private static String ssoUri;
|
||||
|
||||
private static String clientId;
|
||||
|
||||
private static String clientSecret;
|
||||
|
||||
private static String scope;
|
||||
|
||||
@Value("#{globalSettings['Globals.sso.ssoUri']}")
|
||||
public void setSsoUri(String ssoUri) {
|
||||
SsoAgentInfo.ssoUri = ssoUri;
|
||||
}
|
||||
@Value("#{globalSettings['Globals.sso.clientId']}")
|
||||
public void setClientId(String clientId) {
|
||||
SsoAgentInfo.clientId = clientId;
|
||||
}
|
||||
@Value("#{globalSettings['Globals.sso.clientSecret']}")
|
||||
public void setClientSecret(String clientSecret) {
|
||||
SsoAgentInfo.clientSecret = clientSecret;
|
||||
}
|
||||
@Value("#{globalSettings['Globals.sso.scope']}")
|
||||
public void setScope(String scope) {
|
||||
SsoAgentInfo.scope = scope;
|
||||
}
|
||||
public String getSsoUri() {
|
||||
return ssoUri;
|
||||
}
|
||||
public String getClientId() {
|
||||
return clientId;
|
||||
}
|
||||
public String getClientSecret() {
|
||||
return clientSecret;
|
||||
}
|
||||
public String getScope() {
|
||||
return scope;
|
||||
}
|
||||
|
||||
}
|
||||
156
src/main/java/kcc/let/uat/uia/web/SsoLogin.java
Normal file
156
src/main/java/kcc/let/uat/uia/web/SsoLogin.java
Normal file
@ -0,0 +1,156 @@
|
||||
package kcc.let.uat.uia.web;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.bandi.oauth.BandiSSOAgent;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
|
||||
import kcc.com.cmm.service.EgovFileMngUtil;
|
||||
import kcc.let.uat.uia.service.SsoLoginVO;
|
||||
|
||||
public class SsoLogin {
|
||||
|
||||
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(EgovFileMngUtil.class);
|
||||
|
||||
//실서버 적용시 변경
|
||||
// agent 관련 설정
|
||||
/*private static String ssoUri = "https://devsso.copyright.or.kr/oauth2/token.do"; // 개발서버 URL
|
||||
private static String clientId = "해당 시스템의 클라이언트 아이디";
|
||||
private static String clientId = "30354835c3684ff79e7fb1bfd3a768f6";
|
||||
private static String clientSecret = "해당 시스템의 클라이언트 시크릿";
|
||||
private static String clientSecret = "1ueil5ee05wr0t1gjy1ppt212";
|
||||
private static String scope = "http://sso.copyright.or.kr"; // 고정
|
||||
*/
|
||||
// 1 : id/pw 로그인, 2 : hp/pw 로그인, 3 : seq/ci 로그인
|
||||
private static String type = "1";
|
||||
|
||||
public static String SsoLogin(String Id, String Password, HttpServletRequest request) throws Exception {
|
||||
SsoAgentInfo ssoagentinfo = new SsoAgentInfo();
|
||||
// SSO 로그인 연계 "BandiSSOAgent 생성" 참조
|
||||
/*BandiSSOAgent agent = new BandiSSOAgent(ssoUri, clientId, clientSecret, scope);*/
|
||||
BandiSSOAgent agent = new BandiSSOAgent(ssoagentinfo.getSsoUri(), ssoagentinfo.getClientId(), ssoagentinfo.getClientSecret(), ssoagentinfo.getScope());
|
||||
|
||||
// 사용자 접속 ip
|
||||
// agent.getLocalServerIp(request);
|
||||
String client_ip = "127.0.0.1";
|
||||
|
||||
// https://devoneid.copyright.or.kr 에서 가입함 ID/PW 입력
|
||||
/*String user_id = "itn0801@gmail.com";*/
|
||||
String user_id = Id;
|
||||
/*String user_pwd = "itntest123$";*/
|
||||
String user_pwd = Password;
|
||||
|
||||
SsoLoginVO ssoLoginVO = new SsoLoginVO();
|
||||
|
||||
// SSO 로그인 연계 "accessToken 함수 요청" 및 "accessToken 함수 결과" 참조
|
||||
HashMap<String, String> login = agent.accessToken(user_id, user_pwd, client_ip, type);
|
||||
|
||||
/*에러코드*/
|
||||
String error = login.get("error");
|
||||
/*에러 메시지*/
|
||||
String error_message = login.get("error_message");
|
||||
|
||||
/*에러 콘솔 로거*/
|
||||
LOGGER.debug("error : ", error);
|
||||
LOGGER.debug("error_message : ", error_message);
|
||||
// try {
|
||||
if(login.get("error").equals("0000") || login.get("error").equals("VL-3130")) {
|
||||
String access_token = login.get("access_token");
|
||||
String refresh_token = login.get("refresh_token");
|
||||
|
||||
/*쿠키유지시간*/
|
||||
String expires_in = login.get("expires_in");
|
||||
|
||||
// userInfo의 type은 무조건 1을 입력한다.
|
||||
// SSO 로그인 연계 "userInfo 함수 요청" 및 "userInfo 함수 결과" 참조
|
||||
HashMap<String, String> userInfo = agent.userInfo(access_token, client_ip, type);
|
||||
|
||||
//법인회원 정보 처리
|
||||
if(userInfo.get("corpUserInfo") != null) {
|
||||
List<Map<String, String>> info = new Gson().fromJson(String.valueOf(userInfo.get("corpUserInfo")),
|
||||
new TypeToken<List<Map<String, Object>>>(){}.getType());
|
||||
for (Map<String, String> userInfo2 : info) {
|
||||
userInfo.put("compAddr", userInfo2.get("compAddr"));
|
||||
userInfo.put("mangCelnum", userInfo2.get("mangCelnum"));
|
||||
userInfo.put("membEmail", userInfo2.get("membEmail"));
|
||||
userInfo.put("membType", userInfo2.get("membType"));
|
||||
userInfo.put("membDivis", userInfo2.get("membDivis"));
|
||||
userInfo.put("compZipcd", userInfo2.get("compZipcd"));
|
||||
userInfo.put("compDetAddr", userInfo2.get("compDetAddr"));
|
||||
userInfo.put("membBuisnRegnum", userInfo2.get("membBuisnRegnum"));
|
||||
userInfo.put("membCorpnum", userInfo2.get("membCorpnum"));
|
||||
userInfo.put("mangName", userInfo2.get("mangName"));
|
||||
}
|
||||
}
|
||||
|
||||
userInfo.remove("corpUserInfo");
|
||||
|
||||
//map -> vo 매칭
|
||||
ObjectMapper test = new ObjectMapper();
|
||||
ssoLoginVO = test.convertValue(userInfo, SsoLoginVO.class);
|
||||
|
||||
//통합회원 SSO연동 유효성 체크를 위한 토큰값 set
|
||||
ssoLoginVO.setAccess_token(access_token);
|
||||
ssoLoginVO.setRefresh_token(refresh_token);
|
||||
|
||||
if(userInfo.get("error").equals("0000")) {
|
||||
// "userInfo 함수 결과"의 필드를 기준으로 맵핑
|
||||
/*Object[] keys = (Object[]) userInfo.keySet().toArray();
|
||||
for(int i=0;i<userInfo.size();i++) {
|
||||
System.out.println("["+keys[i]+"] "+userInfo.get(keys[i]));
|
||||
}*/
|
||||
|
||||
|
||||
// 세션에 access_token, refresh_token 저장
|
||||
// 통합회원 연동시 및 유효성 검증을 위해 필요
|
||||
|
||||
/*SsoLoginVO생성 해서 SsoLoginVo를 세션에 저장*/
|
||||
/* 컨트롤러에 미리 선언 -> HttpServletRequest request*/
|
||||
HttpSession session = request.getSession();
|
||||
session.setMaxInactiveInterval(Integer.parseInt(expires_in));
|
||||
//SSOLoginVO세션 생성
|
||||
ssoLoginVO.setOtherUser("N");
|
||||
|
||||
session.setAttribute("SSOLoginVO", ssoLoginVO);
|
||||
|
||||
// **중요(필요시)
|
||||
// 연동 완료시 저장한 개별사이트의 통함회원 아이디와 SSO로그인시 취득한 통합회원 아이디가 다른경우에는 개별사이트의 통합회원 아이디를 SSO로그인시 취득한 통합외원 아이디로 갱신 필요
|
||||
|
||||
return "sucess";
|
||||
} else {
|
||||
// 사용자 정보 조회 시 오류
|
||||
System.out.println("[getUserInfo error] "+userInfo.get("error"));
|
||||
System.out.println("[getUserInfo error_message] "+userInfo.get("error_message"));
|
||||
|
||||
return "fail";
|
||||
}
|
||||
} else {
|
||||
// 로그인 실패
|
||||
// 사용자 정보 조회 시 오류
|
||||
System.out.println("[login error] "+login.get("error"));
|
||||
System.out.println("[login error_message] "+login.get("error_message"));
|
||||
|
||||
return "fail";
|
||||
}
|
||||
|
||||
// } catch (Exception e) {
|
||||
// e.getStackTrace();
|
||||
// throw new BaseException("시퀀스관리 조회 오류") ;
|
||||
// }
|
||||
|
||||
// return "sucess";
|
||||
}
|
||||
|
||||
}
|
||||
135
src/main/java/kcc/let/uat/uia/web/SsoTokenLogin.java
Normal file
135
src/main/java/kcc/let/uat/uia/web/SsoTokenLogin.java
Normal file
@ -0,0 +1,135 @@
|
||||
package kcc.let.uat.uia.web;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import org.codehaus.jackson.map.ObjectMapper;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.bandi.oauth.BandiSSOAgent;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
|
||||
import kcc.com.cmm.service.EgovFileMngUtil;
|
||||
import kcc.let.uat.uia.service.SsoLoginVO;
|
||||
|
||||
public class SsoTokenLogin {
|
||||
|
||||
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(EgovFileMngUtil.class);
|
||||
|
||||
/*//실서버 적용시 변경
|
||||
// agent 관련 설정
|
||||
private static String ssoUri = "https://devsso.copyright.or.kr/oauth2/token.do"; // 개발서버 URL
|
||||
private static String clientId = "해당 시스템의 클라이언트 아이디";
|
||||
private static String clientId = "30354835c3684ff79e7fb1bfd3a768f6";
|
||||
private static String clientSecret = "해당 시스템의 클라이언트 시크릿";
|
||||
private static String clientSecret = "1ueil5ee05wr0t1gjy1ppt212";
|
||||
private static String scope = "http://sso.copyright.or.kr"; // 고정
|
||||
*/
|
||||
// 1 : id/pw 로그인, 2 : hp/pw 로그인, 3 : seq/ci 로그인
|
||||
private static String type = "1";
|
||||
|
||||
public static String SsoTokenLogin(String access_token, String refresh_token, HttpServletRequest request) throws Exception {
|
||||
SsoAgentInfo ssoagentinfo = new SsoAgentInfo();
|
||||
// SSO 로그인 연계 "BandiSSOAgent 생성" 참조
|
||||
/*BandiSSOAgent agent = new BandiSSOAgent(ssoUri, clientId, clientSecret, scope);*/
|
||||
BandiSSOAgent agent = new BandiSSOAgent(ssoagentinfo.getSsoUri(), ssoagentinfo.getClientId(), ssoagentinfo.getClientSecret(), ssoagentinfo.getScope());
|
||||
|
||||
// 사용자 접속 ip
|
||||
// agent.getLocalServerIp(request);
|
||||
String client_ip = "127.0.0.1";
|
||||
|
||||
SsoLoginVO ssoLoginVO = new SsoLoginVO();
|
||||
|
||||
// try {
|
||||
HashMap<String, String> tokenValid = agent.tokenValid(access_token, client_ip);
|
||||
if(tokenValid.get("error").equals("0000")) {
|
||||
/*쿠키유지시간*/
|
||||
// String expires_in = login.get("expires_in");
|
||||
|
||||
// userInfo의 type은 무조건 1을 입력한다.
|
||||
// SSO 로그인 연계 "userInfo 함수 요청" 및 "userInfo 함수 결과" 참조
|
||||
HashMap<String, String> userInfo = agent.userInfo(access_token, client_ip, type);
|
||||
|
||||
//법인회원 정보 처리
|
||||
if(userInfo.get("corpUserInfo") != null) {
|
||||
List<Map<String, String>> info = new Gson().fromJson(String.valueOf(userInfo.get("corpUserInfo")),
|
||||
new TypeToken<List<Map<String, Object>>>(){}.getType());
|
||||
for (Map<String, String> userInfo2 : info) {
|
||||
userInfo.put("compAddr", userInfo2.get("compAddr"));
|
||||
userInfo.put("mangCelnum", userInfo2.get("mangCelnum"));
|
||||
userInfo.put("membEmail", userInfo2.get("membEmail"));
|
||||
userInfo.put("membType", userInfo2.get("membType"));
|
||||
userInfo.put("membDivis", userInfo2.get("membDivis"));
|
||||
userInfo.put("compZipcd", userInfo2.get("compZipcd"));
|
||||
userInfo.put("compDetAddr", userInfo2.get("compDetAddr"));
|
||||
userInfo.put("membBuisnRegnum", userInfo2.get("membBuisnRegnum"));
|
||||
userInfo.put("membCorpnum", userInfo2.get("membCorpnum"));
|
||||
userInfo.put("mangName", userInfo2.get("mangName"));
|
||||
}
|
||||
}
|
||||
|
||||
userInfo.remove("corpUserInfo");
|
||||
|
||||
//map -> vo 매칭
|
||||
ObjectMapper test = new ObjectMapper();
|
||||
ssoLoginVO = test.convertValue(userInfo, SsoLoginVO.class);
|
||||
|
||||
//통합회원 SSO연동 유효성 체크를 위한 토큰값 set
|
||||
ssoLoginVO.setAccess_token(access_token);
|
||||
ssoLoginVO.setRefresh_token(refresh_token);
|
||||
|
||||
if(userInfo.get("error").equals("0000")) {
|
||||
// "userInfo 함수 결과"의 필드를 기준으로 맵핑
|
||||
Object[] keys = (Object[]) userInfo.keySet().toArray();
|
||||
for(int i=0;i<userInfo.size();i++) {
|
||||
System.out.println("["+keys+"] "+userInfo.get(keys[i]));
|
||||
|
||||
}
|
||||
|
||||
|
||||
// 세션에 access_token, refresh_token 저장
|
||||
// 통합회원 연동시 및 유효성 검증을 위해 필요
|
||||
|
||||
/*SsoLoginVO생성 해서 SsoLoginVo를 세션에 저장*/
|
||||
/* 컨트롤러에 미리 선언 -> HttpServletRequest request*/
|
||||
HttpSession session = request.getSession();
|
||||
session.setMaxInactiveInterval(Integer.parseInt("7200"));
|
||||
//SSOLoginVO세션 생성
|
||||
ssoLoginVO.setOtherUser("N");
|
||||
|
||||
session.setAttribute("SSOLoginVO", ssoLoginVO);
|
||||
|
||||
// **중요(필요시)
|
||||
// 연동 완료시 저장한 개별사이트의 통함회원 아이디와 SSO로그인시 취득한 통합회원 아이디가 다른경우에는 개별사이트의 통합회원 아이디를 SSO로그인시 취득한 통합외원 아이디로 갱신 필요
|
||||
|
||||
return "sucess";
|
||||
} else {
|
||||
// 사용자 정보 조회 시 오류
|
||||
System.out.println("[getUserInfo error] "+userInfo.get("error"));
|
||||
System.out.println("[getUserInfo error_message] "+userInfo.get("error_message"));
|
||||
|
||||
return "fail";
|
||||
}
|
||||
} else {
|
||||
// 로그인 실패
|
||||
// 사용자 정보 조회 시 오류
|
||||
// System.out.println("[login error] "+login.get("error"));
|
||||
// System.out.println("[login error_message] "+login.get("error_message"));
|
||||
|
||||
return "fail";
|
||||
}
|
||||
// } catch (Exception e) {
|
||||
// System.out.println("Exception Error");
|
||||
// }
|
||||
// return "sucess";
|
||||
}
|
||||
|
||||
}
|
||||
@ -132,9 +132,6 @@ public class QustnrRespondInfoVO implements Serializable {
|
||||
|
||||
private String prcsAplctPrdOrd = "";
|
||||
|
||||
private String qestnTyCode = "";
|
||||
|
||||
|
||||
|
||||
// 20231124 이호영
|
||||
// 강화 기반은 라디오 버튼이라 변수 추가함
|
||||
@ -677,18 +674,6 @@ public class QustnrRespondInfoVO implements Serializable {
|
||||
public void setUserId(String userId) {
|
||||
this.userId = userId;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public String getQestnTyCode() {
|
||||
return qestnTyCode;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void setQestnTyCode(String qestnTyCode) {
|
||||
this.qestnTyCode = qestnTyCode;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -556,13 +556,6 @@ public class EgovUserManageController {
|
||||
*/
|
||||
|
||||
userManageVO = egovCryptoUtil.encryptUserManageVO(userManageVO);
|
||||
|
||||
if ("on".equals(userManageVO.getAreaNo())) {
|
||||
userManageVO.setAreaNo("Y");
|
||||
}else {
|
||||
userManageVO.setAreaNo("N");
|
||||
}
|
||||
|
||||
userManageService.insertUser(userManageVO);
|
||||
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.insert"));
|
||||
}catch(Exception e){
|
||||
@ -1057,17 +1050,6 @@ public class EgovUserManageController {
|
||||
userManageService.insertUserHistory(userManageVO);
|
||||
|
||||
userManageVO = egovCryptoUtil.encryptUserManageVO(userManageVO);
|
||||
|
||||
System.out.println("userManageVO.getAreaNo()");
|
||||
System.out.println(userManageVO.getAreaNo());
|
||||
System.out.println(userManageVO.getAreaNo());
|
||||
|
||||
if ("on".equals(userManageVO.getAreaNo())) {
|
||||
userManageVO.setAreaNo("Y");
|
||||
}else {
|
||||
userManageVO.setAreaNo("N");
|
||||
}
|
||||
|
||||
userManageService.updateUser(userManageVO);
|
||||
//권한업데이트 - null 이 아닌 경우에만 update
|
||||
//System.out.println("System.out.println(authorGroup.getAuthorCode());");
|
||||
|
||||
@ -1,8 +1,5 @@
|
||||
package kcc.let.utl.sim.service;
|
||||
|
||||
import java.net.Inet6Address;
|
||||
import java.net.InetAddress;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
//import kcc.com.cmm.service.EgovProperties;
|
||||
@ -38,44 +35,29 @@ public class EgovClntInfo {
|
||||
return ipAddr;
|
||||
}*/
|
||||
public static String getClntIP(HttpServletRequest request) throws Exception {
|
||||
String ip = request.getHeader("X-Forwarded-For");
|
||||
if (ip == null || ip.isEmpty() || "unknown".equalsIgnoreCase(ip)) {
|
||||
|
||||
// IP주소
|
||||
//String ipAddr = request.getRemoteAddr();
|
||||
|
||||
String ip = request.getHeader("X-Forwarded-For");
|
||||
|
||||
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
|
||||
ip = request.getHeader("Proxy-Client-IP");
|
||||
}
|
||||
if (ip == null || ip.isEmpty() || "unknown".equalsIgnoreCase(ip)) {
|
||||
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
|
||||
ip = request.getHeader("WL-Proxy-Client-IP");
|
||||
}
|
||||
if (ip == null || ip.isEmpty() || "unknown".equalsIgnoreCase(ip)) {
|
||||
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
|
||||
ip = request.getHeader("HTTP_CLIENT_IP");
|
||||
}
|
||||
if (ip == null || ip.isEmpty() || "unknown".equalsIgnoreCase(ip)) {
|
||||
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
|
||||
ip = request.getHeader("HTTP_X_FORWARDED_FOR");
|
||||
}
|
||||
if (ip == null || ip.isEmpty() || "unknown".equalsIgnoreCase(ip)) {
|
||||
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
|
||||
ip = request.getRemoteAddr();
|
||||
}
|
||||
|
||||
// 여러 IP가 있을 경우 첫 번째 IP 사용
|
||||
if (ip != null && ip.contains(",")) {
|
||||
ip = ip.split(",")[0].trim();
|
||||
}
|
||||
|
||||
// IPv6 → IPv4 변환
|
||||
try {
|
||||
InetAddress inetAddress = InetAddress.getByName(ip);
|
||||
if (inetAddress instanceof Inet6Address) {
|
||||
if (ip.startsWith("::ffff:")) { // IPv4-mapped IPv6
|
||||
ip = ip.substring(7);
|
||||
} else {
|
||||
// 실제 IPv6이면 그대로 두거나 원하는 경우 공백 반환
|
||||
// ip = ""; // IPv6은 제외하고 싶을 때
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// 무시 (유효하지 않은 IP일 수 있음)
|
||||
}
|
||||
|
||||
return ip;
|
||||
|
||||
return ip;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -1,12 +1,10 @@
|
||||
package kcc.ve.aplct.cmdTrgt.service.impl;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import kcc.ve.cmm.sendAt.SendService;
|
||||
import org.apache.commons.lang.RandomStringUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
@ -56,9 +54,6 @@ public class CmdTrgtServiceImpl implements CmdTrgtService {
|
||||
// 교육신청발송이력
|
||||
@Resource(name = "vEEduAplctSndHstryService")
|
||||
private VEEduAplctSndHstryService vEEduAplctSndHstryService;
|
||||
|
||||
@Resource(name = "SendService")
|
||||
private SendService sendService;
|
||||
|
||||
@Override
|
||||
public void insertVeEduAplct(VEEduAplctVO paramVO) {
|
||||
@ -141,7 +136,6 @@ public class CmdTrgtServiceImpl implements CmdTrgtService {
|
||||
String id="";
|
||||
String next=""; //?
|
||||
String smsYn = ""; //휴대폰 인증 번호 발송 여부
|
||||
String reqStateCd = ""; //의뢰상태
|
||||
try {
|
||||
result="";
|
||||
//
|
||||
@ -176,9 +170,6 @@ public class CmdTrgtServiceImpl implements CmdTrgtService {
|
||||
}else { //대상자 있음
|
||||
id = cndtnTrgtMngVOList.get(0).getCmdTrgtInfoOrd();
|
||||
|
||||
//의뢰 상태가 의뢰취소(40)라면 스텝4에서 fail 처리
|
||||
reqStateCd = cndtnTrgtMngVOList.get(0).getReqStateCd();
|
||||
|
||||
//step2.대상이 완료 상태인지 확인
|
||||
cndtnTrgtMngVOList = cmdTrgtMngDAO.checkSspnIdtmtStep2(cmdTrgtMngVO);
|
||||
|
||||
@ -210,20 +201,13 @@ public class CmdTrgtServiceImpl implements CmdTrgtService {
|
||||
msg = "이미 신청한 교육이 있습니다.";
|
||||
next = ""; //?
|
||||
}else {//신청한 과정이 없다.
|
||||
|
||||
if("40".equals(reqStateCd)) {
|
||||
result = "fail";
|
||||
msg = "의뢰 취소 상태로 과정대상자가 아닙니다. 관리자에게 문의 바랍니다.";
|
||||
next = "Y"; //?
|
||||
}else {
|
||||
result = "success";
|
||||
msg = "";
|
||||
//id = cndtnTrgtMngVOList.get(0).getSspnIdtmtTrgtOrd();
|
||||
//id = "";
|
||||
next = "Y";
|
||||
smsYn = "Y";
|
||||
//next = Integer.toString(cndtnTrgtMngVOList.size()); //대상자 수
|
||||
}
|
||||
result = "success";
|
||||
msg = "";
|
||||
//id = cndtnTrgtMngVOList.get(0).getSspnIdtmtTrgtOrd();
|
||||
//id = "";
|
||||
next = "Y";
|
||||
smsYn = "Y";
|
||||
//next = Integer.toString(cndtnTrgtMngVOList.size()); //대상자 수
|
||||
}
|
||||
|
||||
}
|
||||
@ -241,11 +225,6 @@ public class CmdTrgtServiceImpl implements CmdTrgtService {
|
||||
vEEduAplctVO.setClphone(cmdTrgtMngVO.getClphone());
|
||||
vEEduAplctVO.setSndFlag("B");
|
||||
Map<String, Object> resultMap = sendSMS.VeSendSMS(vEEduAplctVO.getClphone(), vEEduAplctVO.getSndCn(), vEEduAplctVO.getSndFlag());
|
||||
|
||||
Map<String, String> chihwan = new HashMap<>();
|
||||
chihwan.put("certNo", code);
|
||||
sendService.sendAt(vEEduAplctVO.getClphone(), "TEMPLATE_CERT_NO", chihwan);
|
||||
|
||||
//문자 발송 성공 시
|
||||
if("1".equals(resultMap.get("result_code"))){
|
||||
//발송 로그
|
||||
@ -268,9 +247,6 @@ public class CmdTrgtServiceImpl implements CmdTrgtService {
|
||||
vEInstrMixService.insertInstrEmailCrtfd(vEInstrDetailVO);
|
||||
|
||||
}
|
||||
|
||||
//인증번호 임시노출 실서버 운영 시 삭제_이준호_251030
|
||||
modelAndView.addObject("crtfdNumber", code);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -3,15 +3,12 @@ package kcc.ve.aplct.cmdTrgt.web;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import kcc.ve.cmm.sendAt.SendAtUtill;
|
||||
import kcc.ve.cmm.sendAt.SendService;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@ -189,12 +186,6 @@ public class CmdTrgtController {
|
||||
//알림
|
||||
@Resource(name = "iTNotiUtil")
|
||||
private ITNotiUtil iTNotiUtil;
|
||||
|
||||
@Resource(name = "sendAtUtill")
|
||||
private SendAtUtill sendAtUtill;
|
||||
|
||||
@Resource(name = "SendService")
|
||||
private SendService sendService;
|
||||
|
||||
private String p_lctr_div_cd = "70"; //시정명령 코드, 기소유예 - 60, 예방교육 - 80
|
||||
|
||||
@ -705,9 +696,8 @@ public class CmdTrgtController {
|
||||
vEEduAplctVO.setUserId(loginVO.getUniqId());
|
||||
vEEduAplctVO.setPrcsOrd(vEPrcsDetailVO.getPrcsAplctPrdOrd());
|
||||
vEEduAplctVO.setTrgtNm(vEPrcsDetailVO.getTrgtNm());
|
||||
vEEduAplctVO.setChrgNm(vEPrcsDetailVO.getTrgtNm());
|
||||
vEEduAplctVO.setdBirth(vEPrcsDetailVO.getdBirth());
|
||||
vEEduAplctVO.setPhone(vEPrcsDetailVO.getPhone());
|
||||
vEEduAplctVO.setPhone(egovCryptoUtil.encrypt(vEPrcsDetailVO.getPhone()));
|
||||
vEEduAplctVO.setEmail(vEPrcsDetailVO.getEmail());
|
||||
|
||||
String result = "";
|
||||
@ -749,11 +739,6 @@ public class CmdTrgtController {
|
||||
}
|
||||
|
||||
result = "success";
|
||||
|
||||
//신청 시 알림톡 발송
|
||||
Map<String, String> chihwan = sendAtUtill.chihwanSet(VeConstants.LCTR_DIV_CD_70, vEPrcsDetailVO.getPrcsAplctPrdOrd());
|
||||
sendService.sendAt(vEPrcsDetailVO.getPhone().trim().replaceAll("-", ""), "TEMPLATE_EDU_SUBMIT", chihwan);
|
||||
|
||||
} catch (Exception e) {
|
||||
// TODO: handle exception
|
||||
}
|
||||
@ -832,8 +817,7 @@ public class CmdTrgtController {
|
||||
*/
|
||||
@RequestMapping("/web/ve/aplct/cmdTrgt/popup/eduCancelPopupAjax.do")
|
||||
public ModelAndView filePopupAjax(
|
||||
@ModelAttribute("vEEduRprtVO") VEEduRprtVO vEEduRprtVO,
|
||||
@ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO
|
||||
@ModelAttribute("vEEduRprtVO") VEEduRprtVO vEEduRprtVO
|
||||
, ModelMap model
|
||||
//, RedirectAttributes redirectAttributes
|
||||
, HttpServletRequest request
|
||||
@ -895,7 +879,7 @@ public class CmdTrgtController {
|
||||
//step2.파일 처리====================================
|
||||
|
||||
try {
|
||||
/*
|
||||
|
||||
System.out.println("vEEduRprtVO.getAprvlCn()");
|
||||
System.out.println(vEEduRprtVO.getEduAplctOrd());
|
||||
System.out.println(vEEduRprtVO.getAprvlCn());
|
||||
@ -911,16 +895,7 @@ public class CmdTrgtController {
|
||||
|
||||
//취소요청 정보 저장
|
||||
vEEduAplctService.update(vEEduAplctVO);
|
||||
*/
|
||||
/*
|
||||
251023
|
||||
ve_edu_aplct는 확정 상태 유지.
|
||||
vea_aplct_detail_info에서 취소 관련 처리
|
||||
*/
|
||||
vEEduAplctVO.setAplctStateCd(VeConstants.EDU_CD_CANCLE_REQ); //취소요청 코드 35
|
||||
vEEduAplctVO.setCnclAtchFileId(s_atchFileId);
|
||||
vEEduAplctVO.setCnclCn(vEEduAplctVO.getAprvlCn()); //취소사유 - 기존에는 aprvlCn 사용
|
||||
vEEduMIXService.updateCnclStatus(vEEduAplctVO);
|
||||
|
||||
|
||||
}catch(Exception ex) {
|
||||
System.out.println("Exception vEEduRsltRprtService.insert");
|
||||
|
||||
@ -1,7 +1,5 @@
|
||||
package kcc.ve.aplct.cpyrgExprnClsrm.exprnClsrmAplct.web;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.List;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
@ -30,8 +28,6 @@ import kcc.ve.cmm.VeConstants;
|
||||
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
|
||||
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiVO;
|
||||
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduMIXService;
|
||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService;
|
||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
|
||||
import kcc.ve.oprtn.qestnr.service.VEALettnQestnrMIXService;
|
||||
|
||||
/**
|
||||
@ -96,9 +92,6 @@ public class ScholInfoController {
|
||||
@Resource(name = "vEALettnQestnrMIXService")
|
||||
private VEALettnQestnrMIXService vEALettnQestnrMIXService;
|
||||
|
||||
@Resource(name = "vEPrcsAplctPrdService")
|
||||
private VEPrcsAplctPrdService vEPrcsAplctPrdService;
|
||||
|
||||
/**
|
||||
* 학교정보 검색 팝업 리스트
|
||||
*/
|
||||
@ -455,24 +448,71 @@ public class ScholInfoController {
|
||||
*/
|
||||
@RequestMapping("popup/certPopList.do")
|
||||
public String certPopList(
|
||||
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
|
||||
@ModelAttribute("vEEduChasiVO") VEEduChasiVO vEEduChasiVO
|
||||
, QustnrRespondInfoVO qustnrRespondInfoVO
|
||||
, ModelMap model
|
||||
, HttpServletRequest request
|
||||
) throws Exception {
|
||||
|
||||
vEPrcsDetailVO = vEPrcsAplctPrdService.selectCompleteDocDetail(vEPrcsDetailVO);
|
||||
vEPrcsDetailVO.setTrgtNm(egovCryptoUtil.decrypt(vEPrcsDetailVO.getTrgtNm()));
|
||||
vEPrcsDetailVO.setChrgNm(egovCryptoUtil.decrypt(vEPrcsDetailVO.getChrgNm()));
|
||||
|
||||
//기본정보
|
||||
model.addAttribute("completeDocDetail", vEPrcsDetailVO);
|
||||
String s_action = request.getParameter("action"); //insert or select
|
||||
System.out.println("s_action");
|
||||
System.out.println(s_action);
|
||||
System.out.println(vEEduChasiVO.getQustnrTmplatId());
|
||||
System.out.println(vEEduChasiVO.getQestnrId());
|
||||
System.out.println(vEEduChasiVO.getQustnrRespondId());
|
||||
|
||||
|
||||
LocalDate today = LocalDate.now();
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy년 M월 d일");
|
||||
String todayStr = today.format(formatter);
|
||||
|
||||
model.addAttribute("todayStr", todayStr);
|
||||
System.out.println(qustnrRespondInfoVO.getQustnrTmplatId());
|
||||
System.out.println(qustnrRespondInfoVO.getQestnrId());
|
||||
System.out.println(qustnrRespondInfoVO.getQustnrRespondId());
|
||||
//차시 정보
|
||||
/*
|
||||
try {
|
||||
vEEduChasiVO.setInstrDiv(VeConstants.LCTR_DIV_CD_10); //10-청소년 강사, 20-성인강사 VE0001
|
||||
|
||||
VEEduChasiVO ChasiInfo = vEEduMIXService.selectChasiInfo(vEEduChasiVO);
|
||||
ChasiInfo.setInstrNm(egovCryptoUtil.decrypt(ChasiInfo.getInstrNm()));
|
||||
|
||||
ChasiInfo.setStrtTm(ChasiInfo.getStrtTm().substring(0,2)+":"+ChasiInfo.getStrtTm().substring(2,4));
|
||||
ChasiInfo.setEndTm(ChasiInfo.getEndTm().substring(0,2)+":"+ChasiInfo.getEndTm().substring(2,4));
|
||||
|
||||
model.addAttribute("chasiInfo", ChasiInfo);
|
||||
|
||||
}catch(Exception ex) {
|
||||
System.out.println("Exception vEEduAplctOnlnService.updateBulk");
|
||||
}
|
||||
*/
|
||||
//참석 답변 정보
|
||||
try {
|
||||
List<QustnrRespondInfoVO> chasiSrvyList = egovQustnrRespondInfoService.selectChasiSrvyFndtnList202312(qustnrRespondInfoVO);
|
||||
//model.addAttribute("qestnrRespondent", chasiSrvyList.get(0).getQestnrRespondent());
|
||||
//model.addAttribute("qestnrParticipant", chasiSrvyList.get(0).getQestnrParticipant());
|
||||
System.out.println("chasiSrvyList.get(0).getPrcsAplctPrdOrd()");
|
||||
System.out.println(chasiSrvyList.get(0).getPrcsAplctPrdOrd());
|
||||
System.out.println(chasiSrvyList.get(0).getPrcsAplctPrdOrd());
|
||||
model.addAttribute("chasiSrvyList", chasiSrvyList);
|
||||
model.addAttribute("chasiSrvyListCnt", chasiSrvyList.size());
|
||||
}catch(Exception ex) {
|
||||
System.out.println("Exception vEEduAplctOnlnService.updateBulk");
|
||||
}
|
||||
|
||||
|
||||
//설문 참여 정보
|
||||
/*
|
||||
try {
|
||||
model = qustnrCommonUtil._qustnrQesItm(
|
||||
model
|
||||
, VeConstants.LCTR_DIV_CD_10 //청소년 -10, 성인-20, ...VE0012
|
||||
, "10" //10-기본설문, 20-신청자설문, 30-강사설문 VEA012
|
||||
, "QTMPLA_0000000000001"
|
||||
, vEALettnQestnrMIXService
|
||||
, egovQustnrRespondInfoService
|
||||
);
|
||||
|
||||
}catch(Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
*/
|
||||
|
||||
return "/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/popup/certPopList";
|
||||
}
|
||||
|
||||
@ -1,12 +1,10 @@
|
||||
package kcc.ve.aplct.prevent.service.impl;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import kcc.ve.cmm.sendAt.SendService;
|
||||
import org.apache.commons.lang.RandomStringUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
@ -56,9 +54,6 @@ public class PreventServiceImpl implements PreventService {
|
||||
// 교육신청발송이력
|
||||
@Resource(name = "vEEduAplctSndHstryService")
|
||||
private VEEduAplctSndHstryService vEEduAplctSndHstryService;
|
||||
|
||||
@Resource(name = "SendService")
|
||||
private SendService sendService;
|
||||
|
||||
@Override
|
||||
public void insertVeEduAplct(VEEduAplctVO paramVO) {
|
||||
@ -160,7 +155,7 @@ public class PreventServiceImpl implements PreventService {
|
||||
}
|
||||
*/
|
||||
|
||||
/*
|
||||
|
||||
// step1.신청 가능한 대상이 있는지 찾는다.-대상자 존재 여부만 확인
|
||||
List<CmdTrgtMngVO> cndtnTrgtMngVOList = cmdTrgtMngDAO.checkSspnIdtmtStep1(cmdTrgtMngVO);
|
||||
|
||||
@ -217,13 +212,6 @@ public class PreventServiceImpl implements PreventService {
|
||||
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
/* 예방교육의 경우 대상자 목록, 대상자 체크가 불필요 */
|
||||
result = "success";
|
||||
msg = "";
|
||||
next = "Y";
|
||||
smsYn = "Y";
|
||||
|
||||
//핸드폰으로 인증번호 발송
|
||||
if ("Y".equals(smsYn) && !"Y".equals(cmdTrgtMngVO.getChkYn())) {
|
||||
@ -237,11 +225,6 @@ public class PreventServiceImpl implements PreventService {
|
||||
vEEduAplctVO.setClphone(cmdTrgtMngVO.getClphone());
|
||||
vEEduAplctVO.setSndFlag("B");
|
||||
Map<String, Object> resultMap = sendSMS.VeSendSMS(vEEduAplctVO.getClphone(), vEEduAplctVO.getSndCn(), vEEduAplctVO.getSndFlag());
|
||||
|
||||
Map<String, String> chihwan = new HashMap<>();
|
||||
chihwan.put("certNo", code);
|
||||
sendService.sendAt(vEEduAplctVO.getClphone(), "TEMPLATE_CERT_NO", chihwan);
|
||||
|
||||
//문자 발송 성공 시
|
||||
if("1".equals(resultMap.get("result_code"))){
|
||||
//발송 로그
|
||||
@ -264,9 +247,6 @@ public class PreventServiceImpl implements PreventService {
|
||||
vEInstrMixService.insertInstrEmailCrtfd(vEInstrDetailVO);
|
||||
|
||||
}
|
||||
|
||||
//인증번호 임시노출 실서버 운영 시 삭제_이준호_251030
|
||||
modelAndView.addObject("crtfdNumber", code);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -9,8 +9,6 @@ import java.util.Map;
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import kcc.ve.cmm.sendAt.SendAtUtill;
|
||||
import kcc.ve.cmm.sendAt.SendService;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@ -187,12 +185,6 @@ public class PreventController {
|
||||
//알림
|
||||
@Resource(name = "iTNotiUtil")
|
||||
private ITNotiUtil iTNotiUtil;
|
||||
|
||||
@Resource(name = "sendAtUtill")
|
||||
private SendAtUtill sendAtUtill;
|
||||
|
||||
@Resource(name = "SendService")
|
||||
private SendService sendService;
|
||||
|
||||
private String p_lctr_div_cd = "80"; //시정명령 코드, 기소유예 - 60, 예방교육 - 80
|
||||
|
||||
@ -705,7 +697,7 @@ public class PreventController {
|
||||
vEEduAplctVO.setChrgNm(vEPrcsDetailVO.getTrgtNm());
|
||||
vEEduAplctVO.setTrgtNm(vEPrcsDetailVO.getTrgtNm());
|
||||
vEEduAplctVO.setdBirth(vEPrcsDetailVO.getdBirth());
|
||||
vEEduAplctVO.setPhone(vEPrcsDetailVO.getPhone());
|
||||
vEEduAplctVO.setPhone(egovCryptoUtil.encrypt(vEPrcsDetailVO.getPhone()));
|
||||
vEEduAplctVO.setEmail(vEPrcsDetailVO.getEmail());
|
||||
|
||||
String result = "";
|
||||
@ -747,10 +739,6 @@ public class PreventController {
|
||||
}
|
||||
|
||||
result = "success";
|
||||
|
||||
//신청 시 알림톡 발송
|
||||
Map<String, String> chihwan = sendAtUtill.chihwanSet(VeConstants.LCTR_DIV_CD_80, vEPrcsDetailVO.getPrcsAplctPrdOrd());
|
||||
sendService.sendAt(vEPrcsDetailVO.getPhone().trim().replaceAll("-", ""), "TEMPLATE_EDU_SUBMIT", chihwan);
|
||||
} catch (Exception e) {
|
||||
// TODO: handle exception
|
||||
}
|
||||
@ -829,8 +817,7 @@ public class PreventController {
|
||||
*/
|
||||
@RequestMapping("/web/ve/aplct/prevent/popup/eduCancelPopupAjax.do")
|
||||
public ModelAndView filePopupAjax(
|
||||
@ModelAttribute("vEEduRprtVO") VEEduRprtVO vEEduRprtVO,
|
||||
@ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO
|
||||
@ModelAttribute("vEEduRprtVO") VEEduRprtVO vEEduRprtVO
|
||||
, ModelMap model
|
||||
//, RedirectAttributes redirectAttributes
|
||||
, HttpServletRequest request
|
||||
@ -892,7 +879,7 @@ public class PreventController {
|
||||
//step2.파일 처리====================================
|
||||
|
||||
try {
|
||||
/*
|
||||
|
||||
System.out.println("vEEduRprtVO.getAprvlCn()");
|
||||
System.out.println(vEEduRprtVO.getEduAplctOrd());
|
||||
System.out.println(vEEduRprtVO.getAprvlCn());
|
||||
@ -908,17 +895,7 @@ public class PreventController {
|
||||
|
||||
//취소요청 정보 저장
|
||||
vEEduAplctService.update(vEEduAplctVO);
|
||||
*/
|
||||
|
||||
/*
|
||||
251023
|
||||
ve_edu_aplct는 확정 상태 유지.
|
||||
vea_aplct_detail_info에서 취소 관련 처리
|
||||
*/
|
||||
vEEduAplctVO.setAplctStateCd(VeConstants.EDU_CD_CANCLE_REQ); //취소요청 코드 35
|
||||
vEEduAplctVO.setCnclAtchFileId(s_atchFileId);
|
||||
vEEduAplctVO.setCnclCn(vEEduAplctVO.getAprvlCn()); //취소사유 - 기존에는 aprvlCn 사용
|
||||
vEEduMIXService.updateCnclStatus(vEEduAplctVO);
|
||||
|
||||
}catch(Exception ex) {
|
||||
System.out.println("Exception vEEduRsltRprtService.insert");
|
||||
|
||||
@ -21,7 +21,6 @@ public interface SspnIdtmtService {
|
||||
//교육대상자 확인 - new
|
||||
ModelAndView checkSspnIdtmt(CndtnTrgtMngVO cndtnTrgtInfoMngVO);
|
||||
|
||||
//교육대상자 확인 - new
|
||||
ModelAndView sendCertSMS(String p_Clphone, String p_uniqId);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
package kcc.ve.aplct.sspnIdtmt.service.impl;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@ -17,7 +16,6 @@ import kcc.com.utl.user.service.CheckLoginUtil;
|
||||
import kcc.let.utl.fcc.service.EgovCryptoUtil;
|
||||
import kcc.ve.aplct.sspnIdtmt.service.SspnIdtmtService;
|
||||
import kcc.ve.cmm.VeSendSMS;
|
||||
import kcc.ve.cmm.sendAt.SendService;
|
||||
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;
|
||||
@ -57,9 +55,6 @@ public class SspnIdtmtServiceImpl implements SspnIdtmtService {
|
||||
// 교육신청발송이력
|
||||
@Resource(name = "vEEduAplctSndHstryService")
|
||||
private VEEduAplctSndHstryService vEEduAplctSndHstryService;
|
||||
|
||||
@Resource(name = "SendService")
|
||||
private SendService sendService;
|
||||
|
||||
@Override
|
||||
public void insertVeEduAplct(VEEduAplctVO paramVO) {
|
||||
@ -142,7 +137,6 @@ public class SspnIdtmtServiceImpl implements SspnIdtmtService {
|
||||
String id="";
|
||||
String next=""; //?
|
||||
String smsYn = ""; //휴대폰 인증 번호 발송 여부
|
||||
String reqStateCd = ""; //의뢰상태
|
||||
try {
|
||||
result="";
|
||||
//
|
||||
@ -177,11 +171,8 @@ public class SspnIdtmtServiceImpl implements SspnIdtmtService {
|
||||
}else { //대상자 있음
|
||||
id = cndtnTrgtMngVOList.get(0).getSspnIdtmtTrgtOrd();
|
||||
|
||||
//의뢰 상태가 의뢰취소(40)라면 스텝4에서 fail 처리
|
||||
reqStateCd = cndtnTrgtMngVOList.get(0).getReqStateCd();
|
||||
|
||||
//step2.대상이 완료 상태인지 확인
|
||||
cndtnTrgtMngVOList = cndtnTrgtInfoMngDAO.checkSspnIdtmtStep2(cndtnTrgtInfoMngVO);
|
||||
cndtnTrgtMngVOList = cndtnTrgtInfoMngDAO.checkSspnIdtmtStep2(cndtnTrgtInfoMngVO);
|
||||
|
||||
int i_cnt = 0;
|
||||
|
||||
@ -211,20 +202,13 @@ public class SspnIdtmtServiceImpl implements SspnIdtmtService {
|
||||
msg = "이미 신청한 교육이 있습니다.";
|
||||
next = ""; //?
|
||||
}else {//신청한 과정이 없다.
|
||||
|
||||
if("40".equals(reqStateCd)) {
|
||||
result = "fail";
|
||||
msg = "의뢰 취소 상태로 과정대상자가 아닙니다. 관리자에게 문의 바랍니다.";
|
||||
next = "Y"; //?
|
||||
}else {
|
||||
result = "success";
|
||||
msg = "";
|
||||
//id = cndtnTrgtMngVOList.get(0).getSspnIdtmtTrgtOrd();
|
||||
//id = "";
|
||||
next = "Y";
|
||||
smsYn = "Y";
|
||||
//next = Integer.toString(cndtnTrgtMngVOList.size()); //대상자 수
|
||||
}
|
||||
result = "success";
|
||||
msg = "";
|
||||
//id = cndtnTrgtMngVOList.get(0).getSspnIdtmtTrgtOrd();
|
||||
//id = "";
|
||||
next = "Y";
|
||||
smsYn = "Y";
|
||||
//next = Integer.toString(cndtnTrgtMngVOList.size()); //대상자 수
|
||||
}
|
||||
|
||||
}
|
||||
@ -287,32 +271,17 @@ public class SspnIdtmtServiceImpl implements SspnIdtmtService {
|
||||
}
|
||||
|
||||
//핸드폰으로 인증번호 발송 chkYn-본인인증 여부 Y-본인인증 완료된 경우
|
||||
if ("Y".equals(smsYn) && !"Y".equals(cndtnTrgtInfoMngVO.getChkYn())) {
|
||||
//데이터 암호화
|
||||
cndtnTrgtInfoMngVO = egovCryptoUtil.decryptCndtnTrgtMngVOInfo(cndtnTrgtInfoMngVO); //핸드폰번호 복호화
|
||||
|
||||
if ("Y".equals(smsYn) && !"Y".equals(cndtnTrgtInfoMngVO.getChkYn())) {
|
||||
//인증번호 생성
|
||||
String code = RandomStringUtils.randomNumeric(6);
|
||||
|
||||
LoginVO loginVO = checkLoginUtil.getAuthLoginVO();
|
||||
|
||||
//발송 및 log 남기기 - result code 값
|
||||
_sendSMSNLog(code, "교육 대상자 인증", "안녕하세요. 한국지식재산보호원입니다.\n인증번호는 " + code + " 입니다.", cndtnTrgtInfoMngVO.getClphone(), loginVO.getUniqId());
|
||||
|
||||
/*
|
||||
VEEduAplctVO vEEduAplctVO = new VEEduAplctVO();
|
||||
VeSendSMS sendSMS = new VeSendSMS();
|
||||
cndtnTrgtInfoMngVO = egovCryptoUtil.decryptCndtnTrgtMngVOInfo(cndtnTrgtInfoMngVO); //핸드폰번호 복호화
|
||||
vEEduAplctVO.setEduAplctOrd("교육 대상자 인증");
|
||||
vEEduAplctVO.setSndCn("안녕하세요. 한국지식재산보호원입니다.\n인증번호는 " + code + " 입니다.");
|
||||
vEEduAplctVO.setEduAplctOrd("기소유예 대상자 인증");
|
||||
vEEduAplctVO.setSndCn("안녕하세요. 저작권배움터 기소유예 담당자입니다.\n인증번호는 " + code + " 입니다.");
|
||||
vEEduAplctVO.setClphone(cndtnTrgtInfoMngVO.getClphone());
|
||||
vEEduAplctVO.setSndFlag("B");
|
||||
Map<String, Object> resultMap = sendSMS.VeSendSMS(vEEduAplctVO.getClphone(), vEEduAplctVO.getSndCn(), vEEduAplctVO.getSndFlag());
|
||||
|
||||
Map<String, String> chihwan = new HashMap<>();
|
||||
chihwan.put("certNo", code);
|
||||
sendService.sendAt(vEEduAplctVO.getClphone(), "TEMPLATE_CERT_NO", chihwan);
|
||||
|
||||
//문자 발송 성공 시
|
||||
if("1".equals(resultMap.get("result_code"))){
|
||||
//발송 로그
|
||||
@ -335,10 +304,6 @@ public class SspnIdtmtServiceImpl implements SspnIdtmtService {
|
||||
vEInstrMixService.insertInstrEmailCrtfd(vEInstrDetailVO);
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
//인증번호 임시노출 실서버 운영 시 삭제_이준호_251030
|
||||
modelAndView.addObject("crtfdNumber", code);
|
||||
}
|
||||
|
||||
|
||||
@ -374,94 +339,4 @@ public class SspnIdtmtServiceImpl implements SspnIdtmtService {
|
||||
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ModelAndView sendCertSMS(String p_Clphone, String p_uniqId) {
|
||||
|
||||
ModelAndView modelAndView = new ModelAndView();
|
||||
modelAndView.setViewName("jsonView");
|
||||
|
||||
String result="";
|
||||
String msg="";
|
||||
String id="";
|
||||
|
||||
try {
|
||||
result="";
|
||||
|
||||
//인증번호 생성
|
||||
String code = RandomStringUtils.randomNumeric(6);
|
||||
|
||||
//발송 및 log 남기기 - result code 값
|
||||
_sendSMSNLog(code, "교육 대상자 인증", "안녕하세요. 한국지식재산보호원입니다.\n인증번호는 " + code + " 입니다.", p_Clphone, p_uniqId);
|
||||
|
||||
} catch (Exception e) {
|
||||
result="fail";
|
||||
msg = "오류가 발생하였습니다 관리자에게 문의하세요. ";
|
||||
|
||||
e.printStackTrace();
|
||||
// TODO: handle exception
|
||||
}
|
||||
|
||||
modelAndView.addObject("msg", msg);
|
||||
modelAndView.addObject("id", id);
|
||||
modelAndView.addObject("result", result);
|
||||
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// PRIVATE
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
private String _sendSMSNLog(String p_code, String p_title, String p_cn, String p_clphone, String p_uniqId) throws Exception{
|
||||
//인증번호 생성
|
||||
//String code = RandomStringUtils.randomNumeric(6);
|
||||
|
||||
//문자 발송 부분
|
||||
Map<String, String> chihwan = new HashMap<>();
|
||||
chihwan.put("certNo", p_code);
|
||||
sendService.sendAt(p_clphone, "TEMPLATE_CERT_NO", chihwan);
|
||||
|
||||
//문자 발송 로그 부분
|
||||
VEEduAplctVO vEEduAplctVO = new VEEduAplctVO();
|
||||
VeSendSMS sendSMS = new VeSendSMS();
|
||||
vEEduAplctVO.setEduAplctOrd(p_title);
|
||||
vEEduAplctVO.setSndCn(p_cn);
|
||||
vEEduAplctVO.setClphone(p_clphone);
|
||||
|
||||
vEEduAplctVO.setSndFlag("B");
|
||||
Map<String, Object> 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(p_uniqId);
|
||||
vEEduAplctVO.setTrgt(vEEduAplctVO.getClphone());
|
||||
vEEduAplctVO.setSndCd("10");
|
||||
vEEduAplctVO.setTrgtId(p_uniqId);
|
||||
vEEduAplctSndHstryService.insert(vEEduAplctVO);
|
||||
|
||||
|
||||
//인증번호 row 생성 (기존 강사인증 테이블 사용)
|
||||
VEInstrDetailVO vEInstrDetailVO = new VEInstrDetailVO();
|
||||
vEInstrDetailVO.setEmail(vEEduAplctVO.getClphone());
|
||||
vEInstrDetailVO.setCrtfdNumber(p_code);
|
||||
vEInstrDetailVO.setUserId(p_uniqId);
|
||||
vEInstrMixService.deleteInstrEmailCrtfd(vEInstrDetailVO);
|
||||
vEInstrMixService.insertInstrEmailCrtfd(vEInstrDetailVO);
|
||||
|
||||
}
|
||||
|
||||
//인증번호 임시노출 실서버 운영 시 삭제_이준호_251030
|
||||
//modelAndView.addObject("crtfdNumber", code);
|
||||
|
||||
return p_code;
|
||||
}
|
||||
}
|
||||
|
||||
@ -9,8 +9,6 @@ import java.util.Map;
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import kcc.ve.cmm.sendAt.SendAtUtill;
|
||||
import kcc.ve.cmm.sendAt.SendService;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@ -180,12 +178,6 @@ public class SspnIdtmtController {
|
||||
//알림
|
||||
@Resource(name = "iTNotiUtil")
|
||||
private ITNotiUtil iTNotiUtil;
|
||||
|
||||
@Resource(name = "sendAtUtill")
|
||||
private SendAtUtill sendAtUtill;
|
||||
|
||||
@Resource(name = "SendService")
|
||||
private SendService sendService;
|
||||
|
||||
private String p_lctr_div_cd = "60";
|
||||
|
||||
@ -694,9 +686,8 @@ public class SspnIdtmtController {
|
||||
vEEduAplctVO.setUserId(loginVO.getUniqId());
|
||||
vEEduAplctVO.setPrcsOrd(vEPrcsDetailVO.getPrcsAplctPrdOrd());
|
||||
vEEduAplctVO.setTrgtNm(vEPrcsDetailVO.getTrgtNm());
|
||||
vEEduAplctVO.setChrgNm(vEPrcsDetailVO.getTrgtNm());
|
||||
vEEduAplctVO.setdBirth(vEPrcsDetailVO.getdBirth());
|
||||
vEEduAplctVO.setPhone(vEPrcsDetailVO.getPhone());
|
||||
vEEduAplctVO.setPhone(egovCryptoUtil.encrypt(vEPrcsDetailVO.getPhone()));
|
||||
vEEduAplctVO.setEmail(vEPrcsDetailVO.getEmail());
|
||||
|
||||
String result = "";
|
||||
@ -738,10 +729,6 @@ public class SspnIdtmtController {
|
||||
}
|
||||
|
||||
result = "success";
|
||||
|
||||
//신청 시 알림톡 발송
|
||||
Map<String, String> chihwan = sendAtUtill.chihwanSet(VeConstants.LCTR_DIV_CD_60, vEPrcsDetailVO.getPrcsAplctPrdOrd());
|
||||
sendService.sendAt(vEPrcsDetailVO.getPhone().trim().replaceAll("-", ""), "TEMPLATE_EDU_SUBMIT", chihwan);
|
||||
} catch (Exception e) {
|
||||
// TODO: handle exception
|
||||
}
|
||||
|
||||
@ -970,9 +970,7 @@ public class EduEndTngrController {
|
||||
System.out.println(a_qustnrQesitmId.length);
|
||||
System.out.println(a_qustnrQesitmId.length);
|
||||
|
||||
int j = 0;
|
||||
for (int i=0;i<i_chasiSrvyListSize;i++) {
|
||||
String[] a_answer = request.getParameterValues("answer");
|
||||
//String s_answer = request.getParameter("answer_"+Integer.toString(i+1));
|
||||
String s_responseRadio = request.getParameter("resultList["+Integer.toString(i)+"].responseRadio");
|
||||
|
||||
@ -987,8 +985,6 @@ public class EduEndTngrController {
|
||||
qustnrRespondInfoVO.setDissatisfied("0");
|
||||
qustnrRespondInfoVO.setVeryDissatisfied("0");
|
||||
|
||||
qustnrRespondInfoVO.setAnswer("");
|
||||
|
||||
if ("5".equals(s_responseRadio)) {
|
||||
qustnrRespondInfoVO.setVerySatisfied("1");
|
||||
|
||||
@ -1004,9 +1000,6 @@ public class EduEndTngrController {
|
||||
}else if ("1".equals(s_responseRadio)) {
|
||||
qustnrRespondInfoVO.setVeryDissatisfied("1");
|
||||
|
||||
}else {
|
||||
qustnrRespondInfoVO.setAnswer(a_answer[j]);
|
||||
j=j+1;
|
||||
}
|
||||
|
||||
//qustnrRespondInfoVO.setQustnrQesitmId(a_qustnrQesitmId[i]);
|
||||
|
||||
@ -21,6 +21,8 @@ public class VeSendMail {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(EgovFileMngUtil.class);
|
||||
|
||||
@Value("#{globalSettings['Globals.edu.mail.template']}")
|
||||
private String TEMPLATE_URI;
|
||||
//================================================================
|
||||
//찾교 메일 발송 계정 ID, PW 넣는 부분
|
||||
|
||||
|
||||
@ -1,81 +0,0 @@
|
||||
package kcc.ve.cmm.crt;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
public class CertPhoneInfo {
|
||||
|
||||
private static String cryptoUrl;
|
||||
private static String reqNo;
|
||||
private static String id;
|
||||
private static String clientId;
|
||||
private static String srvNo;
|
||||
private static String retUrl;
|
||||
private static String accessToken;
|
||||
private static String stosUrl;
|
||||
|
||||
@Value("#{globalSettings['globals.certPhone.cryptoUrl']}")
|
||||
public void setCryptoUrl(String value) {
|
||||
CertPhoneInfo.cryptoUrl = value;
|
||||
}
|
||||
public String getCryptoUrl() {
|
||||
return cryptoUrl;
|
||||
}
|
||||
|
||||
@Value("#{globalSettings['globals.certPhone.reqNo']}")
|
||||
public void setReqNo(String value) {
|
||||
CertPhoneInfo.reqNo = value;
|
||||
}
|
||||
public String getReqNo() {
|
||||
return reqNo;
|
||||
}
|
||||
|
||||
@Value("#{globalSettings['globals.certPhone.id']}")
|
||||
public void setId(String value) {
|
||||
CertPhoneInfo.id = value;
|
||||
}
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
@Value("#{globalSettings['globals.certPhone.clientId']}")
|
||||
public void setClientId(String value) {
|
||||
CertPhoneInfo.clientId = value;
|
||||
}
|
||||
public String getClientId() {
|
||||
return clientId;
|
||||
}
|
||||
|
||||
@Value("#{globalSettings['globals.certPhone.srvNo']}")
|
||||
public void setSrvNo(String value) {
|
||||
CertPhoneInfo.srvNo = value;
|
||||
}
|
||||
public String getSrvNo() {
|
||||
return srvNo;
|
||||
}
|
||||
|
||||
@Value("#{globalSettings['globals.certPhone.retUrl']}")
|
||||
public void setRetUrl(String value) {
|
||||
CertPhoneInfo.retUrl = value;
|
||||
}
|
||||
public String getRetUrl() {
|
||||
return retUrl;
|
||||
}
|
||||
|
||||
@Value("#{globalSettings['globals.certPhone.accessToken']}")
|
||||
public void setAccessToken(String value) {
|
||||
CertPhoneInfo.accessToken = value;
|
||||
}
|
||||
public String getAccessToken() {
|
||||
return accessToken;
|
||||
}
|
||||
|
||||
@Value("#{globalSettings['globals.certPhone.stosUrl']}")
|
||||
public void setStosUrl(String value) {
|
||||
CertPhoneInfo.stosUrl = value;
|
||||
}
|
||||
public String getStosUrl() {
|
||||
return stosUrl;
|
||||
}
|
||||
}
|
||||
@ -1,240 +0,0 @@
|
||||
package kcc.ve.cmm.crt;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import org.json.simple.JSONObject;
|
||||
import org.json.simple.parser.JSONParser;
|
||||
import org.springframework.http.*;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import javax.crypto.*;
|
||||
import javax.crypto.spec.IvParameterSpec;
|
||||
import javax.crypto.spec.SecretKeySpec;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.security.InvalidAlgorithmParameterException;
|
||||
import java.security.InvalidKeyException;
|
||||
import java.security.MessageDigest;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Base64;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@Service(value = "certPhoneRequestUtill")
|
||||
public class CertPhoneRequestUtill {
|
||||
|
||||
public String requestResult( HttpServletRequest request, ModelAndView modelAndView ) throws Exception {
|
||||
String result = "fail";
|
||||
CertPhoneInfo certPhoneInfo = new CertPhoneInfo();
|
||||
|
||||
String url = certPhoneInfo.getCryptoUrl();
|
||||
String reqNo = certPhoneInfo.getReqNo();
|
||||
String id = certPhoneInfo.getId();
|
||||
String clientId = certPhoneInfo.getClientId();
|
||||
String srvNo = certPhoneInfo.getSrvNo();
|
||||
String retUrl = certPhoneInfo.getRetUrl() + "web/cmm/crt/certPhoneReturn.do";
|
||||
String accessToken = certPhoneInfo.getAccessToken();
|
||||
|
||||
Date currentDate = new Date();
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
|
||||
String reqDate = sdf.format(currentDate);
|
||||
|
||||
RestTemplate restTemplate = new RestTemplate();
|
||||
|
||||
// 1. Header 설정
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.setContentType(MediaType.APPLICATION_JSON);
|
||||
headers.set("Authorization", "bearer " + accessToken);
|
||||
|
||||
// 2. Body 생성
|
||||
Map<String, Object> dataHeader = new HashMap<>();
|
||||
dataHeader.put("lang_code", "kr");
|
||||
|
||||
Map<String, Object> dataBody = new HashMap<>();
|
||||
dataBody.put("client_id", clientId);
|
||||
dataBody.put("req_date", reqDate);
|
||||
dataBody.put("req_no", reqNo);
|
||||
dataBody.put("enc_mode", "1");
|
||||
|
||||
Map<String, Object> requestJson = new HashMap<>();
|
||||
requestJson.put("dataHeader", dataHeader);
|
||||
requestJson.put("dataBody", dataBody);
|
||||
|
||||
HttpEntity<Map<String, Object>> entity = new HttpEntity<>(requestJson, headers);
|
||||
|
||||
// 3. POST 요청 호출
|
||||
ResponseEntity<String> response = restTemplate.exchange(
|
||||
url,
|
||||
HttpMethod.POST,
|
||||
entity,
|
||||
String.class
|
||||
);
|
||||
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
|
||||
Map<String, Object> json = mapper.readValue(response.getBody(), Map.class);
|
||||
Map<String, Object> resDataBody = (Map<String, Object>) json.get("dataBody");
|
||||
|
||||
String cryptoTokenId = (String) resDataBody.get("crypto_token_id");
|
||||
String cryptoToken = (String) resDataBody.get("crypto_token");
|
||||
|
||||
String reqInfo = getReqData(id
|
||||
, srvNo
|
||||
, reqNo
|
||||
, "72" + retUrl
|
||||
, reqDate
|
||||
, "H"); //4번시트 5 본인확인 서비스 요청데이터 암호화 항목참조
|
||||
|
||||
String symmetricKey = createSymmetricKey(reqDate, reqNo, cryptoToken);
|
||||
|
||||
String key = symmetricKey.substring(0, 16);
|
||||
String iv = symmetricKey.substring(symmetricKey.length() - 16, symmetricKey.length());
|
||||
|
||||
request.getSession().setAttribute("reqkey", key);
|
||||
request.getSession().setAttribute("reqiv", iv);
|
||||
|
||||
reqInfo = getEncReqData(key, iv, reqInfo);
|
||||
|
||||
String hmacKey = symmetricKey.substring(0, 32);
|
||||
byte[] hmacSha256 = hmac256(hmacKey.getBytes(), reqInfo.getBytes());
|
||||
String integrityValue = Base64.getEncoder().encodeToString(hmacSha256);
|
||||
String baseEncStr = Base64.getEncoder().encodeToString(hmacSha256);
|
||||
result = "success";
|
||||
|
||||
modelAndView.addObject("reqInfo", reqInfo);
|
||||
modelAndView.addObject("cryptoTokenId", cryptoTokenId);
|
||||
modelAndView.addObject("integrityValue", integrityValue);
|
||||
modelAndView.addObject("verSion", "3");
|
||||
return result;
|
||||
}
|
||||
|
||||
public ModelAndView devLogin( HttpServletRequest request ) throws Exception{
|
||||
ModelAndView modelAndView = new ModelAndView();
|
||||
modelAndView.setViewName("jsonView");
|
||||
|
||||
// 1. 클라이언트에서 넘어온 평문 JSON 문자열
|
||||
String retInfo = request.getParameter("retInfo");
|
||||
|
||||
// 2. 세션에서 키/IV 가져오기
|
||||
String reqkey = request.getSession().getAttribute("reqkey").toString();
|
||||
String reqiv = request.getSession().getAttribute("reqiv").toString();
|
||||
|
||||
// 3. AES 암호화 설정
|
||||
SecretKeySpec secureKey = new SecretKeySpec(reqkey.getBytes("UTF-8"), "AES");
|
||||
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
|
||||
cipher.init(Cipher.ENCRYPT_MODE, secureKey, new IvParameterSpec(reqiv.getBytes("UTF-8")));
|
||||
|
||||
// 4. 평문 JSON 문자열을 바이트로 변환 후 암호화
|
||||
byte[] plainBytes = retInfo.getBytes("UTF-8");
|
||||
byte[] cipherBytes = cipher.doFinal(plainBytes);
|
||||
|
||||
// 5. 암호문을 Base64 인코딩해서 최종 문자열로 변환
|
||||
String encRetInfo = Base64.getEncoder().encodeToString(cipherBytes);
|
||||
|
||||
// 필요하다면 응답에 포함
|
||||
modelAndView.addObject("result", "success");
|
||||
modelAndView.addObject("encRetInfo", encRetInfo);
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
///////// private Function
|
||||
|
||||
private String getEncReqData( String key, String iv, String reqData ) throws Exception {
|
||||
String reqInfo = "";
|
||||
try {
|
||||
SecretKey secureKey = new SecretKeySpec(key.getBytes(), "AES");
|
||||
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
|
||||
cipher.init(Cipher.ENCRYPT_MODE, secureKey, new IvParameterSpec(iv.getBytes()));
|
||||
byte[] encrypted;
|
||||
encrypted = cipher.doFinal(reqData.trim().getBytes());
|
||||
reqInfo = Base64.getEncoder().encodeToString(encrypted);
|
||||
} catch(Exception e) {
|
||||
System.out.println(String.format("(APICERT)(ERR) getEncReqData Exception : %s", e.getMessage()));
|
||||
e.printStackTrace();
|
||||
throw e;
|
||||
}
|
||||
return reqInfo;
|
||||
}
|
||||
|
||||
private String createSymmetricKey( String req_dtim, String req_no, String token_val ) throws Exception {
|
||||
String symmetricKey = "";
|
||||
String value = req_dtim.trim() + req_no.trim() + token_val.trim();
|
||||
MessageDigest md;
|
||||
try {
|
||||
md = MessageDigest.getInstance("SHA-256");
|
||||
md.update(value.getBytes());
|
||||
byte[] arrHashValue = md.digest();
|
||||
symmetricKey = Base64.getEncoder().encodeToString(arrHashValue);
|
||||
} catch(Exception e) {
|
||||
System.out.println(String.format("(APICERT)(ERR) createSymmetricKey Exception : %s", e.getMessage()));
|
||||
e.printStackTrace();
|
||||
throw e;
|
||||
}
|
||||
return symmetricKey;
|
||||
}
|
||||
|
||||
private byte[] hmac256( byte[] secretKey, byte[] message ) throws Exception {
|
||||
byte[] hmac256 = null;
|
||||
try {
|
||||
Mac mac = Mac.getInstance("HmacSHA256");
|
||||
SecretKeySpec sks = new SecretKeySpec(secretKey, "HmacSHA256");
|
||||
mac.init(sks);
|
||||
hmac256 = mac.doFinal(message);
|
||||
return hmac256;
|
||||
} catch(Exception e) {
|
||||
System.out.println(String.format("(APICERT)(ERR) hmac256 Exception : %s", e.getMessage()));
|
||||
e.printStackTrace();
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
private String getReqData( String id, String srvNo, String reqNum, String retUrl, String certDate, String certGb ) {
|
||||
|
||||
JSONObject msgMap = new JSONObject();
|
||||
msgMap.put("id", id);
|
||||
msgMap.put("srvNo", srvNo);
|
||||
msgMap.put("reqNum", reqNum);
|
||||
msgMap.put("retUrl", retUrl);
|
||||
msgMap.put("certDate", certDate);
|
||||
msgMap.put("certGb", certGb);
|
||||
String reqData = msgMap.toJSONString();
|
||||
return reqData;
|
||||
|
||||
}
|
||||
|
||||
//복호화
|
||||
private JSONObject getResData( String req_info, String key, String iv ) throws Exception {
|
||||
SecretKey secureKey = new SecretKeySpec(key.getBytes(), "AES");
|
||||
Cipher c;
|
||||
String resData = "";
|
||||
try {
|
||||
c = Cipher.getInstance("AES/CBC/PKCS5Padding");
|
||||
c.init(Cipher.DECRYPT_MODE, secureKey, new IvParameterSpec(iv.getBytes()));
|
||||
/*byte[] cipherEnc = Base64.getDecoder().decode(encData);*/
|
||||
byte[] cipherEnc = Base64.getDecoder().decode(req_info);
|
||||
resData = new String(c.doFinal(cipherEnc), "utf-8");
|
||||
} catch(Exception e) {
|
||||
System.out.println(String.format("(APICERT)(ERR) getResData Exception : %s", e.getMessage()));
|
||||
e.printStackTrace();
|
||||
return null;
|
||||
}
|
||||
JSONParser parser = new JSONParser();
|
||||
JSONObject jsonResData = (JSONObject) parser.parse(resData);
|
||||
return jsonResData;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -1,333 +0,0 @@
|
||||
package kcc.ve.cmm.crt;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import org.json.simple.JSONObject;
|
||||
import org.json.simple.parser.JSONParser;
|
||||
import org.springframework.http.*;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
|
||||
import javax.crypto.Cipher;
|
||||
import javax.crypto.Mac;
|
||||
import javax.crypto.SecretKey;
|
||||
import javax.crypto.spec.IvParameterSpec;
|
||||
import javax.crypto.spec.SecretKeySpec;
|
||||
import javax.net.ssl.HttpsURLConnection;
|
||||
import javax.net.ssl.SSLContext;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.io.*;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
import java.security.MessageDigest;
|
||||
import java.security.SecureRandom;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Base64;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@Service(value = "certPhoneResultUtill")
|
||||
public class CertPhoneResultUtill {
|
||||
|
||||
CertPhoneInfo certPhoneInfo = new CertPhoneInfo();
|
||||
|
||||
public String createCryptoTokenUrl = certPhoneInfo.getCryptoUrl();
|
||||
public String access_token = certPhoneInfo.getAccessToken();
|
||||
public String client_id = certPhoneInfo.getClientId();
|
||||
|
||||
public String certResult( HttpServletRequest request ) throws Exception {
|
||||
String reqcryptotokenid = request.getParameter("crypto_token_id");
|
||||
String integrity_value = request.getParameter("integrity_value");
|
||||
|
||||
String id = certPhoneInfo.getId();
|
||||
String url = certPhoneInfo.getStosUrl();
|
||||
|
||||
//암호화키 얻기
|
||||
Date currentDate = new Date();
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
|
||||
String reqDate = sdf.format(currentDate);
|
||||
|
||||
String reqNo = certPhoneInfo.getReqNo();
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");
|
||||
|
||||
String cryptoToken = callCreateCryptoTokenAPI(currentDate, reqNo);
|
||||
|
||||
JSONParser parser = new JSONParser();
|
||||
JSONObject cryptoTokenJson = (JSONObject) parser.parse(cryptoToken);
|
||||
JSONObject dataBody = (JSONObject) cryptoTokenJson.get("dataBody");
|
||||
|
||||
String crypto_token_id = (String) dataBody.get("crypto_token_id");
|
||||
String token_val = (String) dataBody.get("crypto_token");
|
||||
String reqInfo = getReqData(id, reqcryptotokenid);
|
||||
|
||||
|
||||
String day = formatter.format(currentDate);
|
||||
|
||||
String symmetricKey = createSymmetricKey(day, reqNo, token_val);
|
||||
String key = symmetricKey.substring(0, 16); // 데이터 암호화할 대칭키
|
||||
String iv = symmetricKey.substring(symmetricKey.length() - 16, symmetricKey.length());// 데이터 암호화할 lnitail Vector
|
||||
|
||||
reqInfo = getEncReqData(key, iv, reqInfo);
|
||||
|
||||
//복호화
|
||||
try {
|
||||
RestTemplate restTemplate = new RestTemplate();
|
||||
|
||||
// 1. Header 설정
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.setContentType(MediaType.APPLICATION_JSON);
|
||||
|
||||
// 2. Body 생성
|
||||
Map<String, Object> dataHeader = new HashMap<>();
|
||||
dataHeader.put("CNTY_CD", "kr");
|
||||
dataHeader.put("TRAN_ID", id);
|
||||
|
||||
Map<String, Object> dataBody2 = new HashMap<>();
|
||||
dataBody2.put("crypto_token_id", crypto_token_id);
|
||||
dataBody2.put("reqInfo", reqInfo);
|
||||
dataBody2.put("integrity_value", integrity_value);
|
||||
|
||||
Map<String, Object> requestJson = new HashMap<>();
|
||||
requestJson.put("dataHeader", dataHeader);
|
||||
requestJson.put("dataBody", dataBody2);
|
||||
|
||||
HttpEntity<Map<String, Object>> entity = new HttpEntity<>(requestJson, headers);
|
||||
|
||||
// 3. POST 요청 호출
|
||||
ResponseEntity<String> response = restTemplate.exchange(
|
||||
url,
|
||||
HttpMethod.POST,
|
||||
entity,
|
||||
String.class
|
||||
);
|
||||
|
||||
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
|
||||
Map<String, Object> json = mapper.readValue(response.getBody(), Map.class);
|
||||
Map<String, Object> resDataBody = (Map<String, Object>) json.get("dataBody");
|
||||
|
||||
String retInfo = (String) resDataBody.get("RET_INFO");
|
||||
|
||||
// AES 복호화 설정 (AES/CBC/PKCS5Padding)
|
||||
String reqkey = request.getSession().getAttribute("reqkey").toString();
|
||||
String reqiv = request.getSession().getAttribute("reqiv").toString();
|
||||
|
||||
SecretKeySpec secureKey = new SecretKeySpec(reqkey.getBytes("UTF-8"), "AES");
|
||||
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
|
||||
cipher.init(Cipher.DECRYPT_MODE, secureKey, new IvParameterSpec(reqiv.getBytes("UTF-8")));
|
||||
|
||||
// Base64 디코딩 후 복호화 수행
|
||||
byte[] cipherEnc = Base64.getDecoder().decode(retInfo);
|
||||
|
||||
String resData = new String(cipher.doFinal(cipherEnc), "UTF-8");
|
||||
|
||||
/*
|
||||
===== 복호화된 결과 =====
|
||||
Commid = KTM
|
||||
reqNum = koipa_edu
|
||||
gender = M
|
||||
di = MC0GCCqGSIb3DQIJAyEAu7FiVqtM/qf7o/KlCxGNQtWWSEoxUzcLWNtM3gXU/hA=
|
||||
ci = BWqlL7enYj5t2aDsrbvX97vk5wW2+MD08M6e7NtHI9GVeWfWioe8L2m7mheHWKht4uxDUC3k8xG81YgRnUP2lw==
|
||||
celNo = 01030266269
|
||||
fgnGbn = 1
|
||||
certGb = H
|
||||
userName = 이준호
|
||||
ci2 = 00
|
||||
result = Y
|
||||
addVar =
|
||||
certdate = 20251118123928
|
||||
birYMD = 19890202
|
||||
ciVersion = 1
|
||||
utf8Name = %EC%9D%B4%EC%A4%80%ED%98%B8
|
||||
id = SKIP001
|
||||
|
||||
|
||||
|
||||
===== 복호화된 결과 =====
|
||||
Commid = LGT
|
||||
reqNum = koipa_edu
|
||||
gender = F
|
||||
di = MC0GCCqGSIb3DQIJAyEAHq52+k0nurs/FS2kArC2+JTfs+3Xa8KPvSTY2WtgMDY=
|
||||
ci = vDDZDokeyyUJ3i3jaktyXRVGib2XoZZUvp4Rb9tOOWg1sATqRChD4qRNSCaY78EKpsggJMZ/j6jwcLngkXxZtg==
|
||||
celNo = 01057058729
|
||||
fgnGbn = 1
|
||||
certGb = H
|
||||
userName = 정수빈
|
||||
ci2 =
|
||||
result = Y
|
||||
addVar =
|
||||
certdate = 20251118125047
|
||||
birYMD = 19970829
|
||||
ciVersion = 1
|
||||
utf8Name = %EC%A0%95%EC%88%98%EB%B9%88
|
||||
id = SKIP001
|
||||
*/
|
||||
return retInfo;
|
||||
|
||||
} catch(Exception e) {
|
||||
System.out.println(e.getMessage());
|
||||
return "fail";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public String callCreateCryptoTokenAPI( Date currentDate, String req_no ) throws Exception {
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");
|
||||
long current_timestamp = currentDate.getTime() / 1000;
|
||||
String authorization = "bearer " + access_token;
|
||||
|
||||
Map<String, String> requestPropertyMap = new HashMap<>();
|
||||
requestPropertyMap.put("Content-Type", "application/json");
|
||||
requestPropertyMap.put("Authorization", authorization);
|
||||
|
||||
HttpURLConnection connection = getURLConnection(createCryptoTokenUrl, "POST", requestPropertyMap, true, false);
|
||||
JSONObject dataHeader = new JSONObject();
|
||||
dataHeader.put("lang_code", "kr");
|
||||
JSONObject dataBody = new JSONObject();
|
||||
dataBody.put("client_id", client_id);
|
||||
dataBody.put("req_date", formatter.format(currentDate));
|
||||
dataBody.put("req_no", req_no);
|
||||
dataBody.put("enc_mode", "1");
|
||||
JSONObject msgMap = new JSONObject();
|
||||
msgMap.put("dataHeader", dataHeader);
|
||||
msgMap.put("dataBody", dataBody);
|
||||
String msg = msgMap.toJSONString();
|
||||
if(send(connection.getOutputStream(), msg)) return "";
|
||||
String receiveMsg = receive(connection.getInputStream());
|
||||
|
||||
return receiveMsg;
|
||||
}
|
||||
|
||||
public String getEncReqData( String key, String iv, String reqData ) throws Exception {
|
||||
String req_info = "";
|
||||
try {
|
||||
SecretKey secureKey = new SecretKeySpec(key.getBytes(), "AES");
|
||||
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
|
||||
cipher.init(Cipher.ENCRYPT_MODE, secureKey, new IvParameterSpec(iv.getBytes()));
|
||||
byte[] encrypted;
|
||||
encrypted = cipher.doFinal(reqData.trim().getBytes());
|
||||
req_info = Base64.getEncoder().encodeToString(encrypted);
|
||||
} catch(Exception e) {
|
||||
System.out.println(String.format("(APICERT)(ERR) getEncReqData Exception : %s", e.getMessage()));
|
||||
throw e;
|
||||
}
|
||||
return req_info;
|
||||
}
|
||||
|
||||
public byte[] hmac256( byte[] secretKey, byte[] message ) throws Exception {
|
||||
byte[] hmac256 = null;
|
||||
try {
|
||||
Mac mac = Mac.getInstance("HmacSHA256");
|
||||
SecretKeySpec sks = new SecretKeySpec(secretKey, "HmacSHA256");
|
||||
mac.init(sks);
|
||||
hmac256 = mac.doFinal(message);
|
||||
return hmac256;
|
||||
} catch(Exception e) {
|
||||
System.out.println(String.format("(APICERT)(ERR) hmac256 Exception : %s", e.getMessage()));
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
public String createSymmetricKey( String req_dtim, String req_no, String token_val ) throws Exception {
|
||||
String symmetricKey = "";
|
||||
String value = req_dtim.trim() + req_no.trim() + token_val.trim();
|
||||
MessageDigest md;
|
||||
try {
|
||||
md = MessageDigest.getInstance("SHA-256");
|
||||
md.update(value.getBytes());
|
||||
byte[] arrHashValue = md.digest();
|
||||
symmetricKey = Base64.getEncoder().encodeToString(arrHashValue);
|
||||
} catch(Exception e) {
|
||||
System.out.println(String.format("(APICERT)(ERR) createSymmetricKey Exception : %s", e.getMessage()));
|
||||
throw e;
|
||||
}
|
||||
return symmetricKey;
|
||||
}
|
||||
|
||||
|
||||
public Boolean send( OutputStream outputStream, String sendMsg ) throws Exception {
|
||||
Boolean isFail = true;
|
||||
BufferedWriter bufferedWriter = null;
|
||||
try {
|
||||
bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "utf-8"));
|
||||
bufferedWriter.write(sendMsg);
|
||||
bufferedWriter.flush();
|
||||
isFail = false;
|
||||
} catch(Exception e) {
|
||||
System.out.println(String.format("(APICERT)(ERR) send Exception : %s", e.getMessage()));
|
||||
throw e;
|
||||
} finally {
|
||||
if(bufferedWriter != null) {
|
||||
bufferedWriter.close();
|
||||
}
|
||||
}
|
||||
return isFail;
|
||||
}
|
||||
|
||||
private static HttpsURLConnection openHttps12( String urlStr ) throws Exception {
|
||||
URL url = new URL(urlStr);
|
||||
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
|
||||
|
||||
SSLContext ctx = SSLContext.getInstance("TLSv1.2");
|
||||
ctx.init(null, null, new SecureRandom());
|
||||
conn.setSSLSocketFactory(ctx.getSocketFactory());
|
||||
|
||||
|
||||
return conn;
|
||||
}
|
||||
|
||||
|
||||
public String receive( InputStream inputStream ) throws Exception {
|
||||
String receiveMsg = "";
|
||||
BufferedReader bufferedReader = null;
|
||||
try {
|
||||
bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "utf-8"));
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
String inputLine;
|
||||
while((inputLine = bufferedReader.readLine()) != null) {
|
||||
stringBuilder.append(inputLine);
|
||||
}
|
||||
receiveMsg = stringBuilder.toString();
|
||||
} catch(Exception e) {
|
||||
System.out.println(String.format("(APICERT)(ERR) receive Exception : %s", e.getMessage()));
|
||||
throw e;
|
||||
} finally {
|
||||
if(bufferedReader != null) {
|
||||
bufferedReader.close();
|
||||
}
|
||||
}
|
||||
return receiveMsg;
|
||||
}
|
||||
|
||||
public HttpURLConnection getURLConnection( String urlStr, String method, Map<String, String> requestPropertyMap, Boolean isNeedOutput, Boolean isHttps ) throws Exception {
|
||||
try {
|
||||
URL url = new URL(urlStr);
|
||||
|
||||
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
|
||||
connection.setRequestMethod(method);
|
||||
|
||||
connection.setDoInput(true);
|
||||
if(isNeedOutput) connection.setDoOutput(true);
|
||||
for(String key : requestPropertyMap.keySet()) {
|
||||
connection.setRequestProperty(key, requestPropertyMap.get(key));
|
||||
}
|
||||
return connection;
|
||||
} catch(Exception e) {
|
||||
System.out.println(String.format("(APICERT)(ERR) getURLConnection Exception : %s", e.getMessage()));
|
||||
throw e;
|
||||
} finally {
|
||||
}
|
||||
}
|
||||
|
||||
public String getReqData( String id, String reqcryptotokenid ) {
|
||||
JSONObject msgMap = new JSONObject();
|
||||
msgMap.put("id", id);
|
||||
msgMap.put("reqcryptotokenid", reqcryptotokenid);
|
||||
|
||||
String reqData = msgMap.toJSONString();
|
||||
|
||||
return reqData;
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,62 +0,0 @@
|
||||
package kcc.ve.cmm.crt;
|
||||
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.ModelMap;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
@Controller
|
||||
public class CertPhoneWebController {
|
||||
|
||||
// 첨부파일 정보
|
||||
@Resource(name = "certPhoneRequestUtill")
|
||||
private CertPhoneRequestUtill certPhoneRequestUtill;
|
||||
|
||||
// 첨부파일 정보
|
||||
@Resource(name = "certPhoneResultUtill")
|
||||
private CertPhoneResultUtill certPhoneResultUtill;
|
||||
|
||||
/**
|
||||
* 본인인증
|
||||
*/
|
||||
@RequestMapping("/web/cmm/crt/certPhoneRequestAjax.do")
|
||||
public ModelAndView certPhoneRequestAjax( HttpServletRequest request ) throws Exception {
|
||||
|
||||
ModelAndView modelAndView = new ModelAndView();
|
||||
modelAndView.setViewName("jsonView");
|
||||
|
||||
String result = certPhoneRequestUtill.requestResult(request, modelAndView);
|
||||
|
||||
modelAndView.addObject("result", result);
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@RequestMapping("/web/cmm/crt/certPhoneReturn.do")
|
||||
public String certPhoneReturn( HttpServletRequest request, ModelMap model ) throws Exception {
|
||||
|
||||
String retInfo = certPhoneResultUtill.certResult(request);
|
||||
|
||||
model.addAttribute("retInfo", retInfo);
|
||||
return "web/kccadr/login/CertPhoneResultPop";
|
||||
}
|
||||
|
||||
|
||||
@RequestMapping("/web/cmm/crt/certPhoneRequestAjax_dev.do")
|
||||
public ModelAndView certPhoneRequestAjax_dev( HttpServletRequest request ) throws Exception {
|
||||
|
||||
ModelAndView modelAndView = new ModelAndView();
|
||||
modelAndView = certPhoneRequestUtill.devLogin(request);
|
||||
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -1,60 +0,0 @@
|
||||
package kcc.ve.cmm.sendAt;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
public class PpurioGlobalSet {
|
||||
|
||||
private static String id;
|
||||
private static String pw;
|
||||
private static String host;
|
||||
private static String senderKey;
|
||||
private static String from;
|
||||
|
||||
@Value("#{globalSettings['ppurio.id']}")
|
||||
public void setId(String id) {
|
||||
PpurioGlobalSet.id = id;
|
||||
}
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
@Value("#{globalSettings['ppurio.pw']}")
|
||||
public void setPw(String pw) {
|
||||
PpurioGlobalSet.pw = pw;
|
||||
}
|
||||
|
||||
public String getPw() {
|
||||
return pw;
|
||||
}
|
||||
|
||||
@Value("#{globalSettings['ppurio.host']}")
|
||||
public void setHost(String host) {
|
||||
PpurioGlobalSet.host = host;
|
||||
}
|
||||
|
||||
public String getHost() {
|
||||
return host;
|
||||
}
|
||||
|
||||
@Value("#{globalSettings['ppurio.senderKey']}")
|
||||
public void setSenderKey(String senderKey) {
|
||||
PpurioGlobalSet.senderKey = senderKey;
|
||||
}
|
||||
|
||||
public String getSenderKey() {
|
||||
return senderKey;
|
||||
}
|
||||
|
||||
@Value("#{globalSettings['ppurio.from']}")
|
||||
public void setFrom(String from) {
|
||||
PpurioGlobalSet.from = from;
|
||||
}
|
||||
|
||||
public String getFrom() {
|
||||
return from;
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,66 +0,0 @@
|
||||
package kcc.ve.cmm.sendAt;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import kcc.ve.cmm.VeConstants;
|
||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService;
|
||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
|
||||
import lombok.*;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.io.Serializable;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
@Component(value = "sendAtUtill")
|
||||
public class SendAtUtill{
|
||||
|
||||
//과정차시 관리
|
||||
@Resource(name = "vEPrcsAplctPrdService")
|
||||
private VEPrcsAplctPrdService vEPrcsAplctPrdService;
|
||||
|
||||
public Map<String, String> chihwanSet(String lctrDivCd, String prcsAplctPrdOrd) throws Exception {
|
||||
|
||||
VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO();
|
||||
|
||||
vEPrcsDetailVO.setPrcsAplctPrdOrd(prcsAplctPrdOrd);
|
||||
|
||||
VEPrcsDetailVO vEPrcsDetailVODetail = vEPrcsAplctPrdService.selectDetailNewOne4Fndth(vEPrcsDetailVO);
|
||||
|
||||
String[] prvtMemoCn = vEPrcsDetailVODetail.getPrvtMemoCn().split(Pattern.quote("|"));
|
||||
String content = "";
|
||||
String eduDay = "";
|
||||
String eduRegDay = "";
|
||||
String eduPlace = "";
|
||||
|
||||
if(VeConstants.LCTR_DIV_CD_60.equals(lctrDivCd)){
|
||||
content = "귀하의 상표권 교육조건부 기소유예 교육 신청이 완료되었습니다.";
|
||||
}else if(VeConstants.LCTR_DIV_CD_70.equals(lctrDivCd)){
|
||||
content = "귀하의 부정경쟁행위 시정명령 교육 신청이 완료되었습니다.";
|
||||
}else if(VeConstants.LCTR_DIV_CD_80.equals(lctrDivCd)){
|
||||
content = "귀하의 상표권 침해・부정경쟁행위 예방 교육 신청이 완료되었습니다.";
|
||||
}else{
|
||||
content = "귀하의 교육 신청이 완료되었습니다.";
|
||||
}
|
||||
|
||||
if(prvtMemoCn.length > 0){
|
||||
eduDay = prvtMemoCn[0];
|
||||
eduRegDay = prvtMemoCn[1];
|
||||
eduPlace = prvtMemoCn[2];
|
||||
}
|
||||
|
||||
Map<String, String> chihwan = new HashMap<>();
|
||||
chihwan.put("content", content);
|
||||
chihwan.put("eduDay", eduDay);
|
||||
chihwan.put("eduRegDay", eduRegDay);
|
||||
chihwan.put("eduPlace", eduPlace);
|
||||
|
||||
|
||||
return chihwan;
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,88 +0,0 @@
|
||||
package kcc.ve.cmm.sendAt;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import lombok.*;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Map;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public class SendAtVO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@JsonIgnore
|
||||
private String accesstoken;
|
||||
private String type;
|
||||
@JsonIgnore
|
||||
private String expired;
|
||||
|
||||
private String account;
|
||||
private String refkey;
|
||||
private String from;
|
||||
private String to;
|
||||
private Content content;
|
||||
private Resend resend;
|
||||
private Recontent recontent;
|
||||
|
||||
@JsonIgnore
|
||||
private Map<String, String> chihwan;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public static class Content {
|
||||
private At at;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public static class At {
|
||||
private String senderkey;
|
||||
private String templatecode;
|
||||
private String message;
|
||||
}
|
||||
}
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public static class Resend {
|
||||
private String first;
|
||||
}
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public static class Recontent {
|
||||
private Lms lms;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public static class Lms {
|
||||
private String message;
|
||||
}
|
||||
}
|
||||
|
||||
public String toJson() throws JsonProcessingException {
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
return mapper.writeValueAsString(this);
|
||||
}
|
||||
}
|
||||
@ -1,57 +0,0 @@
|
||||
package kcc.ve.cmm.sendAt;
|
||||
|
||||
import kcc.com.cmm.util.StringUtil;
|
||||
import kcc.com.utl.user.service.CheckLoginUtil;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
|
||||
@Controller
|
||||
public class SendController {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(SendController.class);
|
||||
|
||||
//로그인 체크 util
|
||||
@Resource(name = "checkLoginUtil")
|
||||
private CheckLoginUtil checkLoginUtil;
|
||||
|
||||
@Resource(name = "SendService")
|
||||
private SendService sendService;
|
||||
|
||||
@RequestMapping("/cmm/sendAt/smsSendAjax.do")
|
||||
public ModelAndView atSendAjax( SendSmsVO sendSmsVO ) throws Exception {
|
||||
|
||||
ModelAndView modelAndView = new ModelAndView();
|
||||
|
||||
if(StringUtil.isEmpty(sendSmsVO.getSmsContent())) {
|
||||
sendSmsVO.setSmsContent("");
|
||||
}
|
||||
String msgType = msgType(sendSmsVO.getSmsContent());
|
||||
|
||||
sendService.sendSms(sendSmsVO.getTo(), "지식재산보호원", sendSmsVO.getSmsContent(), msgType);
|
||||
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
@RequestMapping("/cmm/sendAt/smsSend.do")
|
||||
public String smsSend() throws Exception {
|
||||
|
||||
return "ve/cmm/sendAt/SmsSend";
|
||||
}
|
||||
|
||||
|
||||
private String msgType( String content ) throws UnsupportedEncodingException {
|
||||
// EUC-KR 기준 바이트 길이 계산
|
||||
int byteLength = content.getBytes("EUC-KR").length;
|
||||
|
||||
// SMS/LMS 판별
|
||||
String msgType = byteLength > 90 ? "LMS" : "SMS";
|
||||
|
||||
return msgType;
|
||||
}
|
||||
}
|
||||
@ -1,177 +0,0 @@
|
||||
package kcc.ve.cmm.sendAt;
|
||||
|
||||
import kcc.let.utl.fcc.service.EgovCryptoUtil;
|
||||
import kcc.ve.cmm.VeConstants;
|
||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
@Component
|
||||
public class SendScheduler {
|
||||
|
||||
@Resource(name = "SendService")
|
||||
private SendService sendService;
|
||||
|
||||
@Resource(name = "egovCryptoUtil")
|
||||
private EgovCryptoUtil egovCryptoUtil;
|
||||
|
||||
@Value("${Globals.prod.islocal}")
|
||||
private String isLocal;
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(SendScheduler.class);
|
||||
|
||||
/**
|
||||
* 매일 새벽 1시에 한 번 실행
|
||||
* cron = "0 0 1 * * ?" → 초 분 시 일 월 요일
|
||||
*/
|
||||
@Scheduled(cron = "0 0 9 * * ?")
|
||||
public void sevenDaybeforeAt() {
|
||||
|
||||
// svr 일때만 실행
|
||||
if(!"real".equals(isLocal)){
|
||||
LOGGER.info("[sevenDaybeforeAt] Skipped - Globals.prod.islocal=" + isLocal);
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
List<VEPrcsDetailVO> targetList = sendService.select7DaybeforeAt(7);
|
||||
targetList.stream().forEach(t ->
|
||||
{
|
||||
if(StringUtils.isNotEmpty(t.getPhone())){
|
||||
String[] phone = t.getPhone().split(",");
|
||||
Arrays.stream(phone).forEach( b ->
|
||||
{
|
||||
String to = egovCryptoUtil.decrypt(egovCryptoUtil.decrypt(b));
|
||||
|
||||
if(StringUtils.isNotEmpty(t.getPrvtMemoCn())){
|
||||
Map<String, String> chihwan = getSevenDaybeforeAtChihwanMap(t);
|
||||
|
||||
try {
|
||||
sendService.sendAt(to, "TEMPLATE_EDU_SUBMIT", chihwan);
|
||||
} catch(Exception e) {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
} catch(Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@Scheduled(cron = "0 1 9 * * ?")
|
||||
public void oneDaybeforeAt() {
|
||||
|
||||
// svr 일때만 실행
|
||||
if(!"real".equals(isLocal)){
|
||||
LOGGER.info("[sevenDaybeforeAt] Skipped - Globals.prod.islocal=" + isLocal);
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
List<VEPrcsDetailVO> targetList = sendService.select7DaybeforeAt(1);
|
||||
targetList.stream().forEach(t ->
|
||||
{
|
||||
if(StringUtils.isNotEmpty(t.getPhone())){
|
||||
String[] phone = t.getPhone().split(",");
|
||||
Arrays.stream(phone).forEach( b ->
|
||||
{
|
||||
String to = egovCryptoUtil.decrypt(egovCryptoUtil.decrypt(b));
|
||||
|
||||
if(StringUtils.isNotEmpty(t.getPrvtMemoCn())){
|
||||
Map<String, String> chihwan = getOneDaybeforeAtChihwanMap(t);
|
||||
|
||||
try {
|
||||
sendService.sendAt(to, "TEMPLATE_EDU_SUBMIT", chihwan);
|
||||
} catch(Exception e) {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
} catch(Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
private static Map<String, String> getSevenDaybeforeAtChihwanMap( VEPrcsDetailVO t ) {
|
||||
String[] prvtMemoCn = t.getPrvtMemoCn().split(Pattern.quote("|"));
|
||||
String content = "";
|
||||
String eduDay = "";
|
||||
String eduRegDay = "";
|
||||
String eduPlace = "";
|
||||
|
||||
if(VeConstants.LCTR_DIV_CD_60.equals(t.getLctrDivCd())){
|
||||
content = "귀하의 상표권 교육조건부 기소유예 교육 안내입니다.";
|
||||
}else if(VeConstants.LCTR_DIV_CD_70.equals(t.getLctrDivCd())){
|
||||
content = "귀하의 부정경쟁행위 시정명령 교육 안내입니다.";
|
||||
}else if(VeConstants.LCTR_DIV_CD_80.equals(t.getLctrDivCd())){
|
||||
content = "귀하의 상표권 침해・부정경쟁행위 예방 교육 안내입니다.";
|
||||
}else{
|
||||
content = "귀하의 교육 안내입니다.";
|
||||
}
|
||||
|
||||
if(prvtMemoCn.length > 0){
|
||||
eduDay = prvtMemoCn[0];
|
||||
eduRegDay = prvtMemoCn[1];
|
||||
eduPlace = prvtMemoCn[2];
|
||||
}
|
||||
|
||||
Map<String, String> chihwan = new HashMap<>();
|
||||
chihwan.put("content", content);
|
||||
chihwan.put("eduDay", eduDay);
|
||||
chihwan.put("eduRegDay", eduRegDay);
|
||||
chihwan.put("eduPlace", eduPlace);
|
||||
return chihwan;
|
||||
}
|
||||
|
||||
private static Map<String, String> getOneDaybeforeAtChihwanMap( VEPrcsDetailVO t ) {
|
||||
String[] prvtMemoCn = t.getPrvtMemoCn().split(Pattern.quote("|"));
|
||||
String content = "";
|
||||
String eduDay = "";
|
||||
String eduRegDay = "";
|
||||
String eduPlace = "";
|
||||
|
||||
LocalDate tomorrow = LocalDate.now().plusDays(1);
|
||||
String tomorrowStr = tomorrow.format(DateTimeFormatter.ofPattern("M/d"));
|
||||
|
||||
if(VeConstants.LCTR_DIV_CD_60.equals(t.getLctrDivCd())){
|
||||
content = "귀하의 내일(" + tomorrowStr + ") 상표권 교육조건부 기소유예 교육 안내입니다.";
|
||||
}else if(VeConstants.LCTR_DIV_CD_70.equals(t.getLctrDivCd())){
|
||||
content = "귀하의 내일(" + tomorrowStr + ") 부정경쟁행위 시정명령 교육 안내입니다.";
|
||||
}else if(VeConstants.LCTR_DIV_CD_80.equals(t.getLctrDivCd())){
|
||||
content = "귀하의 내일(" + tomorrowStr + ") 상표권 침해・부정경쟁행위 예방 교육 안내입니다.";
|
||||
}else{
|
||||
content = "귀하의 내일(" + tomorrowStr + ") 교육 안내입니다.";
|
||||
}
|
||||
|
||||
if(prvtMemoCn.length > 0){
|
||||
eduDay = prvtMemoCn[0];
|
||||
eduRegDay = prvtMemoCn[1];
|
||||
eduPlace = prvtMemoCn[2];
|
||||
eduPlace += "\r\n※주차 지원이 불가하오니 대중교통을 이용바랍니다.";
|
||||
}
|
||||
|
||||
Map<String, String> chihwan = new HashMap<>();
|
||||
chihwan.put("content", content);
|
||||
chihwan.put("eduDay", eduDay);
|
||||
chihwan.put("eduRegDay", eduRegDay);
|
||||
chihwan.put("eduPlace", eduPlace);
|
||||
return chihwan;
|
||||
}
|
||||
}
|
||||
@ -1,52 +0,0 @@
|
||||
package kcc.ve.cmm.sendAt;
|
||||
|
||||
import egovframework.rte.psl.dataaccess.util.EgovMap;
|
||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public interface SendService {
|
||||
|
||||
/**
|
||||
* @methodName : sendAt
|
||||
* @author : JunHo Lee
|
||||
* @date : 2024.12.09
|
||||
* @description :
|
||||
* @param to
|
||||
* @param templateCode
|
||||
* @param chihwan
|
||||
*
|
||||
* @packageName : kcc.com.snd.service
|
||||
* @templatecode
|
||||
* @신청인_접수확인_1 :
|
||||
* TEMPLATE_APP_JUBSU
|
||||
* @chihwan : 없음
|
||||
* @신청인_담당자배정_2 :
|
||||
* TEMPLATE_APP_BAEJUNG
|
||||
* @chihwan : "respondent", "caseNo", "team", "examiner", "tel", "email"
|
||||
* @양당사자_분쟁조정협의회 안건상정 :
|
||||
* TEMPLATE_BOTH_SANGJUNG
|
||||
* @chihwan : "caseNo", "cfrnc", "tel", "email"
|
||||
* @양당사자_출석요구 n차 :
|
||||
* TEMPLATE_BOTH_CHULSUK
|
||||
* @chihwan : "caseNo", "nCha"
|
||||
* @양당사자_통지 :
|
||||
* TEMPLATE_BOTH_TONGJI
|
||||
* @chihwan : "caseNo", "cfrnc"
|
||||
* @신청인_보완요구 n차 :
|
||||
* TEMPLATE_APP_BOWAN
|
||||
* @chihwan : "caseNo", "nCha"
|
||||
*
|
||||
*/
|
||||
void sendAt(String to, String templateCode, Map<String, String> chihwan) throws Exception;
|
||||
|
||||
Map<String, Object> sendSms(String to, String subject, String smsContent, String type) throws Exception;
|
||||
|
||||
SendSmsVO selectSendSet() throws Exception;
|
||||
|
||||
void updateSendSet(SendSmsVO sendSmsVO) throws Exception;
|
||||
|
||||
public List<VEPrcsDetailVO> select7DaybeforeAt(Integer diffDay) throws Exception;
|
||||
|
||||
}
|
||||
@ -1,24 +0,0 @@
|
||||
package kcc.ve.cmm.sendAt;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public class SendSmsVO extends SendAtVO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String subject;
|
||||
private String smsContent;
|
||||
|
||||
private String atYn;
|
||||
private String smsYn;
|
||||
private String emailYn;
|
||||
|
||||
}
|
||||
@ -1,35 +0,0 @@
|
||||
package kcc.ve.cmm.sendAt.impl;
|
||||
|
||||
import kcc.com.cmm.service.impl.EgovComAbstractDAO;
|
||||
import kcc.ve.cmm.sendAt.SendAtVO;
|
||||
import kcc.ve.cmm.sendAt.SendSmsVO;
|
||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@Repository("sendDAO")
|
||||
public class SendDAO extends EgovComAbstractDAO {
|
||||
|
||||
public SendAtVO selectToken() throws Exception{
|
||||
return (SendAtVO) select("sendDAO.selectToken");
|
||||
}
|
||||
|
||||
public void updateToken(SendAtVO SendAtVO) throws Exception{
|
||||
update("sendDAO.updateToken", SendAtVO);
|
||||
}
|
||||
|
||||
public SendSmsVO selectSendSet() throws Exception{
|
||||
return (SendSmsVO) select("sendDAO.selectSendSet");
|
||||
}
|
||||
|
||||
public void updateSendSet(SendSmsVO sendSmsVO) throws Exception{
|
||||
update("sendDAO.updateSendSet", sendSmsVO);
|
||||
}
|
||||
|
||||
public List<VEPrcsDetailVO> select7DaybeforeAt(Integer diffDay) throws Exception{
|
||||
return (List<VEPrcsDetailVO>) list("sendDAO.select7DaybeforeAt", diffDay);
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,548 +0,0 @@
|
||||
package kcc.ve.cmm.sendAt.impl;
|
||||
|
||||
|
||||
import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
|
||||
import egovframework.rte.psl.dataaccess.util.EgovMap;
|
||||
import kcc.ve.cmm.sendAt.SendAtVO.Content;
|
||||
import kcc.ve.cmm.sendAt.SendAtVO.Content.At;
|
||||
import kcc.ve.cmm.sendAt.SendAtVO.Resend;
|
||||
import kcc.ve.cmm.sendAt.SendAtVO.Recontent;
|
||||
import kcc.ve.cmm.sendAt.SendAtVO.Recontent.Lms;
|
||||
import kcc.ve.cmm.sendAt.PpurioGlobalSet;
|
||||
import kcc.ve.cmm.sendAt.SendAtVO;
|
||||
import kcc.ve.cmm.sendAt.SendService;
|
||||
import kcc.ve.cmm.sendAt.SendSmsVO;
|
||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
|
||||
import org.apache.commons.beanutils.BeanUtils;
|
||||
import org.json.JSONObject;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.net.ssl.HttpsURLConnection;
|
||||
import javax.net.ssl.SSLContext;
|
||||
import javax.net.ssl.TrustManager;
|
||||
import javax.net.ssl.X509TrustManager;
|
||||
import java.io.*;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
import java.security.KeyManagementException;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.security.cert.X509Certificate;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
|
||||
@Service("SendService")
|
||||
public class SendServiceImpl extends EgovAbstractServiceImpl implements SendService {
|
||||
|
||||
@Resource(name = "sendDAO")
|
||||
private SendDAO sendDAO;
|
||||
|
||||
@Override
|
||||
public void sendAt(
|
||||
String to
|
||||
, String templateCode
|
||||
, Map<String, String> chihwan
|
||||
) throws Exception {
|
||||
SendAtVO vo = new SendAtVO();
|
||||
vo = sendDAO.selectToken();
|
||||
|
||||
//이전 발급 토큰이 만료되었는지 시간비교
|
||||
if(timeDiffBefore(vo.getExpired())) {
|
||||
//토큰 발급
|
||||
if(this.getPpurioToken(vo)) {
|
||||
//토큰 갱신
|
||||
sendDAO.updateToken(vo);
|
||||
} else {
|
||||
System.out.println("토큰 갱신 실패");
|
||||
throw new Exception();
|
||||
}
|
||||
}
|
||||
|
||||
vo = vo.builder()
|
||||
.accesstoken(vo.getAccesstoken())
|
||||
.expired(vo.getExpired())
|
||||
.refkey("test1234")
|
||||
.type(vo.getType())
|
||||
.to(to)
|
||||
.content(Content.builder()
|
||||
.at(At.builder()
|
||||
.templatecode(templateCode)
|
||||
.build()
|
||||
)
|
||||
.build()
|
||||
)
|
||||
.chihwan(chihwan)
|
||||
.build();
|
||||
|
||||
this.sendAt(vo);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> sendSms(
|
||||
String to
|
||||
, String subject
|
||||
, String smsContent
|
||||
, String type
|
||||
) throws Exception {
|
||||
Boolean success = true;
|
||||
int successCnt = 0;
|
||||
SendAtVO vo = new SendAtVO();
|
||||
vo = sendDAO.selectToken();
|
||||
|
||||
//이전 발급 토큰이 만료되었는지 시간비교
|
||||
if(timeDiffBefore(vo.getExpired())) {
|
||||
//토큰 발급
|
||||
if(this.getPpurioToken(vo)) {
|
||||
//토큰 갱신
|
||||
sendDAO.updateToken(vo);
|
||||
} else {
|
||||
System.out.println("토큰 갱신 실패");
|
||||
throw new Exception();
|
||||
}
|
||||
}
|
||||
SendSmsVO smsVO = new SendSmsVO();
|
||||
BeanUtils.copyProperties(smsVO, vo);
|
||||
smsVO.setSubject(subject);
|
||||
smsVO.setSmsContent(smsContent);
|
||||
smsVO.setType(type);
|
||||
|
||||
String[] phoneNums = to.split(",");
|
||||
for(String phone : phoneNums) {
|
||||
smsVO.setTo(phone);
|
||||
boolean result = this.sendSmsPrcs(smsVO);
|
||||
if(result) {
|
||||
successCnt++;
|
||||
} else {
|
||||
success = false;
|
||||
System.out.println("문자 발송 실패: " + phone);
|
||||
}
|
||||
}
|
||||
|
||||
Map<String, Object> resultMap = new HashMap<>();
|
||||
resultMap.put("success", success);
|
||||
resultMap.put("successCnt", successCnt);
|
||||
return resultMap;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SendSmsVO selectSendSet() throws Exception {
|
||||
return sendDAO.selectSendSet();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateSendSet( SendSmsVO sendSmsVO ) throws Exception {
|
||||
sendDAO.updateSendSet(sendSmsVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<VEPrcsDetailVO> select7DaybeforeAt(Integer diffDay) throws Exception{
|
||||
return sendDAO.select7DaybeforeAt(diffDay);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param str
|
||||
* @return :
|
||||
* !str이 현재 시간보다 이전이면 true
|
||||
* !str이 현재 시간보다 이후이면 false
|
||||
* @methodName : timeDiffBefore
|
||||
* @author : JunHo Lee
|
||||
* @date : 2024.12.09
|
||||
* @description :
|
||||
*/
|
||||
private Boolean timeDiffBefore( String str ) {
|
||||
try {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
|
||||
Date diffDate = sdf.parse(str);
|
||||
|
||||
Date currentDate = new Date();
|
||||
|
||||
if(diffDate.before(currentDate)) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
} catch(Exception e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static String sendAt( SendAtVO sendAtVO ) {
|
||||
|
||||
StringBuffer result = new StringBuffer();
|
||||
|
||||
String input = null;
|
||||
|
||||
PpurioGlobalSet ppurioGlobalSet = new PpurioGlobalSet();
|
||||
try {
|
||||
|
||||
/** SSL 인증서 무시 : 비즈뿌리오 API 운영을 접속하는 경우 해당 코드 필요 없음 **/
|
||||
if(!ppurioGlobalSet.getHost().contains("https://api.bizppurio.com")) {
|
||||
TrustManager[] trustAllCerts = new TrustManager[]{ new X509TrustManager() {
|
||||
public X509Certificate[] getAcceptedIssuers() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void checkClientTrusted( X509Certificate[] chain, String authType ) {
|
||||
}
|
||||
|
||||
public void checkServerTrusted( X509Certificate[] chain, String authType ) {
|
||||
}
|
||||
} };
|
||||
SSLContext sc = SSLContext.getInstance("SSL");
|
||||
sc.init(null, trustAllCerts, new java.security.SecureRandom());
|
||||
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
|
||||
}
|
||||
|
||||
URL url = new URL(ppurioGlobalSet.getHost() + "/v3/message");
|
||||
|
||||
/** Connection 설정 **/
|
||||
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
|
||||
connection.setRequestMethod("POST");
|
||||
connection.addRequestProperty("Content-Type", "application/json");
|
||||
connection.addRequestProperty("Accept-Charset", "UTF-8");
|
||||
connection.addRequestProperty("Authorization", "Bearer " + sendAtVO.getAccesstoken());
|
||||
connection.setDoInput(true);
|
||||
connection.setDoOutput(true);
|
||||
connection.setUseCaches(false);
|
||||
connection.setConnectTimeout(15000);
|
||||
|
||||
|
||||
/** Request **/
|
||||
At at = sendAtVO.getContent().getAt();
|
||||
at = messageSet(at, sendAtVO.getChihwan());
|
||||
|
||||
sendAtVO = sendAtVO.builder()
|
||||
.account(ppurioGlobalSet.getId())
|
||||
.refkey(sendAtVO.getRefkey())
|
||||
.type("at")
|
||||
.from(ppurioGlobalSet.getFrom())
|
||||
.to(sendAtVO.getTo())
|
||||
.content(Content.builder()
|
||||
.at(At.builder()
|
||||
.senderkey(ppurioGlobalSet.getSenderKey())
|
||||
.templatecode(at.getTemplatecode())
|
||||
.message(at.getMessage())
|
||||
.build()
|
||||
)
|
||||
.build())
|
||||
.resend(Resend.builder()
|
||||
.first("lms")
|
||||
.build())
|
||||
.recontent(Recontent.builder()
|
||||
.lms(Lms.builder()
|
||||
.message(at.getMessage())
|
||||
.build())
|
||||
.build())
|
||||
.build();
|
||||
|
||||
// Request body 전송
|
||||
try(OutputStream os = connection.getOutputStream()) {
|
||||
os.write(sendAtVO.toJson().getBytes("UTF-8"));
|
||||
os.flush();
|
||||
}
|
||||
|
||||
// 서버 응답 처리
|
||||
int responseCode = connection.getResponseCode();
|
||||
if(responseCode == HttpURLConnection.HTTP_OK) {
|
||||
try(BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"))) {
|
||||
while((input = reader.readLine()) != null) {
|
||||
result.append(input);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// 오류 응답 처리
|
||||
try(BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getErrorStream(), "UTF-8"))) {
|
||||
StringBuilder errorResponse = new StringBuilder();
|
||||
while((input = reader.readLine()) != null) {
|
||||
errorResponse.append(input);
|
||||
}
|
||||
System.out.println("Error Response: " + errorResponse.toString());
|
||||
return "Error: " + errorResponse.toString();
|
||||
}
|
||||
}
|
||||
connection.disconnect();
|
||||
|
||||
System.out.println("Response : " + result.toString());
|
||||
|
||||
JSONObject jObject = new JSONObject(result.toString());
|
||||
// status = jObject.getString("description");
|
||||
|
||||
|
||||
} catch(IOException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
} catch(KeyManagementException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
} catch(NoSuchAlgorithmException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
// return status;
|
||||
}
|
||||
|
||||
public static Boolean sendSmsPrcs( SendSmsVO sendSmsVO ) {
|
||||
|
||||
Boolean success = true;
|
||||
|
||||
StringBuffer result = new StringBuffer();
|
||||
|
||||
String input = null;
|
||||
|
||||
PpurioGlobalSet ppurioGlobalSet = new PpurioGlobalSet();
|
||||
|
||||
try {
|
||||
|
||||
/** SSL 인증서 무시 : 비즈뿌리오 API 운영을 접속하는 경우 해당 코드 필요 없음 **/
|
||||
if(!ppurioGlobalSet.getHost().contains("https://api.bizppurio.com")) {
|
||||
TrustManager[] trustAllCerts = new TrustManager[]{ new X509TrustManager() {
|
||||
public X509Certificate[] getAcceptedIssuers() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void checkClientTrusted( X509Certificate[] chain, String authType ) {
|
||||
}
|
||||
|
||||
public void checkServerTrusted( X509Certificate[] chain, String authType ) {
|
||||
}
|
||||
} };
|
||||
SSLContext sc = SSLContext.getInstance("SSL");
|
||||
sc.init(null, trustAllCerts, new java.security.SecureRandom());
|
||||
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
|
||||
}
|
||||
|
||||
URL url = new URL(ppurioGlobalSet.getHost() + "/v3/message");
|
||||
|
||||
/** Connection 설정 **/
|
||||
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
|
||||
connection.setRequestMethod("POST");
|
||||
connection.addRequestProperty("Content-Type", "application/json");
|
||||
connection.addRequestProperty("Accept-Charset", "UTF-8");
|
||||
connection.addRequestProperty("Authorization", "Bearer " + sendSmsVO.getAccesstoken());
|
||||
connection.setDoInput(true);
|
||||
connection.setDoOutput(true);
|
||||
connection.setUseCaches(false);
|
||||
connection.setConnectTimeout(15000);
|
||||
|
||||
/*SMS LMS 구분처리*/
|
||||
JSONObject sms = new JSONObject();
|
||||
sms.put("message", sendSmsVO.getSmsContent());
|
||||
if("LMS".equals(sendSmsVO.getType())) {
|
||||
sms.put("subject", sendSmsVO.getSubject());
|
||||
}
|
||||
JSONObject content = new JSONObject();
|
||||
if("SMS".equals(sendSmsVO.getType())) {
|
||||
content.put("sms", sms);
|
||||
} else {
|
||||
content.put("lms", sms);
|
||||
}
|
||||
|
||||
JSONObject json = new JSONObject();
|
||||
json.put("account", ppurioGlobalSet.getId());
|
||||
json.put("type", sendSmsVO.getType().toLowerCase());
|
||||
json.put("from", ppurioGlobalSet.getFrom());
|
||||
json.put("to", sendSmsVO.getTo());
|
||||
json.put("content", content);
|
||||
json.put("refkey", "test1234");
|
||||
|
||||
String body = json.toString();
|
||||
|
||||
// Request body 전송
|
||||
try(OutputStream os = connection.getOutputStream()) {
|
||||
os.write(body.getBytes("UTF-8"));
|
||||
os.flush();
|
||||
}
|
||||
|
||||
// 서버 응답 처리
|
||||
int responseCode = connection.getResponseCode();
|
||||
if(responseCode == HttpURLConnection.HTTP_OK) {
|
||||
try(BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"))) {
|
||||
while((input = reader.readLine()) != null) {
|
||||
result.append(input);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// 오류 응답 처리
|
||||
try(BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getErrorStream(), "UTF-8"))) {
|
||||
StringBuilder errorResponse = new StringBuilder();
|
||||
while((input = reader.readLine()) != null) {
|
||||
errorResponse.append(input);
|
||||
}
|
||||
System.out.println("Error Response: " + errorResponse.toString());
|
||||
success = false;
|
||||
//return "Error: " + errorResponse.toString();
|
||||
}
|
||||
}
|
||||
connection.disconnect();
|
||||
|
||||
System.out.println("Response : " + result.toString());
|
||||
|
||||
JSONObject jObject = new JSONObject(result.toString());
|
||||
// status = jObject.getString("description");
|
||||
|
||||
|
||||
} catch(IOException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
success = false;
|
||||
} catch(KeyManagementException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
success = false;
|
||||
} catch(NoSuchAlgorithmException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
success = false;
|
||||
}
|
||||
return success;
|
||||
// return status;
|
||||
}
|
||||
|
||||
public static Boolean getPpurioToken( SendAtVO sendAtVO ) {
|
||||
|
||||
StringBuffer result = new StringBuffer();
|
||||
|
||||
String input = null;
|
||||
|
||||
PpurioGlobalSet ppurioGlobalSet = new PpurioGlobalSet();
|
||||
|
||||
try {
|
||||
/** SSL 인증서 무시 : 비즈뿌리오 API 운영을 접속하는 경우 해당 코드 필요 없음 **/
|
||||
if(!ppurioGlobalSet.getHost().contains("https://api.bizppurio.com")) {
|
||||
TrustManager[] trustAllCerts = new TrustManager[]{ new X509TrustManager() {
|
||||
public X509Certificate[] getAcceptedIssuers() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void checkClientTrusted( X509Certificate[] chain, String authType ) {
|
||||
}
|
||||
|
||||
public void checkServerTrusted( X509Certificate[] chain, String authType ) {
|
||||
}
|
||||
} };
|
||||
SSLContext sc = SSLContext.getInstance("SSL");
|
||||
sc.init(null, trustAllCerts, new java.security.SecureRandom());
|
||||
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
|
||||
}
|
||||
|
||||
URL url = new URL(ppurioGlobalSet.getHost() + "/v1/token");
|
||||
|
||||
/** Connection 설정 **/
|
||||
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
|
||||
connection.setRequestMethod("POST");
|
||||
connection.addRequestProperty("Content-Type", "application/json");
|
||||
connection.addRequestProperty("Accept-Charset", "UTF-8");
|
||||
|
||||
//Base64 인코딩
|
||||
String idpw = ppurioGlobalSet.getId() + ":" + ppurioGlobalSet.getPw();
|
||||
String authData = Base64.getEncoder().encodeToString(idpw.getBytes());
|
||||
|
||||
connection.addRequestProperty("Authorization", "Basic " + authData);
|
||||
|
||||
connection.setDoInput(true);
|
||||
connection.setDoOutput(true);
|
||||
connection.setUseCaches(false);
|
||||
connection.setConnectTimeout(15000);
|
||||
|
||||
/** Request **/
|
||||
OutputStream os = connection.getOutputStream();
|
||||
os.flush();
|
||||
|
||||
/** Response **/
|
||||
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
|
||||
|
||||
while((input = in.readLine()) != null) {
|
||||
result.append(input);
|
||||
}
|
||||
connection.disconnect();
|
||||
|
||||
if(result.length() > 0) {
|
||||
JSONObject jObject = new JSONObject(result.toString());
|
||||
if(
|
||||
jObject.has("accesstoken")
|
||||
&& !jObject.isNull("accesstoken")
|
||||
&& jObject.has("type")
|
||||
&& !jObject.isNull("type")
|
||||
&& jObject.has("expired")
|
||||
&& !jObject.isNull("expired")
|
||||
) {
|
||||
sendAtVO.setAccesstoken(jObject.getString("accesstoken"));
|
||||
sendAtVO.setType(jObject.getString("type"));
|
||||
sendAtVO.setExpired(jObject.getString("expired"));
|
||||
} else {
|
||||
System.out.println("response data not found or is null");
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
System.out.println("Empty response");
|
||||
return false;
|
||||
}
|
||||
|
||||
} catch(IOException e) {
|
||||
System.out.println(e.getMessage());
|
||||
return false;
|
||||
} catch(KeyManagementException e) {
|
||||
System.out.println(e.getMessage());
|
||||
return false;
|
||||
} catch(NoSuchAlgorithmException e) {
|
||||
System.out.println(e.getMessage());
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private static At messageSet(
|
||||
At at,
|
||||
Map<String, String> chihwan
|
||||
) {
|
||||
String content = "";
|
||||
Map<String, String[]> requiredPlaceholders = new HashMap<>();
|
||||
|
||||
switch(at.getTemplatecode()) {
|
||||
case "TEMPLATE_EDU_SUBMIT": // 교육신청
|
||||
at.setTemplatecode("bizp_2025112512494050432369880");
|
||||
content =
|
||||
"[한국지식재산보호원]\r\n"
|
||||
+ "#{content}\r\n"
|
||||
+ "\r\n"
|
||||
+ "--교육 일정 안내--\r\n"
|
||||
+ "1.일시 : #{eduDay}\r\n"
|
||||
+ "#{eduRegDay}\r\n"
|
||||
+ "※시간 엄수! 지각 시 교육등록이 불가할 수 있으니 시간을 꼭 지켜주시기 바랍니다.\r\n"
|
||||
+ "\r\n"
|
||||
+ "2.장소 : #{eduPlace}\r\n"
|
||||
+ "\r\n"
|
||||
+ "3.준비물 : 필기구, 실물신분증\r\n"
|
||||
+ "\r\n"
|
||||
+ "문의처:1670-1271";
|
||||
requiredPlaceholders.put(at.getTemplatecode(), new String[]{ "content", "eduDay", "eduRegDay", "eduPlace" });
|
||||
break;
|
||||
case "TEMPLATE_CERT_NO": // 교육신청
|
||||
at.setTemplatecode("bizp_2025120212451011178763650");
|
||||
content =
|
||||
"[한국지식재산보호원]\r\n"
|
||||
+ "전송된 인증번호를 입력해 주세요.\r\n"
|
||||
+ "\r\n"
|
||||
+ "인증번호 : #{certNo}";
|
||||
requiredPlaceholders.put(at.getTemplatecode(), new String[]{ "certNo"});
|
||||
break;
|
||||
}
|
||||
|
||||
String[] placeholders = requiredPlaceholders.get(at.getTemplatecode());
|
||||
if(placeholders != null) {
|
||||
for(String placeholder : placeholders) {
|
||||
String value = chihwan.get(placeholder);
|
||||
if(value == null || value.isEmpty()) {
|
||||
throw new IllegalArgumentException(placeholder + " 값이 없습니다.");
|
||||
}
|
||||
content = content.replace("#{" + placeholder + "}", value);
|
||||
}
|
||||
}
|
||||
|
||||
at.setMessage(content);
|
||||
return at;
|
||||
}
|
||||
}
|
||||
@ -103,16 +103,12 @@ public interface VEEduMIXService {
|
||||
|
||||
void updateEduStateCd(VEEduAplctVO vEEduAplctVO);
|
||||
|
||||
void updateCmdEduStateCd(VEEduAplctVO vEEduAplctVO);
|
||||
|
||||
void updateAplctEmail(VEEduAplctVO vEEduAplctVO);
|
||||
|
||||
List<VEEduAplctVO> selectTrgtList(VEEduAplctVO paramVO);
|
||||
|
||||
List<VEEduAplctVO> selectTrgtList4Cmplt(VEEduAplctVO paramVO);
|
||||
|
||||
List<VEEduAplctVO> selectCmdTrgtList4Cmplt(VEEduAplctVO paramVO);
|
||||
|
||||
//저작권 체험교실 이력 과정 목록
|
||||
List<VEEduAplctVO> selectExprnHstryPagingList(VEEduAplctVO paramVO) throws Exception;
|
||||
|
||||
@ -134,6 +130,4 @@ public interface VEEduMIXService {
|
||||
List<VEEduAplctVO> selectExprnRsltFileDownList(VEEduAplctVO paramVO) throws Exception;
|
||||
|
||||
void updateCnclStatus(VEEduAplctVO vEEduAplctVO);
|
||||
|
||||
List<VEEduAplctVO> selectCrtfcMngList( VEEduAplctVO paramVO );
|
||||
}
|
||||
|
||||
@ -256,17 +256,9 @@ public class VEEduMIXDAO extends EgovAbstractDAO {
|
||||
return (List<VEEduAplctVO>) list("VEEduMIXDAO.selectTrgtList4Cmplt", paramVO);
|
||||
}
|
||||
|
||||
public List<VEEduAplctVO> selectCmdTrgtList4Cmplt(VEEduAplctVO paramVO) {
|
||||
return (List<VEEduAplctVO>) list("VEEduMIXDAO.selectCmdTrgtList4Cmplt", paramVO);
|
||||
}
|
||||
|
||||
public void updateEduStateCd(VEEduAplctVO paramVO) {
|
||||
update("VEEduMIXDAO.updateEduStateCd", paramVO);
|
||||
}
|
||||
|
||||
public void updateCmdEduStateCd(VEEduAplctVO paramVO) {
|
||||
update("VEEduMIXDAO.updateCmdEduStateCd", paramVO);
|
||||
}
|
||||
|
||||
public void updateAplctEmail(VEEduAplctVO paramVO) {
|
||||
update("VEEduMIXDAO.updateAplctEmail", paramVO);
|
||||
@ -322,8 +314,4 @@ public class VEEduMIXDAO extends EgovAbstractDAO {
|
||||
List<VEEduAplctVO> tlist = (List<VEEduAplctVO>) list("VEEduMIXDAO.selectExprnRsltFileDownList", paramVO);
|
||||
return tlist;
|
||||
}
|
||||
|
||||
public List<VEEduAplctVO> selectCrtfcMngList(VEEduAplctVO paramVO) {
|
||||
return (List<VEEduAplctVO>) list("VEEduMIXDAO.selectCrtfcMngList", paramVO);
|
||||
}
|
||||
}
|
||||
|
||||
@ -222,21 +222,11 @@ public class VEEduMIXServiceImpl implements VEEduMIXService {
|
||||
public List<VEEduAplctVO> selectTrgtList4Cmplt(VEEduAplctVO paramVO) {
|
||||
return vEEduMIXDAO.selectTrgtList4Cmplt(paramVO);
|
||||
}
|
||||
|
||||
public List<VEEduAplctVO> selectCmdTrgtList4Cmplt(VEEduAplctVO paramVO) {
|
||||
return vEEduMIXDAO.selectCmdTrgtList4Cmplt(paramVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateEduStateCd(VEEduAplctVO paramVO) {
|
||||
vEEduMIXDAO.updateEduStateCd(paramVO);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateCmdEduStateCd(VEEduAplctVO paramVO) {
|
||||
vEEduMIXDAO.updateCmdEduStateCd(paramVO);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -292,10 +282,5 @@ public class VEEduMIXServiceImpl implements VEEduMIXService {
|
||||
public void updateCnclStatus(VEEduAplctVO paramVO) {
|
||||
vEEduMIXDAO.updateCnclStatus(paramVO);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<VEEduAplctVO> selectCrtfcMngList( VEEduAplctVO paramVO ) {
|
||||
return vEEduMIXDAO.selectCrtfcMngList(paramVO);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -225,139 +225,6 @@ public class VEInstrDetailVO extends ComDefaultVO implements Serializable {
|
||||
|
||||
private String actvtPeriod;
|
||||
|
||||
|
||||
//지적재산권 컬럼 추가
|
||||
private String carer; //경력
|
||||
|
||||
private String yearCnt; //1년간배정횟수
|
||||
|
||||
private String repQf; //대표자격
|
||||
public String getRepQf() {
|
||||
return repQf;
|
||||
}
|
||||
public void setRepQf(String repQf) {
|
||||
this.repQf = repQf;
|
||||
}
|
||||
public String getSubQf() {
|
||||
return subQf;
|
||||
}
|
||||
public void setSubQf(String subQf) {
|
||||
this.subQf = subQf;
|
||||
}
|
||||
public String getWorkArea() {
|
||||
return workArea;
|
||||
}
|
||||
public void setWorkArea(String workArea) {
|
||||
this.workArea = workArea;
|
||||
}
|
||||
public String getLctAvlArea1() {
|
||||
return lctAvlArea1;
|
||||
}
|
||||
public void setLctAvlArea1(String lctAvlArea1) {
|
||||
this.lctAvlArea1 = lctAvlArea1;
|
||||
}
|
||||
public String getLctAvlArea2() {
|
||||
return lctAvlArea2;
|
||||
}
|
||||
public void setLctAvlArea2(String lctAvlArea2) {
|
||||
this.lctAvlArea2 = lctAvlArea2;
|
||||
}
|
||||
public String getLctAvlArea3() {
|
||||
return lctAvlArea3;
|
||||
}
|
||||
public void setLctAvlArea3(String lctAvlArea3) {
|
||||
this.lctAvlArea3 = lctAvlArea3;
|
||||
}
|
||||
public String getLctAvlArea4() {
|
||||
return lctAvlArea4;
|
||||
}
|
||||
public void setLctAvlArea4(String lctAvlArea4) {
|
||||
this.lctAvlArea4 = lctAvlArea4;
|
||||
}
|
||||
public String getLctAvlArea5() {
|
||||
return lctAvlArea5;
|
||||
}
|
||||
public void setLctAvlArea5(String lctAvlArea5) {
|
||||
this.lctAvlArea5 = lctAvlArea5;
|
||||
}
|
||||
public String getLctAvlArea6() {
|
||||
return lctAvlArea6;
|
||||
}
|
||||
public void setLctAvlArea6(String lctAvlArea6) {
|
||||
this.lctAvlArea6 = lctAvlArea6;
|
||||
}
|
||||
public String getAvlLctCntnt1() {
|
||||
return avlLctCntnt1;
|
||||
}
|
||||
public void setAvlLctCntnt1(String avlLctCntnt1) {
|
||||
this.avlLctCntnt1 = avlLctCntnt1;
|
||||
}
|
||||
public String getAvlLctCntnt2() {
|
||||
return avlLctCntnt2;
|
||||
}
|
||||
public void setAvlLctCntnt2(String avlLctCntnt2) {
|
||||
this.avlLctCntnt2 = avlLctCntnt2;
|
||||
}
|
||||
public String getAvlLctCntnt3() {
|
||||
return avlLctCntnt3;
|
||||
}
|
||||
public void setAvlLctCntnt3(String avlLctCntnt3) {
|
||||
this.avlLctCntnt3 = avlLctCntnt3;
|
||||
}
|
||||
public String getGender() {
|
||||
return gender;
|
||||
}
|
||||
public void setGender(String gender) {
|
||||
this.gender = gender;
|
||||
}
|
||||
public String getRcrtCtgr() {
|
||||
return rcrtCtgr;
|
||||
}
|
||||
public void setRcrtCtgr(String rcrtCtgr) {
|
||||
this.rcrtCtgr = rcrtCtgr;
|
||||
}
|
||||
public String getApntDt() {
|
||||
return apntDt;
|
||||
}
|
||||
public void setApntDt(String apntDt) {
|
||||
this.apntDt = apntDt;
|
||||
}
|
||||
public String getActvDt() {
|
||||
return actvDt;
|
||||
}
|
||||
public void setActvDt(String actvDt) {
|
||||
this.actvDt = actvDt;
|
||||
}
|
||||
public String getOvrlSrvy() {
|
||||
return ovrlSrvy;
|
||||
}
|
||||
public void setOvrlSrvy(String ovrlSrvy) {
|
||||
this.ovrlSrvy = ovrlSrvy;
|
||||
}
|
||||
public static long getSerialversionuid() {
|
||||
return serialVersionUID;
|
||||
}
|
||||
private String subQf; //세부자격
|
||||
private String workArea; //근무지역
|
||||
private String lctAvlArea1; //강의가능지역1-수도권Y/N
|
||||
private String lctAvlArea2; //강의가능지역2-강원도Y/N
|
||||
private String lctAvlArea3; //강의가능지역3-충청도Y/N
|
||||
private String lctAvlArea4; //강의가능지역4-전라도Y/N
|
||||
private String lctAvlArea5; //강의가능지역5-경상도Y/N
|
||||
private String lctAvlArea6; //강의가능지역6-제주도Y/N
|
||||
|
||||
private String avlLctCntnt1; //강의가능내용1-상표권교육(1)Y/N
|
||||
private String avlLctCntnt2; //강의가능내용2-상표권교육(2)Y/N
|
||||
private String avlLctCntnt3; //강의가능내용3-부정경쟁행위교육Y/N
|
||||
|
||||
private String gender; //성별-M/F
|
||||
private String rcrtCtgr; //모집구분
|
||||
private String apntDt; //위촉일
|
||||
private String actvDt; //활동일
|
||||
private String ovrlSrvy; //종합 만족도 조사
|
||||
|
||||
|
||||
|
||||
public String getDesc1() {
|
||||
return desc1;
|
||||
}
|
||||
@ -1266,17 +1133,5 @@ public class VEInstrDetailVO extends ComDefaultVO implements Serializable {
|
||||
public void setActvtPeriod(String actvtPeriod) {
|
||||
this.actvtPeriod = actvtPeriod;
|
||||
}
|
||||
public String getCarer() {
|
||||
return carer;
|
||||
}
|
||||
public void setCarer(String carer) {
|
||||
this.carer = carer;
|
||||
}
|
||||
public String getYearCnt() {
|
||||
return yearCnt;
|
||||
}
|
||||
public void setYearCnt(String yearCnt) {
|
||||
this.yearCnt = yearCnt;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -4,7 +4,6 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
|
||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.impl.VEPrcsAplctPrdDAO;
|
||||
|
||||
public interface VEPrcsAplctPrdService {
|
||||
|
||||
@ -96,8 +95,4 @@ public interface VEPrcsAplctPrdService {
|
||||
|
||||
//신청목록-실무역량강화, 기소유예 new -설문조사, 이수증 처리용
|
||||
List<VEPrcsDetailVO> findByAprvlQustnrAllList(VEPrcsDetailVO vEPrcsDetailVO);
|
||||
|
||||
public VEPrcsDetailVO selectCompleteDocDetail(VEPrcsDetailVO vEPrcsDetailVO);
|
||||
|
||||
public List<VEPrcsDetailVO> selectMainContent() throws Exception ;
|
||||
}
|
||||
|
||||
@ -52,7 +52,6 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
|
||||
private String eduAplctOrd; //교육신청순번
|
||||
private List<String> eduAplctOrdList; //교육신청순번
|
||||
private List<String> sspnIdtmtTrgtOrdList;
|
||||
private List<String> cmdTrgtInfoOrdList;
|
||||
private String eduChasiOrd; //교육차시순번
|
||||
private String cnt;
|
||||
|
||||
@ -223,7 +222,7 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
|
||||
* 라인 배경컬러
|
||||
*/
|
||||
private String color;
|
||||
|
||||
|
||||
/*
|
||||
private String ddlnCd; //교육과정상태 - VEA004
|
||||
private String aprvlCd; //교육신청상태 - VE0003
|
||||
@ -1121,11 +1120,5 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
|
||||
public void setDdlnCdNm(String ddlnCdNm) {
|
||||
this.ddlnCdNm = ddlnCdNm;
|
||||
}
|
||||
public List<String> getCmdTrgtInfoOrdList() {
|
||||
return cmdTrgtInfoOrdList;
|
||||
}
|
||||
public void setCmdTrgtInfoOrdList(List<String> cmdTrgtInfoOrdList) {
|
||||
this.cmdTrgtInfoOrdList = cmdTrgtInfoOrdList;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -174,13 +174,4 @@ public class VEPrcsAplctPrdDAO extends EgovAbstractDAO {
|
||||
return (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.findByAprvlQustnrAllList", vEPrcsDetailVO);
|
||||
}
|
||||
|
||||
public VEPrcsDetailVO selectCompleteDocDetail(VEPrcsDetailVO vEPrcsDetailVO) {
|
||||
return (VEPrcsDetailVO) select("VEPrcsAplctPrdDAO.selectCompleteDocDetail", vEPrcsDetailVO);
|
||||
}
|
||||
|
||||
public List<VEPrcsDetailVO> selectMainContent() throws Exception {
|
||||
List<VEPrcsDetailVO> tlist = (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectMainContent");
|
||||
return tlist;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -191,7 +191,6 @@ public class VEPrcsAplctPrdServiceImpl implements VEPrcsAplctPrdService {
|
||||
|
||||
|
||||
String s_reqNo = vEPrcsDetailVO.getReqNo();
|
||||
String lctrDivCd = vEPrcsDetailVO.getLctrDivCd(); //60-기소유예 70-시정명령 80-예방교육
|
||||
|
||||
if ("2-1".equals(s_reqNo) //사용자 신청 후 취소
|
||||
|| "3-1".equals(s_reqNo) //관리자 승인 후 취소
|
||||
@ -201,79 +200,23 @@ public class VEPrcsAplctPrdServiceImpl implements VEPrcsAplctPrdService {
|
||||
//ve_prcs_aplct_prd : 처리 없음
|
||||
//ve_edu_aplct : 삭제
|
||||
//vea_aplct_detail_info : 삭제
|
||||
//vea_sspn_idmt_trgt : 처리 없음
|
||||
|
||||
VEEduAplctVO vEEduAplctVO = new VEEduAplctVO();
|
||||
vEEduAplctVO.setEduAplctOrd(vEPrcsDetailVO.getEduAplctOrd());
|
||||
|
||||
vEEduAplctDAO.delete(vEEduAplctVO);
|
||||
vEPrcsMIXDAO.deleteAplctDetailInfo(vEPrcsDetailVO);
|
||||
vEPrcsMIXDAO.updateAplctDetailInfo(vEPrcsDetailVO);
|
||||
if("60".equals(lctrDivCd)) {
|
||||
vEPrcsMIXDAO.updateSspnIdmtTrgtCancelNew(vEPrcsDetailVO);
|
||||
}else if("70".equals(lctrDivCd)) {
|
||||
vEPrcsMIXDAO.updateCmdIdmtTrgtCancelNew(vEPrcsDetailVO);
|
||||
}
|
||||
|
||||
}else if ("4".equals(vEPrcsDetailVO.getReqNo())) {
|
||||
//대상자 교육신청후 관리자가 반려 처리
|
||||
//ve_prcs_aplct_prd : 처리 없음
|
||||
//ve_edu_aplct : aprvl_cd=30
|
||||
//vea_aplct_detail_info : 처리 없음
|
||||
//vea_sspn_idmt_trgt : 처리 없음
|
||||
//vea_sspn_idmt_trgt : update edu_state_cd=10,edu_aplct_ord is null
|
||||
|
||||
VEEduAplctVO vEEduAplctVO = new VEEduAplctVO();
|
||||
vEEduAplctVO.setEduAplctOrd(vEPrcsDetailVO.getEduAplctOrd());
|
||||
|
||||
//vEPrcsAplctPrdDAO.delete(vEPrcsDetailVO);
|
||||
|
||||
vEEduAplctDAO.updateSspnIdmtTrgtCancelNew(vEPrcsDetailVO);
|
||||
vEPrcsMIXDAO.updateAplctDetailInfo(vEPrcsDetailVO);
|
||||
if("60".equals(lctrDivCd)) {
|
||||
vEPrcsMIXDAO.updateSspnIdmtTrgtCancelNew(vEPrcsDetailVO);
|
||||
}else if("70".equals(lctrDivCd)) {
|
||||
vEPrcsMIXDAO.updateCmdIdmtTrgtCancelNew(vEPrcsDetailVO);
|
||||
}
|
||||
vEEduAplctDAO.delete(vEEduAplctVO);
|
||||
vEPrcsMIXDAO.deleteAplctDetailInfo(vEPrcsDetailVO);
|
||||
vEPrcsMIXDAO.updateSspnIdmtTrgtCancelNew(vEPrcsDetailVO);
|
||||
|
||||
}else if ("6".equals(vEPrcsDetailVO.getReqNo())) {
|
||||
//교육확정
|
||||
//ve_prcs_aplct_prd : 처리 없음(앞에서 처리)
|
||||
//ve_edu_aplct : aprvl_cd=60
|
||||
}else if ("4".equals(vEPrcsDetailVO.getReqNo())) {
|
||||
//대상자 교육신청후 관리자가 반려 처리
|
||||
//ve_prcs_aplct_prd : 처리 없음
|
||||
//ve_edu_aplct : update aprvl_cd=35
|
||||
//vea_aplct_detail_info : 처리 없음
|
||||
//vea_sspn_idmt_trgt : 처리 없음
|
||||
|
||||
VEEduAplctVO vEEduAplctVO = new VEEduAplctVO();
|
||||
vEEduAplctVO.setEduAplctOrd(vEPrcsDetailVO.getEduAplctOrd());
|
||||
|
||||
|
||||
vEEduAplctDAO.updateSspnIdmtTrgtCancelNew(vEPrcsDetailVO);
|
||||
|
||||
}else if ("6-1".equals(vEPrcsDetailVO.getReqNo())) {
|
||||
/* 251027 기준 - 6-1 미사용 중 */
|
||||
//대상자 교육신청후 교육 취소 요청시 처리
|
||||
//ve_prcs_aplct_prd : 처리 없음
|
||||
//ve_edu_aplct : 처리 없음
|
||||
//vea_aplct_detail_info : aplct_state_cd = 35
|
||||
//vea_sspn_idmt_trgt : 처리 없음
|
||||
|
||||
VEEduAplctVO vEEduAplctVO = new VEEduAplctVO();
|
||||
vEEduAplctVO.setEduAplctOrd(vEPrcsDetailVO.getEduAplctOrd());
|
||||
|
||||
vEEduAplctDAO.updateSspnIdmtTrgtCancelNew(vEPrcsDetailVO);
|
||||
//vEPrcsMIXDAO.deleteAplctDetailInfo(vEPrcsDetailVO);
|
||||
vEPrcsMIXDAO.updateAplctDetailInfo(vEPrcsDetailVO);
|
||||
if("60".equals(lctrDivCd)) {
|
||||
vEPrcsMIXDAO.updateSspnIdmtTrgtCancelNew(vEPrcsDetailVO);
|
||||
}else if("70".equals(lctrDivCd)) {
|
||||
vEPrcsMIXDAO.updateCmdIdmtTrgtCancelNew(vEPrcsDetailVO);
|
||||
}
|
||||
|
||||
}else if ("6-2".equals(vEPrcsDetailVO.getReqNo())) {
|
||||
//대상자 교육 취소 신청 승인(취소 승인-교육종료)
|
||||
//ve_prcs_aplct_prd : 처리 없음
|
||||
//ve_edu_aplct : 처리 없음
|
||||
//vea_aplct_detail_info : aplct_state_cd 60(연기)
|
||||
//vea_sspn_idmt_trgt : edu_state_cd=60(연기),req_state_cd=35(미완료)
|
||||
//vea_sspn_idmt_trgt : update edu_state_cd=30,req_state_cd=20
|
||||
|
||||
VEEduAplctVO vEEduAplctVO = new VEEduAplctVO();
|
||||
vEEduAplctVO.setEduAplctOrd(vEPrcsDetailVO.getEduAplctOrd());
|
||||
@ -281,25 +224,77 @@ public class VEPrcsAplctPrdServiceImpl implements VEPrcsAplctPrdService {
|
||||
//vEPrcsAplctPrdDAO.delete(vEPrcsDetailVO);
|
||||
|
||||
//vEEduAplctDAO.delete(vEEduAplctVO);
|
||||
//vEEduAplctDAO.updateSspnIdmtTrgtCancelNew(vEPrcsDetailVO);
|
||||
vEPrcsMIXDAO.updateAplctDetailInfo(vEPrcsDetailVO);
|
||||
if("60".equals(lctrDivCd)) {
|
||||
vEPrcsMIXDAO.updateSspnIdmtTrgtCancelNew(vEPrcsDetailVO);
|
||||
}else if("70".equals(lctrDivCd)) {
|
||||
vEPrcsMIXDAO.updateCmdIdmtTrgtCancelNew(vEPrcsDetailVO);
|
||||
}
|
||||
vEEduAplctDAO.updateSspnIdmtTrgtCancelNew(vEPrcsDetailVO);
|
||||
vEPrcsMIXDAO.updateAplctDetailInfo(vEPrcsDetailVO);
|
||||
vEPrcsMIXDAO.updateSspnIdmtTrgtCancelNew(vEPrcsDetailVO);
|
||||
|
||||
}else if ("6".equals(vEPrcsDetailVO.getReqNo())) {
|
||||
//교육확정
|
||||
//ve_prcs_aplct_prd : 처리 없음(앞에서 처리)
|
||||
//ve_edu_aplct : update aprvl_cd=60
|
||||
//vea_aplct_detail_info : 처리 없음
|
||||
//vea_sspn_idmt_trgt : update edu_state_cd=30,req_state_cd=20
|
||||
|
||||
VEEduAplctVO vEEduAplctVO = new VEEduAplctVO();
|
||||
vEEduAplctVO.setEduAplctOrd(vEPrcsDetailVO.getEduAplctOrd());
|
||||
|
||||
//vEPrcsAplctPrdDAO.delete(vEPrcsDetailVO);
|
||||
|
||||
//vEEduAplctDAO.delete(vEEduAplctVO);
|
||||
vEEduAplctDAO.updateSspnIdmtTrgtCancelNew(vEPrcsDetailVO);
|
||||
//vEPrcsMIXDAO.updateAplctDetailInfo(vEPrcsDetailVO);
|
||||
vEPrcsMIXDAO.updateSspnIdmtTrgtCancelNew(vEPrcsDetailVO);
|
||||
|
||||
}else if ("6-1".equals(vEPrcsDetailVO.getReqNo())) {
|
||||
//대상자 교육신청후 교육 취소 시 처리
|
||||
//ve_prcs_aplct_prd : 처리 없음
|
||||
//ve_edu_aplct : update aprvl_cd=35
|
||||
//vea_aplct_detail_info : 처리 없음
|
||||
//vea_sspn_idmt_trgt : update edu_state_cd=30,req_state_cd=20
|
||||
|
||||
VEEduAplctVO vEEduAplctVO = new VEEduAplctVO();
|
||||
vEEduAplctVO.setEduAplctOrd(vEPrcsDetailVO.getEduAplctOrd());
|
||||
|
||||
//vEPrcsAplctPrdDAO.delete(vEPrcsDetailVO);
|
||||
|
||||
//vEEduAplctDAO.delete(vEEduAplctVO);
|
||||
vEEduAplctDAO.updateSspnIdmtTrgtCancelNew(vEPrcsDetailVO);
|
||||
//vEPrcsMIXDAO.deleteAplctDetailInfo(vEPrcsDetailVO);
|
||||
vEPrcsMIXDAO.updateSspnIdmtTrgtCancelNew(vEPrcsDetailVO);
|
||||
|
||||
}else if ("6-2".equals(vEPrcsDetailVO.getReqNo())) {
|
||||
//대상자 교육 취소 신청 승인(취소 승인-교육종료)
|
||||
//ve_prcs_aplct_prd : 처리 없음
|
||||
//ve_edu_aplct : update aprvl_cd=40
|
||||
//vea_aplct_detail_info : 처리 없음
|
||||
//vea_sspn_idmt_trgt : update edu_state_cd=60,req_state_cd=40
|
||||
|
||||
VEEduAplctVO vEEduAplctVO = new VEEduAplctVO();
|
||||
vEEduAplctVO.setEduAplctOrd(vEPrcsDetailVO.getEduAplctOrd());
|
||||
|
||||
//vEPrcsAplctPrdDAO.delete(vEPrcsDetailVO);
|
||||
|
||||
//vEEduAplctDAO.delete(vEEduAplctVO);
|
||||
vEEduAplctDAO.updateSspnIdmtTrgtCancelNew(vEPrcsDetailVO);
|
||||
//vEPrcsMIXDAO.deleteAplctDetailInfo(vEPrcsDetailVO);
|
||||
vEPrcsMIXDAO.updateSspnIdmtTrgtCancelNew(vEPrcsDetailVO);
|
||||
|
||||
}else if ("6-3".equals(vEPrcsDetailVO.getReqNo())) {
|
||||
//대상자 교육 취소 신청 반려(취소 반려-교육계속)
|
||||
//ve_prcs_aplct_prd : 처리 없음
|
||||
//ve_edu_aplct : 처리 없음
|
||||
//vea_aplct_detail_info : aplct_state_cd = null
|
||||
//ve_edu_aplct : update aprvl_cd=60
|
||||
//vea_aplct_detail_info : 처리 없음
|
||||
//vea_sspn_idmt_trgt : 처리 없음
|
||||
|
||||
VEEduAplctVO vEEduAplctVO = new VEEduAplctVO();
|
||||
vEEduAplctVO.setEduAplctOrd(vEPrcsDetailVO.getEduAplctOrd());
|
||||
|
||||
vEPrcsMIXDAO.updateAplctDetailInfo(vEPrcsDetailVO);
|
||||
//vEPrcsAplctPrdDAO.delete(vEPrcsDetailVO);
|
||||
|
||||
//vEEduAplctDAO.delete(vEEduAplctVO);
|
||||
vEEduAplctDAO.updateSspnIdmtTrgtCancelNew(vEPrcsDetailVO);
|
||||
//vEPrcsMIXDAO.deleteAplctDetailInfo(vEPrcsDetailVO);
|
||||
//vEPrcsMIXDAO.updateSspnIdmtTrgtCancelNew(vEPrcsDetailVO);
|
||||
}
|
||||
|
||||
return 1;
|
||||
@ -403,20 +398,6 @@ public class VEPrcsAplctPrdServiceImpl implements VEPrcsAplctPrdService {
|
||||
@Override
|
||||
public List<VEPrcsDetailVO> selectTrgtList4_60(VEPrcsDetailVO paramVO) throws Exception{
|
||||
return vEPrcsAplctPrdDAO.selectTrgtList4_60(paramVO);
|
||||
}
|
||||
|
||||
public List<VEPrcsDetailVO> findByAprvlQustnrAllList(VEPrcsDetailVO vEPrcsDetailVO) {
|
||||
return vEPrcsAplctPrdDAO.findByAprvlQustnrAllList(vEPrcsDetailVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public VEPrcsDetailVO selectCompleteDocDetail(VEPrcsDetailVO vEPrcsDetailVO) {
|
||||
return vEPrcsAplctPrdDAO.selectCompleteDocDetail(vEPrcsDetailVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<VEPrcsDetailVO> selectMainContent() throws Exception {
|
||||
return vEPrcsAplctPrdDAO.selectMainContent();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -71,8 +71,4 @@ public class VEPrcsMIXDAO extends EgovAbstractDAO {
|
||||
public int updateSspnIdmtTrgtCancelNew(VEPrcsDetailVO paramVO) throws Exception {
|
||||
return update("VEPrcsDAO.updateSspnIdmtTrgtCancelNew", paramVO);
|
||||
}
|
||||
|
||||
public int updateCmdIdmtTrgtCancelNew(VEPrcsDetailVO paramVO) throws Exception {
|
||||
return update("VEPrcsDAO.updateCmdIdmtTrgtCancelNew", paramVO);
|
||||
}
|
||||
}
|
||||
|
||||
@ -47,7 +47,6 @@ public class CmdTrgtMngVO extends ComDefaultVO implements Serializable {
|
||||
|
||||
private List<String> searchSelStatusList;
|
||||
private List<String> sspnIdtmtTrgtOrdList;
|
||||
private List<String> cmdTrgtInfoOrdList;
|
||||
|
||||
private String eduAplctOrd; //신청한 교육 순번
|
||||
private String rmrks; //비고
|
||||
@ -73,8 +72,6 @@ public class CmdTrgtMngVO extends ComDefaultVO implements Serializable {
|
||||
//private String cmptntAthrtNm; // 대상상태코드 VEA002
|
||||
private String sexNm; // 성별명
|
||||
|
||||
private String orderByQuery;
|
||||
|
||||
|
||||
public String getTitle() {
|
||||
return title;
|
||||
@ -365,17 +362,5 @@ public class CmdTrgtMngVO extends ComDefaultVO implements Serializable {
|
||||
public void setSexNm(String sexNm) {
|
||||
this.sexNm = sexNm;
|
||||
}
|
||||
public List<String> getCmdTrgtInfoOrdList() {
|
||||
return cmdTrgtInfoOrdList;
|
||||
}
|
||||
public void setCmdTrgtInfoOrdList(List<String> cmdTrgtInfoOrdList) {
|
||||
this.cmdTrgtInfoOrdList = cmdTrgtInfoOrdList;
|
||||
}
|
||||
public String getOrderByQuery() {
|
||||
return orderByQuery;
|
||||
}
|
||||
public void setOrderByQuery(String orderByQuery) {
|
||||
this.orderByQuery = orderByQuery;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -8,9 +8,6 @@ import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import kcc.com.cmm.LoginVO;
|
||||
import kcc.let.uat.uia.service.SsoLoginVO;
|
||||
import kcc.ve.cmm.VeConstants;
|
||||
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@ -668,51 +665,43 @@ public class CmdInstrMngController {
|
||||
*/
|
||||
@RequestMapping("/kccadr/oprtn/cmdTrgt/instrActvtHstrySignAndCmpltCrtfcMngList.do")
|
||||
public String instrActvtHstrySignAndCmpltCrtfcMngList(
|
||||
@ModelAttribute("vEEduAplctVO") VEEduAplctVO paramVO
|
||||
@ModelAttribute("vEInstrActvtHstryVO") VEInstrDetailActvtHstryVO vEInstrDetailActvtHstryVO
|
||||
, ModelMap model
|
||||
, HttpServletRequest request
|
||||
) throws Exception {
|
||||
|
||||
//로그인 처리====================================
|
||||
//로그인 정보 가져오기
|
||||
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
|
||||
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
|
||||
System.out.println();
|
||||
if (loginVO == null || ssoLoginVO == null) {
|
||||
return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다.
|
||||
}
|
||||
//로그인 처리====================================
|
||||
|
||||
PaginationInfo paginationInfo = new PaginationInfo();
|
||||
paginationInfo.setCurrentPageNo(paramVO.getPageIndex());
|
||||
paginationInfo.setRecordCountPerPage(paramVO.getPageUnit());
|
||||
paginationInfo.setPageSize(paramVO.getPageSize());
|
||||
|
||||
paramVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
|
||||
paramVO.setLastIndex(paginationInfo.getLastRecordIndex());
|
||||
paramVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
|
||||
|
||||
if("".equals(paramVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
|
||||
paramVO.setSearchSortCnd("a.frst_regist_pnttm");
|
||||
paramVO.setSearchSortOrd("DESC");
|
||||
}
|
||||
|
||||
//과정 신청자 정보 가져오기
|
||||
//해당 과정을 제출한 사용자 정보를 가져온다.
|
||||
paramVO.setSbmtYn("Y");
|
||||
|
||||
paramVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_70); //설문정보를 위해서 설문지의 대상값을 넣는다. VE0011 10-청소년, 20-성인,30-체험, 40-외부, 50-기반, 60-기소
|
||||
List<VEEduAplctVO> vEPrcsDetailVOList = vEEduMIXService.selectCrtfcMngList(paramVO);
|
||||
vEPrcsDetailVOList = egovCryptoUtil.decryptVeEduAplctList(vEPrcsDetailVOList);
|
||||
|
||||
int totCnt = 0;
|
||||
if(vEPrcsDetailVOList.size() > 0) totCnt = vEPrcsDetailVOList.get(0).getTotCnt();
|
||||
paginationInfo.setTotalRecordCount(totCnt);
|
||||
|
||||
//대상 리스트, 페이징 정보 전달
|
||||
model.addAttribute("list", vEPrcsDetailVOList);
|
||||
//LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
|
||||
//SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
|
||||
|
||||
// if (loginVO == null || ssoLoginVO == null) {
|
||||
// return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다.
|
||||
// }
|
||||
//로그인 처리====================================
|
||||
|
||||
//1.pageing step1
|
||||
PaginationInfo paginationInfo = this.setPagingStep1_VEInstrDetailActvtHstryVO(vEInstrDetailActvtHstryVO);
|
||||
//2. pageing step2
|
||||
vEInstrDetailActvtHstryVO = this.setPagingStep2_VEInstrDetailActvtHstryVO(vEInstrDetailActvtHstryVO, paginationInfo);
|
||||
vEInstrDetailActvtHstryVO.setSearchKeyword(egovCryptoUtil.encrypt(vEInstrDetailActvtHstryVO.getSearchKeyword()));
|
||||
// List<VEInstrDetailActvtHstryVO> vEInstrDetailActvtHstryVOList = vEInstrDetailActvtHstryService.selectSignPagingList(vEInstrDetailActvtHstryVO);
|
||||
List<VEInstrDetailActvtHstryVO> vEInstrDetailActvtHstryVOList = vEInstrDetailActvtHstryService.selectSignAndCmpltCrtfcPagingList(vEInstrDetailActvtHstryVO);
|
||||
|
||||
vEInstrDetailActvtHstryVOList.stream().forEach(t-> t.setMberNm(egovCryptoUtil.decrypt(t.getMberNm())));
|
||||
|
||||
//3.pageing step3
|
||||
paginationInfo = this.setPagingStep3_VEInstrDetailActvtHstryVO(vEInstrDetailActvtHstryVOList, paginationInfo);
|
||||
model.addAttribute("paginationInfo", paginationInfo);
|
||||
|
||||
// 검색어 복호화
|
||||
vEInstrDetailActvtHstryVO.setSearchKeyword(egovCryptoUtil.decrypt(vEInstrDetailActvtHstryVO.getSearchKeyword()));
|
||||
//대상 리스트, 페이징 정보 전달
|
||||
model.addAttribute("list", vEInstrDetailActvtHstryVOList);
|
||||
|
||||
|
||||
|
||||
// return "oprtn/cmm/instrActvtHstrySignMngList";
|
||||
return "oprtn/cmdTrgt/instrActvtHstrySignAndCmpltCrtfcMngList";
|
||||
}
|
||||
|
||||
@ -863,9 +852,7 @@ public class CmdInstrMngController {
|
||||
//통계- ①월별 횟수/교육인원(그래프 포함)
|
||||
//vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword());
|
||||
vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail);
|
||||
//List<VELctrDetailVO> selectAsgnmInfoT2List = vEInstrMixService.selectEduPrfrmInfo_csi_no1(vEInstrDetailVODetail);
|
||||
List<VELctrDetailVO> selectAsgnmInfoT2List = vEInstrMixService.selectEduPrfrmInfo_csi_cmdTrgt_no1(vEInstrDetailVODetail);
|
||||
|
||||
List<VELctrDetailVO> selectAsgnmInfoT2List = vEInstrMixService.selectEduPrfrmInfo_csi_no1(vEInstrDetailVODetail);
|
||||
|
||||
//복호화
|
||||
//selectAsgnmInfoT2List = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List);
|
||||
@ -941,9 +928,8 @@ public class CmdInstrMngController {
|
||||
//통계- ①월별 횟수/교육인원(그래프 포함)
|
||||
//vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword());
|
||||
vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail);
|
||||
//List<VELctrDetailVO> selectAsgnmInfoT2List = vEInstrMixService.selectEduPrfrmInfo_csi_no2(vEInstrDetailVODetail);
|
||||
List<VELctrDetailVO> selectAsgnmInfoT2List = vEInstrMixService.selectEduPrfrmInfo_csi_cmdTrgt_no2(vEInstrDetailVODetail);
|
||||
|
||||
List<VELctrDetailVO> selectAsgnmInfoT2List = vEInstrMixService.selectEduPrfrmInfo_csi_no2(vEInstrDetailVODetail);
|
||||
|
||||
//복호화
|
||||
//selectAsgnmInfoT2List = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List);
|
||||
|
||||
@ -1020,9 +1006,8 @@ public class CmdInstrMngController {
|
||||
//통계- ①월별 횟수/교육인원(그래프 포함)
|
||||
//vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword());
|
||||
vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail);
|
||||
//List<VELctrDetailVO> selectAsgnmInfoT3List = vEInstrMixService.selectEduPrfrmInfo_csi_no3(vEInstrDetailVODetail);
|
||||
List<VELctrDetailVO> selectAsgnmInfoT3List = vEInstrMixService.selectEduPrfrmInfo_csi_cmdTrgt_no3(vEInstrDetailVODetail);
|
||||
|
||||
List<VELctrDetailVO> selectAsgnmInfoT3List = vEInstrMixService.selectEduPrfrmInfo_csi_no3(vEInstrDetailVODetail);
|
||||
|
||||
//복호화
|
||||
//selectAsgnmInfoT2List = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List);
|
||||
|
||||
@ -1100,9 +1085,8 @@ public class CmdInstrMngController {
|
||||
//vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword());
|
||||
vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail);
|
||||
vEInstrDetailVODetail.setSearchEduStateCd("20"); //이수만 보기
|
||||
//List<VELctrDetailVO> selectAsgnmInfoT2List = vEInstrMixService.selectEduPrfrmInfo_csi_no4(vEInstrDetailVODetail);
|
||||
List<VELctrDetailVO> selectAsgnmInfoT2List = vEInstrMixService.selectEduPrfrmInfo_csi_cmdTrgt_no4(vEInstrDetailVODetail);
|
||||
|
||||
List<VELctrDetailVO> selectAsgnmInfoT2List = vEInstrMixService.selectEduPrfrmInfo_csi_no4(vEInstrDetailVODetail);
|
||||
|
||||
//복호화
|
||||
//selectAsgnmInfoT2List = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List);
|
||||
|
||||
@ -1178,9 +1162,8 @@ public class CmdInstrMngController {
|
||||
//vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword());
|
||||
vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail);
|
||||
vEInstrDetailVODetail.setSearchEduStateCd("20"); //이수만 보기
|
||||
//List<VELctrDetailVO> selectAsgnmInfoT2List = vEInstrMixService.selectEduPrfrmInfo_csi_no5(vEInstrDetailVODetail);
|
||||
List<VELctrDetailVO> selectAsgnmInfoT2List = vEInstrMixService.selectEduPrfrmInfo_csi_cmdTrgt_no5(vEInstrDetailVODetail);
|
||||
|
||||
List<VELctrDetailVO> selectAsgnmInfoT2List = vEInstrMixService.selectEduPrfrmInfo_csi_no5(vEInstrDetailVODetail);
|
||||
|
||||
//복호화
|
||||
//selectAsgnmInfoT2List = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List);
|
||||
|
||||
@ -1260,9 +1243,7 @@ public class CmdInstrMngController {
|
||||
//vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword());
|
||||
vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail);
|
||||
//vEInstrDetailVODetail.setSearchEduStateCd("20"); //이수만 보기
|
||||
//List<VELctrDetailVO> selectAsgnmInfoT7List = vEInstrMixService.selectEduPrfrmInfo_csi_no7(vEInstrDetailVODetail);
|
||||
List<VELctrDetailVO> selectAsgnmInfoT7List = vEInstrMixService.selectEduPrfrmInfo_csi_cmdTrgt_no7(vEInstrDetailVODetail);
|
||||
|
||||
List<VELctrDetailVO> selectAsgnmInfoT7List = vEInstrMixService.selectEduPrfrmInfo_csi_no7(vEInstrDetailVODetail);
|
||||
|
||||
//복호화
|
||||
//selectAsgnmInfoT2List = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List);
|
||||
@ -1347,9 +1328,7 @@ public class CmdInstrMngController {
|
||||
//vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword());
|
||||
vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail);
|
||||
vEInstrDetailVODetail.setSearchEduStateCd("20"); //이수만 보기
|
||||
//List<VELctrDetailVO> selectAsgnmInfoT3List = vEInstrMixService.selectEduPrfrmInfo_csi_no6(vEInstrDetailVODetail);
|
||||
List<VELctrDetailVO> selectAsgnmInfoT3List = vEInstrMixService.selectEduPrfrmInfo_csi_cmdTrgt_no6(vEInstrDetailVODetail);
|
||||
|
||||
List<VELctrDetailVO> selectAsgnmInfoT3List = vEInstrMixService.selectEduPrfrmInfo_csi_no6(vEInstrDetailVODetail);
|
||||
|
||||
//복호화
|
||||
//selectAsgnmInfoT2List = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List);
|
||||
|
||||
@ -1319,7 +1319,7 @@ public class CmdPrcsInfoMngController {
|
||||
|
||||
|
||||
paramVO.setSiteId(LCTR_DIV_CD); //설문정보를 위해서 설문지의 대상값을 넣는다. VE0011 10-청소년, 20-성인,30-체험, 40-외부, 50-기반, 60-기소, 70-시정명령
|
||||
List<VEEduAplctVO> vEPrcsDetailVOList = vEEduMIXService.selectCmdTrgtList4Cmplt(paramVO);
|
||||
List<VEEduAplctVO> vEPrcsDetailVOList = vEEduMIXService.selectTrgtList4Cmplt(paramVO);
|
||||
vEPrcsDetailVOList = egovCryptoUtil.decryptVeEduAplctList(vEPrcsDetailVOList);
|
||||
|
||||
|
||||
@ -1483,7 +1483,7 @@ public class CmdPrcsInfoMngController {
|
||||
|
||||
|
||||
// 기소유예 대상자 상태값 udpate
|
||||
vEEduMIXService.updateCmdEduStateCd(vEEduAplctVO);
|
||||
vEEduMIXService.updateEduStateCd(vEEduAplctVO);
|
||||
|
||||
|
||||
// 알림 영역
|
||||
@ -2404,9 +2404,8 @@ public class CmdPrcsInfoMngController {
|
||||
vEEduAplctVO.setUserId(loginVO.getUniqId());
|
||||
vEEduAplctVO.setPrcsOrd(vEPrcsDetailVO.getPrcsAplctPrdOrd());
|
||||
vEEduAplctVO.setTrgtNm(vEPrcsDetailVO.getTrgtNm());
|
||||
vEEduAplctVO.setChrgNm(vEPrcsDetailVO.getTrgtNm());
|
||||
vEEduAplctVO.setdBirth(vEPrcsDetailVO.getdBirth());
|
||||
vEEduAplctVO.setPhone(vEPrcsDetailVO.getPhone());
|
||||
vEEduAplctVO.setPhone(egovCryptoUtil.encrypt(vEPrcsDetailVO.getPhone()));
|
||||
vEEduAplctVO.setEmail(vEPrcsDetailVO.getEmail());
|
||||
|
||||
String result = "";
|
||||
@ -2568,7 +2567,7 @@ public class CmdPrcsInfoMngController {
|
||||
//VEPrcsDetailVO info = vEPrcsAplctPrdService.findByCnclInfo(vEPrcsDetailVO);
|
||||
|
||||
System.out.println("=====================");
|
||||
System.out.println("===================== :: "+ vEPrcsDetailVO.getCmdTrgtInfoOrdList().toString());
|
||||
System.out.println("===================== :: "+ vEPrcsDetailVO.getSspnIdtmtTrgtOrdList().toString());
|
||||
|
||||
//파일 정보 가져오기
|
||||
// FileVO fileVO = new FileVO();
|
||||
@ -2815,8 +2814,6 @@ public class CmdPrcsInfoMngController {
|
||||
//기반강화 조회
|
||||
vEPrcsDetailVO.setLctrDivCd(LCTR_DIV_CD); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
|
||||
|
||||
//사용 중인 과정만 조회
|
||||
vEPrcsDetailVO.setUseYn("Y");
|
||||
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsService.selectPagingList(vEPrcsDetailVO);
|
||||
|
||||
//3.pageing step3
|
||||
|
||||
@ -220,13 +220,6 @@ public class CmdTrgtMngController {
|
||||
//2. pageing step2
|
||||
cndtnTrgtInfoMngVO = this.setCndtnPagingStep2(cndtnTrgtInfoMngVO, paginationInfo);
|
||||
|
||||
|
||||
//검색 기본 조건 설정
|
||||
if (cndtnTrgtInfoMngVO.getSearchEduStateCd() == null) {
|
||||
cndtnTrgtInfoMngVO.setSearchEduStateCd("10");
|
||||
}
|
||||
|
||||
|
||||
//검색 조회
|
||||
String selectCondition = "";
|
||||
|
||||
@ -253,21 +246,6 @@ public class CmdTrgtMngController {
|
||||
|
||||
cndtnTrgtInfoMngVO.setSearchQuery(selectCondition);
|
||||
|
||||
|
||||
//정렬
|
||||
System.out.println("cndtnTrgtInfoMngVO.getSearchSortCnd()");
|
||||
System.out.println(cndtnTrgtInfoMngVO.getSearchSortCnd());
|
||||
System.out.println(cndtnTrgtInfoMngVO.getSearchSortCnd());
|
||||
System.out.println(cndtnTrgtInfoMngVO.getOrderByQuery());
|
||||
System.out.println(cndtnTrgtInfoMngVO.getOrderByQuery());
|
||||
|
||||
if("prcs_ord".equals(cndtnTrgtInfoMngVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
|
||||
cndtnTrgtInfoMngVO.setOrderByQuery("");
|
||||
}else{
|
||||
cndtnTrgtInfoMngVO.setOrderByQuery(cndtnTrgtInfoMngVO.getSearchSortCnd() + " " +cndtnTrgtInfoMngVO.getSearchSortOrd());
|
||||
}
|
||||
|
||||
|
||||
// List<CndtnTrgtInfoMngVO> cndtnTrgtInfoMngVOList = cndtnTrgtInfoMngService.selectPagingList(cndtnTrgtInfoMngVO);
|
||||
List<CmdTrgtMngVO> cndtnTrgtInfoMngVOList = null;
|
||||
try {
|
||||
@ -321,11 +299,11 @@ public class CmdTrgtMngController {
|
||||
|
||||
// 대괄호 제거
|
||||
List<String> resultList = new ArrayList<>();
|
||||
for (String list : cndtnTrgtMngVO.getCmdTrgtInfoOrdList()) {
|
||||
for (String list : cndtnTrgtMngVO.getSspnIdtmtTrgtOrdList()) {
|
||||
resultList.add(list.replace("[","").replace("]","")); // 내부 리스트의 모든 요소를 resultList에 추가
|
||||
}
|
||||
|
||||
cndtnTrgtMngVO.setCmdTrgtInfoOrdList(resultList);
|
||||
cndtnTrgtMngVO.setSspnIdtmtTrgtOrdList(resultList);
|
||||
|
||||
try {
|
||||
cmdTrgtInfoMngService.updateEduStateCdAndReqStateCdAjax(cndtnTrgtMngVO);
|
||||
@ -403,7 +381,7 @@ public class CmdTrgtMngController {
|
||||
return userWork;
|
||||
}
|
||||
|
||||
@RequestMapping("/kccadr/oprtn/cmdTrgt/trgtMngList_old.do")
|
||||
@RequestMapping("/kccadr/oprtn/cmdTrgt/trgtMngList.do")
|
||||
public String trgtMngList(
|
||||
@ModelAttribute("cndtnTrgtInfoMngVO") CmdTrgtMngVO cndtnTrgtInfoMngVO
|
||||
, ModelMap model
|
||||
@ -726,96 +704,85 @@ public class CmdTrgtMngController {
|
||||
ModelAndView modelAndView = new ModelAndView();
|
||||
modelAndView.setViewName("jsonView");
|
||||
|
||||
try {
|
||||
|
||||
//로그인 처리====================================
|
||||
//로그인 정보 가져오기
|
||||
|
||||
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
|
||||
if (!"".equals(s_oprtnLoginCheckNInfo)) {
|
||||
modelAndView.addObject("result", "loginFail");
|
||||
return modelAndView;
|
||||
}
|
||||
//로그인 처리====================================
|
||||
|
||||
|
||||
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
|
||||
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
|
||||
|
||||
//로그인 처리====================================
|
||||
//로그인 정보 가져오기
|
||||
|
||||
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
|
||||
if (!"".equals(s_oprtnLoginCheckNInfo)) {
|
||||
modelAndView.addObject("result", "loginFail");
|
||||
return modelAndView;
|
||||
}
|
||||
//로그인 처리====================================
|
||||
|
||||
|
||||
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
|
||||
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
|
||||
|
||||
|
||||
//step2.파일 처리====================================
|
||||
//파일 정상 처리 여부와 첨부 파일 정보
|
||||
//String atchFileId = this.takeFile(multiRequest, modelAndView, bmVO);
|
||||
//파일 제한 수량 가져오기, 없으면 기본값 사용
|
||||
int i_file_limit = checkFileUtil.getLimitCount(request); // file count
|
||||
int i_limit_size = checkFileUtil.getLimitSize(request); // file MB
|
||||
String s_file_exts = checkFileUtil.getS_exts(); // file exts
|
||||
|
||||
String s_scholSealAtchFileId = checkFileUtil.fileValCheckNdbInsert(
|
||||
multiRequest, modelAndView
|
||||
, "APLCT_" //file_name_prefix
|
||||
, s_file_exts
|
||||
, i_limit_size
|
||||
, i_file_limit
|
||||
); //EXT, MB size and ea
|
||||
|
||||
System.out.println("s_scholSealAtchFileId");
|
||||
System.out.println(s_scholSealAtchFileId);
|
||||
System.out.println(s_scholSealAtchFileId);
|
||||
|
||||
if ("ERROR".equals(s_scholSealAtchFileId)) return modelAndView;
|
||||
|
||||
|
||||
// 사건번호
|
||||
// 형식 : - 예시로 A-서울중앙-100-23-1 경우
|
||||
// A (성인/미성년 구분), 서울중앙, 100, 23, 1
|
||||
// 성인 A / 미성년 Y, 검찰청명, 검찰청 고유번호, 연도, 접수번호
|
||||
|
||||
try {
|
||||
if(StringUtils.isEmpty(cndtnTrgtInfoMngVO.getdBirth()) ) {
|
||||
cndtnTrgtInfoMngVO.setdBirth(cndtnTrgtInfoMngVO.getDBirth());
|
||||
}
|
||||
System.out.println(cndtnTrgtInfoMngVO.getdBirth());
|
||||
|
||||
cndtnTrgtInfoMngVO.setReqNmbr(this.getReqNmbr(cndtnTrgtInfoMngVO));
|
||||
|
||||
cndtnTrgtInfoMngVO.setCmdTrgtInfoOrd(trgtOrdService.getNextStringId());
|
||||
cndtnTrgtInfoMngVO.setAtchFileId(s_scholSealAtchFileId); //학교장직인 첨부파일
|
||||
cndtnTrgtInfoMngVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
|
||||
//step2.파일 처리====================================
|
||||
//파일 정상 처리 여부와 첨부 파일 정보
|
||||
//String atchFileId = this.takeFile(multiRequest, modelAndView, bmVO);
|
||||
//파일 제한 수량 가져오기, 없으면 기본값 사용
|
||||
int i_file_limit = checkFileUtil.getLimitCount(request); // file count
|
||||
int i_limit_size = checkFileUtil.getLimitSize(request); // file MB
|
||||
String s_file_exts = checkFileUtil.getS_exts(); // file exts
|
||||
|
||||
//암호화
|
||||
cndtnTrgtInfoMngVO = egovCryptoUtil.encryptCmdTrgtMngVOInfo(cndtnTrgtInfoMngVO);
|
||||
|
||||
cmdTrgtInfoMngService.insert(cndtnTrgtInfoMngVO);
|
||||
// 병합을 하기위한 key
|
||||
modelAndView.addObject("cmdTrgtInfoOrd", cndtnTrgtInfoMngVO.getCmdTrgtInfoOrd());
|
||||
modelAndView.addObject("result", "success");
|
||||
|
||||
//첨부파일 이름 변경하기
|
||||
List<FileVO> result = new ArrayList<>();
|
||||
FileVO fileCheck = new FileVO();
|
||||
fileCheck.setAtchFileId(s_scholSealAtchFileId);
|
||||
result = fileService.selectFileInfs(fileCheck);
|
||||
|
||||
for(int i=0; i < result.size(); i++) {
|
||||
cndtnTrgtInfoMngVO = egovCryptoUtil.decryptCmdTrgtMngVOInfo(cndtnTrgtInfoMngVO);
|
||||
String orignlFileNm = cndtnTrgtInfoMngVO.getTrgtNm() + "_"+cndtnTrgtInfoMngVO.getDBirth()+"_"+cndtnTrgtInfoMngVO.getCmptntAthrtNm();
|
||||
orignlFileNm = orignlFileNm+"_"+(i+1);
|
||||
orignlFileNm = orignlFileNm +"."+ result.get(i).getFileExtsn();
|
||||
result.get(i).setOrignlFileNm(orignlFileNm);
|
||||
fileService.updateFileName(result.get(i));
|
||||
}
|
||||
|
||||
}catch(Exception ex) {
|
||||
ex.printStackTrace();
|
||||
modelAndView.addObject("result", "fail");
|
||||
}
|
||||
|
||||
}catch(Exception ex) {
|
||||
ex.printStackTrace();
|
||||
|
||||
}
|
||||
String s_scholSealAtchFileId = checkFileUtil.fileValCheckNdbInsert(
|
||||
multiRequest, modelAndView
|
||||
, "APLCT_" //file_name_prefix
|
||||
, s_file_exts
|
||||
, i_limit_size
|
||||
, i_file_limit
|
||||
); //EXT, MB size and ea
|
||||
|
||||
if ("ERROR".equals(s_scholSealAtchFileId)) return modelAndView;
|
||||
|
||||
|
||||
// 사건번호
|
||||
// 형식 : - 예시로 A-서울중앙-100-23-1 경우
|
||||
// A (성인/미성년 구분), 서울중앙, 100, 23, 1
|
||||
// 성인 A / 미성년 Y, 검찰청명, 검찰청 고유번호, 연도, 접수번호
|
||||
|
||||
try {
|
||||
if(StringUtils.isEmpty(cndtnTrgtInfoMngVO.getdBirth()) ) {
|
||||
cndtnTrgtInfoMngVO.setdBirth(cndtnTrgtInfoMngVO.getDBirth());
|
||||
}
|
||||
System.out.println(cndtnTrgtInfoMngVO.getdBirth());
|
||||
|
||||
cndtnTrgtInfoMngVO.setReqNmbr(this.getReqNmbr(cndtnTrgtInfoMngVO));
|
||||
|
||||
cndtnTrgtInfoMngVO.setCmdTrgtInfoOrd(trgtOrdService.getNextStringId());
|
||||
cndtnTrgtInfoMngVO.setAtchFileId(s_scholSealAtchFileId); //학교장직인 첨부파일
|
||||
cndtnTrgtInfoMngVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
|
||||
|
||||
//암호화
|
||||
cndtnTrgtInfoMngVO = egovCryptoUtil.encryptCmdTrgtMngVOInfo(cndtnTrgtInfoMngVO);
|
||||
|
||||
cmdTrgtInfoMngService.insert(cndtnTrgtInfoMngVO);
|
||||
// 병합을 하기위한 key
|
||||
modelAndView.addObject("cmdTrgtInfoOrd", cndtnTrgtInfoMngVO.getCmdTrgtInfoOrd());
|
||||
modelAndView.addObject("result", "success");
|
||||
|
||||
//첨부파일 이름 변경하기
|
||||
List<FileVO> result = new ArrayList<>();
|
||||
FileVO fileCheck = new FileVO();
|
||||
fileCheck.setAtchFileId(s_scholSealAtchFileId);
|
||||
result = fileService.selectFileInfs(fileCheck);
|
||||
|
||||
for(int i=0; i < result.size(); i++) {
|
||||
cndtnTrgtInfoMngVO = egovCryptoUtil.decryptCmdTrgtMngVOInfo(cndtnTrgtInfoMngVO);
|
||||
String orignlFileNm = cndtnTrgtInfoMngVO.getTrgtNm() + "_"+cndtnTrgtInfoMngVO.getDBirth()+"_"+cndtnTrgtInfoMngVO.getCmptntAthrtNm();
|
||||
orignlFileNm = orignlFileNm+"_"+(i+1);
|
||||
orignlFileNm = orignlFileNm +"."+ result.get(i).getFileExtsn();
|
||||
result.get(i).setOrignlFileNm(orignlFileNm);
|
||||
fileService.updateFileName(result.get(i));
|
||||
}
|
||||
|
||||
}catch(Exception ex) {
|
||||
ex.printStackTrace();
|
||||
modelAndView.addObject("result", "fail");
|
||||
}
|
||||
|
||||
|
||||
return modelAndView;
|
||||
|
||||
|
||||
@ -72,9 +72,6 @@ public class CndtnTrgtMngVO extends ComDefaultVO implements Serializable {
|
||||
//private String cmptntAthrtNm; // 대상상태코드 VEA002
|
||||
private String sexNm; // 성별명
|
||||
|
||||
private String orderByQuery;
|
||||
private String userWork;
|
||||
|
||||
|
||||
public String getTitle() {
|
||||
return title;
|
||||
@ -365,17 +362,5 @@ public class CndtnTrgtMngVO extends ComDefaultVO implements Serializable {
|
||||
public void setSexNm(String sexNm) {
|
||||
this.sexNm = sexNm;
|
||||
}
|
||||
public String getOrderByQuery() {
|
||||
return orderByQuery;
|
||||
}
|
||||
public void setOrderByQuery(String orderByQuery) {
|
||||
this.orderByQuery = orderByQuery;
|
||||
}
|
||||
public String getUserWork() {
|
||||
return userWork;
|
||||
}
|
||||
public void setUserWork(String userWork) {
|
||||
this.userWork = userWork;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -191,12 +191,6 @@ public class CndtnTrgtMngController {
|
||||
, HttpServletRequest request
|
||||
) throws Exception {
|
||||
|
||||
System.out.println("cndtnTrgtInfoMngVO.getSearchSortCnd()");
|
||||
System.out.println(cndtnTrgtInfoMngVO.getSearchSortCnd());
|
||||
System.out.println(cndtnTrgtInfoMngVO.getSearchSortCnd());
|
||||
System.out.println(cndtnTrgtInfoMngVO.getOrderByQuery());
|
||||
System.out.println(cndtnTrgtInfoMngVO.getOrderByQuery());
|
||||
|
||||
//로그인 처리====================================
|
||||
//로그인 정보 가져오기
|
||||
// LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
|
||||
@ -221,13 +215,6 @@ public class CndtnTrgtMngController {
|
||||
//2. pageing step2
|
||||
cndtnTrgtInfoMngVO = this.setCndtnPagingStep2(cndtnTrgtInfoMngVO, paginationInfo);
|
||||
|
||||
|
||||
//검색 기본 조건 설정
|
||||
if (cndtnTrgtInfoMngVO.getSearchEduStateCd() == null) {
|
||||
cndtnTrgtInfoMngVO.setSearchEduStateCd("10");
|
||||
}
|
||||
|
||||
|
||||
//검색 조회
|
||||
String selectCondition = "";
|
||||
|
||||
@ -251,27 +238,8 @@ public class CndtnTrgtMngController {
|
||||
selectCondition += " AND a.d_birth ='" + egovCryptoUtil.encrypt(cndtnTrgtInfoMngVO.getSearchKeywordTo()) + "' ";
|
||||
|
||||
}
|
||||
|
||||
//관할청
|
||||
if(StringUtil.isNotEmpty(cndtnTrgtInfoMngVO.getUserWork())){
|
||||
selectCondition += " AND a.cmptnt_athrt ='" + cndtnTrgtInfoMngVO.getUserWork() + "' ";
|
||||
|
||||
}
|
||||
|
||||
cndtnTrgtInfoMngVO.setSearchQuery(selectCondition);
|
||||
|
||||
//정렬
|
||||
System.out.println("cndtnTrgtInfoMngVO.getSearchSortCnd()");
|
||||
System.out.println(cndtnTrgtInfoMngVO.getSearchSortCnd());
|
||||
System.out.println(cndtnTrgtInfoMngVO.getSearchSortCnd());
|
||||
System.out.println(cndtnTrgtInfoMngVO.getOrderByQuery());
|
||||
System.out.println(cndtnTrgtInfoMngVO.getOrderByQuery());
|
||||
|
||||
if("prcs_ord".equals(cndtnTrgtInfoMngVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
|
||||
cndtnTrgtInfoMngVO.setOrderByQuery("");
|
||||
}else{
|
||||
cndtnTrgtInfoMngVO.setOrderByQuery(cndtnTrgtInfoMngVO.getSearchSortCnd() + " " +cndtnTrgtInfoMngVO.getSearchSortOrd());
|
||||
}
|
||||
|
||||
// List<CndtnTrgtInfoMngVO> cndtnTrgtInfoMngVOList = cndtnTrgtInfoMngService.selectPagingList(cndtnTrgtInfoMngVO);
|
||||
List<CndtnTrgtMngVO> cndtnTrgtInfoMngVOList = null;
|
||||
@ -285,7 +253,7 @@ public class CndtnTrgtMngController {
|
||||
|
||||
//3.pageing step3
|
||||
paginationInfo = this.setCndtnPagingStep3(cndtnTrgtInfoMngVOList, paginationInfo);
|
||||
model.addAttribute("cndtnTrgtInfoMngVO", cndtnTrgtInfoMngVO);
|
||||
|
||||
model.addAttribute("paginationInfo", paginationInfo);
|
||||
|
||||
|
||||
@ -407,7 +375,7 @@ public class CndtnTrgtMngController {
|
||||
return userWork;
|
||||
}
|
||||
|
||||
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/trgtMngList_old.do")
|
||||
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/trgtMngList.do")
|
||||
public String trgtMngList(
|
||||
@ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO
|
||||
, ModelMap model
|
||||
|
||||
@ -8,10 +8,6 @@ import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import kcc.com.cmm.LoginVO;
|
||||
import kcc.let.uat.uia.service.SsoLoginVO;
|
||||
import kcc.ve.cmm.VeConstants;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@ -669,55 +665,46 @@ public class CndtnInstrMngController {
|
||||
*/
|
||||
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/instrActvtHstrySignAndCmpltCrtfcMngList.do")
|
||||
public String instrActvtHstrySignAndCmpltCrtfcMngList(
|
||||
@ModelAttribute("vEEduAplctVO") VEEduAplctVO paramVO
|
||||
@ModelAttribute("vEInstrActvtHstryVO") VEInstrDetailActvtHstryVO vEInstrDetailActvtHstryVO
|
||||
, ModelMap model
|
||||
, HttpServletRequest request
|
||||
) throws Exception {
|
||||
|
||||
//로그인 처리====================================
|
||||
//로그인 정보 가져오기
|
||||
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
|
||||
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
|
||||
System.out.println();
|
||||
if (loginVO == null || ssoLoginVO == null) {
|
||||
return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다.
|
||||
}
|
||||
//로그인 처리====================================
|
||||
|
||||
PaginationInfo paginationInfo = new PaginationInfo();
|
||||
paginationInfo.setCurrentPageNo(paramVO.getPageIndex());
|
||||
paginationInfo.setRecordCountPerPage(paramVO.getPageUnit());
|
||||
paginationInfo.setPageSize(paramVO.getPageSize());
|
||||
|
||||
paramVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
|
||||
paramVO.setLastIndex(paginationInfo.getLastRecordIndex());
|
||||
paramVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
|
||||
|
||||
if("".equals(paramVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
|
||||
paramVO.setSearchSortCnd("a.frst_regist_pnttm");
|
||||
paramVO.setSearchSortOrd("DESC");
|
||||
}
|
||||
|
||||
//과정 신청자 정보 가져오기
|
||||
//해당 과정을 제출한 사용자 정보를 가져온다.
|
||||
paramVO.setSbmtYn("Y");
|
||||
|
||||
paramVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_60); //설문정보를 위해서 설문지의 대상값을 넣는다. VE0011 10-청소년, 20-성인,30-체험, 40-외부, 50-기반, 60-기소
|
||||
List<VEEduAplctVO> vEPrcsDetailVOList = vEEduMIXService.selectCrtfcMngList(paramVO);
|
||||
vEPrcsDetailVOList = egovCryptoUtil.decryptVeEduAplctList(vEPrcsDetailVOList);
|
||||
|
||||
int totCnt = 0;
|
||||
if(vEPrcsDetailVOList.size() > 0) totCnt = vEPrcsDetailVOList.get(0).getTotCnt();
|
||||
paginationInfo.setTotalRecordCount(totCnt);
|
||||
|
||||
//대상 리스트, 페이징 정보 전달
|
||||
model.addAttribute("list", vEPrcsDetailVOList);
|
||||
//LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
|
||||
//SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
|
||||
|
||||
// if (loginVO == null || ssoLoginVO == null) {
|
||||
// return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다.
|
||||
// }
|
||||
//로그인 처리====================================
|
||||
|
||||
//1.pageing step1
|
||||
PaginationInfo paginationInfo = this.setPagingStep1_VEInstrDetailActvtHstryVO(vEInstrDetailActvtHstryVO);
|
||||
//2. pageing step2
|
||||
vEInstrDetailActvtHstryVO = this.setPagingStep2_VEInstrDetailActvtHstryVO(vEInstrDetailActvtHstryVO, paginationInfo);
|
||||
vEInstrDetailActvtHstryVO.setSearchKeyword(egovCryptoUtil.encrypt(vEInstrDetailActvtHstryVO.getSearchKeyword()));
|
||||
// List<VEInstrDetailActvtHstryVO> vEInstrDetailActvtHstryVOList = vEInstrDetailActvtHstryService.selectSignPagingList(vEInstrDetailActvtHstryVO);
|
||||
List<VEInstrDetailActvtHstryVO> vEInstrDetailActvtHstryVOList = vEInstrDetailActvtHstryService.selectSignAndCmpltCrtfcPagingList(vEInstrDetailActvtHstryVO);
|
||||
|
||||
vEInstrDetailActvtHstryVOList.stream().forEach(t-> t.setMberNm(egovCryptoUtil.decrypt(t.getMberNm())));
|
||||
|
||||
//3.pageing step3
|
||||
paginationInfo = this.setPagingStep3_VEInstrDetailActvtHstryVO(vEInstrDetailActvtHstryVOList, paginationInfo);
|
||||
model.addAttribute("paginationInfo", paginationInfo);
|
||||
|
||||
|
||||
// 검색어 복호화
|
||||
vEInstrDetailActvtHstryVO.setSearchKeyword(egovCryptoUtil.decrypt(vEInstrDetailActvtHstryVO.getSearchKeyword()));
|
||||
//대상 리스트, 페이징 정보 전달
|
||||
model.addAttribute("list", vEInstrDetailActvtHstryVOList);
|
||||
|
||||
|
||||
|
||||
// return "oprtn/cmm/instrActvtHstrySignMngList";
|
||||
return "oprtn/cndtnSspnIdtmt/instrActvtHstrySignAndCmpltCrtfcMngList";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 교육실적통계 화면-개별
|
||||
*/
|
||||
|
||||
@ -1339,6 +1339,7 @@ public class CndtnPrcsInfoMngController {
|
||||
model.addAttribute("instrAsgnmList", instrAsgnmList);
|
||||
}
|
||||
|
||||
|
||||
//설문 문항 정보
|
||||
try {
|
||||
model = qustnrCommonUtil._qustnrQesItm(
|
||||
@ -1370,8 +1371,7 @@ public class CndtnPrcsInfoMngController {
|
||||
model.addAttribute("Comtnqustnrqesitm", egovQustnrRespondInfoService.selectQustnrRespondInfoManageComtnqustnrqesitm(commandMap));
|
||||
*/
|
||||
|
||||
//설문조사 결과(?)
|
||||
try{
|
||||
try{
|
||||
model = qustnrCommonUtil._chasiSrvyList(
|
||||
model
|
||||
, LCTR_DIV_CD //청소년 -10, 성인-20, ...VE0012
|
||||
@ -1387,22 +1387,6 @@ public class CndtnPrcsInfoMngController {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
|
||||
// 설문조사 문항항목
|
||||
try{
|
||||
model = qustnrCommonUtil._chasiSrvyItemList(
|
||||
model
|
||||
, LCTR_DIV_CD //청소년 -10, 성인-20, ...VE0012
|
||||
, "10" //10-기본설문, 20-신청자설문, 30-강사설문 VEA012
|
||||
, vEPrcsDetailVO.getPrcsAplctPrdOrd()
|
||||
, ""
|
||||
//, vEEduAplctVO.getEduAplctOrd()
|
||||
//, vEEduAplctVO.getEduChasiOrd()
|
||||
, vEALettnQestnrMIXService
|
||||
);
|
||||
|
||||
}catch(Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
|
||||
//개인별 만족도 관리 - chasiSrvyEAList
|
||||
try{
|
||||
@ -2217,7 +2201,6 @@ public class CndtnPrcsInfoMngController {
|
||||
|
||||
//1.pageing step1
|
||||
PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO);
|
||||
paginationInfo.setRecordCountPerPage(10000);
|
||||
|
||||
|
||||
//2. pageing step2
|
||||
@ -2257,15 +2240,6 @@ public class CndtnPrcsInfoMngController {
|
||||
vEPrcsDetailVO.setInstrDiv(LCTR_DIV_CD); //20
|
||||
vEPrcsDetailVO.setSelectPagingListQuery(selectCondition);
|
||||
|
||||
//정렬
|
||||
|
||||
if("".equals(vEPrcsDetailVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
|
||||
vEPrcsDetailVO.setOrderByQuery("A.SBMT_PNTTM DESC");
|
||||
}else{
|
||||
vEPrcsDetailVO.setOrderByQuery(vEPrcsDetailVO.getSearchSortCnd() + " " +vEPrcsDetailVO.getSearchSortOrd());
|
||||
}
|
||||
|
||||
|
||||
List<VEInstrDetailVO> vEInstrDetailVOList = vEPrcsAplctPrdService.selectinstrAsgnmPopupPagingList(vEPrcsDetailVO);
|
||||
|
||||
try {
|
||||
@ -2600,9 +2574,8 @@ public class CndtnPrcsInfoMngController {
|
||||
vEEduAplctVO.setUserId(loginVO.getUniqId());
|
||||
vEEduAplctVO.setPrcsOrd(vEPrcsDetailVO.getPrcsAplctPrdOrd());
|
||||
vEEduAplctVO.setTrgtNm(vEPrcsDetailVO.getTrgtNm());
|
||||
vEEduAplctVO.setChrgNm(vEPrcsDetailVO.getTrgtNm());
|
||||
vEEduAplctVO.setdBirth(vEPrcsDetailVO.getdBirth());
|
||||
vEEduAplctVO.setPhone(vEPrcsDetailVO.getPhone());
|
||||
vEEduAplctVO.setPhone(egovCryptoUtil.encrypt(vEPrcsDetailVO.getPhone()));
|
||||
vEEduAplctVO.setEmail(vEPrcsDetailVO.getEmail());
|
||||
|
||||
String result = "";
|
||||
@ -3411,8 +3384,8 @@ public class CndtnPrcsInfoMngController {
|
||||
p_vEPrcsDetailVO.setRecordCountPerPage(p_paginationInfo.getRecordCountPerPage());
|
||||
|
||||
if("".equals(p_vEPrcsDetailVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
|
||||
// //p_vEPrcsDetailVO.setSearchSortCnd("prcs_ord");//
|
||||
//p_vEPrcsDetailVO.setSearchSortOrd("desc");
|
||||
p_vEPrcsDetailVO.setSearchSortCnd("prcs_ord");
|
||||
p_vEPrcsDetailVO.setSearchSortOrd("desc");
|
||||
}
|
||||
|
||||
return p_vEPrcsDetailVO;
|
||||
@ -3472,9 +3445,8 @@ public class CndtnPrcsInfoMngController {
|
||||
p_cndtnTrgtInfoMngVO.setRecordCountPerPage(p_paginationInfo.getRecordCountPerPage());
|
||||
|
||||
if("".equals(p_cndtnTrgtInfoMngVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
|
||||
//p_cndtnTrgtInfoMngVO.setSearchSortCnd("prcs_ord");
|
||||
//p_cndtnTrgtInfoMngVO.setSearchSortOrd("desc");
|
||||
|
||||
p_cndtnTrgtInfoMngVO.setSearchSortCnd("prcs_ord");
|
||||
p_cndtnTrgtInfoMngVO.setSearchSortOrd("desc");
|
||||
}
|
||||
|
||||
return p_cndtnTrgtInfoMngVO;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -86,7 +86,7 @@ import kcc.ve.instr.tngrVisitEdu.rsdncInfo.service.VERsdncVO;
|
||||
|
||||
@Controller
|
||||
|
||||
public class OprtnInstrAdultPrflOldContoller {
|
||||
public class OprtnInstrAdultPrflContoller {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(InstrPrflController.class);
|
||||
|
||||
@ -202,7 +202,7 @@ public class OprtnInstrAdultPrflOldContoller {
|
||||
/**
|
||||
* 1.강사등록신청 목록 조회 -
|
||||
*/
|
||||
@RequestMapping("/web/ve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctMngList.do")
|
||||
@RequestMapping("/ve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctMngList.do")
|
||||
public String instrPrflList(
|
||||
@ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO
|
||||
|
||||
@ -277,7 +277,7 @@ public class OprtnInstrAdultPrflOldContoller {
|
||||
/**
|
||||
* 2. 강사등록신청 등록 화면
|
||||
*/
|
||||
@RequestMapping("/web/ve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctReg.do")
|
||||
@RequestMapping("/ve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctReg.do")
|
||||
public String instrAplctReg(
|
||||
@ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO
|
||||
|
||||
@ -311,7 +311,7 @@ public class OprtnInstrAdultPrflOldContoller {
|
||||
/**
|
||||
* 2. 강사등록신청 거주지 팝업
|
||||
*/
|
||||
@RequestMapping("/web/ve/oprtn/instr/adultVisitEdu/popup/instrRsdnePopup.do")
|
||||
@RequestMapping("/ve/oprtn/instr/adultVisitEdu/popup/instrRsdnePopup.do")
|
||||
public String instrRsdnePopup(
|
||||
@ModelAttribute("vERsdncVO") VERsdncVO vERsdncVO
|
||||
|
||||
@ -345,7 +345,7 @@ public class OprtnInstrAdultPrflOldContoller {
|
||||
/**
|
||||
* 성인대상 강사 등록Ajax -
|
||||
*/
|
||||
@RequestMapping("/web/ve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctRegAjax.do")
|
||||
@RequestMapping("/ve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctRegAjax.do")
|
||||
public ModelAndView instrPrflRegAjax(
|
||||
@ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO
|
||||
, final MultipartHttpServletRequest multiRequest
|
||||
@ -402,7 +402,7 @@ public class OprtnInstrAdultPrflOldContoller {
|
||||
/**
|
||||
* 2. 강사등록신청 등록 화면 (Excel)
|
||||
*/
|
||||
@RequestMapping("/web/ve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctRegExcel.do")
|
||||
@RequestMapping("/ve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctRegExcel.do")
|
||||
public String instrAplctRegExcel(
|
||||
@ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO
|
||||
|
||||
@ -444,7 +444,7 @@ public class OprtnInstrAdultPrflOldContoller {
|
||||
*/
|
||||
@RequestMapping(value=
|
||||
{
|
||||
"/web/ve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctRegExcelAjax.do"
|
||||
"/ve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctRegExcelAjax.do"
|
||||
}
|
||||
)
|
||||
public ModelAndView insertAddrAgencyAjax(
|
||||
@ -471,8 +471,8 @@ public class OprtnInstrAdultPrflOldContoller {
|
||||
|
||||
//필요 쿼리 생성 및 처리 - 계좌번호만 작성된 파일 처리
|
||||
String s_split = "\t";
|
||||
int i_data_column_size = 27;
|
||||
int i_data_start_row = 2;
|
||||
int i_data_column_size = 16;
|
||||
int i_data_start_row = 0;
|
||||
|
||||
|
||||
//1.파일 정상 처리 여부와 첨부 파일 정보
|
||||
@ -491,10 +491,6 @@ public class OprtnInstrAdultPrflOldContoller {
|
||||
sb = checkFileUtil.extractFromExcelFile(multiRequest, sb, 0, i_data_column_size, i_data_start_row);
|
||||
|
||||
}
|
||||
|
||||
System.out.println("sb.toString()===================================");
|
||||
System.out.println(sb.toString());
|
||||
System.out.println(sb.toString());
|
||||
|
||||
|
||||
|
||||
@ -521,60 +517,31 @@ public class OprtnInstrAdultPrflOldContoller {
|
||||
vEInstrDetailVO.setUseYn("Y");
|
||||
vEInstrDetailVO.setInstrDiv(p_s_instr_div);
|
||||
|
||||
vEInstrDetailVO.setInstrNm(s_tmp[2]);
|
||||
vEInstrDetailVO.setPhone(s_tmp[17]);
|
||||
vEInstrDetailVO.setEmail(s_tmp[18]);
|
||||
//vEInstrDetailVO.setPost(s_tmp[14]);
|
||||
vEInstrDetailVO.setAddr(s_tmp[20]);
|
||||
vEInstrDetailVO.setRmrks(s_tmp[26]);
|
||||
vEInstrDetailVO.setInstrNm(s_tmp[3]);
|
||||
vEInstrDetailVO.setPhone(s_tmp[9]);
|
||||
vEInstrDetailVO.setEmail(s_tmp[10]);
|
||||
vEInstrDetailVO.setPost(s_tmp[14]);
|
||||
vEInstrDetailVO.setAddr(s_tmp[13]);
|
||||
vEInstrDetailVO.setRmrks(s_tmp[15]);
|
||||
|
||||
//vEInstrDetailVO.setAddrDetail(s_tmp[6]);
|
||||
vEInstrDetailVO.setRsdne(s_tmp[6]);
|
||||
vEInstrDetailVO.setdBirth(s_tmp[19].replaceAll("[.]", ""));
|
||||
vEInstrDetailVO.setRsdne(s_tmp[12]);
|
||||
vEInstrDetailVO.setdBirth(s_tmp[5].replaceAll("[.]", ""));
|
||||
//vEInstrDetailVO.setFinalSchol(s_tmp[9]);
|
||||
//vEInstrDetailVO.setMjr(s_tmp[10]);
|
||||
|
||||
//vEInstrDetailVO.setApptYr(s_tmp[1]);
|
||||
//vEInstrDetailVO.setApptDiv(s_tmp[2].replaceAll("신규", "10").replaceAll("재위촉", "30").replaceAll("위촉", "20"));
|
||||
//vEInstrDetailVO.setBlng(s_tmp[6]);
|
||||
vEInstrDetailVO.setApptYr(s_tmp[1]);
|
||||
vEInstrDetailVO.setApptDiv(s_tmp[2].replaceAll("신규", "10").replaceAll("재위촉", "30").replaceAll("위촉", "20"));
|
||||
vEInstrDetailVO.setBlng(s_tmp[6]);
|
||||
|
||||
//vEInstrDetailVO.setPstn(s_tmp[7]);
|
||||
//vEInstrDetailVO.setPrfsnFld(s_tmp[8]);
|
||||
//vEInstrDetailVO.setDivCd(s_tmp[4].replaceAll("입문", "10").replaceAll("전문", "20").replaceAll("내부", "30"));
|
||||
|
||||
vEInstrDetailVO.setRepQf(s_tmp[3]);
|
||||
vEInstrDetailVO.setSubQf(s_tmp[4]);
|
||||
vEInstrDetailVO.setWorkArea(s_tmp[5]);
|
||||
vEInstrDetailVO.setLctAvlArea1(s_tmp[7].equals("○")?"Y":"N");
|
||||
vEInstrDetailVO.setLctAvlArea2(s_tmp[8].equals("○")?"Y":"N");
|
||||
vEInstrDetailVO.setLctAvlArea3(s_tmp[9].equals("○")?"Y":"N");
|
||||
vEInstrDetailVO.setLctAvlArea4(s_tmp[10].equals("○")?"Y":"N");
|
||||
vEInstrDetailVO.setLctAvlArea5(s_tmp[11].equals("○")?"Y":"N");
|
||||
vEInstrDetailVO.setLctAvlArea6(s_tmp[12].equals("○")?"Y":"N");
|
||||
|
||||
vEInstrDetailVO.setAvlLctCntnt1(s_tmp[13].equals("○")?"Y":"N");
|
||||
vEInstrDetailVO.setAvlLctCntnt2(s_tmp[14].equals("○")?"Y":"N");
|
||||
vEInstrDetailVO.setAvlLctCntnt3(s_tmp[15].equals("○")?"Y":"N");
|
||||
|
||||
vEInstrDetailVO.setCarer(s_tmp[16]);
|
||||
|
||||
vEInstrDetailVO.setGender(s_tmp[21].equals("남")?"M":"F");
|
||||
|
||||
vEInstrDetailVO.setRcrtCtgr(s_tmp[22]);
|
||||
vEInstrDetailVO.setApntDt(s_tmp[23]);
|
||||
vEInstrDetailVO.setActvDt(s_tmp[24]);
|
||||
vEInstrDetailVO.setOvrlSrvy(s_tmp[25]);
|
||||
vEInstrDetailVO.setPstn(s_tmp[7]);
|
||||
vEInstrDetailVO.setPrfsnFld(s_tmp[8]);
|
||||
vEInstrDetailVO.setDivCd(s_tmp[4].replaceAll("입문", "10").replaceAll("전문", "20").replaceAll("내부", "30"));
|
||||
|
||||
|
||||
System.out.println(vEInstrDetailVO.toString());
|
||||
|
||||
//암호화
|
||||
//암호화
|
||||
vEInstrDetailVO = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVO);
|
||||
|
||||
System.out.println(vEInstrDetailVO.toString());
|
||||
System.out.println(vEInstrDetailVO.toString());
|
||||
System.out.println(vEInstrDetailVO.toString());
|
||||
|
||||
|
||||
//ve_instr 데이터 존재여부 확인 - 이름, 핸드폰으로 해야 함.
|
||||
VEInstrDetailVO vEInstrVO = new VEInstrDetailVO();
|
||||
@ -678,7 +645,7 @@ public class OprtnInstrAdultPrflOldContoller {
|
||||
*/
|
||||
@RequestMapping(value=
|
||||
{
|
||||
"/web/ve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctRegScholExcelAjax.do"
|
||||
"/ve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctRegScholExcelAjax.do"
|
||||
}
|
||||
)
|
||||
public ModelAndView instrAplctRegScholExcelAjax(
|
||||
@ -850,7 +817,7 @@ public class OprtnInstrAdultPrflOldContoller {
|
||||
/**
|
||||
* 2. 강사등록신청 상세 조회
|
||||
*/
|
||||
@RequestMapping("/web/ve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctMngDetail.do")
|
||||
@RequestMapping("/ve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctMngDetail.do")
|
||||
public String instrPrflDetial(
|
||||
@ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO
|
||||
|
||||
@ -884,7 +851,7 @@ public class OprtnInstrAdultPrflOldContoller {
|
||||
/**
|
||||
* 2. 강사 신청 삭제
|
||||
*/
|
||||
@RequestMapping("/web/ve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctMngDetailDeleteAjax.do")
|
||||
@RequestMapping("/ve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctMngDetailDeleteAjax.do")
|
||||
public ModelAndView instrAplctMngDetailDeleteAjax(
|
||||
@ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO
|
||||
|
||||
@ -935,7 +902,7 @@ public class OprtnInstrAdultPrflOldContoller {
|
||||
/**
|
||||
* 3. 강사등록신청 위촉확인 처리
|
||||
*/
|
||||
@RequestMapping("/web/ve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctApptAjax.do")
|
||||
@RequestMapping("/ve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctApptAjax.do")
|
||||
public ModelAndView instrAplctApptAjax(
|
||||
@ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO
|
||||
|
||||
@ -987,7 +954,7 @@ public class OprtnInstrAdultPrflOldContoller {
|
||||
/**
|
||||
* 3. 강사등록신청 승인, 반려 처리
|
||||
*/
|
||||
@RequestMapping("/web/ve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctMdfyAjax.do")
|
||||
@RequestMapping("/ve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctMdfyAjax.do")
|
||||
public ModelAndView instrPrflMdfyAjax(
|
||||
@ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO
|
||||
|
||||
@ -1046,7 +1013,7 @@ public class OprtnInstrAdultPrflOldContoller {
|
||||
/**
|
||||
* 4. 강사등록신청 반려 처리 팝업
|
||||
*/
|
||||
@RequestMapping(value = "/web/ve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctCmpnnPopup.do")
|
||||
@RequestMapping(value = "/ve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctCmpnnPopup.do")
|
||||
public String addRpplPop(@ModelAttribute("info") VEInstrDetailVO vEInstrDetailVO, ModelMap model) throws Exception {
|
||||
|
||||
return "/oprtn/adultVisitEdu/instrAplctCmpnnPopup";
|
||||
@ -1056,7 +1023,7 @@ public class OprtnInstrAdultPrflOldContoller {
|
||||
/**
|
||||
* 5.강사 관리 목록(성인)
|
||||
*/
|
||||
@RequestMapping("/web/ve/oprtn/instr/adultVisitEdu/instrInfo/instrMngList.do")
|
||||
@RequestMapping("/ve/oprtn/instr/adultVisitEdu/instrInfo/instrMngList.do")
|
||||
public String instrMngList(
|
||||
@ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO
|
||||
|
||||
@ -1147,7 +1114,7 @@ public class OprtnInstrAdultPrflOldContoller {
|
||||
* @throws Exception
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
@RequestMapping(value = "/web/ve/oprtn/instr/adultVisitEdu/instrInfo/eduAplctExcelDownLoad.do")
|
||||
@RequestMapping(value = "/ve/oprtn/instr/adultVisitEdu/instrInfo/eduAplctExcelDownLoad.do")
|
||||
public ModelAndView eduAplctExcelDownLoad(
|
||||
@ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO
|
||||
, ModelMap model) throws Exception {
|
||||
@ -1279,7 +1246,7 @@ public class OprtnInstrAdultPrflOldContoller {
|
||||
/**
|
||||
* 6. 강사 관리 상세 조회
|
||||
*/
|
||||
@RequestMapping("/web/ve/oprtn/instr/adultVisitEdu/instrInfo/instrMngDetail.do")
|
||||
@RequestMapping("/ve/oprtn/instr/adultVisitEdu/instrInfo/instrMngDetail.do")
|
||||
public String instrMngDetail(
|
||||
@ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO
|
||||
|
||||
@ -1341,7 +1308,7 @@ public class OprtnInstrAdultPrflOldContoller {
|
||||
/**
|
||||
* 6. 강사 관리 상세 조회
|
||||
*/
|
||||
@RequestMapping("/web/ve/oprtn/instr/adultVisitEdu/instrInfo/instrMngDetailStng.do")
|
||||
@RequestMapping("/ve/oprtn/instr/adultVisitEdu/instrInfo/instrMngDetailStng.do")
|
||||
public String instrMngDetailStng(
|
||||
@ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO
|
||||
|
||||
@ -1385,7 +1352,7 @@ public class OprtnInstrAdultPrflOldContoller {
|
||||
/**
|
||||
* 7. 강사 관리 강의설정 팝업
|
||||
*/
|
||||
@RequestMapping(value = "/web/ve/oprtn/instr/adultVisitEdu/instrInfo/instrLctrStngPopup.do")
|
||||
@RequestMapping(value = "/ve/oprtn/instr/adultVisitEdu/instrInfo/instrLctrStngPopup.do")
|
||||
public String instrLctrStngPopup(
|
||||
@ModelAttribute("info") VEInstrDetailVO vEInstrDetailVO
|
||||
,@ModelAttribute("vELctrDetailVO") VELctrDetailVO vELctrDetailVO
|
||||
@ -1435,7 +1402,7 @@ public class OprtnInstrAdultPrflOldContoller {
|
||||
/**
|
||||
* 7-1. 강사 관리 강의설정 승인 팝업
|
||||
*/
|
||||
@RequestMapping(value = "/web/ve/oprtn/instr/adultVisitEdu/instrInfo/instrLctrStngConfirmPopup.do")
|
||||
@RequestMapping(value = "/ve/oprtn/instr/adultVisitEdu/instrInfo/instrLctrStngConfirmPopup.do")
|
||||
public String instrLctrStngConfirmPopup(
|
||||
@ModelAttribute("info") VEInstrDetailVO vEInstrDetailVO
|
||||
,@ModelAttribute("vELctrDetailVO") VELctrDetailVO vELctrDetailVO
|
||||
@ -1495,7 +1462,7 @@ public class OprtnInstrAdultPrflOldContoller {
|
||||
/**
|
||||
* 7-2.강사 강의설정 승인/반려처리Ajax
|
||||
*/
|
||||
@RequestMapping("/web/ve/oprtn/instr/adultVisitEdu/instrInfo/lctrStngAprvlConfirmAjax.do")
|
||||
@RequestMapping("/ve/oprtn/instr/adultVisitEdu/instrInfo/lctrStngAprvlConfirmAjax.do")
|
||||
public ModelAndView lctrStngAprvlConfirmAjax(
|
||||
@ModelAttribute("vELctrDetailVO") VELctrDetailVO vELctrDetailVO
|
||||
, final MultipartHttpServletRequest multiRequest
|
||||
@ -1544,7 +1511,7 @@ public class OprtnInstrAdultPrflOldContoller {
|
||||
/**
|
||||
* 7-3.강사 강의설정 반려처리Ajax
|
||||
*/
|
||||
@RequestMapping("/web/ve/oprtn/instr/adultVisitEdu/instrInfo/lctrStngAprvlRejectAjax.do")
|
||||
@RequestMapping("/ve/oprtn/instr/adultVisitEdu/instrInfo/lctrStngAprvlRejectAjax.do")
|
||||
public ModelAndView lctrStngAprvlRejectAjax(
|
||||
@ModelAttribute("vELctrDetailVO") VELctrDetailVO vELctrDetailVO
|
||||
, final MultipartHttpServletRequest multiRequest
|
||||
@ -1593,7 +1560,7 @@ public class OprtnInstrAdultPrflOldContoller {
|
||||
/**
|
||||
* 7. 강사 관리 강의설정 팝업
|
||||
*/
|
||||
@RequestMapping(value = "/web/ve/oprtn/instr/adultVisitEdu/instrInfo/instrLctrDetailStngPopup.do")
|
||||
@RequestMapping(value = "/ve/oprtn/instr/adultVisitEdu/instrInfo/instrLctrDetailStngPopup.do")
|
||||
public String instrLctrDetailStngPopup(
|
||||
@ModelAttribute("info") VEInstrDetailVO vEInstrDetailVO
|
||||
,@ModelAttribute("vELctrDetailVO") VELctrDetailVO vELctrDetailVO
|
||||
@ -1643,7 +1610,7 @@ public class OprtnInstrAdultPrflOldContoller {
|
||||
/**
|
||||
* 1.강사 강의설정 등록Ajax
|
||||
*/
|
||||
@RequestMapping("/web/ve/oprtn/instr/adultVisitEdu/instrInfo/lctrStngRegAjax.do")
|
||||
@RequestMapping("/ve/oprtn/instr/adultVisitEdu/instrInfo/lctrStngRegAjax.do")
|
||||
public ModelAndView lctrStngRegAjax(
|
||||
@ModelAttribute("vELctrDetailVO") VELctrDetailVO vELctrDetailVO
|
||||
, final MultipartHttpServletRequest multiRequest
|
||||
@ -1699,7 +1666,7 @@ public class OprtnInstrAdultPrflOldContoller {
|
||||
/**
|
||||
* 1.강사 강의설정 수정Ajax
|
||||
*/
|
||||
@RequestMapping("/web/ve/oprtn/instr/adultVisitEdu/instrInfo/lctrStngMdfyAjax.do")
|
||||
@RequestMapping("/ve/oprtn/instr/adultVisitEdu/instrInfo/lctrStngMdfyAjax.do")
|
||||
public ModelAndView lctrStngMdfyAjax(
|
||||
@ModelAttribute("vELctrDetailVO") VELctrDetailVO vELctrDetailVO
|
||||
, ModelMap model
|
||||
@ -1751,7 +1718,7 @@ public class OprtnInstrAdultPrflOldContoller {
|
||||
/**
|
||||
* 8. 강사 관리 수정요청 팝업
|
||||
*/
|
||||
@RequestMapping(value = "/web/ve/oprtn/instr/adultVisitEdu/instrInfo/instrMdfyRqstPopup.do")
|
||||
@RequestMapping(value = "/ve/oprtn/instr/adultVisitEdu/instrInfo/instrMdfyRqstPopup.do")
|
||||
public String instrMdfyRqstPopup(@ModelAttribute("info") VEInstrDetailVO vEInstrDetailVO, ModelMap model, HttpServletRequest request) throws Exception {
|
||||
|
||||
//로그인 처리====================================
|
||||
@ -1788,7 +1755,7 @@ public class OprtnInstrAdultPrflOldContoller {
|
||||
/**
|
||||
* 8. 강사신청 등록 사진 팝업
|
||||
*/
|
||||
@RequestMapping(value = "/web/ve/oprtn/instr/adultVisitEdu/popup/instrAplctPhotoPopup.do")
|
||||
@RequestMapping(value = "/ve/oprtn/instr/adultVisitEdu/popup/instrAplctPhotoPopup.do")
|
||||
public String instrAplctPhotoPopup(@ModelAttribute("info") VEInstrDetailVO vEInstrDetailVO, ModelMap model, HttpServletRequest request) throws Exception {
|
||||
|
||||
//로그인 처리====================================
|
||||
@ -1810,7 +1777,7 @@ public class OprtnInstrAdultPrflOldContoller {
|
||||
/**
|
||||
* 강사 위촉, 해촉 처리
|
||||
*/
|
||||
@RequestMapping("/web/ve/oprtn/instr/adultVisitEdu/instrInfo/instrqlfctEndYnMdfy.do")
|
||||
@RequestMapping("/ve/oprtn/instr/adultVisitEdu/instrInfo/instrqlfctEndYnMdfy.do")
|
||||
public String instrqlfctEndYnMdfy(
|
||||
@ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO
|
||||
|
||||
@ -1848,13 +1815,13 @@ public class OprtnInstrAdultPrflOldContoller {
|
||||
vEInstrDetailService.update(vEInstrDetailVO);
|
||||
vEInstrService.update(vEInstrDetailVO);
|
||||
|
||||
return "redirect:/web/ve/oprtn/instr/adultVisitEdu/instrInfo/instrMngList.do";
|
||||
return "redirect:/ve/oprtn/instr/adultVisitEdu/instrInfo/instrMngList.do";
|
||||
}
|
||||
|
||||
/**
|
||||
* 강사 정보 수정
|
||||
*/
|
||||
@RequestMapping("/web/ve/oprtn/instr/adultVisitEdu/instrInfo/instrMdfyAjax.do")
|
||||
@RequestMapping("/ve/oprtn/instr/adultVisitEdu/instrInfo/instrMdfyAjax.do")
|
||||
public ModelAndView instrMdfyAjax(
|
||||
@ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO
|
||||
|
||||
@ -1884,14 +1851,14 @@ public class OprtnInstrAdultPrflOldContoller {
|
||||
|
||||
|
||||
|
||||
//return "redirect:/web/ve/oprtn/instr/adultVisitEdu/instrInfo/instrMngList.do";
|
||||
//return "redirect:/ve/oprtn/instr/adultVisitEdu/instrInfo/instrMngList.do";
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
/**
|
||||
* 강사 정보 수정
|
||||
*/
|
||||
@RequestMapping("/web/ve/oprtn/instr/adultVisitEdu/instrInfo/instrCmpltMdfyAjax.do")
|
||||
@RequestMapping("/ve/oprtn/instr/adultVisitEdu/instrInfo/instrCmpltMdfyAjax.do")
|
||||
public ModelAndView instrCmpltMdfyAjax(
|
||||
@ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO
|
||||
|
||||
@ -1923,14 +1890,14 @@ public class OprtnInstrAdultPrflOldContoller {
|
||||
|
||||
|
||||
|
||||
//return "redirect:/web/ve/oprtn/instr/adultVisitEdu/instrInfo/instrMngList.do";
|
||||
//return "redirect:/ve/oprtn/instr/adultVisitEdu/instrInfo/instrMngList.do";
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
/**
|
||||
* 2. 강사신청 수정
|
||||
*/
|
||||
@RequestMapping("/web/ve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctMngDetailUpdateAjax.do")
|
||||
@RequestMapping("/ve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctMngDetailUpdateAjax.do")
|
||||
public ModelAndView instrAplctMngDetailUpdateAjax(
|
||||
@ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO
|
||||
, final MultipartHttpServletRequest multiRequest
|
||||
@ -841,7 +841,6 @@ public class PreventMngController {
|
||||
|
||||
//통계- ①월별 횟수/교육인원(그래프 포함)
|
||||
//vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword());
|
||||
vEInstrDetailVODetail.setLctrDivCd(LCTR_DIV_CD);
|
||||
vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail);
|
||||
vEInstrDetailVODetail.setSearchEduStateCd("20"); //이수만 보기
|
||||
List<VELctrDetailVO> selectAsgnmInfoT2List = vEInstrMixService.selectEduPrfrmInfo_csi_prevent_no5(vEInstrDetailVODetail);
|
||||
@ -915,51 +914,43 @@ public class PreventMngController {
|
||||
*/
|
||||
@RequestMapping("/kccadr/oprtn/prevent/instrActvtHstrySignAndCmpltCrtfcMngList.do")
|
||||
public String instrActvtHstrySignAndCmpltCrtfcMngList(
|
||||
@ModelAttribute("vEEduAplctVO") VEEduAplctVO paramVO
|
||||
@ModelAttribute("vEInstrActvtHstryVO") VEInstrDetailActvtHstryVO vEInstrDetailActvtHstryVO
|
||||
, ModelMap model
|
||||
, HttpServletRequest request
|
||||
) throws Exception {
|
||||
|
||||
//로그인 처리====================================
|
||||
//로그인 정보 가져오기
|
||||
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
|
||||
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
|
||||
System.out.println();
|
||||
if (loginVO == null || ssoLoginVO == null) {
|
||||
return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다.
|
||||
}
|
||||
//로그인 처리====================================
|
||||
|
||||
PaginationInfo paginationInfo = new PaginationInfo();
|
||||
paginationInfo.setCurrentPageNo(paramVO.getPageIndex());
|
||||
paginationInfo.setRecordCountPerPage(paramVO.getPageUnit());
|
||||
paginationInfo.setPageSize(paramVO.getPageSize());
|
||||
|
||||
paramVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
|
||||
paramVO.setLastIndex(paginationInfo.getLastRecordIndex());
|
||||
paramVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
|
||||
|
||||
if("".equals(paramVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
|
||||
paramVO.setSearchSortCnd("a.frst_regist_pnttm");
|
||||
paramVO.setSearchSortOrd("DESC");
|
||||
}
|
||||
|
||||
//과정 신청자 정보 가져오기
|
||||
//해당 과정을 제출한 사용자 정보를 가져온다.
|
||||
paramVO.setSbmtYn("Y");
|
||||
|
||||
paramVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_80); //설문정보를 위해서 설문지의 대상값을 넣는다. VE0011 10-청소년, 20-성인,30-체험, 40-외부, 50-기반, 60-기소
|
||||
List<VEEduAplctVO> vEPrcsDetailVOList = vEEduMIXService.selectCrtfcMngList(paramVO);
|
||||
vEPrcsDetailVOList = egovCryptoUtil.decryptVeEduAplctList(vEPrcsDetailVOList);
|
||||
|
||||
int totCnt = 0;
|
||||
if(vEPrcsDetailVOList.size() > 0) totCnt = vEPrcsDetailVOList.get(0).getTotCnt();
|
||||
paginationInfo.setTotalRecordCount(totCnt);
|
||||
|
||||
//대상 리스트, 페이징 정보 전달
|
||||
model.addAttribute("list", vEPrcsDetailVOList);
|
||||
//LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
|
||||
//SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
|
||||
|
||||
// if (loginVO == null || ssoLoginVO == null) {
|
||||
// return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다.
|
||||
// }
|
||||
//로그인 처리====================================
|
||||
|
||||
//1.pageing step1
|
||||
PaginationInfo paginationInfo = this.setPagingStep1_VEInstrDetailActvtHstryVO(vEInstrDetailActvtHstryVO);
|
||||
//2. pageing step2
|
||||
vEInstrDetailActvtHstryVO = this.setPagingStep2_VEInstrDetailActvtHstryVO(vEInstrDetailActvtHstryVO, paginationInfo);
|
||||
vEInstrDetailActvtHstryVO.setSearchKeyword(egovCryptoUtil.encrypt(vEInstrDetailActvtHstryVO.getSearchKeyword()));
|
||||
// List<VEInstrDetailActvtHstryVO> vEInstrDetailActvtHstryVOList = vEInstrDetailActvtHstryService.selectSignPagingList(vEInstrDetailActvtHstryVO);
|
||||
List<VEInstrDetailActvtHstryVO> vEInstrDetailActvtHstryVOList = vEInstrDetailActvtHstryService.selectSignAndCmpltCrtfcPagingList(vEInstrDetailActvtHstryVO);
|
||||
|
||||
vEInstrDetailActvtHstryVOList.stream().forEach(t-> t.setMberNm(egovCryptoUtil.decrypt(t.getMberNm())));
|
||||
|
||||
//3.pageing step3
|
||||
paginationInfo = this.setPagingStep3_VEInstrDetailActvtHstryVO(vEInstrDetailActvtHstryVOList, paginationInfo);
|
||||
model.addAttribute("paginationInfo", paginationInfo);
|
||||
|
||||
|
||||
// 검색어 복호화
|
||||
vEInstrDetailActvtHstryVO.setSearchKeyword(egovCryptoUtil.decrypt(vEInstrDetailActvtHstryVO.getSearchKeyword()));
|
||||
//대상 리스트, 페이징 정보 전달
|
||||
model.addAttribute("list", vEInstrDetailActvtHstryVOList);
|
||||
|
||||
|
||||
|
||||
// return "oprtn/cmm/instrActvtHstrySignMngList";
|
||||
return "oprtn/prevent/instrActvtHstrySignAndCmpltCrtfcMngList";
|
||||
}
|
||||
|
||||
@ -2911,8 +2902,6 @@ public class PreventMngController {
|
||||
//기반강화 조회
|
||||
vEPrcsDetailVO.setLctrDivCd(LCTR_DIV_CD); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
|
||||
|
||||
//사용 중인 과정만 조회
|
||||
vEPrcsDetailVO.setUseYn("Y");
|
||||
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsService.selectPagingList(vEPrcsDetailVO);
|
||||
|
||||
//3.pageing step3
|
||||
|
||||
@ -382,7 +382,7 @@ public class PreventNewMngController {
|
||||
return userWork;
|
||||
}
|
||||
|
||||
@RequestMapping("/kccadr/oprtn/prevent/trgtMngList_old.do")
|
||||
@RequestMapping("/kccadr/oprtn/prevent/trgtMngList.do")
|
||||
public String trgtMngList(
|
||||
@ModelAttribute("cndtnTrgtInfoMngVO") CmdTrgtMngVO cndtnTrgtInfoMngVO
|
||||
, ModelMap model
|
||||
|
||||
@ -15,13 +15,7 @@ public interface VEALettnQestnrMIXService {
|
||||
|
||||
//관리자 청소년,성인 - 만족도 평가
|
||||
List<VEAQestnrVO> selectDetail_MIX_LQI_03(VEAQestnrVO paramVO) throws Exception; // R
|
||||
|
||||
//관리자 청소년,성인 - 만족도 평가
|
||||
List<VEAQestnrVO> selectDetail_MIX_LQI_03_ALL(VEAQestnrVO paramVO) throws Exception; // R
|
||||
|
||||
//관리자 청소년,성인 - 개별 만족도 리스트
|
||||
List<VEAQestnrVO> selectDetail_MIX_LQI_04(VEAQestnrVO paramVO) throws Exception; // R
|
||||
|
||||
//관리자 청소년,성인 - 설문항목
|
||||
List<VEAQestnrVO> selectDetail_MIX_LQI_05(VEAQestnrVO paramVO) throws Exception; // R
|
||||
}
|
||||
|
||||
@ -95,42 +95,6 @@ public class VEAQestnrVO extends ComDefaultVO implements Serializable {
|
||||
private String qustnrBirth; //개별설문등록자생년월일
|
||||
private String qustnrScore; //개별설문등록자점수
|
||||
|
||||
private String sn1;
|
||||
private String sn2;
|
||||
private String sn3;
|
||||
public String getSn1() {
|
||||
return sn1;
|
||||
}
|
||||
public void setSn1(String sn1) {
|
||||
this.sn1 = sn1;
|
||||
}
|
||||
public String getSn2() {
|
||||
return sn2;
|
||||
}
|
||||
public void setSn2(String sn2) {
|
||||
this.sn2 = sn2;
|
||||
}
|
||||
public String getSn3() {
|
||||
return sn3;
|
||||
}
|
||||
public void setSn3(String sn3) {
|
||||
this.sn3 = sn3;
|
||||
}
|
||||
public String getSn4() {
|
||||
return sn4;
|
||||
}
|
||||
public void setSn4(String sn4) {
|
||||
this.sn4 = sn4;
|
||||
}
|
||||
public String getSn5() {
|
||||
return sn5;
|
||||
}
|
||||
public void setSn5(String sn5) {
|
||||
this.sn5 = sn5;
|
||||
}
|
||||
private String sn4;
|
||||
private String sn5;
|
||||
|
||||
|
||||
public String getQestnrQesitmId() {
|
||||
return qestnrQesitmId;
|
||||
|
||||
@ -28,18 +28,8 @@ public class VEALettnQestnrMIXDAO extends EgovAbstractDAO {
|
||||
return tlist;
|
||||
}
|
||||
|
||||
public List<VEAQestnrVO> selectDetail_MIX_LQI_03_ALL(VEAQestnrVO paramVO) throws Exception {
|
||||
List<VEAQestnrVO> tlist = (List<VEAQestnrVO>) list("VEALettnQestnrMIXDAO.selectDetail_MIX_LQI_03_ALL", paramVO);
|
||||
return tlist;
|
||||
}
|
||||
|
||||
public List<VEAQestnrVO> selectDetail_MIX_LQI_04(VEAQestnrVO paramVO) throws Exception {
|
||||
List<VEAQestnrVO> tlist = (List<VEAQestnrVO>) list("VEALettnQestnrMIXDAO.selectDetail_MIX_LQI_04", paramVO);
|
||||
return tlist;
|
||||
}
|
||||
|
||||
public List<VEAQestnrVO> selectDetail_MIX_LQI_05(VEAQestnrVO paramVO) throws Exception {
|
||||
List<VEAQestnrVO> tlist = (List<VEAQestnrVO>) list("VEALettnQestnrMIXDAO.selectDetail_MIX_LQI_05", paramVO);
|
||||
return tlist;
|
||||
}
|
||||
}
|
||||
|
||||
@ -35,19 +35,9 @@ public class VEALettnQestnrMIXServiceImpl implements VEALettnQestnrMIXService {
|
||||
public List<VEAQestnrVO> selectDetail_MIX_LQI_03(VEAQestnrVO paramVO) throws Exception{
|
||||
return vEALettnQestnrMIXDAO.selectDetail_MIX_LQI_03(paramVO);
|
||||
}
|
||||
|
||||
//관리자 (청년, 성인) 만족도 평가
|
||||
public List<VEAQestnrVO> selectDetail_MIX_LQI_03_ALL(VEAQestnrVO paramVO) throws Exception{
|
||||
return vEALettnQestnrMIXDAO.selectDetail_MIX_LQI_03_ALL(paramVO);
|
||||
}
|
||||
|
||||
//관리자 (청년, 성인) 만족도 평가
|
||||
public List<VEAQestnrVO> selectDetail_MIX_LQI_04(VEAQestnrVO paramVO) throws Exception{
|
||||
return vEALettnQestnrMIXDAO.selectDetail_MIX_LQI_04(paramVO);
|
||||
}
|
||||
|
||||
//관리자 설문 문항
|
||||
public List<VEAQestnrVO> selectDetail_MIX_LQI_05(VEAQestnrVO paramVO) throws Exception{
|
||||
return vEALettnQestnrMIXDAO.selectDetail_MIX_LQI_05(paramVO);
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,10 +4,15 @@ import java.io.File;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.net.URLEncoder;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
|
||||
import javax.activation.DataHandler;
|
||||
import javax.activation.DataSource;
|
||||
@ -29,7 +34,6 @@ import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import kcc.com.cmm.util.StringUtil;
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
@ -93,8 +97,6 @@ import kcc.let.uat.uia.service.SsoLoginVO;
|
||||
import kcc.let.uss.notify.service.NotifyManageService;
|
||||
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
|
||||
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrService;
|
||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService;
|
||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
|
||||
|
||||
|
||||
|
||||
@ -188,9 +190,6 @@ public class MainController {
|
||||
@Resource(name="vEInstrService")
|
||||
private VEInstrService vEInstrService;
|
||||
|
||||
@Resource(name = "vEPrcsAplctPrdService")
|
||||
private VEPrcsAplctPrdService vEPrcsAplctPrdService;
|
||||
|
||||
@Value("#{globalSettings['Globals.email.host']}")
|
||||
private String Globals_email_host;
|
||||
@Value("#{globalSettings['Globals.email.port']}")
|
||||
@ -205,7 +204,23 @@ public class MainController {
|
||||
private String Globals_email_toEmail;
|
||||
@Value("#{globalSettings['Globals.email.toEmail.BCC']}")
|
||||
private String Globals_email_toEmail_BCC;
|
||||
|
||||
|
||||
/** SSO return URL */
|
||||
@Value("#{globalSettings['Globals.sso.returnSiteUrl']}")
|
||||
private String returnSiteUrlGlobal;
|
||||
@Value("#{globalSettings['Globals.sso.returnSiteCode']}")
|
||||
private String returnSiteCodeGlobal;
|
||||
|
||||
/** SSO 회원관련 URL */
|
||||
@Value("#{globalSettings['Globals.sso.joinUrl']}")
|
||||
private String joinUrl_Global;
|
||||
@Value("#{globalSettings['Globals.sso.modifyUrl']}")
|
||||
private String modifyUrl_Global;
|
||||
@Value("#{globalSettings['Globals.sso.idFindUrl']}")
|
||||
private String idFindUrl_Global;
|
||||
@Value("#{globalSettings['Globals.sso.pwFindUrl']}")
|
||||
private String pwFindUrl_Global;
|
||||
|
||||
/** 구동 환경 */
|
||||
@Value("#{property['Globals.prod.islocal']}")
|
||||
private String environment;
|
||||
@ -369,44 +384,95 @@ public class MainController {
|
||||
|
||||
@RequestMapping(value = "/web/main/mainPage.do")
|
||||
public String siteMainPage(HttpServletRequest request, ModelMap model, HttpSession session) throws Exception{
|
||||
|
||||
//메인이미지
|
||||
try {
|
||||
String referer = (String)request.getHeader("REFERER");
|
||||
|
||||
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
|
||||
String userAuthority = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getAuthority());
|
||||
model.addAttribute("userAuthority", userAuthority); //권한 - 강사일 시 메인의 청소년, 성인, 체험교실, 콘텐츠 메뉴 링크이동 막기 위해 추가
|
||||
|
||||
/** EgovPropertyService.sample */
|
||||
MainzoneVO mainzoneVO = new MainzoneVO();
|
||||
mainzoneVO.setPageUnit(propertiesService.getInt("pageUnit"));
|
||||
mainzoneVO.setPageSize(propertiesService.getInt("pageSize"));
|
||||
|
||||
// 문자열을 바이트로 변환하고 Base64로 인코딩합니다.
|
||||
byte[] encodedBytes = Base64.getEncoder().encode("5a2a72e2-16ce-420c-8816-57b3dda0e231:75f6288bae324cd6bd112e82d693aa01".getBytes());
|
||||
|
||||
// 바이트 배열을 다시 문자열로 변환하여 출력합니다.
|
||||
String encodedString = new String(encodedBytes);
|
||||
|
||||
System.out.println("encodedString :: " + encodedString);
|
||||
|
||||
/** 메인존 */
|
||||
model.addAttribute("mainzoneList", mainZone()); //PC
|
||||
/** pageing */
|
||||
PaginationInfo paginationInfo = new PaginationInfo();
|
||||
paginationInfo.setCurrentPageNo(mainzoneVO.getPageIndex());
|
||||
paginationInfo.setRecordCountPerPage(mainzoneVO.getPageUnit());
|
||||
paginationInfo.setPageSize(mainzoneVO.getPageSize());
|
||||
|
||||
mainzoneVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
|
||||
mainzoneVO.setLastIndex(paginationInfo.getLastRecordIndex());
|
||||
mainzoneVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
|
||||
mainzoneVO.setUseYn("Y"); //사용하는것만
|
||||
mainzoneVO.setDeviceType("P"); //PC
|
||||
|
||||
//디자인이 슬라이드가 아닌 한개의 메인화면으로 변경되어 수정
|
||||
mainzoneVO.setRecordCountPerPage(1);
|
||||
List<?> mainzoneList = egovPopupManageService.selectMainzoneList(mainzoneVO); //상단메인 이미지
|
||||
// mainzoneVO.setDeviceType("M"); //모바일
|
||||
// List<?> mainzoneListM = egovPopupManageService.selectMainzoneList(mainzoneVO); //상단메인 이미지
|
||||
|
||||
model.addAttribute("mainzoneList", mainzoneList); //PC
|
||||
// model.addAttribute("mainzoneListM", mainzoneListM); //모바일
|
||||
|
||||
|
||||
/** 팝업 알림창괸리 */
|
||||
model.addAttribute("popupList", popupList());
|
||||
|
||||
//if(!isMobile(request)){ //PC인경우만
|
||||
PopupManageVO popupManageVO = new PopupManageVO();
|
||||
popupManageVO.setRecordCountPerPage(10); //10개만
|
||||
popupManageVO.setNtceAt("Y"); //사용만
|
||||
popupManageVO.setMainPageFlag("Y") ; //메인화면의 용도(시작일 종료일 사이 조회)
|
||||
List<?> popupList = egovPopupManageService.selectPopupMainList(popupManageVO);
|
||||
model.addAttribute("popupList", popupList);
|
||||
//}
|
||||
|
||||
/** 팝업존 알림창괸리 */
|
||||
model.addAttribute("popupzoneList", popupzoneList());
|
||||
|
||||
/** 게시판 조회 - 공지사항 */
|
||||
Map<String, Object> noticeBbsList = noticeBbsList();
|
||||
model.addAttribute("noticeBbsList", noticeBbsList.get("noticeBbsList"));
|
||||
model.addAttribute("noticeBbsUrl", noticeBbsList.get("noticeBbsUrl"));
|
||||
//if(!isMobile(request)){
|
||||
PopupzoneVO popupzoneVo = new PopupzoneVO();
|
||||
popupzoneVo.setFirstIndex(0);
|
||||
popupzoneVo.setSeCd("02"); //좌측팝업
|
||||
popupzoneVo.setUseYn("Y");
|
||||
|
||||
List<?> popupzoneList = egovPopupManageService.selectPopupzoneList(popupzoneVo);
|
||||
model.addAttribute("popupzoneList", popupzoneList);
|
||||
//popupzoneVo.setSeCd("03");
|
||||
//List<?> popupzoneTopList = egovPopupManageService.selectPopupzoneList(popupzoneVo);
|
||||
//model.addAttribute("popupzoneTopList", popupzoneTopList);
|
||||
|
||||
//}
|
||||
|
||||
/** 게시판 조회 - 공지사항 */
|
||||
BoardVO boardVO = new BoardVO();
|
||||
boardVO.setRecordCountPerPage(5); //게시글 수
|
||||
boardVO.setFirstIndex(0); //
|
||||
boardVO.setBbsId("BBSMSTR_000000000010");
|
||||
List<BoardVO> vo = bbsMngService.selectMainBoardRecent(boardVO);
|
||||
//게시글 내용 html 태그 삭제
|
||||
for(int i=0; i<vo.size(); i++) {
|
||||
vo.get(i).setNttCn(vo.get(i).getNttCn().replaceAll("<(/)?([a-zA-Z]*)(\\s[a-zA-Z]*=[^>]*)?(\\s)*(/)?>", "").split("<")[0]);
|
||||
}
|
||||
|
||||
model.addAttribute("bbsList", vo);
|
||||
|
||||
/** 게시판 조회 - 교육자료실 */
|
||||
Map<String, Object> atchBbsList = atchBbsList();
|
||||
model.addAttribute("atchBbsList", atchBbsList.get("atchBbsList"));
|
||||
model.addAttribute("atchBbsUrl", atchBbsList.get("atchBbsUrl"));
|
||||
BoardVO boardVO_2 = new BoardVO();
|
||||
boardVO_2.setRecordCountPerPage(5); //게시글 수
|
||||
boardVO_2.setFirstIndex(0); //
|
||||
boardVO_2.setBbsId("BBSMSTR_000000000000");
|
||||
List<BoardVO> vo_2 = bbsMngService.selectMainBoardRecent(boardVO_2);
|
||||
//게시글 내용 html 태그 삭제
|
||||
for(int i=0; i<vo_2.size(); i++) {
|
||||
vo_2.get(i).setNttCn(vo_2.get(i).getNttCn().replaceAll("<(/)?([a-zA-Z]*)(\\s[a-zA-Z]*=[^>]*)?(\\s)*(/)?>", "").split("<")[0]);
|
||||
}
|
||||
|
||||
/** 주요 교육일정 */
|
||||
Map<String, List<VEPrcsDetailVO>> eduAplctList = eduAplctList();
|
||||
model.addAttribute("eduAplctList", eduAplctList.get("eduAplctList"));
|
||||
model.addAttribute("sspnIdtmtList", eduAplctList.get("sspnIdtmtList"));
|
||||
model.addAttribute("cmdTrgtList", eduAplctList.get("cmdTrgtList"));
|
||||
model.addAttribute("preventList", eduAplctList.get("preventList"));
|
||||
|
||||
model.addAttribute("bbsList_2", vo_2);
|
||||
|
||||
System.out.println("zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz");
|
||||
System.out.println("zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz");
|
||||
|
||||
}catch(Exception ex) {
|
||||
ex.printStackTrace();
|
||||
System.out.println(ex.getMessage());
|
||||
@ -545,6 +611,16 @@ public class MainController {
|
||||
model.addAttribute("ssoLoginVO", ssoLoginVO);
|
||||
}
|
||||
|
||||
String returnSiteUrl = returnSiteUrlGlobal;
|
||||
String returnSiteCode = returnSiteCodeGlobal;
|
||||
|
||||
String joinUrl = joinUrl_Global;
|
||||
String modifyUrl = modifyUrl_Global;
|
||||
|
||||
model.addAttribute("returnSiteUrl", (URLEncoder.encode(returnSiteUrl)));
|
||||
model.addAttribute("returnSiteCode", returnSiteCode);
|
||||
model.addAttribute("joinUrl", joinUrl);
|
||||
model.addAttribute("modifyUrl", modifyUrl);
|
||||
model.addAttribute("environment", environment); //로그인, 회원가입 URL 환경에 따른 구분 ex) local, dev, svr
|
||||
|
||||
if(loginVO != null)
|
||||
@ -922,22 +998,9 @@ public class MainController {
|
||||
tempMenuManageVO.setSearchCondition("Y");
|
||||
setViewMenu(request , commandMap , tempMenuManageVO , resultVO , menuManageVO );
|
||||
List<MenuManageJTreeVO> menuResultList = menuCreateManageService.selectMenuLeftListJtreeWeb(menuManageVO) ;
|
||||
String pageUrl = request.getRequestURI().replaceAll(request.getContextPath(), "");
|
||||
if(menuResultList.size() < 1 && pageUrl.contains("/web/user/login/ssoLogin.do")){
|
||||
MenuManageJTreeVO tmpMenuManageJTreeVO = new MenuManageJTreeVO();
|
||||
tmpMenuManageJTreeVO.setDepths("1");
|
||||
tmpMenuManageJTreeVO.setMenuNo("20251119");
|
||||
tmpMenuManageJTreeVO.setMenuNm("로그인");
|
||||
menuResultList.add(tmpMenuManageJTreeVO);
|
||||
|
||||
tmpMenuManageJTreeVO = new MenuManageJTreeVO();
|
||||
tmpMenuManageJTreeVO.setDepths("2");
|
||||
tmpMenuManageJTreeVO.setUrl("/web/user/login/ssoLogin.do");
|
||||
tmpMenuManageJTreeVO.setUpperMenuId("20251119");
|
||||
menuResultList.add(tmpMenuManageJTreeVO);
|
||||
}
|
||||
model.addAttribute("menuResultList", menuResultList);
|
||||
|
||||
String pageUrl = request.getRequestURI().replaceAll(request.getContextPath(), "");
|
||||
|
||||
String pageUri = pageUrl.substring(0, pageUrl.lastIndexOf("/"));
|
||||
model.addAttribute("pageUri", pageUri);
|
||||
}catch(Exception ex) {
|
||||
@ -1324,8 +1387,7 @@ public class MainController {
|
||||
&& !menuUrl.contains("/web/ve/aplct/adultVisitEdu/eduAplct/eduAplctReg")
|
||||
&& !menuUrl.contains("/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnClsrmAplctGuide")
|
||||
&& !menuUrl.contains("/web/ve/aplct/otsdCprtnPrcs/lctrAplct/lctrAplctReg")
|
||||
&& !menuUrl.contains("/web/my/myQnaMngRegist.do")
|
||||
|
||||
|
||||
) {
|
||||
String strUrl = menuUrl/*.replace("Info", "List")*/
|
||||
.replace("CmpltDetail", "List")
|
||||
@ -1439,7 +1501,8 @@ public class MainController {
|
||||
tempMenuManageVO.setSearchCondition("Y");
|
||||
//현재 메뉴
|
||||
setViewMenu(request , commandMap , tempMenuManageVO , resultVO , menuManageVO );
|
||||
|
||||
|
||||
|
||||
String pageUrl = request.getRequestURI().replaceAll(request.getContextPath(), "");
|
||||
|
||||
String pageUri = pageUrl.substring(0, pageUrl.lastIndexOf("/"));
|
||||
@ -2015,125 +2078,5 @@ public class MainController {
|
||||
//mbp.setContent(html.replaceAll("(\r\n|\n)", "<br />"), "text/html; charset=utf-8"); //줄바꿈이 필요해서
|
||||
return mbp;
|
||||
}
|
||||
|
||||
private List<?> mainZone() throws Exception{
|
||||
/** EgovPropertyService.sample */
|
||||
MainzoneVO mainzoneVO = new MainzoneVO();
|
||||
mainzoneVO.setPageUnit(propertiesService.getInt("pageUnit"));
|
||||
mainzoneVO.setPageSize(propertiesService.getInt("pageSize"));
|
||||
|
||||
/** pageing */
|
||||
PaginationInfo paginationInfo = new PaginationInfo();
|
||||
paginationInfo.setCurrentPageNo(mainzoneVO.getPageIndex());
|
||||
paginationInfo.setRecordCountPerPage(mainzoneVO.getPageUnit());
|
||||
paginationInfo.setPageSize(mainzoneVO.getPageSize());
|
||||
|
||||
mainzoneVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
|
||||
mainzoneVO.setLastIndex(paginationInfo.getLastRecordIndex());
|
||||
mainzoneVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
|
||||
mainzoneVO.setUseYn("Y"); //사용하는것만
|
||||
mainzoneVO.setDeviceType("P"); //PC
|
||||
|
||||
//디자인이 슬라이드가 아닌 한개의 메인화면으로 변경되어 수정
|
||||
mainzoneVO.setRecordCountPerPage(1);
|
||||
List<?> mainzoneList = egovPopupManageService.selectMainzoneList(mainzoneVO); //상단메인 이미지
|
||||
|
||||
return mainzoneList;
|
||||
}
|
||||
|
||||
private List<?> popupList() throws Exception{
|
||||
PopupManageVO popupManageVO = new PopupManageVO();
|
||||
popupManageVO.setRecordCountPerPage(10); //10개만
|
||||
popupManageVO.setNtceAt("Y"); //사용만
|
||||
popupManageVO.setMainPageFlag("Y") ; //메인화면의 용도(시작일 종료일 사이 조회)
|
||||
List<?> popupList = egovPopupManageService.selectPopupMainList(popupManageVO);
|
||||
|
||||
return popupList;
|
||||
}
|
||||
|
||||
private List<?> popupzoneList() throws Exception{
|
||||
PopupzoneVO popupzoneVo = new PopupzoneVO();
|
||||
popupzoneVo.setFirstIndex(0);
|
||||
popupzoneVo.setSeCd("02"); //좌측팝업
|
||||
popupzoneVo.setUseYn("Y");
|
||||
|
||||
List<?> popupzoneList = egovPopupManageService.selectPopupzoneList(popupzoneVo);
|
||||
|
||||
return popupzoneList;
|
||||
}
|
||||
|
||||
private Map<String, Object> noticeBbsList() throws Exception{
|
||||
Map<String, Object> returnMap = new HashMap<String, Object>();
|
||||
BoardVO boardVO = new BoardVO();
|
||||
boardVO.setRecordCountPerPage(5); //게시글 수
|
||||
boardVO.setFirstIndex(0); //
|
||||
boardVO.setBbsId("BBSMSTR_000000000010");
|
||||
List<BoardVO> vo = bbsMngService.selectMainBoardRecent(boardVO);
|
||||
//게시글 내용 html 태그 삭제
|
||||
for(int i=0; i<vo.size(); i++) {
|
||||
vo.get(i).setNttCn(vo.get(i).getNttCn().replaceAll("<(/)?([a-zA-Z]*)(\\s[a-zA-Z]*=[^>]*)?(\\s)*(/)?>", "").split("<")[0]);
|
||||
}
|
||||
|
||||
returnMap.put("noticeBbsList", vo);
|
||||
returnMap.put("noticeBbsUrl", boardVO.getBbsId());
|
||||
|
||||
return returnMap;
|
||||
}
|
||||
|
||||
private Map<String, Object> atchBbsList() throws Exception{
|
||||
Map<String, Object> returnMap = new HashMap<String, Object>();
|
||||
BoardVO boardVO_2 = new BoardVO();
|
||||
boardVO_2.setRecordCountPerPage(5); //게시글 수
|
||||
boardVO_2.setFirstIndex(0); //
|
||||
boardVO_2.setBbsId("BBSMSTR_000000000040");
|
||||
List<BoardVO> vo_2 = bbsMngService.selectMainBoardRecent(boardVO_2);
|
||||
//게시글 내용 html 태그 삭제
|
||||
for(int i=0; i<vo_2.size(); i++) {
|
||||
vo_2.get(i).setNttCn(vo_2.get(i).getNttCn().replaceAll("<(/)?([a-zA-Z]*)(\\s[a-zA-Z]*=[^>]*)?(\\s)*(/)?>", "").split("<")[0]);
|
||||
}
|
||||
|
||||
returnMap.put("atchBbsList", vo_2);
|
||||
returnMap.put("atchBbsUrl", boardVO_2.getBbsId());
|
||||
|
||||
return returnMap;
|
||||
}
|
||||
|
||||
private Map<String, List<VEPrcsDetailVO>> eduAplctList() throws Exception{
|
||||
|
||||
VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO();
|
||||
|
||||
//1.pageing step1
|
||||
PaginationInfo paginationInfo = new PaginationInfo();
|
||||
paginationInfo.setCurrentPageNo(1);
|
||||
paginationInfo.setRecordCountPerPage(12);
|
||||
paginationInfo.setPageSize(12);
|
||||
//로그인 처리====================================
|
||||
|
||||
//1.pageing step1
|
||||
|
||||
//임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함
|
||||
//paginationInfo.setRecordCountPerPage(10000);
|
||||
|
||||
//2. pageing step2
|
||||
vEPrcsDetailVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
|
||||
vEPrcsDetailVO.setLastIndex(paginationInfo.getLastRecordIndex());
|
||||
vEPrcsDetailVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
|
||||
vEPrcsDetailVO.setSearchSortCnd("prcs_ord");
|
||||
vEPrcsDetailVO.setSearchSortOrd("desc");
|
||||
|
||||
//기반강화 조회
|
||||
// vEPrcsDetailVO.setLctrDivCd(p_lctr_div_cd);
|
||||
|
||||
vEPrcsDetailVO.setUseYn("Y"); //공개 여부만 조회
|
||||
|
||||
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsAplctPrdService.selectMainContent();
|
||||
|
||||
Map<String, List<VEPrcsDetailVO>> returnMap = new HashMap<String, List<VEPrcsDetailVO>>();
|
||||
returnMap.put("eduAplctList", vEPrcsDetailVOList.stream().limit(Math.min(vEPrcsDetailVOList.size(), 4)).collect(Collectors.toList()));
|
||||
returnMap.put("sspnIdtmtList", vEPrcsDetailVOList.stream().filter(t -> "60".equals(t.getLctrDivCd())).collect(Collectors.toList()));
|
||||
returnMap.put("cmdTrgtList", vEPrcsDetailVOList.stream().filter(t -> "70".equals(t.getLctrDivCd())).collect(Collectors.toList()));
|
||||
returnMap.put("preventList", vEPrcsDetailVOList.stream().filter(t -> "80".equals(t.getLctrDivCd())).collect(Collectors.toList()));
|
||||
|
||||
return returnMap;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,88 +1,170 @@
|
||||
#-----------------------------------------------------------------------
|
||||
#
|
||||
# globals.properties : \uC2DC\uC2A4\uD15C
|
||||
# globals.properties : \uc2dc\uc2a4\ud15c
|
||||
#
|
||||
#-----------------------------------------------------------------------
|
||||
# 1. key = value \uAD6C\uC870\uC785\uB2C8\uB2E4.
|
||||
# 2. key\uAC12\uC740 \uACF5\uBC31\uBB38\uC790\uB97C \uD3EC\uD568\uBD88\uAC00, value\uAC12\uC740 \uACF5\uBC31\uBB38\uC790\uB97C \uAC00\uB2A5
|
||||
# 3. key\uAC12\uC73C\uB85C \uD55C\uAE00\uC744 \uC0AC\uC6A9\uBD88\uAC00, value\uAC12\uC740 \uD55C\uAE00\uC0AC\uC6A9\uC774 \uAC00\uB2A5
|
||||
# 4. \uC904\uC744 \uBC14\uAFC0 \uD544\uC694\uAC00 \uC788\uC73C\uBA74 '\'\uB97C \uB77C\uC778\uC758 \uB05D\uC5D0 \uCD94\uAC00(\uB9CC\uC57D '\'\uBB38\uC790\uB97C \uC0AC\uC6A9\uD574\uC57C \uD558\uB294 \uACBD\uC6B0\uB294 '\\'\uB97C \uC0AC\uC6A9)
|
||||
# 5. Windows\uC5D0\uC11C\uC758 \uB514\uB809\uD1A0\uB9AC \uD45C\uC2DC : '\\' or '/' ('\' \uC0AC\uC6A9\uD558\uBA74 \uC548\uB428)
|
||||
# 6. Unix\uC5D0\uC11C\uC758 \uB514\uB809\uD1A0\uB9AC \uD45C\uC2DC : '/'
|
||||
# 7. \uC8FC\uC11D\uBB38 \uCC98\uB9AC\uB294 #\uC0AC\uC6A9
|
||||
# 8. value\uAC12 \uB4A4\uC5D0 \uC2A4\uD398\uC774\uC2A4\uAC00 \uC874\uC7AC\uD558\uB294 \uACBD\uC6B0 \uC11C\uBE14\uB9BF\uC5D0\uC11C \uCC38\uC870\uD560\uB54C\uB294 \uC5D0\uB7EC\uBC1C\uC0DD\uD560 \uC218 \uC788\uC73C\uBBC0\uB85C trim()\uD558\uAC70\uB098 \uB9C8\uC9C0\uB9C9 \uACF5\uBC31\uC5C6\uC774 properties \uAC12\uC744 \uC124\uC815\uD560\uAC83
|
||||
# 1. key = value \uad6c\uc870\uc785\ub2c8\ub2e4.
|
||||
# 2. key\uac12\uc740 \uacf5\ubc31\ubb38\uc790\ub97c \ud3ec\ud568\ubd88\uac00, value\uac12\uc740 \uacf5\ubc31\ubb38\uc790\ub97c \uac00\ub2a5
|
||||
# 3. key\uac12\uc73c\ub85c \ud55c\uae00\uc744 \uc0ac\uc6a9\ubd88\uac00, value\uac12\uc740 \ud55c\uae00\uc0ac\uc6a9\uc774 \uac00\ub2a5
|
||||
# 4. \uc904\uc744 \ubc14\uafc0 \ud544\uc694\uac00 \uc788\uc73c\uba74 '\'\ub97c \ub77c\uc778\uc758 \ub05d\uc5d0 \ucd94\uac00(\ub9cc\uc57d '\'\ubb38\uc790\ub97c \uc0ac\uc6a9\ud574\uc57c \ud558\ub294 \uacbd\uc6b0\ub294 '\\'\ub97c \uc0ac\uc6a9)
|
||||
# 5. Windows\uc5d0\uc11c\uc758 \ub514\ub809\ud1a0\ub9ac \ud45c\uc2dc : '\\' or '/' ('\' \uc0ac\uc6a9\ud558\uba74 \uc548\ub428)
|
||||
# 6. Unix\uc5d0\uc11c\uc758 \ub514\ub809\ud1a0\ub9ac \ud45c\uc2dc : '/'
|
||||
# 7. \uc8fc\uc11d\ubb38 \ucc98\ub9ac\ub294 #\uc0ac\uc6a9
|
||||
# 8. value\uac12 \ub4a4\uc5d0 \uc2a4\ud398\uc774\uc2a4\uac00 \uc874\uc7ac\ud558\ub294 \uacbd\uc6b0 \uc11c\ube14\ub9bf\uc5d0\uc11c \ucc38\uc870\ud560\ub54c\ub294 \uc5d0\ub7ec\ubc1c\uc0dd\ud560 \uc218 \uc788\uc73c\ubbc0\ub85c trim()\ud558\uac70\ub098 \ub9c8\uc9c0\ub9c9 \uacf5\ubc31\uc5c6\uc774 properties \uac12\uc744 \uc124\uc815\ud560\uac83
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
crypto.key=A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6
|
||||
crypto.iv=1234567890ABCDEF
|
||||
|
||||
# \uC6B4\uC601\uC11C\uBC84 \uD0C0\uC785(WINDOWS, UNIX)
|
||||
# \uc6b4\uc601\uc11c\ubc84 \ud0c0\uc785(WINDOWS, UNIX)
|
||||
Globals.OsType = WINDOWS
|
||||
|
||||
# G4C \uC5F0\uACB0\uC6A9 IP (localhost)
|
||||
# G4C \uc5f0\uacb0\uc6a9 IP (localhost)
|
||||
Globals.LocalIp = 127.0.0.1
|
||||
|
||||
# DB\uC11C\uBC84 \uD0C0\uC785(mysql,oracle,altibase,tibero) - datasource \uBC0F sqlMap \uD30C\uC77C \uC9C0\uC815\uC5D0 \uC0AC\uC6A9\uB428
|
||||
Globals.DbType = postgresql
|
||||
# \uAC1C\uBC1C\uC6A9 DB \uC11C\uBC84 tibero \uC5F0\uB3D9
|
||||
# \uD1B5\uD569DB - ipict1
|
||||
# schema - ipedu_scm
|
||||
# User - ipedu_user
|
||||
# password - qw3$kEduReal!
|
||||
Globals.UserName= ipedu_user
|
||||
Globals.Password= qw3$kEduReal!
|
||||
# DB\uc11c\ubc84 \ud0c0\uc785(mysql,oracle,altibase,tibero) - datasource \ubc0f sqlMap \ud30c\uc77c \uc9c0\uc815\uc5d0 \uc0ac\uc6a9\ub428
|
||||
Globals.DbType = tibero
|
||||
# \uac1c\ubc1c\uc6a9 DB \uc11c\ubc84 tibero \uc5f0\ub3d9
|
||||
Globals.UserName= EDUSCE
|
||||
Globals.Password= edusce#23
|
||||
|
||||
Globals.DriverClassName=org.postgresql.Driver
|
||||
#\uB85C\uCEEC DB
|
||||
Globals.Url=jdbc:postgresql://172.25.1.93:5445/ipedu?stringtype=unspecified
|
||||
#\uC6B4\uC601 \uAC1C\uBC1CDB
|
||||
Globals.DriverClassName=com.tmax.tibero.jdbc.TbDriver
|
||||
#\ub85c\uceec DB
|
||||
#Globals.Url=jdbc:tibero:thin:@192.168.0.30:8633:tibero
|
||||
#\uc6b4\uc601 \uac1c\ubc1cDB - \ud14c\uc2a4\ud2b8 \uc644\ub8cc \ud6c4 \uc6b4\uc601 DB\ub85c \ubcc0\uacbd \uc608\uc815
|
||||
#Globals.Url=jdbc:tibero:thin:@10.255.3.58:8629:copydb
|
||||
#\uC6B4\uC601 DB
|
||||
#Globals.Url=jdbc:tibero:thin:@172.17.0.10:8629:copydb
|
||||
#\uc6b4\uc601 DB
|
||||
Globals.Url=jdbc:tibero:thin:@172.17.0.10:8629:copydb
|
||||
|
||||
|
||||
# \uc800\uc791\uc704 \ubb38\uc790\uc804\uc1a1 DB(\uac1c\ubc1c)
|
||||
Globals.SMSDB.DriverClassName=oracle.jdbc.driver.OracleDriver
|
||||
Globals.SMSDB.Url=jdbc:oracle:thin:@192.168.0.118:1521:xe
|
||||
Globals.SMSDB.UserName=KCCADR
|
||||
Globals.SMSDB.Password=kccadr
|
||||
# \uc800\uc791\uc704 \ubb38\uc790\uc804\uc1a1 DB(\uc6b4\uc601)
|
||||
#Globals.SMSDB.DriverClassName=oracle.jdbc.driver.OracleDriver
|
||||
#Globals.SMSDB.Url=jdbc:oracle:thin:@222.231.43.26:1521:ora10g
|
||||
#Globals.SMSDB.UserName=smsmanager
|
||||
#Globals.SMSDB.Password=eksanswk2014
|
||||
|
||||
Globals.SMSDB.SendTelNo=02-2669-0042
|
||||
Globals.SMSDB.TrId=kccadr
|
||||
|
||||
# \uc800\uc791\uc704 \uba54\uc77c\uc804\uc1a1
|
||||
Globals.KccMail.URI=https://mail.copyright.or.kr/mail_api/form_send_mail
|
||||
Globals.KccMail.api_key=#!@mail5455
|
||||
Globals.KccMail.sender=adr@copyright.or.kr
|
||||
Globals.KccMail.title=[\ud55c\uad6d\uc800\uc791\uad8c\uc704\uc6d0\ud68c] \ubd84\uc7c1\uc870\uc815\uc2dc\uc2a4\ud15c \uc54c\ub9bc
|
||||
|
||||
|
||||
#SSO \uc811\uc18d\uc815\ubcf4
|
||||
#\uac1c\ubc1c\uc11c\ubc84
|
||||
Globals.sso.ssoUri=https://devsso.copyright.or.kr/oauth2/token.do
|
||||
Globals.sso.clientId=30354835c3684ff79e7fb1bfd3a768f6
|
||||
Globals.sso.clientSecret=1ueil5ee05wr0t1gjy1ppt212
|
||||
Globals.sso.scope=http://sso.copyright.or.kr
|
||||
Globals.sso.returnSiteUrl=http://219.240.88.15:8091/web/user/login/ssoUsrModifyResult.do
|
||||
Globals.sso.returnSiteCode=SITE011
|
||||
|
||||
#\uc2e4\uc11c\ubc84
|
||||
#Globals.sso.ssoUri=https://sso.copyright.or.kr/oauth2/token.do
|
||||
#Globals.sso.clientId=30354835c3684ff79e7fb1bfd3a768f6
|
||||
#Globals.sso.clientSecret=1ueil5ee05wr0t1gjy1ppt212
|
||||
#Globals.sso.scope=http://sso.copyright.or.kr
|
||||
#Globals.sso.returnSiteUrl=http://adr.copyright.or.kr/web/user/login/ssoUsrModifyResult.do
|
||||
#Globals.sso.returnSiteCode=SITE011
|
||||
|
||||
#SSO \ud1b5\ud569\ud68c\uc6d0\uc0ac\uc774\ud2b8 URL
|
||||
#\uac1c\ubc1c\uc11c\ubc84
|
||||
Globals.sso.joinUrl=https://devoneid.copyright.or.kr/member/signUp/signUpStep1.do
|
||||
Globals.sso.modifyUrl=https://devoneid.copyright.or.kr/member/baseInfo/baseInfoModify.do
|
||||
Globals.sso.idFindUrl=https://devoneid.copyright.or.kr/member/infoFind/idFindStep1.do
|
||||
Globals.sso.pwFindUrl=https://devoneid.copyright.or.kr/member/infoFind/passFindStep1.do
|
||||
#\uc2e4\uc11c\ubc84
|
||||
#Globals.sso.joinUrl=https://oneid.copyright.or.kr/member/signUp/signUpStep1.do
|
||||
#Globals.sso.modifyUrl=https://oneid.copyright.or.kr/member/baseInfo/baseInfoModify.do
|
||||
#Globals.sso.idFindUrl=https://oneid.copyright.or.kr/member/infoFind/idFindStep1.do
|
||||
#Globals.sso.pwFindUrl=https://oneid.copyright.or.kr/member/infoFind/passFindStep1.do
|
||||
|
||||
# MainPage Setting(admin)
|
||||
Globals.MainPage = /cmm/main/mainPage.do
|
||||
#\uCEE8\uD150\uCE20 \uD30C\uC77C\uC704\uCE58
|
||||
#\ucee8\ud150\uce20 \ud30c\uc77c\uc704\uce58
|
||||
#Globals.ckeditorUploadDir=/home/file/ckeditor/
|
||||
Globals.ckeditorUploadDir=/usr/local/tomcat/file/ckeditor/
|
||||
#TEST SERVER
|
||||
Globals.RealCntFileFolder=C:/eGovFrameDev-3.9.0-64bit_ncms/workspace/ncms39/src/main/webapp/WEB-INF/jsp/cnt/
|
||||
Globals.Solr.url=http://localhost:8983/solr
|
||||
|
||||
#\uC0AC\uC774\uD2B8 \uC544\uC774\uB514 \uC81C\uAC70\uB85C JSP\uC5D0\uC11C siteId/siteNm \uBCF4\uC5EC\uC8FC\uAE30 \uC704\uD574
|
||||
Globals.homepage.siteId=ipedu
|
||||
Globals.homepage.siteNm=\uC9C0\uC2DD\uC7AC\uC0B0\uBCF4\uD638\uAD50\uC721\uC2DC\uC2A4\uD15C
|
||||
#SNS \ub85c\uadf8\uc778 KEY \uac12
|
||||
#ITN \ub124\uc774\ubc84
|
||||
Globals.kcc.naver.clentId=d9Ohvhty_RVsfrq9p_2J
|
||||
Globals.kcc.naver.clientSecret=kwiEmpkLg5
|
||||
Globals.kcc.naver.returnUrl=http://localhost:80/snsLogin/naverOauth.do
|
||||
#ITN \uce74\uce74\uc624
|
||||
Globals.kcc.kakao.restApiKey=10b66ad0c44b68b659855ddd64db2c44
|
||||
Globals.kcc.kakao.returnUrl=http://localhost:80/snsLogin/kakaoOauth.do
|
||||
|
||||
#prod \uAC1C\uBC1C, \uC2E4\uC11C\uBC84 \uAD6C\uBD84\uAC12
|
||||
#\uB85C\uCEEC
|
||||
#\uc0ac\uc774\ud2b8 \uc544\uc774\ub514 \uc81c\uac70\ub85c JSP\uc5d0\uc11c siteId/siteNm \ubcf4\uc5ec\uc8fc\uae30 \uc704\ud574
|
||||
Globals.homepage.siteId=kccadr
|
||||
Globals.homepage.siteNm=\uc804\uc790\uc870\uc815\uc2dc\uc2a4\ud15c
|
||||
|
||||
#pdf-url
|
||||
##=====================================1.local(http://192.168.0.34:7080)=============================================================
|
||||
##pdf\ubcc0\ud658\uc11c\ubc84 - WAS \uc5d0\uc11c \ud638\ucd9c\ud558\ub294 PDF \ubcc0\ud658 \uc11c\ubc84 IP \uc815\ubcf4\ub97c \ub123\ub294\ub2e4.
|
||||
#Globals.pdf.serverUrl=192.168.0.200
|
||||
|
||||
|
||||
##\uc6f9\ud398\uc774\uc9c0\ub97c pdf\ub85c \ubcc0\ud658\ud558\uae30 \uc704\ud55c api \ud638\ucd9curl - \uc870\uc815\uc2e0\uccad\uc11c \ub4f1 - WAS \uc11c\ubc84 \uc815\ubcf4\ub97c \ub123\ub294\ub2e4.
|
||||
#Globals.pdf.apiUrl=http://192.168.0.34:7080
|
||||
|
||||
|
||||
##pdf \uc11c\ubc84\uc758 \ub124\ud2b8\uc6cc\ud06c \uacbd\ub85c
|
||||
##pdf\ubcc0\ud658 \uc11c\ube0c\ub97c \uc704\ud55c path - 1.pdf\ubcc0\ud658\uc758 \uacb0\uacfc\ubb3c\uc774 \uc0dd\uc131\ub418\ub294 \uacbd\ub85c - PDF \ubcc0\ud658 \uc11c\ubc84\uc5d0\uc11c \uc0ac\uc6a9\ud558\ub294 \ud3f4\ub354 \uc815\ubcf4\ub97c \ub123\ub294\ub2e4.
|
||||
#Globals.pdf.filepath.out=file:/z:/out/
|
||||
|
||||
|
||||
##tomcat upload \uacbd\ub85c
|
||||
##\ud30c\uc77c \uad00\ub9ac\ub97c \uc704\ud55c path - 2.pdf\ubcc0\ud658\uc744 \uc704\ud55c \uc5c5\ub85c\ub4dc \ud30c\uc77c \uacbd\ub85c - WAS \uc11c\ubc84\uc5d0\uc11c PDF \ubcc0\ud658 \uc9c0\uc6d0\uc744 \uc704\ud574 \uc81c\uc5b4 \ud558\ub294 \uacbd\ub85c
|
||||
#Globals.pdf.makepath=y:/
|
||||
|
||||
##\ud30c\uc77c \uad00\ub9ac\ub97c \uc704\ud55c path - 3.pdf\ubcc0\ud658\uc758 \uacb0\uacfc\ubb3c\uc774 \uc0dd\uc131\ub418\ub294 \uacbd\ub85c - WAS \uc11c\ubc84\uc5d0\uc11c PDF \ubcc0\ud658 \uc9c0\uc6d0\uc744 \uc704\ud574 \uc81c\uc5b4 \ud558\ub294 \uacbd\ub85c
|
||||
#Globals.pdf.makepath.out=y:/out/
|
||||
|
||||
|
||||
##pdf\ubcc0\ud658 \ud30c\uc77c\uc758 \uc6f9\uc811\uadfc\uc744 \uc704\ud55c path - 4.pdf\ubcc0\ud658\uc758 \uacb0\uacfc\ubb3c\uc744 \uc6f9\uc5d0\uc11c \uc811\uadfc\ud558\uae30 \uc704\ud55c \uacbd\ub85c - \ubcc0\ud658\ub41c PDF \ud30c\uc77c\uc744 \uc6f9\ud398\uc774\uc9c0\uc5d0\uc11c \uc811\uadfc\ud558\uae30 \uc704\ud574 \uc124\uc815\ub41c \uacbd\ub85c \uc815\ubcf4
|
||||
#Globals.pdf.webpath=/pdf/out/
|
||||
|
||||
##=====================================2.\uac1c\ubc1c\uc11c\ubc84(http://219.240.88.15:8091)=============================================================
|
||||
## \uc0c1\uc138 \ud56d\ubaa9\uc5d0 \ub300\ud55c \uc124\uba85\uc740 \uc0c1\ub2e8\uc5d0\uc11c \ud655\uc778 \ubc14\ub78d\ub2c8\ub2e4.
|
||||
Globals.pdf.serverUrl=192.168.0.200
|
||||
Globals.pdf.apiUrl=http://219.240.88.15:8091
|
||||
Globals.pdf.filepath.out=file:/z:/out/
|
||||
Globals.pdf.makepath=/usr/local/tomcat/file/sht/
|
||||
Globals.pdf.makepath.out=/usr/local/tomcat/file/sht/out/
|
||||
Globals.pdf.webpath=/pdf/out/
|
||||
|
||||
##=====================================3.\uc2e4\uc11c\ubc84(192.168.39.143, 192.168.39.144)=============================================================
|
||||
## \uc0c1\uc138 \ud56d\ubaa9\uc5d0 \ub300\ud55c \uc124\uba85\uc740 \uc0c1\ub2e8\uc5d0\uc11c \ud655\uc778 \ubc14\ub78d\ub2c8\ub2e4.
|
||||
#Globals.pdf.serverUrl=192.168.39.147
|
||||
#Globals.pdf.apiUrl=http://192.168.39.143:8080
|
||||
#Globals.pdf.filepath.out=file:/z:/out/
|
||||
#Globals.pdf.makepath=/usr/local/tomcat/file/sht/
|
||||
#Globals.pdf.makepath.out=/usr/local/tomcat/file/sht/out/
|
||||
#Globals.pdf.webpath=/pdf/out/
|
||||
|
||||
#prod \uac1c\ubc1c, \uc2e4\uc11c\ubc84 \uad6c\ubd84\uac12
|
||||
#\ub85c\uceec
|
||||
#Globals.prod.islocal=local
|
||||
#\uC6B4\uC601 \uAC1C\uBC1C
|
||||
#\uc6b4\uc601 \uac1c\ubc1c
|
||||
#Globals.prod.islocal=dev
|
||||
#\uC6B4\uC601
|
||||
#\uc6b4\uc601
|
||||
Globals.prod.islocal=real
|
||||
|
||||
#\uB300\uC6A9\uB7C9 innorix license
|
||||
Globals.Innorix.License=dev
|
||||
Globals.Innorix.FilePath=/usr/local/tomcat/file/sht/
|
||||
|
||||
#\ub300\uc6a9\ub7c9 innorix license
|
||||
Globals.Innorix.License=svr
|
||||
Globals.Innorix.FilePath=/usr/local/tomcat/file/sht/
|
||||
|
||||
# ===========================
|
||||
# Siren24 \uC778\uC99D \uAD00\uB828 \uC124\uC815
|
||||
# ===========================
|
||||
globals.certPhone.retUrl = https://www.koipa.re.kr/ipedu/
|
||||
globals.certPhone.cryptoUrl = https://sciapi.siren24.com:52099/authentication/api/v1.0/common/crypto/token
|
||||
globals.certPhone.reqNo = koipa_edu
|
||||
globals.certPhone.id = SKIP001
|
||||
globals.certPhone.clientId = 5a2a72e2-16ce-420c-8816-57b3dda0e231
|
||||
globals.certPhone.srvNo = 003002
|
||||
globals.certPhone.accessToken = 994b5d96-3788-4239-a5b0-a0ba2e0cf089
|
||||
globals.certPhone.stosUrl = https://pcc.siren24.com/servlet/StoS
|
||||
|
||||
# ===========================
|
||||
# \uBFCC\uB9AC\uC624 \uC54C\uB9BC\uD1A1, \uBB38\uC790 \uBC1C\uC1A1
|
||||
# ===========================
|
||||
ppurio.id=ipedu
|
||||
ppurio.pw=a12711271!!
|
||||
ppurio.host=https://api.bizppurio.com
|
||||
ppurio.senderKey=2f3b0bb2cc106a3d98f248c85ac5d5376505f553
|
||||
ppurio.from=16701271
|
||||
#\uad50\uc721 \uc54c\ub9bc \uba54\uc77c \ud15c\ud50c\ub9bf
|
||||
Globals.edu.mail.template=/template/offeduMain.html
|
||||
@ -1,31 +1,31 @@
|
||||
#-----------------------------------------------------------------------
|
||||
#
|
||||
# globals.properties : \uC2DC\uC2A4\uD15C
|
||||
# globals.properties : \uc2dc\uc2a4\ud15c
|
||||
#
|
||||
#-----------------------------------------------------------------------
|
||||
# 1. key = value \uAD6C\uC870\uC785\uB2C8\uB2E4.
|
||||
# 2. key\uAC12\uC740 \uACF5\uBC31\uBB38\uC790\uB97C \uD3EC\uD568\uBD88\uAC00, value\uAC12\uC740 \uACF5\uBC31\uBB38\uC790\uB97C \uAC00\uB2A5
|
||||
# 3. key\uAC12\uC73C\uB85C \uD55C\uAE00\uC744 \uC0AC\uC6A9\uBD88\uAC00, value\uAC12\uC740 \uD55C\uAE00\uC0AC\uC6A9\uC774 \uAC00\uB2A5
|
||||
# 4. \uC904\uC744 \uBC14\uAFC0 \uD544\uC694\uAC00 \uC788\uC73C\uBA74 '\'\uB97C \uB77C\uC778\uC758 \uB05D\uC5D0 \uCD94\uAC00(\uB9CC\uC57D '\'\uBB38\uC790\uB97C \uC0AC\uC6A9\uD574\uC57C \uD558\uB294 \uACBD\uC6B0\uB294 '\\'\uB97C \uC0AC\uC6A9)
|
||||
# 5. Windows\uC5D0\uC11C\uC758 \uB514\uB809\uD1A0\uB9AC \uD45C\uC2DC : '\\' or '/' ('\' \uC0AC\uC6A9\uD558\uBA74 \uC548\uB428)
|
||||
# 6. Unix\uC5D0\uC11C\uC758 \uB514\uB809\uD1A0\uB9AC \uD45C\uC2DC : '/'
|
||||
# 7. \uC8FC\uC11D\uBB38 \uCC98\uB9AC\uB294 #\uC0AC\uC6A9
|
||||
# 8. value\uAC12 \uB4A4\uC5D0 \uC2A4\uD398\uC774\uC2A4\uAC00 \uC874\uC7AC\uD558\uB294 \uACBD\uC6B0 \uC11C\uBE14\uB9BF\uC5D0\uC11C \uCC38\uC870\uD560\uB54C\uB294 \uC5D0\uB7EC\uBC1C\uC0DD\uD560 \uC218 \uC788\uC73C\uBBC0\uB85C trim()\uD558\uAC70\uB098 \uB9C8\uC9C0\uB9C9 \uACF5\uBC31\uC5C6\uC774 properties \uAC12\uC744 \uC124\uC815\uD560\uAC83
|
||||
# 1. key = value \uad6c\uc870\uc785\ub2c8\ub2e4.
|
||||
# 2. key\uac12\uc740 \uacf5\ubc31\ubb38\uc790\ub97c \ud3ec\ud568\ubd88\uac00, value\uac12\uc740 \uacf5\ubc31\ubb38\uc790\ub97c \uac00\ub2a5
|
||||
# 3. key\uac12\uc73c\ub85c \ud55c\uae00\uc744 \uc0ac\uc6a9\ubd88\uac00, value\uac12\uc740 \ud55c\uae00\uc0ac\uc6a9\uc774 \uac00\ub2a5
|
||||
# 4. \uc904\uc744 \ubc14\uafc0 \ud544\uc694\uac00 \uc788\uc73c\uba74 '\'\ub97c \ub77c\uc778\uc758 \ub05d\uc5d0 \ucd94\uac00(\ub9cc\uc57d '\'\ubb38\uc790\ub97c \uc0ac\uc6a9\ud574\uc57c \ud558\ub294 \uacbd\uc6b0\ub294 '\\'\ub97c \uc0ac\uc6a9)
|
||||
# 5. Windows\uc5d0\uc11c\uc758 \ub514\ub809\ud1a0\ub9ac \ud45c\uc2dc : '\\' or '/' ('\' \uc0ac\uc6a9\ud558\uba74 \uc548\ub428)
|
||||
# 6. Unix\uc5d0\uc11c\uc758 \ub514\ub809\ud1a0\ub9ac \ud45c\uc2dc : '/'
|
||||
# 7. \uc8fc\uc11d\ubb38 \ucc98\ub9ac\ub294 #\uc0ac\uc6a9
|
||||
# 8. value\uac12 \ub4a4\uc5d0 \uc2a4\ud398\uc774\uc2a4\uac00 \uc874\uc7ac\ud558\ub294 \uacbd\uc6b0 \uc11c\ube14\ub9bf\uc5d0\uc11c \ucc38\uc870\ud560\ub54c\ub294 \uc5d0\ub7ec\ubc1c\uc0dd\ud560 \uc218 \uc788\uc73c\ubbc0\ub85c trim()\ud558\uac70\ub098 \ub9c8\uc9c0\ub9c9 \uacf5\ubc31\uc5c6\uc774 properties \uac12\uc744 \uc124\uc815\ud560\uac83
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
crypto.key=A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6
|
||||
crypto.iv=1234567890ABCDEF
|
||||
|
||||
# \uC6B4\uC601\uC11C\uBC84 \uD0C0\uC785(WINDOWS, UNIX)
|
||||
# \uc6b4\uc601\uc11c\ubc84 \ud0c0\uc785(WINDOWS, UNIX)
|
||||
Globals.OsType = WINDOWS
|
||||
|
||||
# G4C \uC5F0\uACB0\uC6A9 IP (localhost)
|
||||
# G4C \uc5f0\uacb0\uc6a9 IP (localhost)
|
||||
Globals.LocalIp = 127.0.0.1
|
||||
|
||||
# DB\uC11C\uBC84 \uD0C0\uC785(mysql,oracle,altibase,tibero) - datasource \uBC0F sqlMap \uD30C\uC77C \uC9C0\uC815\uC5D0 \uC0AC\uC6A9\uB428
|
||||
# DB\uc11c\ubc84 \ud0c0\uc785(mysql,oracle,altibase,tibero) - datasource \ubc0f sqlMap \ud30c\uc77c \uc9c0\uc815\uc5d0 \uc0ac\uc6a9\ub428
|
||||
Globals.DbType = postgresql
|
||||
# \uAC1C\uBC1C\uC6A9 DB \uC11C\uBC84 tibero \uC5F0\uB3D9
|
||||
# \uD1B5\uD569DB - ipict1
|
||||
# \uac1c\ubc1c\uc6a9 DB \uc11c\ubc84 tibero \uc5f0\ub3d9
|
||||
# \ud1b5\ud569DB - ipict1
|
||||
# schema - ipedu_scm
|
||||
# User - ipedu_user
|
||||
# password - qw3$kEduReal!
|
||||
@ -33,57 +33,143 @@ Globals.UserName= koipaEdu
|
||||
Globals.Password= koipaEdu123
|
||||
|
||||
Globals.DriverClassName=org.postgresql.Driver
|
||||
#\uB85C\uCEEC DB
|
||||
#\ub85c\uceec DB
|
||||
Globals.Url=jdbc:postgresql://192.168.0.60:5432/koipaEduDB?stringtype=unspecified
|
||||
#\uC6B4\uC601 \uAC1C\uBC1CDB
|
||||
#\uc6b4\uc601 \uac1c\ubc1cDB
|
||||
#Globals.Url=jdbc:tibero:thin:@10.255.3.58:8629:copydb
|
||||
#\uC6B4\uC601 DB
|
||||
#\uc6b4\uc601 DB
|
||||
#Globals.Url=jdbc:tibero:thin:@172.17.0.10:8629:copydb
|
||||
|
||||
|
||||
# \uc800\uc791\uc704 \ubb38\uc790\uc804\uc1a1 DB(\uac1c\ubc1c)
|
||||
Globals.SMSDB.DriverClassName=oracle.jdbc.driver.OracleDriver
|
||||
Globals.SMSDB.Url=jdbc:oracle:thin:@192.168.0.118:1521:xe
|
||||
Globals.SMSDB.UserName=KCCADR
|
||||
Globals.SMSDB.Password=kccadr
|
||||
# \uc800\uc791\uc704 \ubb38\uc790\uc804\uc1a1 DB(\uc6b4\uc601)
|
||||
#Globals.SMSDB.DriverClassName=oracle.jdbc.driver.OracleDriver
|
||||
#Globals.SMSDB.Url=jdbc:oracle:thin:@222.231.43.26:1521:ora10g
|
||||
#Globals.SMSDB.UserName=smsmanager
|
||||
#Globals.SMSDB.Password=eksanswk2014
|
||||
|
||||
Globals.SMSDB.SendTelNo=02-2669-0042
|
||||
Globals.SMSDB.TrId=kccadr
|
||||
|
||||
# \uc800\uc791\uc704 \uba54\uc77c\uc804\uc1a1
|
||||
Globals.KccMail.URI=https://mail.copyright.or.kr/mail_api/form_send_mail
|
||||
Globals.KccMail.api_key=#!@mail5455
|
||||
Globals.KccMail.sender=adr@copyright.or.kr
|
||||
Globals.KccMail.title=[\ud55c\uad6d\uc800\uc791\uad8c\uc704\uc6d0\ud68c] \ubd84\uc7c1\uc870\uc815\uc2dc\uc2a4\ud15c \uc54c\ub9bc
|
||||
|
||||
|
||||
#SSO \uc811\uc18d\uc815\ubcf4
|
||||
#\uac1c\ubc1c\uc11c\ubc84
|
||||
Globals.sso.ssoUri=https://devsso.copyright.or.kr/oauth2/token.do
|
||||
Globals.sso.clientId=30354835c3684ff79e7fb1bfd3a768f6
|
||||
Globals.sso.clientSecret=1ueil5ee05wr0t1gjy1ppt212
|
||||
Globals.sso.scope=http://sso.copyright.or.kr
|
||||
Globals.sso.returnSiteUrl=http://219.240.88.15:8091/web/user/login/ssoUsrModifyResult.do
|
||||
Globals.sso.returnSiteCode=SITE011
|
||||
|
||||
#\uc2e4\uc11c\ubc84
|
||||
#Globals.sso.ssoUri=https://sso.copyright.or.kr/oauth2/token.do
|
||||
#Globals.sso.clientId=30354835c3684ff79e7fb1bfd3a768f6
|
||||
#Globals.sso.clientSecret=1ueil5ee05wr0t1gjy1ppt212
|
||||
#Globals.sso.scope=http://sso.copyright.or.kr
|
||||
#Globals.sso.returnSiteUrl=http://adr.copyright.or.kr/web/user/login/ssoUsrModifyResult.do
|
||||
#Globals.sso.returnSiteCode=SITE011
|
||||
|
||||
#SSO \ud1b5\ud569\ud68c\uc6d0\uc0ac\uc774\ud2b8 URL
|
||||
#\uac1c\ubc1c\uc11c\ubc84
|
||||
Globals.sso.joinUrl=https://devoneid.copyright.or.kr/member/signUp/signUpStep1.do
|
||||
Globals.sso.modifyUrl=https://devoneid.copyright.or.kr/member/baseInfo/baseInfoModify.do
|
||||
Globals.sso.idFindUrl=https://devoneid.copyright.or.kr/member/infoFind/idFindStep1.do
|
||||
Globals.sso.pwFindUrl=https://devoneid.copyright.or.kr/member/infoFind/passFindStep1.do
|
||||
#\uc2e4\uc11c\ubc84
|
||||
#Globals.sso.joinUrl=https://oneid.copyright.or.kr/member/signUp/signUpStep1.do
|
||||
#Globals.sso.modifyUrl=https://oneid.copyright.or.kr/member/baseInfo/baseInfoModify.do
|
||||
#Globals.sso.idFindUrl=https://oneid.copyright.or.kr/member/infoFind/idFindStep1.do
|
||||
#Globals.sso.pwFindUrl=https://oneid.copyright.or.kr/member/infoFind/passFindStep1.do
|
||||
|
||||
# MainPage Setting(admin)
|
||||
Globals.MainPage = /cmm/main/mainPage.do
|
||||
#\uCEE8\uD150\uCE20 \uD30C\uC77C\uC704\uCE58
|
||||
#\ucee8\ud150\uce20 \ud30c\uc77c\uc704\uce58
|
||||
#Globals.ckeditorUploadDir=/home/file/ckeditor/
|
||||
Globals.ckeditorUploadDir=/usr/local/tomcat/file/ckeditor/
|
||||
#TEST SERVER
|
||||
Globals.RealCntFileFolder=C:/eGovFrameDev-3.9.0-64bit_ncms/workspace/ncms39/src/main/webapp/WEB-INF/jsp/cnt/
|
||||
Globals.Solr.url=http://localhost:8983/solr
|
||||
|
||||
#\uC0AC\uC774\uD2B8 \uC544\uC774\uB514 \uC81C\uAC70\uB85C JSP\uC5D0\uC11C siteId/siteNm \uBCF4\uC5EC\uC8FC\uAE30 \uC704\uD574
|
||||
Globals.homepage.siteId=ipedu
|
||||
Globals.homepage.siteNm=\uC9C0\uC2DD\uC7AC\uC0B0\uBCF4\uD638\uAD50\uC721\uC2DC\uC2A4\uD15C
|
||||
#SNS \ub85c\uadf8\uc778 KEY \uac12
|
||||
#ITN \ub124\uc774\ubc84
|
||||
Globals.kcc.naver.clentId=d9Ohvhty_RVsfrq9p_2J
|
||||
Globals.kcc.naver.clientSecret=kwiEmpkLg5
|
||||
Globals.kcc.naver.returnUrl=http://localhost:80/snsLogin/naverOauth.do
|
||||
#ITN \uce74\uce74\uc624
|
||||
Globals.kcc.kakao.restApiKey=10b66ad0c44b68b659855ddd64db2c44
|
||||
Globals.kcc.kakao.returnUrl=http://localhost:80/snsLogin/kakaoOauth.do
|
||||
|
||||
#prod \uAC1C\uBC1C, \uC2E4\uC11C\uBC84 \uAD6C\uBD84\uAC12
|
||||
#\uB85C\uCEEC
|
||||
#\uc0ac\uc774\ud2b8 \uc544\uc774\ub514 \uc81c\uac70\ub85c JSP\uc5d0\uc11c siteId/siteNm \ubcf4\uc5ec\uc8fc\uae30 \uc704\ud574
|
||||
Globals.homepage.siteId=kccadr
|
||||
Globals.homepage.siteNm=\uc804\uc790\uc870\uc815\uc2dc\uc2a4\ud15c
|
||||
|
||||
#pdf-url
|
||||
##=====================================1.local(http://192.168.0.34:7080)=============================================================
|
||||
##pdf\ubcc0\ud658\uc11c\ubc84 - WAS \uc5d0\uc11c \ud638\ucd9c\ud558\ub294 PDF \ubcc0\ud658 \uc11c\ubc84 IP \uc815\ubcf4\ub97c \ub123\ub294\ub2e4.
|
||||
#Globals.pdf.serverUrl=192.168.0.200
|
||||
|
||||
|
||||
##\uc6f9\ud398\uc774\uc9c0\ub97c pdf\ub85c \ubcc0\ud658\ud558\uae30 \uc704\ud55c api \ud638\ucd9curl - \uc870\uc815\uc2e0\uccad\uc11c \ub4f1 - WAS \uc11c\ubc84 \uc815\ubcf4\ub97c \ub123\ub294\ub2e4.
|
||||
#Globals.pdf.apiUrl=http://192.168.0.34:7080
|
||||
|
||||
|
||||
##pdf \uc11c\ubc84\uc758 \ub124\ud2b8\uc6cc\ud06c \uacbd\ub85c
|
||||
##pdf\ubcc0\ud658 \uc11c\ube0c\ub97c \uc704\ud55c path - 1.pdf\ubcc0\ud658\uc758 \uacb0\uacfc\ubb3c\uc774 \uc0dd\uc131\ub418\ub294 \uacbd\ub85c - PDF \ubcc0\ud658 \uc11c\ubc84\uc5d0\uc11c \uc0ac\uc6a9\ud558\ub294 \ud3f4\ub354 \uc815\ubcf4\ub97c \ub123\ub294\ub2e4.
|
||||
#Globals.pdf.filepath.out=file:/z:/out/
|
||||
|
||||
|
||||
##tomcat upload \uacbd\ub85c
|
||||
##\ud30c\uc77c \uad00\ub9ac\ub97c \uc704\ud55c path - 2.pdf\ubcc0\ud658\uc744 \uc704\ud55c \uc5c5\ub85c\ub4dc \ud30c\uc77c \uacbd\ub85c - WAS \uc11c\ubc84\uc5d0\uc11c PDF \ubcc0\ud658 \uc9c0\uc6d0\uc744 \uc704\ud574 \uc81c\uc5b4 \ud558\ub294 \uacbd\ub85c
|
||||
#Globals.pdf.makepath=y:/
|
||||
|
||||
##\ud30c\uc77c \uad00\ub9ac\ub97c \uc704\ud55c path - 3.pdf\ubcc0\ud658\uc758 \uacb0\uacfc\ubb3c\uc774 \uc0dd\uc131\ub418\ub294 \uacbd\ub85c - WAS \uc11c\ubc84\uc5d0\uc11c PDF \ubcc0\ud658 \uc9c0\uc6d0\uc744 \uc704\ud574 \uc81c\uc5b4 \ud558\ub294 \uacbd\ub85c
|
||||
#Globals.pdf.makepath.out=y:/out/
|
||||
|
||||
|
||||
##pdf\ubcc0\ud658 \ud30c\uc77c\uc758 \uc6f9\uc811\uadfc\uc744 \uc704\ud55c path - 4.pdf\ubcc0\ud658\uc758 \uacb0\uacfc\ubb3c\uc744 \uc6f9\uc5d0\uc11c \uc811\uadfc\ud558\uae30 \uc704\ud55c \uacbd\ub85c - \ubcc0\ud658\ub41c PDF \ud30c\uc77c\uc744 \uc6f9\ud398\uc774\uc9c0\uc5d0\uc11c \uc811\uadfc\ud558\uae30 \uc704\ud574 \uc124\uc815\ub41c \uacbd\ub85c \uc815\ubcf4
|
||||
#Globals.pdf.webpath=/pdf/out/
|
||||
|
||||
##=====================================2.\uac1c\ubc1c\uc11c\ubc84(http://219.240.88.15:8091)=============================================================
|
||||
## \uc0c1\uc138 \ud56d\ubaa9\uc5d0 \ub300\ud55c \uc124\uba85\uc740 \uc0c1\ub2e8\uc5d0\uc11c \ud655\uc778 \ubc14\ub78d\ub2c8\ub2e4.
|
||||
Globals.pdf.serverUrl=192.168.0.200
|
||||
Globals.pdf.apiUrl=http://219.240.88.15:8091
|
||||
Globals.pdf.filepath.out=file:/z:/out/
|
||||
Globals.pdf.makepath=/usr/local/tomcat/file/sht/
|
||||
Globals.pdf.makepath.out=/usr/local/tomcat/file/sht/out/
|
||||
Globals.pdf.webpath=/pdf/out/
|
||||
|
||||
##=====================================3.\uc2e4\uc11c\ubc84(192.168.39.143, 192.168.39.144)=============================================================
|
||||
## \uc0c1\uc138 \ud56d\ubaa9\uc5d0 \ub300\ud55c \uc124\uba85\uc740 \uc0c1\ub2e8\uc5d0\uc11c \ud655\uc778 \ubc14\ub78d\ub2c8\ub2e4.
|
||||
#Globals.pdf.serverUrl=192.168.39.147
|
||||
#Globals.pdf.apiUrl=http://192.168.39.143:8080
|
||||
#Globals.pdf.filepath.out=file:/z:/out/
|
||||
#Globals.pdf.makepath=/usr/local/tomcat/file/sht/
|
||||
#Globals.pdf.makepath.out=/usr/local/tomcat/file/sht/out/
|
||||
#Globals.pdf.webpath=/pdf/out/
|
||||
|
||||
#prod \uac1c\ubc1c, \uc2e4\uc11c\ubc84 \uad6c\ubd84\uac12
|
||||
#\ub85c\uceec
|
||||
Globals.prod.islocal=local
|
||||
#\uC6B4\uC601 \uAC1C\uBC1C
|
||||
#\uc6b4\uc601 \uac1c\ubc1c
|
||||
#Globals.prod.islocal=dev
|
||||
#\uC6B4\uC601
|
||||
#\uc6b4\uc601
|
||||
#Globals.prod.islocal=real
|
||||
|
||||
#\uB300\uC6A9\uB7C9 innorix license
|
||||
|
||||
#\ub300\uc6a9\ub7c9 innorix license
|
||||
Globals.Innorix.License=dev
|
||||
Globals.Innorix.FilePath=/usr/local/tomcat/file/sht/
|
||||
Globals.Innorix.FilePath=/usr/local/tomcat/file/sht/
|
||||
|
||||
|
||||
# ===========================
|
||||
# Siren24 \uC778\uC99D \uAD00\uB828 \uC124\uC815
|
||||
# ===========================
|
||||
globals.certPhone.retUrl=https://dev-ipedu-cert.iten.co.kr/ipedu/
|
||||
globals.certPhone.cryptoUrl=https://sciapi.siren24.com:52099/authentication/api/v1.0/common/crypto/token
|
||||
globals.certPhone.reqNo=koipa_edu
|
||||
globals.certPhone.id=SKIP001
|
||||
globals.certPhone.clientId=5a2a72e2-16ce-420c-8816-57b3dda0e231
|
||||
#globals.certPhone.srvNo=001003
|
||||
globals.certPhone.srvNo=001003
|
||||
globals.certPhone.accessToken=994b5d96-3788-4239-a5b0-a0ba2e0cf089
|
||||
globals.certPhone.stosUrl=https://pcc.siren24.com/servlet/StoS
|
||||
|
||||
# ===========================
|
||||
# \uBFCC\uB9AC\uC624 \uC54C\uB9BC\uD1A1, \uBB38\uC790 \uBC1C\uC1A1
|
||||
# ===========================
|
||||
ppurio.id=ipedu
|
||||
ppurio.pw=a12711271!!
|
||||
ppurio.host=https://api.bizppurio.com
|
||||
ppurio.senderKey=2f3b0bb2cc106a3d98f248c85ac5d5376505f553
|
||||
ppurio.from=16701271
|
||||
#\uad50\uc721 \uc54c\ub9bc \uba54\uc77c \ud15c\ud50c\ub9bf
|
||||
#Globals.edu.mail.template=/template/offeduMain.html
|
||||
Globals.edu.mail.template=template/offeduMain.html
|
||||
@ -25,5 +25,5 @@
|
||||
</map>
|
||||
</property>
|
||||
</bean>
|
||||
<util:properties id="globalSettings" location="classpath:/egovframework/egovProps/globals_#{systemProperties['spring.profiles.active']}.properties" />
|
||||
<util:properties id="globalSettings" location="classpath:/egovframework/egovProps/globals.properties" />
|
||||
</beans>
|
||||
|
||||
@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
|
||||
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
|
||||
|
||||
<sqlMapConfig>
|
||||
<sqlMap resource="egovframework/sqlmap/ve/cmm/sendAt/Send_SQL_Postgresql.xml"/>
|
||||
</sqlMapConfig>
|
||||
@ -253,9 +253,7 @@
|
||||
, LETTNADMINLOG b
|
||||
, COMVNUSERMASTER c
|
||||
WHERE 1=1
|
||||
|
||||
AND a.use_yn='Y'
|
||||
|
||||
AND a.method_cd='A'
|
||||
AND a.METHOD_NM =b.PROGRM_FILE_NM
|
||||
AND b.CONECT_ID =c.ESNTL_ID
|
||||
@ -516,7 +514,7 @@
|
||||
A.PRIVACY AS privacy,
|
||||
A.USE_YN AS useYn,
|
||||
A.SORT_NUM AS sortNum,
|
||||
A.method_cd as methodCd
|
||||
A.method_cd as dateType
|
||||
FROM LETTNADMINMETHOD A
|
||||
WHERE 1=1
|
||||
<isNotEmpty property="admotId">
|
||||
@ -573,31 +571,9 @@
|
||||
<isNotEmpty property="sortNum">
|
||||
, sort_num = CAST(#sortNum# as int)
|
||||
</isNotEmpty>
|
||||
<isNotEmpty property="methodCd">
|
||||
, METHOD_CD = #methodCd#
|
||||
</isNotEmpty>
|
||||
WHERE ADMOT_ID = #admotId#
|
||||
</update>
|
||||
|
||||
<!-- 관리자 로그설정 메소드 수정 -->
|
||||
<update id="LoginLogDAO.updateLogMethodAuto" parameterClass="loginLog">
|
||||
/* 임시.*NOT_SQL_LOG.* LoginLogDAO.LoginLogDAO.updateLogMethodAuto */
|
||||
UPDATE LETTNADMINMETHOD
|
||||
SET
|
||||
PARAM = #param#
|
||||
, MENU_NM = #menuNm#
|
||||
, APPRO_NM = #approNm#
|
||||
, PRIVACY = #privacy#
|
||||
, USE_YN = #useYn#
|
||||
<isNotEmpty property="sortNum">
|
||||
, sort_num = CAST(#sortNum# as int)
|
||||
</isNotEmpty>
|
||||
<isNotEmpty property="methodCd">
|
||||
, METHOD_CD = #methodCd#
|
||||
</isNotEmpty>
|
||||
WHERE METHOD_NM like CONCAT(CAST(#methodNm# as text), '%')
|
||||
</update>
|
||||
|
||||
<insert id="LoginLogDAO.insertLogMethod" parameterClass="loginLog">
|
||||
/* 임시.*NOT_SQL_LOG.* LoginLogDAO.insertLogMethod */
|
||||
INSERT INTO LETTNADMINMETHOD
|
||||
@ -872,62 +848,12 @@
|
||||
LIMIT #recordCountPerPage# OFFSET #firstIndex#
|
||||
</select>
|
||||
|
||||
<!-- 사용자 메뉴별 접속 로그 리스트 -->
|
||||
<select id="LoginLogDAO.selectWebMenuLogList_bak_20251104" parameterClass="loginLog" resultClass="loginLog">
|
||||
/* 임시.*NOT_SQL_LOG.* LoginLogDAO.selectWebMenuLogList_bak_20251104 */
|
||||
SELECT a.MENU_NM AS menuNm,
|
||||
a.APPRO_NM AS approNm,
|
||||
a.METHOD_NM AS methodNm,
|
||||
a.SORT_NUM AS sortNum,
|
||||
count(*) AS totCnt
|
||||
|
||||
FROM LETTNADMINMETHOD a
|
||||
LEFT OUTER JOIN LETTNLOGINLOG b
|
||||
ON (a.METHOD_NM =b.PROGRM_FILE_NM)
|
||||
|
||||
WHERE a.use_yn ='Y'
|
||||
AND a.METHOD_CD ='U'
|
||||
|
||||
|
||||
<isNotEmpty property="searchKeyword">
|
||||
<isEqual prepend="AND" property="searchCondition" compareValue="">
|
||||
( a.MENU_NM LIKE '%'||#searchKeyword#||'%'
|
||||
OR
|
||||
a.METHOD_NM LIKE '%'||#searchKeyword#||'%'
|
||||
)
|
||||
</isEqual>
|
||||
<isEqual prepend="AND" property="searchCondition" compareValue="1">
|
||||
a.MENU_NM LIKE '%'||#searchKeyword#||'%'
|
||||
</isEqual>
|
||||
<isEqual prepend="AND" property="searchCondition" compareValue="2">
|
||||
a.METHOD_NM LIKE '%'||#searchKeyword#||'%'
|
||||
</isEqual>
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="searchStartDt">
|
||||
AND TO_CHAR(b.CREAT_DT, 'YYYY.MM.DD' ) >= #searchStartDt#
|
||||
</isNotEmpty>
|
||||
<isNotEmpty property="searchEndDt">
|
||||
AND #searchEndDt# >= TO_CHAR(b.CREAT_DT, 'YYYY.MM.DD' )
|
||||
</isNotEmpty>
|
||||
|
||||
|
||||
GROUP BY a.MENU_NM,
|
||||
a.APPRO_NM,
|
||||
a.METHOD_NM,
|
||||
a.SORT_NUM
|
||||
ORDER BY A.SORT_NUM
|
||||
</select>
|
||||
|
||||
<!-- 사용자 메뉴별 접속 로그 리스트 -->
|
||||
<select id="LoginLogDAO.selectWebMenuLogList" parameterClass="loginLog" resultClass="loginLog">
|
||||
/* 임시.*NOT_SQL_LOG.* LoginLogDAO.selectWebMenuLogList */
|
||||
SELECT a.MENU_NM AS menuNm,
|
||||
a.APPRO_NM AS approNm,
|
||||
substring(a.METHOD_NM from 0 for strpos(a.METHOD_NM, '.do')) as methodNm,
|
||||
/*
|
||||
a.METHOD_NM AS methodNm,
|
||||
*/
|
||||
a.SORT_NUM AS sortNum,
|
||||
count(*) AS totCnt
|
||||
|
||||
@ -964,13 +890,9 @@
|
||||
|
||||
GROUP BY a.MENU_NM,
|
||||
a.APPRO_NM,
|
||||
substring(a.METHOD_NM from 0 for strpos(a.METHOD_NM, '.do')),
|
||||
/*
|
||||
a.METHOD_NM,
|
||||
*/
|
||||
a.SORT_NUM
|
||||
ORDER BY A.SORT_NUM
|
||||
|
||||
</select>
|
||||
|
||||
<!-- 사용자 메뉴별 접속 로그 리스트 -->
|
||||
|
||||
@ -60,10 +60,7 @@
|
||||
, IHIDNUM AS ihidNum
|
||||
, EMAIL_ADRES AS email
|
||||
, 'USR' AS userSe
|
||||
/*
|
||||
, ORGNZT_ID AS orgnztId
|
||||
*/
|
||||
, AREA_NO AS orgnztId
|
||||
, ESNTL_ID AS uniqId
|
||||
, PASS_MISS AS passMiss
|
||||
, EMPLYR_STTUS_CODE AS emplyrSttusCode
|
||||
@ -83,7 +80,7 @@
|
||||
|
||||
<!-- 비밀번호비교를 위한 데이터 가져오기 용 -->
|
||||
<select id="loginDAO.actionLoginNew" resultMap="login">
|
||||
/*loginDAO.loginDAO.actionLoginNew*/
|
||||
/*loginDAO.actionLogin*/
|
||||
<!-- 일반회원 -->
|
||||
<isNotNull property="userSe">
|
||||
<isEqual property="userSe" compareValue="GNR">
|
||||
@ -93,7 +90,6 @@
|
||||
, ihidNum AS ihidNum
|
||||
, mber_email_adres AS email
|
||||
, 'GNR' AS userSe
|
||||
, '' AS membCelnum
|
||||
, '-' AS orgnztId
|
||||
, ESNTL_ID AS uniqId
|
||||
, 0 AS passMiss
|
||||
@ -113,11 +109,7 @@
|
||||
, IHIDNUM AS ihidNum
|
||||
, EMAIL_ADRES AS email
|
||||
, 'USR' AS userSe
|
||||
/*
|
||||
, ORGNZT_ID AS orgnztId
|
||||
*/
|
||||
, OFFM_TELNO AS membCelnum
|
||||
, AREA_NO AS orgnztId
|
||||
, ESNTL_ID AS uniqId
|
||||
, PASS_MISS AS passMiss
|
||||
, EMPLYR_STTUS_CODE AS emplyrSttusCode
|
||||
@ -185,7 +177,7 @@
|
||||
<!-- e배움터 연동 후 mber_seq가 아닌 mber_id로 로그인 -->
|
||||
<select id="loginDAO.actionLoginMberId" resultMap="login">
|
||||
/*loginDAO.actionLoginMberId*/
|
||||
<!-- 일반회원 loginDAO.loginDAO.actionLoginMberId -->
|
||||
<!-- 일반회원 loginDAO.actionLoginDev -->
|
||||
<isNotNull property="userSe">
|
||||
<isEqual property="userSe" compareValue="GNR">
|
||||
SELECT mber_id AS id
|
||||
@ -436,15 +428,11 @@
|
||||
|
||||
<!-- 사용자 권한 조회 -->
|
||||
<select id="loginDAO.getUserAuth" parameterClass="loginVO" resultClass="loginVO" >
|
||||
/* loginDAO.getUserAuth */
|
||||
<![CDATA[
|
||||
SELECT A.SCRTY_DTRMN_TRGET_ID id, A.AUTHOR_CODE AUTHORITY
|
||||
, c.area_no orgnztId
|
||||
FROM LETTNEMPLYRSCRTYESTBS A, COMVNUSERMASTER B
|
||||
LEFT OUTER JOIN LETTNEMPLYRINFO C
|
||||
ON (1=1 and b.esntl_id = c.esntl_id)
|
||||
WHERE A.SCRTY_DTRMN_TRGET_ID = B.ESNTL_ID
|
||||
AND B.USER_ID = #id#
|
||||
FROM LETTNEMPLYRSCRTYESTBS A, COMVNUSERMASTER B
|
||||
WHERE A.SCRTY_DTRMN_TRGET_ID = B.ESNTL_ID
|
||||
AND B.USER_ID = #id#
|
||||
]]>
|
||||
</select>
|
||||
|
||||
|
||||
@ -127,7 +127,7 @@
|
||||
A.LAST_UPDT_PNTTM,
|
||||
A.LAST_UPDUSR_ID,
|
||||
A.QESTN_SN,
|
||||
A.QESTN_TY_CODE "qestnTyCode",
|
||||
A.QESTN_TY_CODE,
|
||||
A.QESTN_CN,
|
||||
A.MXMM_CHOISE_CO,
|
||||
A.QUSTNR_TMPLAT_ID "qestnrTmplatId"
|
||||
@ -805,9 +805,9 @@
|
||||
, d.answer1
|
||||
|
||||
, e.prcs_ord AS prcsAplctPrdOrd
|
||||
|
||||
|
||||
|
||||
, f.qestn_ty_code AS qestnTyCode
|
||||
|
||||
FROM lettnqustnrqesitm a
|
||||
LEFT OUTER JOIN LETTNQESTNRRSLTDETAIL b
|
||||
on(1=1
|
||||
@ -862,9 +862,6 @@
|
||||
AND a.qustnr_qesitm_id=d.qustnr_qesitm_id
|
||||
|
||||
)
|
||||
|
||||
LEFT OUTER JOIN lettnqustnrqesitm f
|
||||
ON a.QUSTNR_QESITM_ID = f.QUSTNR_QESITM_ID
|
||||
|
||||
,(
|
||||
|
||||
|
||||
@ -526,7 +526,7 @@
|
||||
SELECT CODE_NM
|
||||
FROM LETTCCMMNDETAILCODE
|
||||
WHERE USE_AT = 'Y'
|
||||
AND CODE_ID = 'VEA003'
|
||||
AND CODE_ID = 'VEA002'
|
||||
AND CODE = a.edu_state_cd
|
||||
)
|
||||
END AS eduStateCdNm
|
||||
@ -701,17 +701,11 @@
|
||||
</isEmpty>
|
||||
|
||||
ORDER BY
|
||||
|
||||
<isEmpty property="orderByQuery">
|
||||
|
||||
a.req_pnttm DESC
|
||||
, a.cmd_trgt_info_ord DESC
|
||||
, a.prcs_aplct_prd_ord_cmplt DESC
|
||||
, a.frst_regist_pnttm desc
|
||||
</isEmpty>
|
||||
<isNotEmpty property="orderByQuery">
|
||||
$orderByQuery$
|
||||
</isNotEmpty>
|
||||
|
||||
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY;
|
||||
|
||||
</select>
|
||||
@ -762,7 +756,6 @@
|
||||
a.cmd_trgt_info_ord AS cmdTrgtInfoOrd
|
||||
, a.req_nmbr AS reqNmbr
|
||||
, a.prsctr_nm AS prsctrNm
|
||||
, a.req_state_cd AS reqStateCd
|
||||
FROM
|
||||
<include refid="CmdTrgtInfoMngDAO.table_name"/> a
|
||||
WHERE
|
||||
@ -944,7 +937,7 @@
|
||||
, LAST_UPDUSR_ID = #lastUpdusrId#
|
||||
|
||||
<isNotEmpty property="rmrks">
|
||||
, rmrks = COALESCE(rmrks, '') || #rmrks#
|
||||
, rmrks = rmrks || #rmrks#
|
||||
</isNotEmpty>
|
||||
|
||||
WHERE cmd_trgt_info_ord IN
|
||||
|
||||
@ -1,89 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">
|
||||
|
||||
<sqlMap namespace="Send">
|
||||
|
||||
<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
|
||||
<typeAlias alias="sendAtVO" type="kcc.ve.cmm.sendAt.SendAtVO"/>
|
||||
<typeAlias alias="sendSmsVO" type="kcc.ve.cmm.sendAt.SendSmsVO"/>
|
||||
<typeAlias alias="vEPrcsDetailVO" type="kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO"/>
|
||||
|
||||
<select id="sendDAO.selectToken" resultClass="sendAtVO">
|
||||
|
||||
SELECT
|
||||
A.ACCESSTOKEN,
|
||||
A.TYPE,
|
||||
A.EXPIRED
|
||||
FROM
|
||||
ppurio_token A
|
||||
|
||||
</select>
|
||||
|
||||
<update id="sendDAO.updateToken" parameterClass="sendAtVO">
|
||||
|
||||
UPDATE ppurio_token
|
||||
SET
|
||||
ACCESSTOKEN = #accesstoken#,
|
||||
TYPE = #type#,
|
||||
EXPIRED = #expired#
|
||||
|
||||
</update>
|
||||
|
||||
<select id="sendDAO.select7DaybeforeAt" parameterClass="java.lang.Integer" resultClass="vEPrcsDetailVO">
|
||||
|
||||
SELECT COUNT(1) OVER () AS totCnt,
|
||||
a.prcs_aplct_prd_ord AS prcsAplctPrdOrd,
|
||||
a.lctr_div_cd AS lctrDivCd,
|
||||
a.strt_pnttm AS strtPnttm,
|
||||
a.end_pnttm AS endPnttm,
|
||||
a.use_yn AS useYn,
|
||||
TO_CHAR(a.frst_regist_pnttm, 'YYYY-MM-DD') AS frstRegistPnttm,
|
||||
a.frst_register_id AS frstRegisterId,
|
||||
TO_CHAR(a.last_updt_pnttm, 'YYYY-MM-DD') AS lastUpdtPnttm,
|
||||
a.last_updusr_id AS lastUpdusrId,
|
||||
a.anncm_cn AS anncmCn,
|
||||
a.popup_cn AS popupCn,
|
||||
a.atch_file_id AS atchFileId,
|
||||
a.title AS title,
|
||||
(SELECT user_nm
|
||||
FROM comvnusermaster
|
||||
WHERE esntl_id = a.frst_register_id
|
||||
LIMIT 1) AS frstRegisterNm,
|
||||
(SELECT orignl_file_nm
|
||||
FROM lettnfiledetail
|
||||
WHERE atch_file_id = a.atch_file_id
|
||||
LIMIT 1) AS atchFileNm,
|
||||
b.prcs_nm as prcsNm,
|
||||
b.prcs_div as prcsDiv,
|
||||
a.edu_place as eduPlace,
|
||||
a.qustnr_strt_pnttm AS qustnrStrtPnttm,
|
||||
a.qustnr_tm AS qustnrTm,
|
||||
a.dead_line_dt AS deadLineDt,
|
||||
a.prcs_ord AS prcsOrd,
|
||||
a.edu_part_cd AS eduPartCd,
|
||||
a.nos AS nos,
|
||||
a.ddln_cd AS ddlnCd,
|
||||
a.edu_strt_pnttm AS eduStrtPnttm,
|
||||
a.edu_ddln_pnttm AS eduDdlnPnttm,
|
||||
a.prcs_cn AS prcsCn,
|
||||
b.prcs_cn AS prcsCnTwo,
|
||||
'' AS lctrPlanRsltAtchFileId,
|
||||
a.prvt_memo_cn AS prvtMemoCn,
|
||||
a.cn_atch_file_id AS cnAtchFileId,
|
||||
phone_agg.phone_list AS phone
|
||||
FROM ve_prcs_aplct_prd a
|
||||
JOIN ve_prcs b
|
||||
ON a.prcs_ord = b.prcs_ord
|
||||
LEFT outer JOIN (SELECT e.prcs_ord,
|
||||
string_agg(e.phone, ',' ORDER BY e.phone) AS phone_list
|
||||
FROM ve_edu_aplct e
|
||||
WHERE 1 = 1
|
||||
AND e.sbmt_yn = 'Y'
|
||||
AND e.use_yn = 'Y'
|
||||
GROUP BY e.prcs_ord) phone_agg
|
||||
ON phone_agg.prcs_ord = a.prcs_aplct_prd_ord
|
||||
WHERE 1 = 1
|
||||
AND to_date(a.strt_pnttm, 'YYYY.MM.DD') = current_date + #diffDay#
|
||||
</select>
|
||||
|
||||
</sqlMap>
|
||||
@ -526,7 +526,7 @@
|
||||
SELECT CODE_NM
|
||||
FROM LETTCCMMNDETAILCODE
|
||||
WHERE USE_AT = 'Y'
|
||||
AND CODE_ID = 'VEA003'
|
||||
AND CODE_ID = 'VEA002'
|
||||
AND CODE = a.edu_state_cd
|
||||
)
|
||||
END AS eduStateCdNm
|
||||
@ -702,17 +702,10 @@
|
||||
|
||||
ORDER BY
|
||||
|
||||
<isEmpty property="orderByQuery">
|
||||
a.req_pnttm DESC
|
||||
, a.sspn_idtmt_trgt_ord DESC
|
||||
, a.prcs_aplct_prd_ord_cmplt DESC
|
||||
, a.frst_regist_pnttm desc
|
||||
</isEmpty>
|
||||
<isNotEmpty property="orderByQuery">
|
||||
$orderByQuery$
|
||||
</isNotEmpty>
|
||||
|
||||
|
||||
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY;
|
||||
|
||||
</select>
|
||||
@ -763,7 +756,6 @@
|
||||
a.sspn_idtmt_trgt_ord AS sspnIdtmtTrgtOrd
|
||||
, a.req_nmbr AS reqNmbr
|
||||
, a.prsctr_nm AS prsctrNm
|
||||
, a.req_state_cd AS reqStateCd
|
||||
FROM
|
||||
<include refid="CndtnTrgtInfoMngDAO.table_name"/> a
|
||||
WHERE
|
||||
@ -946,7 +938,7 @@
|
||||
, LAST_UPDUSR_ID = #lastUpdusrId#
|
||||
|
||||
<isNotEmpty property="rmrks">
|
||||
, rmrks = COALESCE(rmrks, '') || #rmrks#
|
||||
, rmrks = rmrks || #rmrks#
|
||||
</isNotEmpty>
|
||||
|
||||
WHERE SSPN_IDTMT_TRGT_ORD IN
|
||||
|
||||
@ -806,11 +806,7 @@
|
||||
ELSE ''
|
||||
END trgtSex ,
|
||||
|
||||
/* 설문했으면 ID가 있음 - 예전 정보로 삭제*/
|
||||
/*
|
||||
qe.QESTNR_ID AS qestnrId ,
|
||||
*/
|
||||
|
||||
qe.QESTNR_ID AS qestnrId , /* 설문했으면 ID가 있음 */
|
||||
vadi.APLCT_STATE_CD AS aplctStateCd, /* 이수 상태 */
|
||||
vadi.CNCL_CN AS cnclCn, /* 취소사유 */
|
||||
vadi.CNCL_ATCH_FILE_ID AS cnclAtchFileId, /* 취소요청파일 */
|
||||
@ -824,217 +820,6 @@
|
||||
vsit.d_birth AS dBirth ,
|
||||
|
||||
|
||||
CASE
|
||||
WHEN to_char(NOW(),
|
||||
'YYYY.MM.DD') >= COALESCE(vpap.edu_ddln_pnttm,
|
||||
vpap.edu_strt_pnttm) THEN 1
|
||||
ELSE 0
|
||||
END AS qestRsltExists,
|
||||
/* 설문지 정보 */
|
||||
I.qustnr_tmplat_id AS qustnrTmplatId ,
|
||||
COALESCE(i.qestnr_id_10, qustnr01.QESTNR_ID_10
|
||||
) AS qestnrId10 ,
|
||||
COALESCE(i.qestnr_id_20, qustnr01.QESTNR_ID_20
|
||||
) AS qestnrId20 ,
|
||||
COALESCE(i.qestnr_id_30, qustnr01.QESTNR_ID_30
|
||||
) AS qestnrId30 ,
|
||||
/* 답변 정보 */
|
||||
qustnr01.QESTNR_ID_10_CNT AS qestnrId10Cnt ,
|
||||
qustnr01.QESTNR_ID_20_CNT AS qestnrId20Cnt ,
|
||||
qustnr01.QESTNR_ID_30_CNT AS qestnrId30Cnt
|
||||
|
||||
|
||||
FROM
|
||||
<include refid="VEEduMIXDAO.table_name"/> a
|
||||
JOIN ve_prcs_aplct_prd vpap ON
|
||||
a.PRCS_ORD = vpap.PRCS_APLCT_PRD_ORD
|
||||
LEFT JOIN VEA_APLCT_DETAIL_INFO vadi ON
|
||||
a.EDU_APLCT_ORD = vadi.EDU_APLCT_ORD
|
||||
/* AND vpap.PRCS_APLCT_PRD_ORD = vadi.PRCS_APLCT_PRD_ORD */
|
||||
LEFT OUTER JOIN LETTNGNRLMBER le ON
|
||||
/*
|
||||
a.USER_ID = le.MBER_ID
|
||||
*/
|
||||
a.USER_ID = le.esntl_id
|
||||
|
||||
/*
|
||||
LEFT JOIN LETTNQESTNRINFO qe ON
|
||||
a.USER_ID = qe.FRST_REGISTER_ID
|
||||
*/
|
||||
|
||||
LEFT JOIN VEA_SSPN_IDMT_TRGT vsit
|
||||
ON (
|
||||
/*
|
||||
a.user_id = vsit.user_id
|
||||
AND a.edu_aplct_ord=vsit.edu_aplct_ord
|
||||
*/
|
||||
/*
|
||||
신청할때 대상자 정보를 rnds_ord에 넣는다.
|
||||
*/
|
||||
a.rnds_ord=vsit.SSPN_IDTMT_TRGT_ORD
|
||||
)
|
||||
|
||||
|
||||
|
||||
LEFT OUTER JOIN (
|
||||
SELECT
|
||||
aa.EDU_APLCT_ORD ,
|
||||
aa.prcs_ord,
|
||||
aa.QUSTNR_TMPLAT_ID ,
|
||||
aa.user_id ,
|
||||
|
||||
MAX(CASE WHEN bb.site_id_cd = '10' THEN aa.QESTNR_ID ELSE NULL END) AS QESTNR_ID_10,
|
||||
MAX(CASE WHEN bb.site_id_cd = '20' THEN aa.QESTNR_ID ELSE NULL END) AS QESTNR_ID_20,
|
||||
MAX(CASE WHEN bb.site_id_cd = '30' THEN aa.QESTNR_ID ELSE NULL END) AS QESTNR_ID_30,
|
||||
|
||||
SUM(CASE WHEN bb.site_id_cd = '10' THEN 1 ELSE 0 END) AS QESTNR_ID_10_CNT,
|
||||
SUM(CASE WHEN bb.site_id_cd = '20' THEN 1 ELSE 0 END) AS QESTNR_ID_20_CNT,
|
||||
SUM(CASE WHEN bb.site_id_cd = '30' THEN 1 ELSE 0 END) AS QESTNR_ID_30_CNT
|
||||
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
a.EDU_APLCT_ORD ,
|
||||
a.prcs_ord,
|
||||
b.QUSTNR_TMPLAT_ID ,
|
||||
b.QESTNR_ID ,
|
||||
a.user_id
|
||||
FROM
|
||||
ve_edu_aplct a ,
|
||||
LETTNQESTNRRSLTDETAIL b
|
||||
WHERE
|
||||
1 = 1 /*
|
||||
AND b.respond_id = a.user_id */
|
||||
AND a.edu_aplct_ord = b.edu_aplct_ord
|
||||
AND (b.EDU_CHASI_ORD IS NULL or b.EDU_CHASI_ORD = '')
|
||||
)aa ,
|
||||
lettnqestnrinfo bb
|
||||
WHERE
|
||||
/*
|
||||
aa.qustnr_tmplat_id = bb.qustnr_tmplat_id
|
||||
*/
|
||||
1=1
|
||||
AND aa.qestnr_id = bb.qestnr_id
|
||||
GROUP BY
|
||||
aa.EDU_APLCT_ORD ,
|
||||
aa.prcs_ord,
|
||||
aa.QUSTNR_TMPLAT_ID ,
|
||||
aa.user_id ) qustnr01 ON
|
||||
( a.edu_aplct_ord = qustnr01.edu_Aplct_Ord
|
||||
AND a.PRCS_ORD = qustnr01.prcs_Ord )
|
||||
LEFT OUTER JOIN (/* 현재 진행가능한 설문 정보(기본, 선생님, 강사) 여러개가 있는 경우는 최근 등록된 설문 정보를 가져온다.*/
|
||||
SELECT
|
||||
a.QUSTNR_TMPLAT_ID ,
|
||||
a.SITE_ID ,
|
||||
|
||||
a.QESTNR_ID as QESTNR_ID_10 ,
|
||||
null as QESTNR_ID_20 ,
|
||||
null as QESTNR_ID_30 ,
|
||||
a.qustnr_bgnde ,
|
||||
a.qustnr_endde
|
||||
|
||||
/*
|
||||
MAX(CASE WHEN a.site_id_cd = '10' THEN a.QESTNR_ID ELSE NULL END) AS QESTNR_ID_10,
|
||||
MAX(CASE WHEN a.site_id_cd = '20' THEN a.QESTNR_ID ELSE NULL END) AS QESTNR_ID_20,
|
||||
MAX(CASE WHEN a.site_id_cd = '30' THEN a.QESTNR_ID ELSE NULL END) AS QESTNR_ID_30
|
||||
*/
|
||||
|
||||
FROM
|
||||
LETTNQESTNRINFO a
|
||||
WHERE
|
||||
a.SITE_ID = #siteId#
|
||||
AND a.SITE_ID_CD IN ('10', '20', '30')
|
||||
|
||||
/*
|
||||
|
||||
AND TO_CHAR(NOW(), 'YYYY.MM.DD') BETWEEN COALESCE(a.qustnr_bgnde, '2000.01.01') AND COALESCE(a.qustnr_endde, '9999.12.31')
|
||||
|
||||
GROUP BY
|
||||
a.QUSTNR_TMPLAT_ID ,
|
||||
a.SITE_ID
|
||||
*/
|
||||
|
||||
) I ON
|
||||
(replace(vpap.edu_strt_pnttm,'.','') between coalesce(I.qustnr_bgnde, '20000101') and coalesce(I.qustnr_endde,'99991231'))
|
||||
|
||||
|
||||
|
||||
WHERE
|
||||
1=1
|
||||
<isNotEmpty property="prcsOrd">
|
||||
AND a.prcs_ord=#prcsOrd#
|
||||
</isNotEmpty>
|
||||
<isNotEmpty property="sbmtYn">
|
||||
AND a.sbmt_yn=#sbmtYn#
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="searchSelStatus">
|
||||
AND a.aprvl_cd = #searchSelStatus#
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="searchQuery">
|
||||
$searchQuery$
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="searchSmbtStartDt">
|
||||
AND TO_CHAR(a.sbmt_pnttm, 'YYYYMMDD') <![CDATA[ >= ]]> REPLACE(#searchSmbtStartDt#, '.' , '')
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="searchSmbtEndDt">
|
||||
AND TO_CHAR(a.sbmt_pnttm, 'YYYYMMDD') <![CDATA[ <= ]]> REPLACE(#searchSmbtEndDt#, '.' , '')
|
||||
</isNotEmpty>
|
||||
|
||||
AND a.use_yn = 'Y'
|
||||
|
||||
/* 승인(20), 취소요청(35), 취소승인(40), 확정(60)된 사람만 보여줌 old */
|
||||
AND a.aprvl_cd IN ('20', '35', '40', '60')
|
||||
|
||||
/* 요청(10), 승인(20), 반려(30), 확정(60) 이건 교육확정된 것 이므로 확정된 사람기준으로 보여줌 */
|
||||
AND a.aprvl_cd IN ('60')
|
||||
|
||||
|
||||
|
||||
ORDER BY a.frst_regist_pnttm ASC
|
||||
|
||||
</select>
|
||||
|
||||
<select id="VEEduMIXDAO.selectCmdTrgtList4Cmplt" parameterClass="VEEduAplctVO" resultClass="VEEduAplctVO">
|
||||
/* VEEduMIXDAO.selectCmdTrgtList4Cmplt */
|
||||
SELECT
|
||||
ROW_NUMBER() OVER(
|
||||
ORDER BY a.frst_regist_pnttm ASC) AS rowNo,
|
||||
vpap.TITLE AS title,
|
||||
|
||||
vsit.CMPTNT_ATHRT AS cmptntAthrt,
|
||||
vsit.VNT_YEAR AS vntYear,
|
||||
vsit.VNT_NMBR AS vntNmbr,
|
||||
vsit.PRSCTR_NM AS prsctrNm,
|
||||
vsit.req_nmbr AS reqNmbr,
|
||||
|
||||
CASE
|
||||
WHEN vsit.sex = 'M' THEN '남성'
|
||||
WHEN vsit.sex = 'F' THEN '여성'
|
||||
ELSE ''
|
||||
END trgtSex ,
|
||||
|
||||
/* 설문했으면 ID가 있음 - 옛날 방식으로 삭제처리함*/
|
||||
/*
|
||||
qe.QESTNR_ID AS qestnrId ,
|
||||
*/
|
||||
|
||||
vadi.APLCT_STATE_CD AS aplctStateCd, /* 이수 상태 */
|
||||
vadi.CNCL_CN AS cnclCn, /* 취소사유 */
|
||||
vadi.CNCL_ATCH_FILE_ID AS cnclAtchFileId, /* 취소요청파일 */
|
||||
vsit.edu_state_cd AS eduStateCd,
|
||||
le.MBER_NM AS userNm,
|
||||
le.MBER_ID AS mberId,
|
||||
<include refid="VEEduMIXDAO.select_column_name"/>,
|
||||
vsit.trgt_nm AS trgtNm,
|
||||
vsit.cmd_trgt_info_ord AS cmdTrgtInfoOrd,
|
||||
vsit.clphone AS vs_clphone,
|
||||
vsit.d_birth AS dBirth ,
|
||||
|
||||
|
||||
CASE
|
||||
WHEN to_char(NOW(),
|
||||
'YYYY.MM.DD') > COALESCE(vpap.edu_ddln_pnttm,
|
||||
@ -1062,16 +847,14 @@
|
||||
LEFT JOIN VEA_APLCT_DETAIL_INFO vadi ON
|
||||
a.EDU_APLCT_ORD = vadi.EDU_APLCT_ORD
|
||||
/* AND vpap.PRCS_APLCT_PRD_ORD = vadi.PRCS_APLCT_PRD_ORD */
|
||||
LEFT OUTER JOIN LETTNGNRLMBER le ON
|
||||
JOIN LETTNGNRLMBER le ON
|
||||
/*
|
||||
a.USER_ID = le.MBER_ID
|
||||
*/
|
||||
a.USER_ID = le.esntl_id
|
||||
/*
|
||||
LEFT JOIN LETTNQESTNRINFO qe ON
|
||||
a.USER_ID = qe.FRST_REGISTER_ID
|
||||
*/
|
||||
LEFT JOIN vea_cmd_trgt_info vsit
|
||||
a.USER_ID = qe.FRST_REGISTER_ID
|
||||
LEFT JOIN VEA_SSPN_IDMT_TRGT vsit
|
||||
ON (
|
||||
/*
|
||||
a.user_id = vsit.user_id
|
||||
@ -1080,7 +863,7 @@
|
||||
/*
|
||||
신청할때 대상자 정보를 rnds_ord에 넣는다.
|
||||
*/
|
||||
a.rnds_ord=vsit.cmd_trgt_info_ord
|
||||
a.rnds_ord=vsit.SSPN_IDTMT_TRGT_ORD
|
||||
)
|
||||
|
||||
|
||||
@ -2022,7 +1805,7 @@
|
||||
/*
|
||||
ORDER BY 1=1
|
||||
*/
|
||||
ORDER BY
|
||||
ORDER BY
|
||||
<isNotEmpty property="orderByQuery">
|
||||
$orderByQuery$
|
||||
</isNotEmpty>
|
||||
@ -8967,31 +8750,6 @@ VALUES
|
||||
sspn_idtmt_trgt_ord = #sspnIdtmtTrgtOrd#
|
||||
|
||||
</update>
|
||||
|
||||
<update id="VEEduMIXDAO.updateCmdEduStateCd" parameterClass="VEEduAplctVO">
|
||||
/* VEEduMIXDAO.updateEduStateCd */
|
||||
|
||||
UPDATE
|
||||
vea_cmd_trgt_info
|
||||
SET
|
||||
edu_state_cd = #eduStateCd#
|
||||
/* 교육코드가 10(미이수),60(연기) 이면 미완료 처리(교육이력을 남기기위해 의뢰와 구분용..의뢰는 교육 경험이 없는 경우, 미완료는 교육 이수에 실패한 경우) */
|
||||
<isEqual property="eduStateCd" compareValue="10">
|
||||
, req_state_cd = '35'
|
||||
</isEqual>
|
||||
<isEqual property="eduStateCd" compareValue="60">
|
||||
, req_state_cd = '35'
|
||||
</isEqual>
|
||||
|
||||
/* 교육코드가 20(이수) 이면 완료 처리 */
|
||||
<isEqual property="eduStateCd" compareValue="20">
|
||||
, req_state_cd = '30'
|
||||
</isEqual>
|
||||
|
||||
WHERE
|
||||
cmd_trgt_info_ord = #cmdTrgtInfoOrd#
|
||||
|
||||
</update>
|
||||
|
||||
<update id="VEEduMIXDAO.updateAplctEmail" parameterClass="VEEduAplctVO">
|
||||
/* VEEduMIXDAO.AplctEmail */
|
||||
@ -10501,7 +10259,7 @@ VALUES
|
||||
<iterate open="(" close=")" conjunction="," property="rsltList" prepend="AND b.edu_chasi_ord IN" > #rsltList[]#</iterate>
|
||||
ORDER BY b.EDU_HOPE_DT ASC, B.STRT_TM ASC;
|
||||
</select>
|
||||
|
||||
|
||||
<select id="VEEduMIXDAO.selectExprnRsltFileDownList" parameterClass="VEEduAplctVO" resultClass="VEEduAplctVO">
|
||||
/* 임시.*NOT_SQL_LOG.* VEEduMIXDAO.selectExprnRsltFileDownList */
|
||||
SELECT
|
||||
@ -10523,164 +10281,4 @@ VALUES
|
||||
</iterate>
|
||||
|
||||
</select>
|
||||
|
||||
<select id="VEEduMIXDAO.selectCrtfcMngList" parameterClass="VEEduAplctVO" resultClass="VEEduAplctVO">
|
||||
SELECT
|
||||
ROW_NUMBER() OVER ( ORDER BY a.frst_regist_pnttm ASC) AS rowNo
|
||||
, count(*) over () AS totCnt
|
||||
, vpap.TITLE AS title
|
||||
, vsit.CMPTNT_ATHRT AS cmptntAthrt
|
||||
, vsit.VNT_YEAR AS vntYear
|
||||
, vsit.VNT_NMBR AS vntNmbr
|
||||
, vsit.PRSCTR_NM AS prsctrNm
|
||||
, vsit.req_nmbr AS reqNmbr
|
||||
, CASE WHEN vsit.sex = 'M' THEN '남성' WHEN vsit.sex = 'F' THEN '여성' ELSE '' END trgtSex
|
||||
, /* 설문했으면 ID가 있음 */ vadi.APLCT_STATE_CD AS aplctStateCd
|
||||
, /* 이수 상태 */ vadi.CNCL_CN AS cnclCn
|
||||
, /* 취소사유 */ vadi.CNCL_ATCH_FILE_ID AS cnclAtchFileId
|
||||
, /* 취소요청파일 */ vsit.edu_state_cd AS eduStateCd
|
||||
, le.MBER_NM AS userNm
|
||||
, le.MBER_ID AS mberId
|
||||
, a.edu_aplct_ord AS eduAplctOrd
|
||||
, a.lctr_div_cd AS lctrDivCd
|
||||
, a.user_id AS userId
|
||||
, a.prcs_ord AS prcsOrd
|
||||
, a.edu_slct_cd AS eduSlctCd
|
||||
, a.edu_slct_area_cd AS eduSlctAreaCd
|
||||
, a.schol_instt_nm AS scholInsttNm
|
||||
, a.schol_div_cd AS scholDivCd
|
||||
, a.isltn_schol_yn AS isltnScholYn
|
||||
, a.addr AS addr
|
||||
, a.addr_detail AS addrDetail
|
||||
, a.chrg_nm AS chrgNm
|
||||
, a.d_birth AS dBirth
|
||||
, a.clphone AS clphone
|
||||
, a.phone AS phone
|
||||
, a.email AS email
|
||||
, a.edu_place AS eduPlace
|
||||
, a.sbmt_yn AS sbmtYn
|
||||
, TO_CHAR(a.sbmt_pnttm, 'YYYY-MM-DD') AS sbmtPnttm
|
||||
, a.aprvl_cd AS aprvlCd
|
||||
, TO_CHAR(a.aprvl_pnttm, 'YYYY-MM-DD') AS aprvlPnttm
|
||||
, a.aprvl_cn AS aprvlCn
|
||||
, a.instt_nm AS insttNm
|
||||
, a.instt_div_cd AS insttDivCd
|
||||
, a.hope_sbjct AS hopeSbjct
|
||||
, a.rqst_cn AS rqstCn
|
||||
, TO_CHAR(a.frst_regist_pnttm, 'YYYY-MM-DD') AS frstRegistPnttm
|
||||
, a.frst_register_id AS frstRegisterId
|
||||
, TO_CHAR(a.last_updt_pnttm, 'YYYY-MM-DD') AS lastUpdtPnttm
|
||||
, a.last_updusr_id AS lastUpdusrId
|
||||
, a.schol_seal_atch_file_id AS scholSealAtchFileId
|
||||
, a.edu_trgt AS eduTrgt
|
||||
, a.edu_prsnl AS eduPrsnl
|
||||
, a.edu_cn AS eduCn
|
||||
, a.strt_oprtn_dt AS strtOprtnDt
|
||||
, a.end_oprtn_dt AS endOprtnDt
|
||||
, a.rprt_sbmt_dt AS rprtSbmtDt
|
||||
, a.trans_atch_file_id AS transAtchFileId
|
||||
, a.use_yn AS useYn
|
||||
, a.aplct_cn AS aplctCn
|
||||
, a.rslt_atch_file_id AS rsltAtchFileId
|
||||
, vsit.trgt_nm AS trgtNm
|
||||
, vsit.sspn_idtmt_trgt_ord AS sspnIdtmtTrgtOrd
|
||||
, vsit.clphone AS vs_clphone
|
||||
, vsit.d_birth AS dBirth
|
||||
, CASE
|
||||
WHEN TO_CHAR(NOW(), 'YYYY.MM.DD') > COALESCE(vpap.edu_ddln_pnttm, vpap.edu_strt_pnttm) THEN 1
|
||||
ELSE 0 END AS qestRsltExists
|
||||
, /* 설문지 정보 */ I.qustnr_tmplat_id AS qustnrTmplatId
|
||||
, COALESCE(qustnr01.QESTNR_ID_10, i.qestnr_id_10) AS qestnrId10
|
||||
, COALESCE(qustnr01.QESTNR_ID_20, i.qestnr_id_20) AS qestnrId20
|
||||
, COALESCE(qustnr01.QESTNR_ID_30, i.qestnr_id_30) AS qestnrId30
|
||||
, /* 답변 정보 */ qustnr01.QESTNR_ID_10_CNT AS qestnrId10Cnt
|
||||
, qustnr01.QESTNR_ID_20_CNT AS qestnrId20Cnt
|
||||
, qustnr01.QESTNR_ID_30_CNT AS qestnrId30Cnt
|
||||
FROM
|
||||
ve_edu_aplct a
|
||||
JOIN ve_prcs_aplct_prd vpap ON a.PRCS_ORD = vpap.PRCS_APLCT_PRD_ORD
|
||||
LEFT JOIN VEA_APLCT_DETAIL_INFO vadi ON a.EDU_APLCT_ORD = vadi.EDU_APLCT_ORD /*
|
||||
AND vpap.PRCS_APLCT_PRD_ORD = vadi.PRCS_APLCT_PRD_ORD */
|
||||
LEFT OUTER JOIN LETTNGNRLMBER le ON /* a.USER_ID = le.MBER_ID */ a.USER_ID = le.esntl_id
|
||||
LEFT JOIN VEA_SSPN_IDMT_TRGT vsit ON (a.rnds_ord = vsit.SSPN_IDTMT_TRGT_ORD)
|
||||
LEFT OUTER JOIN (SELECT
|
||||
aa.EDU_APLCT_ORD
|
||||
, aa.prcs_ord
|
||||
, aa.QUSTNR_TMPLAT_ID
|
||||
, aa.user_id
|
||||
, MAX(CASE WHEN bb.site_id_cd = '10' THEN aa.QESTNR_ID ELSE NULL END) AS QESTNR_ID_10
|
||||
, MAX(CASE WHEN bb.site_id_cd = '20' THEN aa.QESTNR_ID ELSE NULL END) AS QESTNR_ID_20
|
||||
, MAX(CASE WHEN bb.site_id_cd = '30' THEN aa.QESTNR_ID ELSE NULL END) AS QESTNR_ID_30
|
||||
, SUM(CASE WHEN bb.site_id_cd = '10' THEN 1 ELSE 0 END) AS QESTNR_ID_10_CNT
|
||||
, SUM(CASE WHEN bb.site_id_cd = '20' THEN 1 ELSE 0 END) AS QESTNR_ID_20_CNT
|
||||
, SUM(CASE WHEN bb.site_id_cd = '30' THEN 1 ELSE 0 END) AS QESTNR_ID_30_CNT
|
||||
FROM
|
||||
(SELECT
|
||||
a.EDU_APLCT_ORD
|
||||
, a.prcs_ord
|
||||
, b.QUSTNR_TMPLAT_ID
|
||||
, b.QESTNR_ID
|
||||
, a.user_id
|
||||
FROM
|
||||
ve_edu_aplct a
|
||||
, LETTNQESTNRRSLTDETAIL b
|
||||
WHERE
|
||||
1 = 1 /*
|
||||
AND b.respond_id = a.user_id */
|
||||
AND a.edu_aplct_ord = b.edu_aplct_ord
|
||||
AND (b.EDU_CHASI_ORD IS NULL OR b.EDU_CHASI_ORD = '')) aa
|
||||
, lettnqestnrinfo bb
|
||||
WHERE /* aa.qustnr_tmplat_id = bb.qustnr_tmplat_id */
|
||||
1 = 1
|
||||
AND aa.qestnr_id = bb.qestnr_id
|
||||
GROUP BY aa.EDU_APLCT_ORD, aa.prcs_ord, aa.QUSTNR_TMPLAT_ID, aa.user_id) qustnr01
|
||||
ON (a.edu_aplct_ord = qustnr01.edu_Aplct_Ord
|
||||
AND a.PRCS_ORD = qustnr01.prcs_Ord)
|
||||
LEFT OUTER JOIN (SELECT
|
||||
a.QUSTNR_TMPLAT_ID
|
||||
, a.SITE_ID
|
||||
, a.QESTNR_ID AS QESTNR_ID_10
|
||||
, NULL AS QESTNR_ID_20
|
||||
, NULL AS QESTNR_ID_30
|
||||
, a.qustnr_bgnde
|
||||
, a.qustnr_endde /* MAX(CASE WHEN a.site_id_cd = '10' THEN a.QESTNR_ID ELSE NULL END) AS QESTNR_ID_10, MAX(CASE WHEN a.site_id_cd = '20' THEN a.QESTNR_ID ELSE NULL END) AS QESTNR_ID_20, MAX(CASE WHEN a.site_id_cd = '30' THEN a.QESTNR_ID ELSE NULL END) AS QESTNR_ID_30 */
|
||||
FROM
|
||||
LETTNQESTNRINFO a
|
||||
WHERE
|
||||
a.SITE_ID = '60'
|
||||
AND a.SITE_ID_CD IN ('10', '20', '30') /*
|
||||
AND TO_CHAR(NOW(), 'YYYY.MM.DD') BETWEEN COALESCE(a.qustnr_bgnde, '2000.01.01')
|
||||
AND COALESCE(a.qustnr_endde, '9999.12.31')
|
||||
GROUP BY a.QUSTNR_TMPLAT_ID , a.SITE_ID */ ) I
|
||||
ON (vpap.edu_strt_pnttm BETWEEN COALESCE(I.qustnr_bgnde, '20000101')
|
||||
AND COALESCE(I.qustnr_endde, '99991231'))
|
||||
WHERE
|
||||
1 = 1
|
||||
AND a.sbmt_yn = 'Y'
|
||||
AND a.use_yn = 'Y' /* 승인(20), 취소요청(35), 취소승인(40), 확정(60)된 사람만 보여줌 old */
|
||||
AND a.aprvl_cd IN ('60')
|
||||
AND a.lctr_div_cd = #lctrDivCd#
|
||||
AND vadi.APLCT_STATE_CD = '20'
|
||||
AND (qustnr01.QESTNR_ID_10_CNT <![CDATA[ > ]]> 0 or le.MBER_ID is null)
|
||||
<isNotEmpty property="searchKeyword" prepend="AND">
|
||||
convert_from(
|
||||
decrypt_iv(
|
||||
decode(a.chrg_nm, 'base64'),
|
||||
convert_to('A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6', 'UTF8'),
|
||||
convert_to('1234567890ABCDEF', 'UTF8'),
|
||||
'aes-cbc'
|
||||
),
|
||||
'UTF8'
|
||||
) = #searchKeyword#
|
||||
</isNotEmpty>
|
||||
ORDER BY 1=1
|
||||
<isNotEmpty property="searchSortCnd">
|
||||
,$searchSortCnd$
|
||||
</isNotEmpty>
|
||||
<isNotEmpty property="searchSortOrd">
|
||||
$searchSortOrd$
|
||||
</isNotEmpty>
|
||||
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY
|
||||
|
||||
</select>
|
||||
</sqlMap>
|
||||
|
||||
@ -57,29 +57,6 @@
|
||||
memo,
|
||||
sig_memo,
|
||||
hope_edu_fld
|
||||
|
||||
, rep_qf
|
||||
, sub_qf
|
||||
, work_area
|
||||
, lct_avl_area_1
|
||||
, lct_avl_area_2
|
||||
, lct_avl_area_3
|
||||
, lct_avl_area_4
|
||||
, lct_avl_area_5
|
||||
, lct_avl_area_6
|
||||
|
||||
, avl_lct_cntnt_1
|
||||
, avl_lct_cntnt_2
|
||||
, avl_lct_cntnt_3
|
||||
|
||||
, gender
|
||||
, rcrt_ctgr
|
||||
, apnt_dt
|
||||
, actv_dt
|
||||
, ovrl_srvy
|
||||
|
||||
, carer
|
||||
|
||||
|
||||
</sql>
|
||||
|
||||
@ -158,28 +135,6 @@
|
||||
a.memo AS memo,
|
||||
a.sig_memo AS sigMemo,
|
||||
a.hope_edu_fld AS hopeEduFld
|
||||
|
||||
, a.rep_qf AS repQf
|
||||
, a.sub_qf AS subQf
|
||||
, a.work_area AS workArea
|
||||
, a.lct_avl_area_1 AS lctAvlArea1
|
||||
, a.lct_avl_area_2 AS lctAvlArea2
|
||||
, a.lct_avl_area_3 AS lctAvlArea3
|
||||
, a.lct_avl_area_4 AS lctAvlArea4
|
||||
, a.lct_avl_area_5 AS lctAvlArea5
|
||||
, a.lct_avl_area_6 AS lctAvlArea6
|
||||
|
||||
, a.avl_lct_cntnt_1 AS avlLctCntnt1
|
||||
, a.avl_lct_cntnt_2 AS avlLctCntnt2
|
||||
, a.avl_lct_cntnt_3 AS avlLctCntnt3
|
||||
|
||||
, a.gender AS gender
|
||||
, a.rcrt_ctgr AS rcrtCtgr
|
||||
, a.apnt_dt AS apntDt
|
||||
, a.actv_dt AS actvDt
|
||||
, a.ovrl_srvy AS ovrlSrvy
|
||||
|
||||
, a.carer AS carer
|
||||
|
||||
</sql>
|
||||
|
||||
@ -247,72 +202,6 @@
|
||||
#memo#,
|
||||
#sigMemo#,
|
||||
#hopeEduFld#
|
||||
|
||||
, #repQf#
|
||||
, #subQf#
|
||||
, #workArea#
|
||||
|
||||
<isNotEmpty property="lctAvlArea1">
|
||||
, 'Y'
|
||||
</isNotEmpty><isEmpty property="lctAvlArea1">
|
||||
, 'N'
|
||||
</isEmpty>
|
||||
|
||||
<isNotEmpty property="lctAvlArea2">
|
||||
, 'Y'
|
||||
</isNotEmpty><isEmpty property="lctAvlArea2">
|
||||
, 'N'
|
||||
</isEmpty>
|
||||
|
||||
<isNotEmpty property="lctAvlArea3">
|
||||
, 'Y'
|
||||
</isNotEmpty><isEmpty property="lctAvlArea3">
|
||||
, 'N'
|
||||
</isEmpty>
|
||||
|
||||
<isNotEmpty property="lctAvlArea4">
|
||||
, 'Y'
|
||||
</isNotEmpty><isEmpty property="lctAvlArea4">
|
||||
, 'N'
|
||||
</isEmpty>
|
||||
|
||||
<isNotEmpty property="lctAvlArea5">
|
||||
, 'Y'
|
||||
</isNotEmpty><isEmpty property="lctAvlArea5">
|
||||
, 'N'
|
||||
</isEmpty>
|
||||
|
||||
<isNotEmpty property="lctAvlArea6">
|
||||
, 'Y'
|
||||
</isNotEmpty><isEmpty property="lctAvlArea6">
|
||||
, 'N'
|
||||
</isEmpty>
|
||||
|
||||
<isNotEmpty property="avlLctCntnt1">
|
||||
, 'Y'
|
||||
</isNotEmpty><isEmpty property="avlLctCntnt1">
|
||||
, 'N'
|
||||
</isEmpty>
|
||||
|
||||
<isNotEmpty property="avlLctCntnt2">
|
||||
, 'Y'
|
||||
</isNotEmpty><isEmpty property="avlLctCntnt2">
|
||||
, 'N'
|
||||
</isEmpty>
|
||||
|
||||
<isNotEmpty property="avlLctCntnt3">
|
||||
, 'Y'
|
||||
</isNotEmpty><isEmpty property="avlLctCntnt3">
|
||||
, 'N'
|
||||
</isEmpty>
|
||||
|
||||
, #gender#
|
||||
, #rcrtCtgr#
|
||||
, #apntDt#
|
||||
, #actvDt#
|
||||
, #ovrlSrvy#
|
||||
|
||||
, #carer#
|
||||
)
|
||||
|
||||
</insert>
|
||||
@ -377,28 +266,6 @@
|
||||
#memo#,
|
||||
#sigMemo#,
|
||||
#hopeEduFld#
|
||||
|
||||
, #repQf#
|
||||
, #subQf#
|
||||
, #workArea#
|
||||
, #lctAvlArea1#
|
||||
, #lctAvlArea2#
|
||||
, #lctAvlArea3#
|
||||
, #lctAvlArea4#
|
||||
, #lctAvlArea5#
|
||||
, #lctAvlArea6#
|
||||
|
||||
, #avlLctCntnt1#
|
||||
, #avlLctCntnt2#
|
||||
, #avlLctCntnt3#
|
||||
|
||||
, #gender#
|
||||
, #rcrtCtgr#
|
||||
, #apntDt#
|
||||
, #actvDt#
|
||||
, #ovrlSrvy#
|
||||
|
||||
, #carer#
|
||||
)
|
||||
|
||||
ON
|
||||
@ -454,44 +321,6 @@
|
||||
, hope_edu_fld =EXCLUDED.hope_edu_fld
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="repQf">
|
||||
, rep_qf =EXCLUDED.rep_qf
|
||||
</isNotEmpty><isNotEmpty property="subQf">
|
||||
, sub_qf =EXCLUDED.sub_qf
|
||||
</isNotEmpty><isNotEmpty property="workArea">
|
||||
, work_area =EXCLUDED.work_area
|
||||
</isNotEmpty><isNotEmpty property="lctAvlArea1">
|
||||
, lct_avl_area_1 =EXCLUDED.lct_avl_area_1
|
||||
</isNotEmpty><isNotEmpty property="lctAvlArea2">
|
||||
, lct_avl_area_2 =EXCLUDED.lct_avl_area_2
|
||||
</isNotEmpty><isNotEmpty property="lctAvlArea3">
|
||||
, lct_avl_area_3 =EXCLUDED.lct_avl_area_3
|
||||
</isNotEmpty><isNotEmpty property="lctAvlArea4">
|
||||
, lct_avl_area_4 =EXCLUDED.lct_avl_area_4
|
||||
</isNotEmpty><isNotEmpty property="lctAvlArea5">
|
||||
, lct_avl_area_5 =EXCLUDED.lct_avl_area_5
|
||||
</isNotEmpty><isNotEmpty property="lctAvlArea6">
|
||||
, lct_avl_area_6 =EXCLUDED.lct_avl_area_6
|
||||
</isNotEmpty><isNotEmpty property="avlLctCntnt1">
|
||||
, avl_lct_cntnt_1 =EXCLUDED.avl_lct_cntnt_1
|
||||
</isNotEmpty><isNotEmpty property="avlLctCntnt2">
|
||||
, avl_lct_cntnt_2 =EXCLUDED.avl_lct_cntnt_2
|
||||
</isNotEmpty><isNotEmpty property="avlLctCntnt3">
|
||||
, avl_lct_cntnt_3 =EXCLUDED.avl_lct_cntnt_3
|
||||
</isNotEmpty><isNotEmpty property="gender">
|
||||
, gender =EXCLUDED.gender
|
||||
</isNotEmpty><isNotEmpty property="rcrtCtgr">
|
||||
, rcrt_ctgr =EXCLUDED.rcrt_ctgr
|
||||
</isNotEmpty><isNotEmpty property="apntDt">
|
||||
, apnt_dt =EXCLUDED.apnt_dt
|
||||
</isNotEmpty><isNotEmpty property="actvDt">
|
||||
, actv_dt =EXCLUDED.actv_dt
|
||||
</isNotEmpty><isNotEmpty property="ovrlSrvy">
|
||||
, ovrl_srvy =EXCLUDED.ovrl_srvy
|
||||
</isNotEmpty><isNotEmpty property="carer">
|
||||
, carer =EXCLUDED.carer
|
||||
</isNotEmpty>
|
||||
|
||||
</insert>
|
||||
|
||||
<!-- 강사 등록 C -->
|
||||
@ -773,85 +602,6 @@
|
||||
|
||||
|
||||
|
||||
<isNotEmpty property="repQf">
|
||||
rep_qf =#repQf#,
|
||||
</isNotEmpty><isNotEmpty property="subQf">
|
||||
sub_qf =#subQf#,
|
||||
</isNotEmpty><isNotEmpty property="workArea">
|
||||
work_area =#workArea#,
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="lctAvlArea1">
|
||||
lct_avl_area_1 ='Y',
|
||||
</isNotEmpty><isEmpty property="lctAvlArea1">
|
||||
lct_avl_area_1 ='N',
|
||||
</isEmpty>
|
||||
|
||||
<isNotEmpty property="lctAvlArea2">
|
||||
lct_avl_area_2 ='Y',
|
||||
</isNotEmpty><isEmpty property="lctAvlArea2">
|
||||
lct_avl_area_2 ='N',
|
||||
</isEmpty>
|
||||
|
||||
<isNotEmpty property="lctAvlArea3">
|
||||
lct_avl_area_3 ='Y',
|
||||
</isNotEmpty><isEmpty property="lctAvlArea3">
|
||||
lct_avl_area_3 ='N',
|
||||
</isEmpty>
|
||||
|
||||
<isNotEmpty property="lctAvlArea4">
|
||||
lct_avl_area_4 ='Y',
|
||||
</isNotEmpty><isEmpty property="lctAvlArea4">
|
||||
lct_avl_area_4 ='N',
|
||||
</isEmpty>
|
||||
|
||||
<isNotEmpty property="lctAvlArea5">
|
||||
lct_avl_area_5 ='Y',
|
||||
</isNotEmpty><isEmpty property="lctAvlArea5">
|
||||
lct_avl_area_5 ='N',
|
||||
</isEmpty>
|
||||
|
||||
<isNotEmpty property="lctAvlArea6">
|
||||
lct_avl_area_6 ='Y',
|
||||
</isNotEmpty><isEmpty property="lctAvlArea6">
|
||||
lct_avl_area_6 ='N',
|
||||
</isEmpty>
|
||||
|
||||
<isNotEmpty property="avlLctCntnt1">
|
||||
avl_lct_cntnt_1 ='Y',
|
||||
</isNotEmpty><isEmpty property="avlLctCntnt1">
|
||||
avl_lct_cntnt_1 ='N',
|
||||
</isEmpty>
|
||||
|
||||
<isNotEmpty property="avlLctCntnt2">
|
||||
avl_lct_cntnt_2 ='Y',
|
||||
</isNotEmpty><isEmpty property="avlLctCntnt2">
|
||||
avl_lct_cntnt_2 ='N',
|
||||
</isEmpty>
|
||||
|
||||
<isNotEmpty property="avlLctCntnt3">
|
||||
avl_lct_cntnt_3 ='Y',
|
||||
</isNotEmpty><isEmpty property="avlLctCntnt3">
|
||||
avl_lct_cntnt_3 ='N',
|
||||
</isEmpty>
|
||||
|
||||
<isNotEmpty property="gender">
|
||||
gender =#gender#,
|
||||
</isNotEmpty><isNotEmpty property="rcrtCtgr">
|
||||
rcrt_ctgr =#rcrtCtgr#,
|
||||
</isNotEmpty><isNotEmpty property="apntDt">
|
||||
apnt_dt =#apntDt#,
|
||||
</isNotEmpty><isNotEmpty property="actvDt">
|
||||
actv_dt =#actvDt#,
|
||||
</isNotEmpty><isNotEmpty property="ovrlSrvy">
|
||||
ovrl_srvy =#ovrlSrvy#,
|
||||
</isNotEmpty><isNotEmpty property="carer">
|
||||
carer =#carer#,
|
||||
</isNotEmpty>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- 요청 시 기존 반려 사유 삭제 -->
|
||||
<isEqual property="aprvlCd" compareValue="10">
|
||||
|
||||
@ -130,28 +130,6 @@
|
||||
a.qlfct_end_cn AS qlfctEndCn,
|
||||
a.div_cd AS divCd,
|
||||
a.hope_edu_fld AS hopeEduFld
|
||||
|
||||
, a.rep_qf AS repQf
|
||||
, a.sub_qf AS subQf
|
||||
, a.work_area AS workArea
|
||||
, a.lct_avl_area_1 AS lctAvlArea1
|
||||
, a.lct_avl_area_2 AS lctAvlArea2
|
||||
, a.lct_avl_area_3 AS lctAvlArea3
|
||||
, a.lct_avl_area_4 AS lctAvlArea4
|
||||
, a.lct_avl_area_5 AS lctAvlArea5
|
||||
, a.lct_avl_area_6 AS lctAvlArea6
|
||||
|
||||
, a.avl_lct_cntnt_1 AS avlLctCntnt1
|
||||
, a.avl_lct_cntnt_2 AS avlLctCntnt2
|
||||
, a.avl_lct_cntnt_3 AS avlLctCntnt3
|
||||
|
||||
, a.gender AS gender
|
||||
, a.rcrt_ctgr AS rcrtCtgr
|
||||
, a.apnt_dt AS apntDt
|
||||
, a.actv_dt AS actvDt
|
||||
, a.ovrl_srvy AS ovrlSrvy
|
||||
|
||||
, a.carer AS carer
|
||||
</sql>
|
||||
|
||||
<!-- 강사 정보 R -->
|
||||
|
||||
@ -3035,7 +3035,7 @@
|
||||
substring(req_nmbr,1,1) AS CMPTNT_ATHRT ,
|
||||
count(*) AS cnt
|
||||
FROM
|
||||
vea_cmd_trgt_info a
|
||||
vea_sspn_idmt_trgt a
|
||||
|
||||
,
|
||||
ve_edu_aplct b ,
|
||||
@ -3052,7 +3052,7 @@
|
||||
AND SUBSTRING(c.edu_strt_pnttm, 1, 4)=#mngNmbrYr#
|
||||
AND b.aprvl_cd = '60'
|
||||
AND b.prcs_ord = c.prcs_aplct_prd_ord
|
||||
AND a.cmd_trgt_info_ord = b.rnds_ord
|
||||
AND a.sspn_idtmt_trgt_ord = b.rnds_ord
|
||||
|
||||
|
||||
/* 병합제거시 주석 제거 할것
|
||||
|
||||
@ -205,12 +205,7 @@
|
||||
AND vid.aprvl_cd ='20'
|
||||
*/
|
||||
|
||||
/*
|
||||
AND vid.instr_div =lctrDivCd
|
||||
*/
|
||||
/* 기소유예의 강사만 사용하므로 고정한다. */
|
||||
AND vid.instr_div ='60'
|
||||
|
||||
AND vid.instr_div =#lctrDivCd#
|
||||
AND vid.use_yn ='Y'
|
||||
</select>
|
||||
|
||||
|
||||
@ -92,7 +92,6 @@
|
||||
INSERT INTO <include refid="table_name"/> (
|
||||
<include refid="column_name"/>
|
||||
,oprtn_atch_file_id
|
||||
,prvt_memo_cn
|
||||
|
||||
)VALUES(
|
||||
|
||||
@ -130,7 +129,6 @@
|
||||
,#qustnrTm#
|
||||
|
||||
,#oprtnAtchFileId#
|
||||
,#prvtMemoCn#
|
||||
)
|
||||
</insert>
|
||||
|
||||
@ -304,11 +302,7 @@
|
||||
|
||||
<isNotEmpty property="oprtnAtchFileId">
|
||||
, oprtn_atch_file_id = #oprtnAtchFileId#
|
||||
</isNotEmpty>
|
||||
<isNotEmpty property="prvtMemoCn">
|
||||
, prvt_memo_cn = #prvtMemoCn#
|
||||
</isNotEmpty>
|
||||
|
||||
</isNotEmpty>
|
||||
|
||||
WHERE
|
||||
prcs_aplct_prd_ord = #prcsAplctPrdOrd#
|
||||
@ -663,7 +657,7 @@
|
||||
|
||||
, (SELECT COUNT(*)
|
||||
FROM ve_edu_aplct x
|
||||
LEFT OUTER JOIN LETTNGNRLMBER le ON
|
||||
JOIN LETTNGNRLMBER le ON
|
||||
x.USER_ID = le.ESNTL_ID
|
||||
WHERE x.prcs_ord = a.prcs_aplct_prd_ord
|
||||
AND x.sbmt_yn='Y'
|
||||
@ -927,58 +921,12 @@
|
||||
a.rmrks AS rmrks,
|
||||
a.memo AS memo,
|
||||
a.sig_memo AS sigMemo
|
||||
|
||||
, a.rep_qf AS repQf
|
||||
, a.sub_qf AS subQf
|
||||
, a.work_area AS workArea
|
||||
, a.lct_avl_area_1 AS lctAvlArea1
|
||||
, a.lct_avl_area_2 AS lctAvlArea2
|
||||
, a.lct_avl_area_3 AS lctAvlArea3
|
||||
, a.lct_avl_area_4 AS lctAvlArea4
|
||||
, a.lct_avl_area_5 AS lctAvlArea5
|
||||
, a.lct_avl_area_6 AS lctAvlArea6
|
||||
|
||||
, a.avl_lct_cntnt_1 AS avlLctCntnt1
|
||||
, a.avl_lct_cntnt_2 AS avlLctCntnt2
|
||||
, a.avl_lct_cntnt_3 AS avlLctCntnt3
|
||||
|
||||
, a.gender AS gender
|
||||
, a.rcrt_ctgr AS rcrtCtgr
|
||||
, a.apnt_dt AS apntDt
|
||||
, a.actv_dt AS actvDt
|
||||
, a.ovrl_srvy AS ovrlSrvy
|
||||
|
||||
, a.carer AS carer
|
||||
|
||||
, COALESCE(c.cnt,0) as cnt
|
||||
, COALESCE(c.yearcnt,0) as yearcnt
|
||||
|
||||
FROM
|
||||
ve_instr b
|
||||
, ve_instr_detail a
|
||||
LEFT OUTER JOIN (
|
||||
select user_id, count(*) as cnt, sum(edu) as yearcnt
|
||||
from (
|
||||
|
||||
select a.user_id
|
||||
, CASE
|
||||
WHEN 365 > (now()::date - b.edu_strt_pnttm::date) THEN 1
|
||||
ELSE 0
|
||||
END AS edu
|
||||
|
||||
from vea_prcs_aplct_prd_instr_asgnm a
|
||||
, ve_prcs_aplct_prd b
|
||||
where a.prcs_aplct_prd_ord =b.prcs_aplct_prd_ord
|
||||
|
||||
)aa
|
||||
group by user_id
|
||||
)c
|
||||
ON(1=1 AND a.user_id = c.user_id)
|
||||
|
||||
, ve_instr_detail a
|
||||
WHERE
|
||||
1=1
|
||||
AND a.user_id=b.user_id
|
||||
|
||||
<isNotEmpty property="selectPagingListQuery">
|
||||
$selectPagingListQuery$
|
||||
</isNotEmpty>
|
||||
@ -1521,8 +1469,8 @@
|
||||
|
||||
|
||||
where
|
||||
<!-- a.lctr_div_cd = #lctrDivCd#
|
||||
and --> a.user_id = #userId#
|
||||
a.lctr_div_cd = #lctrDivCd#
|
||||
and a.user_id = #userId#
|
||||
|
||||
<isNotEmpty property="eduAplctOrd">
|
||||
AND a.edu_aplct_ord=#eduAplctOrd#
|
||||
@ -1650,7 +1598,6 @@
|
||||
|
||||
, b.aplct_state_cd AS aplctStateCd
|
||||
|
||||
, c.lctr_div_cd AS lctrDivCd
|
||||
FROM ve_prcs_aplct_prd a
|
||||
, ve_edu_aplct c
|
||||
|
||||
@ -1779,7 +1726,7 @@
|
||||
|
||||
|
||||
CASE
|
||||
WHEN to_char(now(), 'YYYY.MM.DD') >= COALESCE(vpap.edu_ddln_pnttm,vpap.edu_strt_pnttm) THEN 1
|
||||
WHEN to_char(now(), 'YYYY.MM.DD') > COALESCE(vpap.edu_ddln_pnttm,vpap.edu_strt_pnttm) THEN 1
|
||||
ELSE 0
|
||||
END AS qestRsltExists,
|
||||
|
||||
@ -1791,31 +1738,17 @@
|
||||
|
||||
|
||||
/* 설문지 정보 */
|
||||
/*
|
||||
I10.qustnr_tmplat_id AS qustnrTmplatId ,
|
||||
*/
|
||||
I10.qustnr_tmplat_id AS qustnrTmplatId ,
|
||||
|
||||
I10.qestnr_id_10 as qestnrId10 ,
|
||||
I20.qestnr_id_20 as qestnrId20 ,
|
||||
I30.qestnr_id_30 as qestnrId30 ,
|
||||
|
||||
/*
|
||||
COALESCE(I10.qestnr_id_10, qustnr01.QESTNR_ID_10) AS qestnrId10 ,
|
||||
COALESCE(I20.qestnr_id_20, qustnr01.QESTNR_ID_20) AS qestnrId20 ,
|
||||
COALESCE(I30.qestnr_id_30, qustnr01.QESTNR_ID_30) AS qestnrId30 ,
|
||||
*/
|
||||
COALESCE(qustnr01.QESTNR_ID_10, I10.qestnr_id_10) AS qestnrId10 ,
|
||||
COALESCE(qustnr01.QESTNR_ID_20, I20.qestnr_id_20) AS qestnrId20 ,
|
||||
COALESCE(qustnr01.QESTNR_ID_30, I30.qestnr_id_30) AS qestnrId30 ,
|
||||
|
||||
/* 답변 정보 */
|
||||
/*
|
||||
|
||||
COALESCE(qustnr01.QESTNR_ID_10_CNT,0) AS qestnrId10Cnt ,
|
||||
COALESCE(qustnr01.QESTNR_ID_20_CNT,0) AS qestnrId20Cnt ,
|
||||
COALESCE(qustnr01.QESTNR_ID_30_CNT,0) AS qestnrId30Cnt ,
|
||||
*/
|
||||
|
||||
coalesce(I10.qestnr_id_10_cnt, 0) as qestnrId10Cnt ,
|
||||
0 as qestnrId20Cnt ,
|
||||
0 as qestnrId30Cnt ,
|
||||
|
||||
a.lctr_div_cd AS lctrDivCd
|
||||
|
||||
from
|
||||
@ -1828,112 +1761,87 @@
|
||||
on a.edu_aplct_ord = vadi.edu_aplct_ord
|
||||
and vpap.prcs_aplct_prd_ord = vadi.prcs_aplct_prd_ord
|
||||
|
||||
LEFT OUTER JOIN (
|
||||
|
||||
SELECT
|
||||
aa.EDU_APLCT_ORD ,
|
||||
aa.prcs_ord,
|
||||
aa.QUSTNR_TMPLAT_ID ,
|
||||
aa.user_id
|
||||
|
||||
, max(CASE WHEN bb.site_id_cd = '10' THEN aa.QESTNR_ID END) AS QESTNR_ID_10
|
||||
, max(CASE WHEN bb.site_id_cd = '20' THEN aa.QESTNR_ID END) AS QESTNR_ID_20
|
||||
, max(CASE WHEN bb.site_id_cd = '30' THEN aa.QESTNR_ID END) AS QESTNR_ID_30
|
||||
|
||||
, SUM(CASE WHEN bb.site_id_cd = '10' THEN 1 ELSE 0 END) AS QESTNR_ID_10_CNT
|
||||
, SUM(CASE WHEN bb.site_id_cd = '20' THEN 1 ELSE 0 END) AS QESTNR_ID_20_CNT
|
||||
, SUM(CASE WHEN bb.site_id_cd = '30' THEN 1 ELSE 0 END) AS QESTNR_ID_30_CNT
|
||||
|
||||
FROM (
|
||||
SELECT
|
||||
a.EDU_APLCT_ORD ,
|
||||
a.prcs_ord,
|
||||
b.QUSTNR_TMPLAT_ID ,
|
||||
b.QESTNR_ID
|
||||
, a.user_id
|
||||
|
||||
FROM
|
||||
ve_edu_aplct a ,
|
||||
LETTNQESTNRRSLTDETAIL b
|
||||
WHERE
|
||||
1 = 1
|
||||
AND a.edu_aplct_ord = b.edu_aplct_ord
|
||||
AND (b.EDU_CHASI_ORD IS NULL or b.EDU_CHASI_ORD = '')
|
||||
AND a.user_id=#userId#
|
||||
|
||||
)aa
|
||||
, lettnqestnrinfo bb
|
||||
WHERE aa.qustnr_tmplat_id=bb.qustnr_tmplat_id
|
||||
AND aa.qestnr_id=bb.qestnr_id
|
||||
|
||||
GROUP BY
|
||||
aa.EDU_APLCT_ORD ,
|
||||
aa.prcs_ord,
|
||||
aa.QUSTNR_TMPLAT_ID ,
|
||||
aa.user_id
|
||||
|
||||
) qustnr01
|
||||
on(
|
||||
|
||||
a.edu_aplct_ord = qustnr01.edu_Aplct_Ord
|
||||
AND a.PRCS_ORD = qustnr01.prcs_Ord
|
||||
|
||||
)
|
||||
|
||||
|
||||
LEFT OUTER JOIN (
|
||||
/* 현재 진행가능한 설문 정보(기본, 선생님, 강사) 여러개가 있는 경우는 최근 등록된 설문 정보를 가져온다.*/
|
||||
/*
|
||||
SELECT
|
||||
a.QUSTNR_TMPLAT_ID ,
|
||||
a.SITE_ID ,
|
||||
|
||||
/*
|
||||
(CASE WHEN a.STTUS = '1' THEN a.QESTNR_ID END) AS QESTNR_ID_10
|
||||
*/
|
||||
(CASE WHEN a.STTUS = '1' THEN a.QESTNR_ID ELSE a.QESTNR_ID END) AS QESTNR_ID_10
|
||||
FROM
|
||||
LETTNQESTNRINFO a
|
||||
WHERE
|
||||
a.SITE_ID IN ('60','70','80')
|
||||
|
||||
a.SITE_ID = #siteId#
|
||||
/*
|
||||
AND a.SITE_ID_CD IN ('10')
|
||||
*/
|
||||
/*
|
||||
AND a.STTUS IN ('1')
|
||||
*/
|
||||
AND TO_CHAR(NOW(),
|
||||
'YYYY.MM.DD') BETWEEN COALESCE(a.qustnr_bgnde,
|
||||
'2000.01.01')
|
||||
AND COALESCE(a.qustnr_endde,
|
||||
'9999.12.31')
|
||||
ORDER BY coalesce(a.qustnr_bgnde,'9999.12.31')
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
SELECT site_id, min(qestnr_id_10) as qestnr_id_10
|
||||
*/
|
||||
|
||||
select a00.prcs_ord,
|
||||
a00.site_id,
|
||||
a00.qestnr_id_10,
|
||||
b00.cnt as qestnr_id_10_cnt,
|
||||
a00.edu_aplct_ord
|
||||
from (
|
||||
|
||||
SELECT a0.prcs_ord, a0.site_id, a0.qestnr_id_10, a0.edu_aplct_ord
|
||||
FROM (
|
||||
select
|
||||
b0.prcs_ord,
|
||||
a.QUSTNR_TMPLAT_ID ,
|
||||
a.SITE_ID ,
|
||||
/* (CASE WHEN a.STTUS = '1' THEN a.QESTNR_ID END) AS QESTNR_ID_10 */
|
||||
(case
|
||||
when a.STTUS = '1' then a.QESTNR_ID
|
||||
else a.QESTNR_ID
|
||||
end) as QESTNR_ID_10,
|
||||
b0.edu_aplct_ord
|
||||
from
|
||||
LETTNQESTNRINFO a
|
||||
, (
|
||||
|
||||
select
|
||||
a.prcs_ord ,
|
||||
b.edu_strt_pnttm ,
|
||||
b.lctr_div_cd ,
|
||||
a.edu_aplct_ord
|
||||
from
|
||||
ve_edu_aplct a
|
||||
, ve_prcs_aplct_prd b
|
||||
where
|
||||
1 = 1
|
||||
and a.user_id = #userId#
|
||||
and a.prcs_ord=b.prcs_aplct_prd_ord
|
||||
|
||||
)b0
|
||||
where
|
||||
a.SITE_ID in ('60', '70', '80')/* 각 개별적인 분류를 볼때 a.SITE_ID = siteId */
|
||||
and a.site_id=b0.lctr_div_cd
|
||||
/*
|
||||
AND a.SITE_ID_CD IN ('10') */
|
||||
/*
|
||||
AND a.STTUS IN ('1') */
|
||||
|
||||
and replace(b0.edu_strt_pnttm,'.','') between coalesce(a.qustnr_bgnde,
|
||||
'2000.01.01')
|
||||
and coalesce(a.qustnr_endde,
|
||||
'9999.12.31')
|
||||
|
||||
order by
|
||||
coalesce(a.qustnr_bgnde,
|
||||
'9999.12.31')
|
||||
)a0
|
||||
/*
|
||||
group by a0.site_id
|
||||
*/
|
||||
GROUP BY a0.prcs_ord, a0.site_id, a0.qestnr_id_10, a0.edu_aplct_ord
|
||||
)a00
|
||||
|
||||
|
||||
left outer join
|
||||
(
|
||||
|
||||
select b.edu_aplct_ord, b.qestnr_id, count(*) cnt
|
||||
from LETTNQESTNRRSLTDETAIL b
|
||||
where b.frst_register_id =#userId#
|
||||
group by b.edu_aplct_ord, b.qestnr_id
|
||||
|
||||
)b00
|
||||
on(a00.qestnr_id_10=b00.qestnr_id
|
||||
and a00.edu_aplct_ord=b00.edu_aplct_ord
|
||||
)
|
||||
|
||||
ORDER BY coalesce(a.qustnr_bgnde,'9999.12.31')
|
||||
LIMIT 1
|
||||
) I10 ON
|
||||
(1 = 1 and a.lctr_div_cd = I10.site_id
|
||||
and a.prcs_ord = I10.prcs_ord
|
||||
and a.edu_aplct_ord = I10.edu_aplct_ord
|
||||
)
|
||||
(1 = 1)
|
||||
|
||||
LEFT OUTER JOIN (
|
||||
/* 현재 진행가능한 설문 정보(기본, 선생님, 강사) 여러개가 있는 경우는 최근 등록된 설문 정보를 가져온다.*/
|
||||
@ -1997,7 +1905,7 @@
|
||||
) I30 ON
|
||||
(1 = 1)
|
||||
|
||||
where
|
||||
where
|
||||
a.user_id = #userId#
|
||||
|
||||
<isNotEmpty property="searchStartDt">
|
||||
@ -2009,10 +1917,10 @@
|
||||
</isNotEmpty>
|
||||
<isEqual property="searchStatus" compareValue="5"> /*VEA003 미이수 : 수강중 강의*/
|
||||
AND vadi.aplct_state_cd = '10'
|
||||
</isEqual>
|
||||
</isEqual>
|
||||
<isEqual property="searchStatus" compareValue="30"> /*취소 : 취소*/
|
||||
AND vadi.aplct_state_cd = #searchStatus#
|
||||
</isEqual>
|
||||
</isEqual>
|
||||
<isEqual property="searchStatus" compareValue="20"> /*이수완료 : 종료 강의*/
|
||||
AND vadi.aplct_state_cd is not null
|
||||
AND a.aprvl_cd = #searchStatus#
|
||||
@ -2020,290 +1928,14 @@
|
||||
<isEqual property="searchStatus" compareValue="15"> /*수강중 강의*/
|
||||
AND vadi.aplct_state_cd is null
|
||||
AND a.aprvl_cd = '20'
|
||||
</isEqual>
|
||||
</isEqual>
|
||||
<isEqual property="searchStatus" compareValue="10"> /*요청 : 요청 강의*/
|
||||
AND a.aprvl_cd = #searchStatus#
|
||||
</isEqual>
|
||||
|
||||
<isEqual property="searchStatus" compareValue="Completed"> /*요청 : 완료된 강의*/
|
||||
AND a.APRVL_CD ='60'
|
||||
AND to_char(now(), 'YYYY.MM.DD') > vpap.edu_strt_pnttm
|
||||
</isEqual>
|
||||
|
||||
<isEqual property="searchStatus" compareValue="InClass"> /*요청 : 수강중 강의*/
|
||||
AND a.APRVL_CD ='60'
|
||||
AND vpap.edu_strt_pnttm >= to_char(now(), 'YYYY.MM.DD')
|
||||
</isEqual>
|
||||
|
||||
<isEqual property="searchStatus" compareValue="Aplct"> /*요청 : 수강중 강의*/
|
||||
AND a.APRVL_CD IN('10', '20')
|
||||
AND vpap.edu_strt_pnttm >= to_char(now(), 'YYYY.MM.DD')
|
||||
</isEqual>
|
||||
|
||||
</isEqual>
|
||||
|
||||
ORDER BY vpap.edu_strt_pnttm desc
|
||||
<!-- LIMIT #recordCountPerPage# OFFSET #firstIndex# -->
|
||||
LIMIT #recordCountPerPage# OFFSET #firstIndex#
|
||||
|
||||
</select>
|
||||
|
||||
<select id="selectCompleteDocDetail" parameterClass="VEPrcsDetailVO" resultClass="VEPrcsDetailVO">
|
||||
SELECT b.prcs_aplct_prd_ord AS prcsAplctPdrOrd,
|
||||
a.lctr_div_cd AS lctrDivCd,
|
||||
b.edu_cmplt_crtfc_nmbr AS eduCmpltCrtfcNmbr,
|
||||
c.title AS title,
|
||||
c.edu_strt_pnttm AS eduStrtPnttm,
|
||||
a.chrg_nm AS chrgNm
|
||||
FROM ve_edu_aplct a
|
||||
LEFT JOIN vea_aplct_detail_info b ON a.edu_aplct_ord = b.edu_aplct_ord
|
||||
LEFT JOIN ve_prcs_aplct_prd c ON c.prcs_aplct_prd_ord = b.prcs_aplct_prd_ord
|
||||
WHERE
|
||||
b.prcs_aplct_prd_ord = #prcsAplctPrdOrd#
|
||||
AND b.aplct_state_cd = '20'
|
||||
AND a.edu_aplct_ord = #eduAplctOrd#
|
||||
</select>
|
||||
|
||||
<select id="selectMainContent" resultClass="VEPrcsDetailVO">
|
||||
/* VEPrcsAplctPrdDAO.selectPagingList4Fndth */
|
||||
WITH
|
||||
a AS (SELECT
|
||||
t1.prcs_aplct_prd_ord
|
||||
, t1.prcs_ord
|
||||
, t1.lctr_div_cd
|
||||
, t1.strt_pnttm
|
||||
, t1.end_pnttm
|
||||
, t1.use_yn
|
||||
, t1.frst_regist_pnttm
|
||||
, t1.frst_register_id
|
||||
, t1.last_updt_pnttm
|
||||
, t1.last_updusr_id
|
||||
, t1.anncm_cn
|
||||
, t1.popup_cn
|
||||
, t1.atch_file_id
|
||||
, t1.title
|
||||
, t1.dead_line_dt
|
||||
, t1.edu_part_cd
|
||||
, t1.nos
|
||||
, t1.ddln_cd
|
||||
, t1.edu_strt_pnttm
|
||||
, t1.edu_ddln_pnttm
|
||||
, t1.dprtm_nm
|
||||
, t1.cn_atch_file_id
|
||||
, t1.oprtn_atch_file_id
|
||||
FROM
|
||||
(SELECT
|
||||
t1.prcs_aplct_prd_ord
|
||||
, t1.prcs_ord
|
||||
, t1.lctr_div_cd
|
||||
, t1.strt_pnttm
|
||||
, t1.end_pnttm
|
||||
, t1.use_yn
|
||||
, t1.frst_regist_pnttm
|
||||
, t1.frst_register_id
|
||||
, t1.last_updt_pnttm
|
||||
, t1.last_updusr_id
|
||||
, t1.anncm_cn
|
||||
, t1.popup_cn
|
||||
, t1.atch_file_id
|
||||
, t1.title
|
||||
, t1.dead_line_dt
|
||||
, t1.edu_part_cd
|
||||
, t1.nos
|
||||
, t1.ddln_cd
|
||||
, t1.edu_strt_pnttm
|
||||
, t1.edu_ddln_pnttm
|
||||
, t1.dprtm_nm
|
||||
, t1.cn_atch_file_id
|
||||
, t1.oprtn_atch_file_id
|
||||
FROM
|
||||
ve_prcs_aplct_prd t1
|
||||
WHERE
|
||||
t1.lctr_div_cd = '60'
|
||||
ORDER BY t1.prcs_aplct_prd_ord DESC
|
||||
LIMIT 4) t1
|
||||
|
||||
UNION ALL
|
||||
|
||||
SELECT
|
||||
t2.prcs_aplct_prd_ord
|
||||
, t2.prcs_ord
|
||||
, t2.lctr_div_cd
|
||||
, t2.strt_pnttm
|
||||
, t2.end_pnttm
|
||||
, t2.use_yn
|
||||
, t2.frst_regist_pnttm
|
||||
, t2.frst_register_id
|
||||
, t2.last_updt_pnttm
|
||||
, t2.last_updusr_id
|
||||
, t2.anncm_cn
|
||||
, t2.popup_cn
|
||||
, t2.atch_file_id
|
||||
, t2.title
|
||||
, t2.dead_line_dt
|
||||
, t2.edu_part_cd
|
||||
, t2.nos
|
||||
, t2.ddln_cd
|
||||
, t2.edu_strt_pnttm
|
||||
, t2.edu_ddln_pnttm
|
||||
, t2.dprtm_nm
|
||||
, t2.cn_atch_file_id
|
||||
, t2.oprtn_atch_file_id
|
||||
FROM
|
||||
(SELECT
|
||||
t1.prcs_aplct_prd_ord
|
||||
, t1.prcs_ord
|
||||
, t1.lctr_div_cd
|
||||
, t1.strt_pnttm
|
||||
, t1.end_pnttm
|
||||
, t1.use_yn
|
||||
, t1.frst_regist_pnttm
|
||||
, t1.frst_register_id
|
||||
, t1.last_updt_pnttm
|
||||
, t1.last_updusr_id
|
||||
, t1.anncm_cn
|
||||
, t1.popup_cn
|
||||
, t1.atch_file_id
|
||||
, t1.title
|
||||
, t1.dead_line_dt
|
||||
, t1.edu_part_cd
|
||||
, t1.nos
|
||||
, t1.ddln_cd
|
||||
, t1.edu_strt_pnttm
|
||||
, t1.edu_ddln_pnttm
|
||||
, t1.dprtm_nm
|
||||
, t1.cn_atch_file_id
|
||||
, t1.oprtn_atch_file_id
|
||||
FROM
|
||||
ve_prcs_aplct_prd t1
|
||||
WHERE
|
||||
t1.lctr_div_cd = '70'
|
||||
ORDER BY t1.prcs_aplct_prd_ord DESC
|
||||
LIMIT 4) t2
|
||||
|
||||
UNION ALL
|
||||
|
||||
SELECT
|
||||
t3.prcs_aplct_prd_ord
|
||||
, t3.prcs_ord
|
||||
, t3.lctr_div_cd
|
||||
, t3.strt_pnttm
|
||||
, t3.end_pnttm
|
||||
, t3.use_yn
|
||||
, t3.frst_regist_pnttm
|
||||
, t3.frst_register_id
|
||||
, t3.last_updt_pnttm
|
||||
, t3.last_updusr_id
|
||||
, t3.anncm_cn
|
||||
, t3.popup_cn
|
||||
, t3.atch_file_id
|
||||
, t3.title
|
||||
, t3.dead_line_dt
|
||||
, t3.edu_part_cd
|
||||
, t3.nos
|
||||
, t3.ddln_cd
|
||||
, t3.edu_strt_pnttm
|
||||
, t3.edu_ddln_pnttm
|
||||
, t3.dprtm_nm
|
||||
, t3.cn_atch_file_id
|
||||
, t3.oprtn_atch_file_id
|
||||
FROM
|
||||
(SELECT
|
||||
t1.prcs_aplct_prd_ord
|
||||
, t1.prcs_ord
|
||||
, t1.lctr_div_cd
|
||||
, t1.strt_pnttm
|
||||
, t1.end_pnttm
|
||||
, t1.use_yn
|
||||
, t1.frst_regist_pnttm
|
||||
, t1.frst_register_id
|
||||
, t1.last_updt_pnttm
|
||||
, t1.last_updusr_id
|
||||
, t1.anncm_cn
|
||||
, t1.popup_cn
|
||||
, t1.atch_file_id
|
||||
, t1.title
|
||||
, t1.dead_line_dt
|
||||
, t1.edu_part_cd
|
||||
, t1.nos
|
||||
, t1.ddln_cd
|
||||
, t1.edu_strt_pnttm
|
||||
, t1.edu_ddln_pnttm
|
||||
, t1.dprtm_nm
|
||||
, t1.cn_atch_file_id
|
||||
, t1.oprtn_atch_file_id
|
||||
FROM
|
||||
ve_prcs_aplct_prd t1
|
||||
WHERE
|
||||
t1.lctr_div_cd = '80'
|
||||
ORDER BY t1.prcs_aplct_prd_ord DESC
|
||||
LIMIT 4) t3)
|
||||
SELECT
|
||||
COUNT(1) OVER () AS totCnt
|
||||
, a.prcs_aplct_prd_ord AS prcsAplctPrdOrd
|
||||
, a.lctr_div_cd AS lctrDivCd
|
||||
, TO_CHAR(TO_DATE(a.strt_pnttm, 'YYYY.MM.DD'), 'MM.DD') AS strtPnttm
|
||||
, TO_CHAR(TO_DATE(a.end_pnttm, 'YYYY.MM.DD'), 'MM.DD') AS endPnttm
|
||||
, a.use_yn AS useYn
|
||||
, TO_CHAR(a.frst_regist_pnttm, 'YYYY-MM-DD') AS frstRegistPnttm
|
||||
, a.frst_register_id AS frstRegisterId
|
||||
, TO_CHAR(a.last_updt_pnttm, 'YYYY-MM-DD') AS lastUpdtPnttm
|
||||
, a.last_updusr_id AS lastUpdusrId
|
||||
, a.anncm_cn AS anncmCn
|
||||
, a.popup_cn AS popupCn
|
||||
, a.atch_file_id AS atchFileId
|
||||
, a.title AS title
|
||||
, a.dead_line_dt AS deadLineDt
|
||||
, a.prcs_ord AS prcsOrd
|
||||
, a.edu_part_cd AS eduPartCd
|
||||
, a.nos AS nos
|
||||
, a.ddln_cd AS ddlnCd
|
||||
, CASE
|
||||
WHEN NULLIF(BTRIM(code.code_nm), '') IS NULL THEN
|
||||
CASE
|
||||
WHEN CURRENT_DATE <![CDATA[ < ]]> TO_DATE(a.strt_pnttm, 'YYYY.MM.DD') THEN '접수전'
|
||||
WHEN CURRENT_DATE BETWEEN TO_DATE(a.strt_pnttm, 'YYYY.MM.DD')
|
||||
AND TO_DATE(a.end_pnttm, 'YYYY.MM.DD') THEN '접수중'
|
||||
ELSE '접수종료'
|
||||
END
|
||||
ELSE code.code_nm
|
||||
END AS ddlncdNm
|
||||
, a.edu_strt_pnttm AS eduStrtPnttm
|
||||
, a.edu_ddln_pnttm AS eduDdlnPnttm
|
||||
, a.dprtm_nm AS dprtmNm
|
||||
, a.cn_atch_file_id AS cnAtchFileId
|
||||
, a.oprtn_atch_file_id AS oprtnAtchFileId
|
||||
, (SELECT
|
||||
user_nm
|
||||
FROM
|
||||
comvnusermaster
|
||||
WHERE
|
||||
esntl_id = a.frst_register_id
|
||||
ORDER BY user_nm DESC
|
||||
LIMIT 1) AS frstRegisterNm
|
||||
, (SELECT
|
||||
orignl_file_nm
|
||||
FROM
|
||||
lettnfiledetail
|
||||
WHERE
|
||||
atch_file_id = a.atch_file_id
|
||||
LIMIT 1) AS atchFileNm
|
||||
, b.prcs_nm AS prcsNm
|
||||
, b.prcs_div AS prcsDiv
|
||||
, (SELECT
|
||||
COUNT(*)
|
||||
FROM
|
||||
ve_edu_aplct x
|
||||
LEFT OUTER JOIN lettngnrlmber le ON x.user_id = le.esntl_id
|
||||
|
||||
WHERE
|
||||
x.prcs_ord = a.prcs_aplct_prd_ord
|
||||
AND x.sbmt_yn = 'Y'
|
||||
AND x.aprvl_cd != '100') AS nosCnt1
|
||||
FROM
|
||||
a
|
||||
JOIN ve_prcs b ON a.prcs_ord = b.prcs_ord
|
||||
LEFT OUTER JOIN lettccmmndetailcode code ON a.ddln_cd = code.code AND code.code_id = 'VEA004'
|
||||
ORDER BY
|
||||
a.lctr_div_cd, a.prcs_aplct_prd_ord DESC
|
||||
</select>
|
||||
|
||||
|
||||
</sqlMap>
|
||||
|
||||
@ -232,7 +232,6 @@
|
||||
<isEqual property="useYn" compareValue="Y">
|
||||
AND A.USE_YN ='Y'
|
||||
</isEqual>
|
||||
|
||||
|
||||
<isNotEmpty property="searchSmbtStartDt">
|
||||
/*등록일시*/
|
||||
@ -634,51 +633,6 @@
|
||||
sspn_idtmt_trgt_ord = #sspnIdtmtTrgtOrd#
|
||||
</update>
|
||||
|
||||
|
||||
<!-- 대상자 취소시 대상자 테이블 정보 수정 -->
|
||||
<update id="VEPrcsDAO.updateCmdIdmtTrgtCancelNew" parameterClass="VEPrcsDetailVO">
|
||||
/* VEPrcsDAO.updateCmdIdmtTrgtCancelNew */
|
||||
UPDATE
|
||||
vea_cmd_trgt_info
|
||||
SET
|
||||
LAST_UPDT_PNTTM = NOW()
|
||||
,LAST_UPDUSR_ID = #lastUpdusrId#
|
||||
|
||||
<isEqual property="reqNo" compareValue="2-1">
|
||||
/* 신청 후 취소 */
|
||||
, user_id = NULL
|
||||
, edu_aplct_ord = NULL
|
||||
, prcs_aplct_prd_ord_cmplt = NULL
|
||||
</isEqual>
|
||||
|
||||
<isEqual property="reqNo" compareValue="4">
|
||||
/* 신청 후 반려 */
|
||||
, user_id = NULL
|
||||
, edu_aplct_ord = NULL
|
||||
, prcs_aplct_prd_ord_cmplt = NULL
|
||||
</isEqual>
|
||||
|
||||
<isEqual property="reqNo" compareValue="6">
|
||||
/* 확정 후 취소 요청 edu_state_cd=30,req_state_cd=20 */
|
||||
/* , edu_state_cd = '30' */
|
||||
/* , req_state_cd = '20' 의뢰상태는 교육의 취소, 확정과 관계없이 대상자의 의뢰 상태를 변경 하는것 이므로 여기서는 제외한다. */
|
||||
</isEqual>
|
||||
|
||||
<isEqual property="reqNo" compareValue="6-1">
|
||||
/* 확정 후 취소 요청 edu_state_cd=30,req_state_cd=20 */
|
||||
/* , edu_state_cd = '30' */
|
||||
/* , req_state_cd = '20' 의뢰상태는 교육의 취소, 확정과 관계없이 대상자의 의뢰 상태를 변경 하는것 이므로 여기서는 제외한다. */
|
||||
</isEqual>
|
||||
|
||||
<isEqual property="reqNo" compareValue="6-2">
|
||||
/* 취소 신청 승은(교육중단) edu_state_cd=60,req_state_cd=40 */
|
||||
, edu_state_cd = '60'
|
||||
, req_state_cd = '35'
|
||||
/* , req_state_cd = '40' 의뢰상태는 교육의 취소, 확정과 관계없이 대상자의 의뢰 상태를 변경 하는것 이므로 여기서는 제외한다. */
|
||||
</isEqual>
|
||||
WHERE
|
||||
cmd_trgt_info_ord = #sspnIdtmtTrgtOrd#
|
||||
</update>
|
||||
<!-- 대상자 취소시 대상자 테이블 정보 수정 -->
|
||||
<update id="VEPrcsDAO.updateAplctDetailInfo" parameterClass="VEPrcsDetailVO">
|
||||
/* VEPrcsDAO.updateAplctDetailInfo */
|
||||
|
||||
@ -170,7 +170,7 @@
|
||||
AND COALESCE(A.site_id_cd, '10')=#siteIdCd#
|
||||
|
||||
AND c.prcs_aplct_prd_ord=#eduAplctOrd#
|
||||
AND REPLACE(c.edu_strt_pnttm,'.','') between coalesce(a.qustnr_bgnde, '20000101') and coalesce(a.qustnr_endde, '99991231')
|
||||
AND c.edu_strt_pnttm between coalesce(a.qustnr_bgnde, '20000101') and coalesce(a.qustnr_endde, '99991231')
|
||||
|
||||
/*
|
||||
AND to_char(NOW(), 'YYYY.MM.DD') BETWEEN
|
||||
@ -366,27 +366,6 @@
|
||||
|
||||
</select>
|
||||
|
||||
<!-- //관리자 청소년/성인 만족도 평가 R -->
|
||||
<select id="VEALettnQestnrMIXDAO.selectDetail_MIX_LQI_03_ALL" parameterClass="VEAQestnrVO" resultClass="VEAQestnrVO">
|
||||
/* VEALettnQestnrMIXDAO.selectDetail_MIX_LQI_03_ALL */
|
||||
|
||||
SELECT c00.qustnr_qesitm_id as qustnrQesitmId
|
||||
, c00.very_satisfied AS verySatisfied
|
||||
, c00.satisfied AS satisfied
|
||||
, c00.neither AS neither
|
||||
, c00.dissatisfied AS dissatisfied
|
||||
, c00.very_dissatisfied AS veryDissatisfied
|
||||
, c00.answer
|
||||
|
||||
FROM
|
||||
LETTNQESTNRRSLTDetail c00 ,
|
||||
ve_edu_aplct d00
|
||||
WHERE
|
||||
d00.prcs_ord = #eduAplctOrd#
|
||||
AND d00.EDU_APLCT_ORD = c00.edu_aplct_ord
|
||||
|
||||
</select>
|
||||
|
||||
<!-- //관리자 청소년/성인 만족도 평가 R -->
|
||||
<select id="VEALettnQestnrMIXDAO.selectDetail_MIX_LQI_04" parameterClass="VEAQestnrVO" resultClass="VEAQestnrVO">
|
||||
/* VEALettnQestnrMIXDAO.selectDetail_MIX_LQI_04 */
|
||||
@ -419,36 +398,5 @@
|
||||
, a.qustnr_nm
|
||||
, a.qustnr_birth
|
||||
|
||||
</select>
|
||||
|
||||
<!-- //관리자 청소년/성인 만족도 평가 R -->
|
||||
<select id="VEALettnQestnrMIXDAO.selectDetail_MIX_LQI_05" parameterClass="VEAQestnrVO" resultClass="VEAQestnrVO">
|
||||
/* VEALettnQestnrMIXDAO.selectDetail_MIX_LQI_05 */
|
||||
|
||||
SELECT
|
||||
a.qestnr_id as qestnrId,
|
||||
qustnr_qesitm_id as qustnrQesitmId
|
||||
, max(case
|
||||
when a.iem_sn = 1 then a.iem_cn
|
||||
end) as sn1
|
||||
, max(case
|
||||
when a.iem_sn = 2 then a.iem_cn
|
||||
end) as sn2
|
||||
, max(case
|
||||
when a.iem_sn = 3 then a.iem_cn
|
||||
end) as sn3
|
||||
, max(case
|
||||
when a.iem_sn = 4 then a.iem_cn
|
||||
end) as sn4
|
||||
, max(case
|
||||
when a.iem_sn = 5 then a.iem_cn
|
||||
end) as sn5
|
||||
|
||||
FROM lettnqustnriem a
|
||||
WHERE 1=1
|
||||
and A.QESTNR_ID = #qestnrId#
|
||||
|
||||
GROUP BY a.qestnr_id, qustnr_qesitm_id
|
||||
|
||||
</select>
|
||||
</select>
|
||||
</sqlMap>
|
||||
|
||||
@ -16,11 +16,11 @@
|
||||
</Appenders>
|
||||
|
||||
<Loggers>
|
||||
<Logger name="org.apache" level="DEBUG"></Logger>
|
||||
<Logger name="org.springframework" level="DEBUG"></Logger>
|
||||
<Logger name="org.apache" level="ERROR"></Logger>
|
||||
<Logger name="org.springframework" level="ERROR"></Logger>
|
||||
|
||||
<Logger name="egovframework" level="DEBUG"></Logger>
|
||||
<Logger name="egovframework.rte" level="DEBUG"></Logger>
|
||||
<Logger name="egovframework" level="ERROR"></Logger>
|
||||
<Logger name="egovframework.rte" level="ERROR"></Logger>
|
||||
|
||||
<Logger name="com.ibatis.sqlmap" level="DEBUG"></Logger>
|
||||
|
||||
|
||||
@ -190,8 +190,6 @@
|
||||
|
||||
<!-- <pattern>*/tngrVisitEdu/popup/*Popup.do</pattern>
|
||||
<pattern>*/adultVisitEdu/popup/*Popup.do</pattern> -->
|
||||
|
||||
<pattern>/kccadr/oprtn/cndtnSspnIdtmt/popup/printCertPopup.do</pattern>
|
||||
|
||||
</excludes>
|
||||
|
||||
|
||||
@ -386,7 +386,7 @@ function wrapWindowByMask(){
|
||||
<td colspan="3">
|
||||
<select name="authorCode" class="sel_type1" title="권한" onchange="authorChange(this)">
|
||||
<c:forEach var="authorResult" items="${authorList}" varStatus="status">
|
||||
<option value="<c:out value="${authorResult.authorCode}"/>" <c:if test="${authorResult.authorCode eq 'ROLE_ADR_ADMIN' }">selected</c:if>>
|
||||
<option value="<c:out value="${authorResult.authorCode}"/>" <c:if test="${authorResult.authorCode eq 'ROLE_VISIT' }">selected</c:if>>
|
||||
<c:out value="${authorResult.authorNm}"/>
|
||||
</option>
|
||||
</c:forEach>
|
||||
@ -466,15 +466,6 @@ function wrapWindowByMask(){
|
||||
<form:errors path="emailAdres" cssClass="error" />
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th>추가인증</th>
|
||||
<td colspan="3">
|
||||
<input type="checkbox" id="areaNo" name="areaNo">
|
||||
<label for="areaNo">핸드폰인증</label>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
@ -62,7 +62,7 @@ $( document ).ready(function(){
|
||||
} */
|
||||
|
||||
//직급 셀렉트박스 설정
|
||||
if("${userManageVO.authorCode}" == "ROLE_ADR_ADMIN"){
|
||||
if("${userManageVO.authorCode}" == "ROLE_VISIT"){
|
||||
$("#rank1").css('display', 'block');
|
||||
$("#rank2").css('display', 'none');
|
||||
$("#rank1").attr('disabled', false);
|
||||
@ -76,10 +76,6 @@ $( document ).ready(function(){
|
||||
}
|
||||
|
||||
_chgAuthorSelect("${userManageVO.authorCode}");
|
||||
|
||||
//핸드폰인증
|
||||
if ("${userManageVO.areaNo}" == "Y") $("input[name='areaNo']").prop("checked", true);
|
||||
|
||||
/*
|
||||
if("${userManageVO.authorCode}" == "ROLE_ADR_JRSDC"){
|
||||
$('#userWork_case1').hide();
|
||||
@ -512,14 +508,6 @@ function _chgAuthorSelect(p_obj_selectedIndex){
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th>추가인증</th>
|
||||
<td colspan="3">
|
||||
<input type="checkbox" id="areaNo" name="areaNo">
|
||||
<label for="areaNo">핸드폰인증</label>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<%-- <c:if test="${empty isAdmin and empty isMember}">
|
||||
<tr>
|
||||
<th>비밀번호확인</th>
|
||||
|
||||
@ -62,7 +62,7 @@ $( document ).ready(function(){
|
||||
} */
|
||||
|
||||
//직급 셀렉트박스 설정
|
||||
if("${userManageVO.authorCode}" == "ROLE_ADR_ADMIN"){
|
||||
if("${userManageVO.authorCode}" == "ROLE_VISIT"){
|
||||
$("#rank1").css('display', 'block');
|
||||
$("#rank2").css('display', 'none');
|
||||
$("#rank1").attr('disabled', false);
|
||||
@ -76,10 +76,6 @@ $( document ).ready(function(){
|
||||
}
|
||||
|
||||
_chgAuthorSelect("${userManageVO.authorCode}");
|
||||
|
||||
//핸드폰인증
|
||||
if ("${userManageVO.areaNo}" == "Y") $("input[name='areaNo']").prop("checked", true);
|
||||
|
||||
/*
|
||||
if("${userManageVO.authorCode}" == "ROLE_ADR_JRSDC"){
|
||||
$('#userWork_case1').hide();
|
||||
@ -516,14 +512,6 @@ function _chgAuthorSelect(p_obj_selectedIndex){
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th>추가인증</th>
|
||||
<td colspan="3">
|
||||
<input type="checkbox" id="areaNo" name="areaNo">
|
||||
<label for="areaNo">핸드폰인증</label>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<%-- <c:if test="${empty isAdmin and empty isMember}">
|
||||
<tr>
|
||||
<th>비밀번호확인</th>
|
||||
|
||||
@ -275,7 +275,7 @@ function bbsMasterExcelDownload(){
|
||||
<%-- <input type="button" value="게시판보기" class="btnType2" onclick="location.href='<c:url value='/cop/bbs/selectBoardList.do'/>?bbsId=<c:out value='${result.bbsId}'/>'"> --%>
|
||||
<button type="button" class="btnType01 btn_look_notice" onclick="location.href='<c:url value='/cop/bbs/selectBoardList.do'/>?bbsId=<c:out value='${result.bbsId}'/>'">게시판보기</button>
|
||||
<%-- <input type="button" value="홈페이지" class="btnType2" onclick="window.open('about:blank').location.href='${result.bbsHomeUrl}'"> --%>
|
||||
<button type="button" class="btnType01 btn_homepage" onclick="window.open('about:blank').location.href='/ipedu${result.bbsHomeUrl}'">홈페이지</button>
|
||||
<button type="button" class="btnType01 btn_homepage" onclick="window.open('about:blank').location.href='/offedu${result.bbsHomeUrl}'">홈페이지</button>
|
||||
</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
|
||||
@ -299,10 +299,10 @@ function fn_egov_inqire_BBSMngInqire() {
|
||||
<form:errors path="posblAtchFileSize" cssClass="error" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<tr style="display:none;">
|
||||
<th><span class="reqArea">방문자 글쓰기 사용여부</span></th>
|
||||
<td>
|
||||
<select class="sel_type1" id="useAt" name="writeYn" title="방문자 글쓰기 사용여부">
|
||||
<select id="useAt" name="writeYn" title="방문자 글쓰기 사용여부">
|
||||
<option value="Y" >사용</option>
|
||||
<option value="N" selected='selected' >미사용</option>
|
||||
</select>
|
||||
|
||||
@ -369,8 +369,8 @@ $( document ).ready(function() {
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th><span class="sel_type1">방문자 글쓰기 사용여부</span></th>
|
||||
<tr style="display:none;">
|
||||
<th><span class="reqArea">방문자 글쓰기 사용여부</span></th>
|
||||
<td>
|
||||
<select id="useAt" name="writeYn" title="방문자 글쓰기 사용여부" class="sel_type1">
|
||||
<option value="Y" <c:if test="${boardMaster.writeYn eq 'Y'}">selected="selected"</c:if> >사용</option>
|
||||
|
||||
@ -134,30 +134,6 @@
|
||||
$(this).attr("selected","selected");
|
||||
}
|
||||
});
|
||||
|
||||
//강의가능지역
|
||||
if ("${info.lctAvlArea1}" == "Y") $("input[name='lctAvlArea1']").prop("checked", true);
|
||||
if ("${info.lctAvlArea2}" == "Y") $("input[name='lctAvlArea2']").prop("checked", true);
|
||||
if ("${info.lctAvlArea3}" == "Y") $("input[name='lctAvlArea3']").prop("checked", true);
|
||||
if ("${info.lctAvlArea4}" == "Y") $("input[name='lctAvlArea4']").prop("checked", true);
|
||||
if ("${info.lctAvlArea5}" == "Y") $("input[name='lctAvlArea5']").prop("checked", true);
|
||||
if ("${info.lctAvlArea6}" == "Y") $("input[name='lctAvlArea6']").prop("checked", true);
|
||||
|
||||
|
||||
//강의가능내용
|
||||
if ("${info.avlLctCntnt1}" == "Y") $("input[name='avlLctCntnt1']").prop("checked", true);
|
||||
if ("${info.avlLctCntnt2}" == "Y") $("input[name='avlLctCntnt2']").prop("checked", true);
|
||||
if ("${info.avlLctCntnt3}" == "Y") $("input[name='avlLctCntnt3']").prop("checked", true);
|
||||
|
||||
//성별
|
||||
var gender = "${info.gender}"
|
||||
|
||||
$('#gender option').each(function(){
|
||||
if (this.value == gender) {
|
||||
$(this).attr("selected","selected");
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
function fn_egov_downFile(atchFileId, fileSn){
|
||||
@ -170,7 +146,7 @@
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
//enctype: 'multipart/form-data',
|
||||
url: "${pageContext.request.contextPath}/kccve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctApptAjax.do",
|
||||
url: "${pageContext.request.contextPath}/ve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctApptAjax.do",
|
||||
data: {
|
||||
"userId" : $("#userId").val() ,
|
||||
"instrDiv" : $("#instrDiv").val() ,
|
||||
@ -207,7 +183,7 @@
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
enctype: 'multipart/form-data',
|
||||
url: "/kccve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctMdfyAjax.do",
|
||||
url: "/ve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctMdfyAjax.do",
|
||||
data: data,
|
||||
dataType:'json',
|
||||
async: false,
|
||||
@ -234,7 +210,7 @@
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
enctype: 'multipart/form-data',
|
||||
url: "${pageContext.request.contextPath}/kccve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctMngDetailDeleteAjax.do",
|
||||
url: "${pageContext.request.contextPath}/ve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctMngDetailDeleteAjax.do",
|
||||
data: data,
|
||||
dataType:'json',
|
||||
async: false,
|
||||
@ -257,7 +233,7 @@
|
||||
function fncGoList(){
|
||||
var detailForm = document.detailForm;
|
||||
detailForm.userId.value="";
|
||||
detailForm.action = "<c:url value='/kccve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctMngList.do'/>";
|
||||
detailForm.action = "<c:url value='/ve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctMngList.do'/>";
|
||||
detailForm.submit();
|
||||
}
|
||||
|
||||
@ -266,11 +242,11 @@
|
||||
$("#aprvlCd").val(rpplTy);
|
||||
$("#rqstType").val(rqstType);
|
||||
var pop = document.detailForm;
|
||||
commonPopWindowopenForm("${pageContext.request.contextPath}/kccve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctCmpnnPopup.do", "750", "660", "instrMdfyRqstPop", $('#detailForm'));
|
||||
commonPopWindowopenForm("${pageContext.request.contextPath}/ve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctCmpnnPopup.do", "750", "660", "instrMdfyRqstPop", $('#detailForm'));
|
||||
}
|
||||
|
||||
function fncAreaList(paramObj) {
|
||||
commonPopWindowopenForm("${pageContext.request.contextPath}/kccve/oprtn/instr/tngrVisitEdu/popup/instrInfo/rsdncPopList.do", "750", "660", "securityPop", $('#detailForm'));
|
||||
commonPopWindowopenForm("${pageContext.request.contextPath}/ve/oprtn/instr/tngrVisitEdu/popup/instrInfo/rsdncPopList.do", "750", "660", "securityPop", $('#detailForm'));
|
||||
}
|
||||
|
||||
//위촉년도 최근년도 뿌려주기
|
||||
@ -315,7 +291,7 @@
|
||||
/*
|
||||
<!-- for validator #3 -->
|
||||
*/
|
||||
//if (!validateVEInstrDetailVO(document.detailForm)) return;
|
||||
if (!validateVEInstrDetailVO(document.detailForm)) return;
|
||||
/*
|
||||
<!-- for validator #3 -->
|
||||
*/
|
||||
@ -331,19 +307,17 @@
|
||||
}
|
||||
|
||||
/* 청소년 강사와 다른 성인 강사 항목. 공통 validator에 없음 */
|
||||
/*
|
||||
if($("#prfsnFld").val() == ''){
|
||||
alert("전문분야는 필수입니다.");
|
||||
return false;
|
||||
}
|
||||
*/
|
||||
|
||||
var data = new FormData(document.getElementById("detailForm"));
|
||||
if(confirm("수정 하시겠습니까?")){
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
enctype: 'multipart/form-data',
|
||||
url: "${pageContext.request.contextPath}/kccve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctMngDetailUpdateAjax.do",
|
||||
url: "${pageContext.request.contextPath}/ve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctMngDetailUpdateAjax.do",
|
||||
data: data,
|
||||
dataType:'json',
|
||||
async: false,
|
||||
@ -353,7 +327,7 @@
|
||||
success: function (returnData, status) {
|
||||
if(status == 'success'){
|
||||
alert("수정 처리 완료하였습니다.");
|
||||
location.reload();
|
||||
fncGoList();
|
||||
} else if(status== 'fail'){
|
||||
alert("수정 처리 실패하였습니다.");
|
||||
}
|
||||
@ -501,109 +475,19 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p>대표자격</p>
|
||||
<p>소속</p>
|
||||
</th>
|
||||
<td>
|
||||
<input type="text" name="repQf" id="repQf" size="20" value="<c:out value='${info.repQf}'/>" maxLength="20">
|
||||
<input type="text" name="blng" id="blng" size="20" value="<c:out value='${info.blng}'/>" maxLength="20">
|
||||
</td>
|
||||
<th scope="row">
|
||||
<p>세부자격</p>
|
||||
<p>직위</p>
|
||||
</th>
|
||||
<td>
|
||||
<input type="text" name="subQf" id="subQf" size="20" maxlength="20" placeholder="" value="<c:out value='${info.subQf}'/>">
|
||||
<input type="text" name="pstn" id="pstn" size="20" maxlength="20" placeholder="" value="<c:out value='${info.pstn}'/>">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p>소속명</p>
|
||||
</th>
|
||||
<td>
|
||||
<input type="text" name="workArea" id="workArea" size="20" value="<c:out value='${info.workArea}'/>" maxLength="40">
|
||||
</td>
|
||||
<th scope="row">
|
||||
<p>강의가능내용</p>
|
||||
</th>
|
||||
<td>
|
||||
<input type="checkbox" id="avlLctCntnt1" name="avlLctCntnt1">
|
||||
<label for="avlLctCntnt1">상표권교육(1)</label>
|
||||
<input type="checkbox" id="avlLctCntnt2" name="avlLctCntnt2">
|
||||
<label for="avlLctCntnt2">상표권교육(2)</label>
|
||||
<input type="checkbox" id="avlLctCntnt3" name="avlLctCntnt3">
|
||||
<label for="avlLctCntnt3">부정경쟁행위 교육</label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p>근무지역</p>
|
||||
</th>
|
||||
<td>
|
||||
<input type="text" name="rsdne" id="rsdne" size="20" value="<c:out value='${info.rsdne}'/>" maxLength="20">
|
||||
</td>
|
||||
<th scope="row">
|
||||
<p>강의가능지역</p>
|
||||
</th>
|
||||
<td>
|
||||
<input type="checkbox" id="lctAvlArea1" name="lctAvlArea1">
|
||||
<label for="lctAvlArea1">수도권</label>
|
||||
<input type="checkbox" id="lctAvlArea2" name="lctAvlArea2">
|
||||
<label for="lctAvlArea2">강원도</label>
|
||||
<input type="checkbox" id="lctAvlArea3" name="lctAvlArea3">
|
||||
<label for="lctAvlArea3">충청도</label>
|
||||
<input type="checkbox" id="lctAvlArea4" name="lctAvlArea4">
|
||||
<label for="lctAvlArea4">전라도</label>
|
||||
<input type="checkbox" id="lctAvlArea5" name="lctAvlArea5">
|
||||
<label for="lctAvlArea5">경상도</label>
|
||||
<input type="checkbox" id="lctAvlArea6" name="lctAvlArea6">
|
||||
<label for="lctAvlArea6">제주도</label>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p>경력</p>
|
||||
</th>
|
||||
<td>
|
||||
<input type="text" name="carer" id="carer" size="20" value="<c:out value='${info.carer}'/>" maxLength="20">
|
||||
</td>
|
||||
<th scope="row">
|
||||
<p>성별</p>
|
||||
</th>
|
||||
<td>
|
||||
<select name="gender" id="gender" class="sel_type1">
|
||||
<option value='F'>여성</option>
|
||||
<option value='M'>남성</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p>모집구분</p>
|
||||
</th>
|
||||
<td>
|
||||
<input type="text" name="rcrtCtgr" id="rcrtCtgr" size="20" value="<c:out value='${info.rcrtCtgr}'/>" maxLength="20">
|
||||
</td>
|
||||
<th scope="row">
|
||||
<p>위촉일</p>
|
||||
</th>
|
||||
<td>
|
||||
<input type="text" name="apntDt" id="apntDt" size="20" maxlength="20" placeholder="" value="<c:out value='${info.apntDt}'/>">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p>활동일</p>
|
||||
</th>
|
||||
<td>
|
||||
<input type="text" name="actvDt" id="actvDt" size="20" value="<c:out value='${info.actvDt}'/>" maxLength="20">
|
||||
</td>
|
||||
<th scope="row">
|
||||
<p>종합 만족도 조사</p>
|
||||
</th>
|
||||
<td>
|
||||
<input type="text" name="ovrlSrvy" id="ovrlSrvy" size="20" maxlength="20" placeholder="" value="<c:out value='${info.ovrlSrvy}'/>">
|
||||
</td>
|
||||
</tr>
|
||||
<!-- <tr>
|
||||
<th scope="row">
|
||||
<p>위촉년도</p>
|
||||
</th>
|
||||
@ -617,7 +501,7 @@
|
||||
<td>
|
||||
<ve:select codeId="VE0018" name="divCd" id="divCd" selectedValue="${info.divCd}" styleClass="sel_type1"/>
|
||||
</td>
|
||||
</tr> -->
|
||||
</tr>
|
||||
<%-- <tr>
|
||||
<th scope="row">
|
||||
<p>위촉구분${info.apptDiv}</p>
|
||||
@ -626,7 +510,6 @@
|
||||
<ve:code codeId="VE0032" code="${info.apptDiv}"/>
|
||||
</td>
|
||||
</tr> --%>
|
||||
<!--
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p>전문분야</p>
|
||||
@ -636,15 +519,6 @@
|
||||
- SW코딩, 사물인터넷,인공지능,인성, 비젼, 캠프, 인터넷중독, 가족치료, 저작권 개론 등"><c:out value='${info.prfsnFld}'/></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
-->
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p>비고</p>
|
||||
</th>
|
||||
<td colspan="3">
|
||||
<textarea name="rmrks" id="rmrks" placeholder=""><c:out value='${info.rmrks}'/></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user