Merge branch 'master_tolag3'
This commit is contained in:
commit
24f0fb14e9
@ -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;
|
||||
@ -54,6 +56,9 @@ public class CmdTrgtServiceImpl implements CmdTrgtService {
|
||||
// 교육신청발송이력
|
||||
@Resource(name = "vEEduAplctSndHstryService")
|
||||
private VEEduAplctSndHstryService vEEduAplctSndHstryService;
|
||||
|
||||
@Resource(name = "SendService")
|
||||
private SendService sendService;
|
||||
|
||||
@Override
|
||||
public void insertVeEduAplct(VEEduAplctVO 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;
|
||||
@ -186,6 +189,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;
|
||||
@ -54,6 +56,9 @@ public class PreventServiceImpl implements PreventService {
|
||||
// 교육신청발송이력
|
||||
@Resource(name = "vEEduAplctSndHstryService")
|
||||
private VEEduAplctSndHstryService vEEduAplctSndHstryService;
|
||||
|
||||
@Resource(name = "SendService")
|
||||
private SendService sendService;
|
||||
|
||||
@Override
|
||||
public void insertVeEduAplct(VEEduAplctVO 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;
|
||||
@ -185,6 +187,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;
|
||||
@ -55,6 +57,9 @@ public class SspnIdtmtServiceImpl implements SspnIdtmtService {
|
||||
// 교육신청발송이력
|
||||
@Resource(name = "vEEduAplctSndHstryService")
|
||||
private VEEduAplctSndHstryService vEEduAplctSndHstryService;
|
||||
|
||||
@Resource(name = "SendService")
|
||||
private SendService sendService;
|
||||
|
||||
@Override
|
||||
public void insertVeEduAplct(VEEduAplctVO 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;
|
||||
@ -178,6 +180,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;
|
||||
@ -33,70 +34,69 @@ import java.util.*;
|
||||
@Service("SendService")
|
||||
public class SendServiceImpl extends EgovAbstractServiceImpl implements SendService {
|
||||
|
||||
@Resource(name="sendDAO")
|
||||
@Resource(name = "sendDAO")
|
||||
private SendDAO sendDAO;
|
||||
|
||||
|
||||
@Override
|
||||
public void sendAt(
|
||||
String to
|
||||
, String templateCode
|
||||
, Map<String, String> chihwan
|
||||
) throws Exception{
|
||||
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 {
|
||||
} 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(SendAtVO.Content.At.builder()
|
||||
.templatecode(templateCode)
|
||||
.build()
|
||||
)
|
||||
.build()
|
||||
)
|
||||
.chihwan(chihwan)
|
||||
.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{
|
||||
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 {
|
||||
} else {
|
||||
System.out.println("토큰 갱신 실패");
|
||||
throw new Exception();
|
||||
}
|
||||
@ -106,63 +106,69 @@ public class SendServiceImpl extends EgovAbstractServiceImpl implements SendServ
|
||||
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 {
|
||||
} else {
|
||||
success = false;
|
||||
System.out.println("문자 발송 실패: " + phone);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Map<String, Object> resultMap = new HashMap<>();
|
||||
resultMap.put("success" , success);
|
||||
resultMap.put("successCnt" , successCnt);
|
||||
resultMap.put("success", success);
|
||||
resultMap.put("successCnt", successCnt);
|
||||
return resultMap;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public SendSmsVO selectSendSet() throws Exception{
|
||||
public SendSmsVO selectSendSet() throws Exception {
|
||||
return sendDAO.selectSendSet();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void updateSendSet(SendSmsVO sendSmsVO) throws Exception{
|
||||
public void updateSendSet( SendSmsVO sendSmsVO ) throws Exception {
|
||||
sendDAO.updateSendSet(sendSmsVO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @methodName : timeDiffBefore
|
||||
* @author : JunHo Lee
|
||||
* @date : 2024.12.09
|
||||
* @description :
|
||||
* @param str
|
||||
* @return :
|
||||
* !str이 현재 시간보다 이전이면 true
|
||||
* !str이 현재 시간보다 이후이면 false
|
||||
*/
|
||||
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;
|
||||
}
|
||||
@Override
|
||||
public List<VEPrcsDetailVO> select7DaybeforeAt(Integer diffDay) throws Exception{
|
||||
return sendDAO.select7DaybeforeAt(diffDay);
|
||||
}
|
||||
|
||||
public static String sendAt(SendAtVO sendAtVO) {
|
||||
|
||||
/**
|
||||
* @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();
|
||||
|
||||
@ -173,10 +179,17 @@ 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) { } } };
|
||||
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());
|
||||
@ -207,42 +220,49 @@ public class SendServiceImpl extends EgovAbstractServiceImpl implements SendServ
|
||||
.from(ppurioGlobalSet.getFrom())
|
||||
.to(sendAtVO.getTo())
|
||||
.content(Content.builder()
|
||||
.at(At.builder()
|
||||
.senderkey(ppurioGlobalSet.getSenderKey())
|
||||
.templatecode(at.getTemplatecode())
|
||||
.message(at.getMessage())
|
||||
.build()
|
||||
)
|
||||
.build()
|
||||
.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();
|
||||
}
|
||||
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();
|
||||
// 서버 응답 처리
|
||||
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());
|
||||
|
||||
@ -250,21 +270,21 @@ public class SendServiceImpl extends EgovAbstractServiceImpl implements SendServ
|
||||
// status = jObject.getString("description");
|
||||
|
||||
|
||||
} catch (IOException e) {
|
||||
// TODO Auto-generated catch block
|
||||
} catch(IOException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
} catch (KeyManagementException e) {
|
||||
// TODO Auto-generated catch block
|
||||
} catch(KeyManagementException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
} catch (NoSuchAlgorithmException e) {
|
||||
// TODO Auto-generated catch block
|
||||
} catch(NoSuchAlgorithmException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
// return status;
|
||||
}
|
||||
|
||||
public static Boolean sendSmsPrcs(SendSmsVO sendSmsVO) {
|
||||
public static Boolean sendSmsPrcs( SendSmsVO sendSmsVO ) {
|
||||
|
||||
Boolean success = true;
|
||||
|
||||
@ -278,10 +298,17 @@ 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) { } } };
|
||||
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());
|
||||
@ -302,54 +329,54 @@ public class SendServiceImpl extends EgovAbstractServiceImpl implements SendServ
|
||||
|
||||
/*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);
|
||||
}
|
||||
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");
|
||||
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();
|
||||
String body = json.toString();
|
||||
|
||||
// Request body 전송
|
||||
try (OutputStream os = connection.getOutputStream()) {
|
||||
os.write(body.getBytes("UTF-8"));
|
||||
os.flush();
|
||||
}
|
||||
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();
|
||||
// 서버 응답 처리
|
||||
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());
|
||||
|
||||
@ -357,16 +384,16 @@ public class SendServiceImpl extends EgovAbstractServiceImpl implements SendServ
|
||||
// status = jObject.getString("description");
|
||||
|
||||
|
||||
} catch (IOException e) {
|
||||
// TODO Auto-generated catch block
|
||||
} catch(IOException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
success = false;
|
||||
} catch (KeyManagementException e) {
|
||||
// TODO Auto-generated catch block
|
||||
} catch(KeyManagementException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
success = false;
|
||||
} catch (NoSuchAlgorithmException e) {
|
||||
// TODO Auto-generated catch block
|
||||
} catch(NoSuchAlgorithmException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
success = false;
|
||||
}
|
||||
@ -374,7 +401,7 @@ public class SendServiceImpl extends EgovAbstractServiceImpl implements SendServ
|
||||
// return status;
|
||||
}
|
||||
|
||||
public static Boolean getPpurioToken(SendAtVO sendAtVO) {
|
||||
public static Boolean getPpurioToken( SendAtVO sendAtVO ) {
|
||||
|
||||
StringBuffer result = new StringBuffer();
|
||||
|
||||
@ -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) { } } };
|
||||
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());
|
||||
@ -421,40 +454,40 @@ public class SendServiceImpl extends EgovAbstractServiceImpl implements SendServ
|
||||
/** Response **/
|
||||
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
|
||||
|
||||
while ((input = in.readLine()) != null) {
|
||||
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;
|
||||
}
|
||||
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) {
|
||||
} catch(IOException e) {
|
||||
System.out.println(e.getMessage());
|
||||
return false;
|
||||
} catch (KeyManagementException e) {
|
||||
} catch(KeyManagementException e) {
|
||||
System.out.println(e.getMessage());
|
||||
return false;
|
||||
} catch (NoSuchAlgorithmException e) {
|
||||
} catch(NoSuchAlgorithmException e) {
|
||||
System.out.println(e.getMessage());
|
||||
return false;
|
||||
}
|
||||
@ -462,52 +495,16 @@ public class SendServiceImpl extends EgovAbstractServiceImpl implements SendServ
|
||||
}
|
||||
|
||||
private static At messageSet(
|
||||
At at,
|
||||
Map<String, String> chihwan
|
||||
) {
|
||||
At at,
|
||||
Map<String, String> chihwan
|
||||
) {
|
||||
String content = "";
|
||||
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;*/
|
||||
switch(at.getTemplatecode()) {
|
||||
case "TEMPLATE_EDU_SUBMIT": // 교육신청
|
||||
at.setTemplatecode("bizp_2025112512494050432369880");
|
||||
content =
|
||||
at.setTemplatecode("bizp_2025112512494050432369880");
|
||||
content =
|
||||
"[한국지식재산보호원]\r\n"
|
||||
+ "#{content}\r\n"
|
||||
+ "\r\n"
|
||||
@ -521,16 +518,25 @@ public class SendServiceImpl extends EgovAbstractServiceImpl implements SendServ
|
||||
+ "3.준비물 : 필기구, 실물신분증\r\n"
|
||||
+ "\r\n"
|
||||
+ "문의처:1670-1271";
|
||||
requiredPlaceholders.put(at.getTemplatecode(), new String[]{"content", "eduDay", "eduRegDay", "eduPlace"});
|
||||
break;
|
||||
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) {
|
||||
if(placeholders != null) {
|
||||
for(String placeholder : placeholders) {
|
||||
String value = chihwan.get(placeholder);
|
||||
if (value == null || value.isEmpty()) {
|
||||
throw new IllegalArgumentException(placeholder + " 값이 없습니다.");
|
||||
if(value == null || value.isEmpty()) {
|
||||
throw new IllegalArgumentException(placeholder + " 값이 없습니다.");
|
||||
}
|
||||
content = content.replace("#{" + placeholder + "}", value);
|
||||
}
|
||||
|
||||
@ -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