개발서버 본인인증 로그인 적용
This commit is contained in:
parent
598d6767e2
commit
09f90f8504
@ -13,8 +13,12 @@ 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.*;
|
||||
@ -33,6 +37,7 @@ import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
|
||||
/**
|
||||
@ -91,6 +96,16 @@ public class XxxWebController {
|
||||
@Resource(name = "SendService")
|
||||
private SendService sendService;
|
||||
|
||||
//과정차시 관리
|
||||
@Resource(name = "vEPrcsAplctPrdService")
|
||||
private VEPrcsAplctPrdService vEPrcsAplctPrdService;
|
||||
|
||||
|
||||
//과정차시 관리
|
||||
@Resource(name = "sendAtUtill")
|
||||
private SendAtUtill sendAtUtill;
|
||||
|
||||
|
||||
/**
|
||||
* XXX 목록 화면
|
||||
*/
|
||||
@ -324,16 +339,20 @@ public class XxxWebController {
|
||||
@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);
|
||||
// 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;
|
||||
}
|
||||
|
||||
|
||||
@ -1,10 +1,12 @@
|
||||
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;
|
||||
@ -55,6 +57,9 @@ public class CmdTrgtServiceImpl implements CmdTrgtService {
|
||||
@Resource(name = "vEEduAplctSndHstryService")
|
||||
private VEEduAplctSndHstryService vEEduAplctSndHstryService;
|
||||
|
||||
@Resource(name = "SendService")
|
||||
private SendService sendService;
|
||||
|
||||
@Override
|
||||
public void insertVeEduAplct(VEEduAplctVO paramVO) {
|
||||
vEEduAplctDAO.insertVeEduAplct(paramVO);
|
||||
@ -236,6 +241,11 @@ 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"))){
|
||||
//발송 로그
|
||||
|
||||
@ -3,12 +3,15 @@ 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;
|
||||
@ -187,6 +190,12 @@ 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
|
||||
|
||||
/**
|
||||
@ -740,6 +749,11 @@ 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
|
||||
}
|
||||
|
||||
@ -1,10 +1,12 @@
|
||||
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;
|
||||
@ -55,6 +57,9 @@ public class PreventServiceImpl implements PreventService {
|
||||
@Resource(name = "vEEduAplctSndHstryService")
|
||||
private VEEduAplctSndHstryService vEEduAplctSndHstryService;
|
||||
|
||||
@Resource(name = "SendService")
|
||||
private SendService sendService;
|
||||
|
||||
@Override
|
||||
public void insertVeEduAplct(VEEduAplctVO paramVO) {
|
||||
vEEduAplctDAO.insertVeEduAplct(paramVO);
|
||||
@ -232,6 +237,11 @@ 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"))){
|
||||
//발송 로그
|
||||
|
||||
@ -9,6 +9,8 @@ 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;
|
||||
@ -186,6 +188,12 @@ 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
|
||||
|
||||
/**
|
||||
@ -739,6 +747,10 @@ 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
|
||||
}
|
||||
|
||||
@ -1,10 +1,12 @@
|
||||
package kcc.ve.aplct.sspnIdtmt.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,6 +58,9 @@ public class SspnIdtmtServiceImpl implements SspnIdtmtService {
|
||||
@Resource(name = "vEEduAplctSndHstryService")
|
||||
private VEEduAplctSndHstryService vEEduAplctSndHstryService;
|
||||
|
||||
@Resource(name = "SendService")
|
||||
private SendService sendService;
|
||||
|
||||
@Override
|
||||
public void insertVeEduAplct(VEEduAplctVO paramVO) {
|
||||
vEEduAplctDAO.insertVeEduAplct(paramVO);
|
||||
@ -293,6 +298,11 @@ public class SspnIdtmtServiceImpl implements SspnIdtmtService {
|
||||
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"))){
|
||||
//발송 로그
|
||||
|
||||
@ -9,6 +9,8 @@ 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;
|
||||
@ -179,6 +181,12 @@ 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";
|
||||
|
||||
/**
|
||||
@ -730,6 +738,10 @@ 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
|
||||
}
|
||||
|
||||
66
src/main/java/kcc/ve/cmm/sendAt/SendAtUtill.java
Normal file
66
src/main/java/kcc/ve/cmm/sendAt/SendAtUtill.java
Normal file
@ -0,0 +1,66 @@
|
||||
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,41 +1,13 @@
|
||||
package kcc.ve.cmm.sendAt;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Map;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import lombok.*;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import java.io.Serializable;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @packageName : kcc.com.snd.service
|
||||
* @templatecode
|
||||
* @신청인_접수확인_1 :
|
||||
* TEMPLATE_APP_JUBSU
|
||||
* @chihwan : 없음
|
||||
* @신청인_담당자배정_1 :
|
||||
* TEMPLATE_APP_BAEJUNG
|
||||
* @chihwan : "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"
|
||||
*
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@ -56,6 +28,8 @@ public class SendAtVO implements Serializable {
|
||||
private String from;
|
||||
private String to;
|
||||
private Content content;
|
||||
private Resend resend;
|
||||
private Recontent recontent;
|
||||
|
||||
@JsonIgnore
|
||||
private Map<String, String> chihwan;
|
||||
@ -85,7 +59,7 @@ public class SendAtVO implements Serializable {
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public static class resend {
|
||||
public static class Resend {
|
||||
private String first;
|
||||
}
|
||||
|
||||
@ -94,7 +68,7 @@ public class SendAtVO implements Serializable {
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public static class recontent {
|
||||
public static class Recontent {
|
||||
private Lms lms;
|
||||
|
||||
@Getter
|
||||
|
||||
57
src/main/java/kcc/ve/cmm/sendAt/SendController.java
Normal file
57
src/main/java/kcc/ve/cmm/sendAt/SendController.java
Normal file
@ -0,0 +1,57 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
177
src/main/java/kcc/ve/cmm/sendAt/SendScheduler.java
Normal file
177
src/main/java/kcc/ve/cmm/sendAt/SendScheduler.java
Normal file
@ -0,0 +1,177 @@
|
||||
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,6 +1,7 @@
|
||||
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;
|
||||
@ -46,4 +47,6 @@ public interface SendService {
|
||||
|
||||
void updateSendSet(SendSmsVO sendSmsVO) throws Exception;
|
||||
|
||||
public List<VEPrcsDetailVO> select7DaybeforeAt(Integer diffDay) throws Exception;
|
||||
|
||||
}
|
||||
@ -1,9 +1,9 @@
|
||||
package kcc.ve.cmm.sendAt.impl;
|
||||
|
||||
import egovframework.rte.psl.dataaccess.util.EgovMap;
|
||||
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;
|
||||
@ -27,4 +27,9 @@ public class SendDAO extends EgovComAbstractDAO {
|
||||
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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -5,10 +5,14 @@ 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;
|
||||
@ -18,10 +22,7 @@ import javax.net.ssl.HttpsURLConnection;
|
||||
import javax.net.ssl.SSLContext;
|
||||
import javax.net.ssl.TrustManager;
|
||||
import javax.net.ssl.X509TrustManager;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.OutputStream;
|
||||
import java.io.*;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
import java.security.KeyManagementException;
|
||||
@ -64,15 +65,14 @@ public class SendServiceImpl extends EgovAbstractServiceImpl implements SendServ
|
||||
.type(vo.getType())
|
||||
.to(to)
|
||||
.content(Content.builder()
|
||||
.at(SendAtVO.Content.At.builder()
|
||||
.at(At.builder()
|
||||
.templatecode(templateCode)
|
||||
.build()
|
||||
)
|
||||
.build()
|
||||
)
|
||||
.chihwan(chihwan)
|
||||
.build()
|
||||
;
|
||||
.build();
|
||||
|
||||
this.sendAt(vo);
|
||||
|
||||
@ -135,15 +135,21 @@ public class SendServiceImpl extends EgovAbstractServiceImpl implements SendServ
|
||||
sendDAO.updateSendSet(sendSmsVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<VEPrcsDetailVO> select7DaybeforeAt(Integer diffDay) throws Exception{
|
||||
return sendDAO.select7DaybeforeAt(diffDay);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @methodName : timeDiffBefore
|
||||
* @author : JunHo Lee
|
||||
* @date : 2024.12.09
|
||||
* @description :
|
||||
* @param str
|
||||
* @return :
|
||||
* !str이 현재 시간보다 이전이면 true
|
||||
* !str이 현재 시간보다 이후이면 false
|
||||
* @methodName : timeDiffBefore
|
||||
* @author : JunHo Lee
|
||||
* @date : 2024.12.09
|
||||
* @description :
|
||||
*/
|
||||
private Boolean timeDiffBefore( String str ) {
|
||||
try {
|
||||
@ -174,9 +180,16 @@ public class SendServiceImpl extends EgovAbstractServiceImpl implements SendServ
|
||||
/** 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) { } } };
|
||||
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());
|
||||
@ -213,8 +226,15 @@ public class SendServiceImpl extends EgovAbstractServiceImpl implements SendServ
|
||||
.message(at.getMessage())
|
||||
.build()
|
||||
)
|
||||
.build()
|
||||
)
|
||||
.build())
|
||||
.resend(Resend.builder()
|
||||
.first("lms")
|
||||
.build())
|
||||
.recontent(Recontent.builder()
|
||||
.lms(Lms.builder()
|
||||
.message(at.getMessage())
|
||||
.build())
|
||||
.build())
|
||||
.build();
|
||||
|
||||
// Request body 전송
|
||||
@ -279,9 +299,16 @@ public class SendServiceImpl extends EgovAbstractServiceImpl implements SendServ
|
||||
/** 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) { } } };
|
||||
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());
|
||||
@ -383,13 +410,19 @@ public class SendServiceImpl extends EgovAbstractServiceImpl implements SendServ
|
||||
PpurioGlobalSet ppurioGlobalSet = new PpurioGlobalSet();
|
||||
|
||||
try {
|
||||
System.out.println("test");
|
||||
/** 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) { } } };
|
||||
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());
|
||||
@ -469,42 +502,6 @@ public class SendServiceImpl extends EgovAbstractServiceImpl implements SendServ
|
||||
Map<String, String[]> requiredPlaceholders = new HashMap<>();
|
||||
|
||||
switch(at.getTemplatecode()) {
|
||||
/*case "TEMPLATE_APP_JUBSU": // 신청인_접수확인_1
|
||||
at.setTemplatecode("bizp_2024112810423519814410026");
|
||||
content = "[한국공정거래조정원] \r\n"
|
||||
+ "귀사(하)의 조정신청이 접수 완료되었습니다.\r\n"
|
||||
+ "향후 담당부서 및 담당자가 배정될 예정입니다.";
|
||||
break;
|
||||
case "TEMPLATE_APP_BAEJUNG": // 신청인_담당자배정_2
|
||||
at.setTemplatecode("bizp_2024121915475924487679960");
|
||||
content = "[한국공정거래조정원]\r\n"
|
||||
+ "귀사(하)가 #{respondent}을(를) 상대로 신청한 사건의 사건번호는 #{caseNo}, 담당자는 #{team}팀 #{examiner} 조사관(유선전화:#{tel}, 메일주소 #{email})입니다.\r\n"
|
||||
+ "향후 담당 조사관이 공문 등을 통해 연락드릴 예정입니다.";
|
||||
requiredPlaceholders.put(at.getTemplatecode(), new String[]{"respondent","caseNo", "team", "examiner", "tel", "email"});
|
||||
break;
|
||||
case "TEMPLATE_BOTH_SANGJUNG": // 양당사자_분쟁조정협의회 안건상정
|
||||
at.setTemplatecode("bizp_2024112810492919814837182");
|
||||
content = "[한국공정거래조정원]\r\n"
|
||||
+ "귀사(하)가 진행 중인 분쟁조정 사건 [사건번호 #{caseNo}]이 향후 개최될 #{cfrnc}분쟁조정협의회에 상정될 예정입니다.\r\n"
|
||||
+ "#{cfrnc}분쟁조정협의회 기일은 담당 조사관(유선전화:#{tel}, 메일주소 #{email})에게 문의주시면 안내드리겠습니다.";
|
||||
requiredPlaceholders.put(at.getTemplatecode(), new String[]{"caseNo", "cfrnc", "tel", "email"});
|
||||
break;
|
||||
case "TEMPLATE_BOTH_CHULSUK": // 양당사자_출석요구 n차
|
||||
at.setTemplatecode("bizp_2025011515420924487914030");
|
||||
content = "[한국공정거래조정원]\r\n"
|
||||
+ "귀사(하)가 진행 중인 분쟁조정 사건 [사건번호 #{caseNo}]의 출석조사(#{nCha}차) 기일이 확정되었습니다. \r\n"
|
||||
+ "향후 담당 조사관이 공문 등을 통해 연락드릴 예정입니다. \r\n"
|
||||
+ "https://fairnet.kofair.or.kr";
|
||||
requiredPlaceholders.put(at.getTemplatecode(), new String[]{"caseNo", "nCha"});
|
||||
break;
|
||||
case "TEMPLATE_BOTH_TONGJI": // 양당사자_통지
|
||||
at.setTemplatecode("bizp_2025011515425124487733149");
|
||||
content = "[한국공정거래조정원]\r\n"
|
||||
+ "귀사(하)가 진행 중인 분쟁조정 사건 [사건번호 #{caseNo}]에 대한 #{cfrnc}분쟁조정협의회 의결이 완료되었습니다.\r\n"
|
||||
+ "한국공정거래조정원 분쟁조정사건처리시스템에서 확인해주시기 바랍니다.\r\n"
|
||||
+ "https://fairnet.kofair.or.kr";
|
||||
requiredPlaceholders.put(at.getTemplatecode(), new String[]{"caseNo", "cfrnc"});
|
||||
break;*/
|
||||
case "TEMPLATE_EDU_SUBMIT": // 교육신청
|
||||
at.setTemplatecode("bizp_2025112512494050432369880");
|
||||
content =
|
||||
@ -523,6 +520,15 @@ public class SendServiceImpl extends EgovAbstractServiceImpl implements SendServ
|
||||
+ "문의처: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());
|
||||
|
||||
@ -69,13 +69,13 @@ Globals.Innorix.FilePath=/usr/local/tomcat/file/sht/
|
||||
# ===========================
|
||||
# Siren24 \uC778\uC99D \uAD00\uB828 \uC124\uC815
|
||||
# ===========================
|
||||
globals.certPhone.retUrl=https://dev-ipedu.iten.co.kr/ipedu/
|
||||
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=001003
|
||||
globals.certPhone.srvNo=002002
|
||||
globals.certPhone.srvNo=003002
|
||||
globals.certPhone.accessToken=994b5d96-3788-4239-a5b0-a0ba2e0cf089
|
||||
globals.certPhone.stosUrl=https://pcc.siren24.com/servlet/StoS
|
||||
|
||||
|
||||
@ -6,6 +6,8 @@
|
||||
<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
|
||||
@ -27,126 +29,61 @@
|
||||
|
||||
</update>
|
||||
|
||||
<!--<select id="sendDAO.selectTEMPLATE_APP_BAEJUNG" parameterClass="egovMap" resultClass="egovMap">
|
||||
SELECT
|
||||
LISTAGG(A.RESPONDENT_COMPANY, ',') WITHIN GROUP (ORDER BY A.RESPONDENT_COMPANY) AS RESPONDENT_COMPANY,
|
||||
A.CASE_NO AS CASE_NO,
|
||||
B.RCEPT_NO AS RCEPT_NO,
|
||||
CASE TO_CHAR(C.MEMBER_DEPT)
|
||||
WHEN '1001000000' THEN
|
||||
'한국공정거래조정원'
|
||||
WHEN '1002000000' THEN
|
||||
'운영지원팀'
|
||||
WHEN '1003000000' THEN
|
||||
'분쟁조정실'
|
||||
WHEN '1004000000' THEN
|
||||
'공정약관1팀'
|
||||
WHEN '1005000000' THEN
|
||||
'가맹대리점유통팀'
|
||||
WHEN '1006000000' THEN
|
||||
'건설하도급팀'
|
||||
WHEN '1007000000' THEN
|
||||
'제조하도급팀'
|
||||
WHEN '1008000000' THEN
|
||||
'약관1팀'
|
||||
WHEN '1009000000' THEN
|
||||
'대리점팀'
|
||||
WHEN '1010000000' THEN
|
||||
'민원상담센터'
|
||||
WHEN '1020000000' THEN
|
||||
'관리팀'
|
||||
WHEN '1030000000' THEN
|
||||
'유통팀'
|
||||
WHEN '1040000000' THEN
|
||||
'플랫폼1팀'
|
||||
WHEN '1041000000' THEN
|
||||
'약관2팀'
|
||||
WHEN '1042000000' THEN
|
||||
'플랫폼2팀'
|
||||
WHEN '1043000000' THEN
|
||||
'공정약관2팀'
|
||||
ELSE
|
||||
'기타'
|
||||
END AS MEMBER_DEPT,
|
||||
C.MEMBER_NAME AS MEMBER_NAME,
|
||||
C.MEMBER_TEL AS MEMBER_TEL,
|
||||
C.MEMBER_EMAIL1
|
||||
|| '@'
|
||||
|| C.MEMBER_EMAIL2 AS MEMBER_EMAIL,
|
||||
D.CONFERENCE_NAMES
|
||||
FROM
|
||||
C_CASERESPONDENT A
|
||||
LEFT OUTER JOIN C_MASTER B
|
||||
ON A.CASE_NO = B.CASE_NO
|
||||
LEFT OUTER JOIN T_MEMBER C
|
||||
ON B.CASE_EXAMINER = C.MEMBER_ID
|
||||
LEFT OUTER JOIN (
|
||||
SELECT
|
||||
A.CFRNC_NO,
|
||||
A.CONFERENCE_NAMES, B.CASE_NO
|
||||
FROM
|
||||
C_CFRNCMANAGE A
|
||||
INNER JOIN (
|
||||
SELECT
|
||||
AA.CFRNC_NO,
|
||||
AA.CASE_NO
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
A.CFRNC_NO,
|
||||
A.CASE_NO
|
||||
FROM
|
||||
C_ENDMTR A
|
||||
UNION
|
||||
ALL
|
||||
SELECT
|
||||
B.CFRNC_NO,
|
||||
B.CASE_NO
|
||||
FROM
|
||||
C_DLBRTMTR B
|
||||
UNION
|
||||
ALL
|
||||
SELECT
|
||||
C.CFRNC_NO,
|
||||
C.CASE_NO
|
||||
FROM
|
||||
C_ENDJOSU C
|
||||
) AA
|
||||
) B
|
||||
ON A.CFRNC_NO = B.CFRNC_NO
|
||||
) D
|
||||
ON D.CASE_NO = A.CASE_NO
|
||||
WHERE
|
||||
A.CASE_NO = #caseNo#
|
||||
GROUP BY
|
||||
A.CASE_NO,
|
||||
B.RCEPT_NO,
|
||||
C.MEMBER_DEPT,
|
||||
C.MEMBER_NAME,
|
||||
C.MEMBER_TEL,
|
||||
C.MEMBER_EMAIL1,
|
||||
C.MEMBER_EMAIL2,
|
||||
D.CONFERENCE_NAMES
|
||||
<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>
|
||||
|
||||
<select id="sendDAO.selectTEMPLATE_BOTH_CHULSUK" parameterClass="egovMap" resultClass="egovMap">
|
||||
SELECT
|
||||
A.SEQ_NO AS SEQ_NO,
|
||||
A.TEL AS TEL
|
||||
FROM
|
||||
C_CASEAPPLCNT A
|
||||
WHERE
|
||||
A.CASE_NO = #caseNo#
|
||||
UNION
|
||||
ALL
|
||||
SELECT
|
||||
B.SEQ_NO AS SEQ_NO,
|
||||
B.TEL AS TEL
|
||||
FROM
|
||||
C_CASERESPONDENT B
|
||||
WHERE
|
||||
B.CASE_NO = #caseNo#
|
||||
</select>-->
|
||||
|
||||
|
||||
</sqlMap>
|
||||
|
||||
106
src/main/webapp/WEB-INF/jsp/ve/cmm/sendAt/SmsSend.jsp
Normal file
106
src/main/webapp/WEB-INF/jsp/ve/cmm/sendAt/SmsSend.jsp
Normal file
@ -0,0 +1,106 @@
|
||||
<!DOCTYPE html>
|
||||
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>
|
||||
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
|
||||
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
|
||||
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
|
||||
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
|
||||
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
|
||||
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld" %>
|
||||
<html lang="ko">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function () {
|
||||
});
|
||||
|
||||
function smsSend() {
|
||||
var to = $('#to').val().trim().replaceAll('-', '');
|
||||
var smsContent = $('#smsContent').val();
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "<c:url value='/cmm/sendAt/smsSendAjax.do' />",
|
||||
data: {
|
||||
"to": to,
|
||||
"smsContent": smsContent
|
||||
},
|
||||
dataType: 'json',
|
||||
success: function (returnData, status) {
|
||||
if (status == "success") {
|
||||
alert("문자메시지가 전송되었습니다.");
|
||||
} else {
|
||||
alert("ERROR!");
|
||||
return;
|
||||
}
|
||||
},
|
||||
error: function (request, status, error) {
|
||||
alert("code:" + request.status + "\n" + "message:" + request.responseText + "\n" + "error:" + error);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
<title>문자발송</title>
|
||||
</head>
|
||||
<body>
|
||||
<form id="listForm" name="listForm" action="">
|
||||
<div class="cont_wrap">
|
||||
<div class="box">
|
||||
<c:import url="/cmm/navi/adminContNav.do">
|
||||
<c:param name="url" value="/cmm/sendAt/smsSend.do"/>
|
||||
<c:param name="name1" value=""/>
|
||||
<c:param name="name2" value=""/>
|
||||
<c:param name="name3" value=""/>
|
||||
</c:import>
|
||||
|
||||
<div class="cont">
|
||||
<!-- list_top -->
|
||||
<div class="list_top">
|
||||
<div class="list_top_1">
|
||||
<div class="util_left">
|
||||
<p>문자메시지</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- //list_top -->
|
||||
|
||||
<div class="tbType02">
|
||||
<table>
|
||||
<colgroup>
|
||||
<col style="width: 20%">
|
||||
<col style="width: 80%">
|
||||
</colgroup>
|
||||
|
||||
<tbody>
|
||||
<tr>
|
||||
<th><span class="reqArea">수신번호</span></th>
|
||||
<td>
|
||||
<input type="text" name="to" id="to"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><span class="reqArea">내용</span></th>
|
||||
<td>
|
||||
<textarea name="smsContent" id="smsContent" cols="30" rows="10"></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="btn_wrap btn_layout01">
|
||||
<div class="area_left">
|
||||
</div>
|
||||
<div class="area_right">
|
||||
<button type="button" class="btnType02" onclick="smsSend(); return false;">등록
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
@ -189,7 +189,7 @@ function certPhone() {
|
||||
<option value="박길동:01055551111:W:19991124:GwekrDfuErjWrj/DSjfsduerlkrkjweR+DJfisdfioueklrjiJeudsdWErQWERasdvDASgfeRTdsioufiuERwe==">박길동:01055551111:W:19991124</option>
|
||||
<option value="이준호:01030266269:M:19890202:HwekrDfuErjWrj/DSjfsduerlkrkjweR+DJfisdfioueklrjiJeudsdWErQWERasdvDASgfeRTdsioufiuERwe==">이준호:01030266269:M:19890202</option>
|
||||
</select>
|
||||
</div>4
|
||||
</div>
|
||||
</c:if>
|
||||
</div>
|
||||
</form:form>
|
||||
|
||||
@ -140,7 +140,7 @@
|
||||
$("#jender_input").prop('readonly', true);
|
||||
$("#clphone").prop('readonly', true);
|
||||
$(".duet-date__toggle").remove();
|
||||
alert(returnData.crtfdNumber);
|
||||
// alert(returnData.crtfdNumber);
|
||||
|
||||
|
||||
}else{ //본인인증 후
|
||||
|
||||
@ -142,7 +142,7 @@
|
||||
$("#jender_input").prop('readonly', true);
|
||||
$("#clphone").prop('readonly', true);
|
||||
$(".duet-date__toggle").remove();
|
||||
alert(returnData.crtfdNumber);
|
||||
// alert(returnData.crtfdNumber);
|
||||
|
||||
|
||||
}else{ //본인인증 후
|
||||
|
||||
@ -140,7 +140,7 @@
|
||||
$("#jender_input").prop('readonly', true);
|
||||
$("#clphone").prop('readonly', true);
|
||||
$(".duet-date__toggle").remove();
|
||||
alert(returnData.crtfdNumber);
|
||||
// alert(returnData.crtfdNumber);
|
||||
|
||||
}else{ //본인인증 후
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user