이지우 - 사용자 기소유예 접수 시 대상자 조회에 휴대폰 인증 기능 추가
This commit is contained in:
parent
6188e98daa
commit
af61e366ac
@ -1,16 +1,26 @@
|
|||||||
package kcc.ve.aplct.sspnIdtmt.service.impl;
|
package kcc.ve.aplct.sspnIdtmt.service.impl;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
import org.apache.commons.lang.RandomStringUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.web.servlet.ModelAndView;
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
|
|
||||||
|
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
|
||||||
|
import kcc.com.cmm.LoginVO;
|
||||||
|
import kcc.com.utl.user.service.CheckLoginUtil;
|
||||||
|
import kcc.let.utl.fcc.service.EgovCryptoUtil;
|
||||||
import kcc.ve.aplct.sspnIdtmt.service.SspnIdtmtService;
|
import kcc.ve.aplct.sspnIdtmt.service.SspnIdtmtService;
|
||||||
|
import kcc.ve.cmm.VeSendSMS;
|
||||||
|
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctSndHstryService;
|
||||||
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
|
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
|
||||||
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.impl.VEEduAplctDAO;
|
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.impl.VEEduAplctDAO;
|
||||||
|
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
|
||||||
|
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrMixService;
|
||||||
import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngVO;
|
import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngVO;
|
||||||
import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.impl.CndtnTrgtMngDAO;
|
import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.impl.CndtnTrgtMngDAO;
|
||||||
|
|
||||||
@ -26,6 +36,25 @@ public class SspnIdtmtServiceImpl implements SspnIdtmtService {
|
|||||||
@Resource(name="cndtnTrgtInfoMngDAO")
|
@Resource(name="cndtnTrgtInfoMngDAO")
|
||||||
private CndtnTrgtMngDAO cndtnTrgtInfoMngDAO;
|
private CndtnTrgtMngDAO cndtnTrgtInfoMngDAO;
|
||||||
|
|
||||||
|
//snd_hstry id gen
|
||||||
|
@Resource(name = "sndGnrService")
|
||||||
|
private EgovIdGnrService sndGnrService;
|
||||||
|
|
||||||
|
//로그인 체크 util
|
||||||
|
@Resource(name = "checkLoginUtil")
|
||||||
|
private CheckLoginUtil checkLoginUtil;
|
||||||
|
|
||||||
|
//암복호화 유틸
|
||||||
|
@Resource(name = "egovCryptoUtil")
|
||||||
|
EgovCryptoUtil egovCryptoUtil;
|
||||||
|
|
||||||
|
//강사 정보 MIX
|
||||||
|
@Resource(name="vEInstrMixService")
|
||||||
|
private VEInstrMixService vEInstrMixService;
|
||||||
|
|
||||||
|
// 교육신청발송이력
|
||||||
|
@Resource(name = "vEEduAplctSndHstryService")
|
||||||
|
private VEEduAplctSndHstryService vEEduAplctSndHstryService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void insertVeEduAplct(VEEduAplctVO paramVO) {
|
public void insertVeEduAplct(VEEduAplctVO paramVO) {
|
||||||
@ -107,6 +136,7 @@ public class SspnIdtmtServiceImpl implements SspnIdtmtService {
|
|||||||
String msg="";
|
String msg="";
|
||||||
String id="";
|
String id="";
|
||||||
String next=""; //?
|
String next=""; //?
|
||||||
|
String smsYn = ""; //휴대폰 인증 번호 발송 여부
|
||||||
try {
|
try {
|
||||||
result="";
|
result="";
|
||||||
//
|
//
|
||||||
@ -176,6 +206,7 @@ public class SspnIdtmtServiceImpl implements SspnIdtmtService {
|
|||||||
msg = "";
|
msg = "";
|
||||||
id = cndtnTrgtMngVOList.get(0).getSspnIdtmtTrgtOrd();
|
id = cndtnTrgtMngVOList.get(0).getSspnIdtmtTrgtOrd();
|
||||||
next = "Y";
|
next = "Y";
|
||||||
|
smsYn = "Y";
|
||||||
//next = Integer.toString(cndtnTrgtMngVOList.size()); //대상자 수
|
//next = Integer.toString(cndtnTrgtMngVOList.size()); //대상자 수
|
||||||
|
|
||||||
}else if (cndtnTrgtMngVOList.size()>1) { //대상 리스트 던질것
|
}else if (cndtnTrgtMngVOList.size()>1) { //대상 리스트 던질것
|
||||||
@ -184,6 +215,7 @@ public class SspnIdtmtServiceImpl implements SspnIdtmtService {
|
|||||||
msg = "";
|
msg = "";
|
||||||
id = ""; //여기에 대상 선택을 위한 데이터를 넣어준다.
|
id = ""; //여기에 대상 선택을 위한 데이터를 넣어준다.
|
||||||
next = "N";
|
next = "N";
|
||||||
|
smsYn = "Y";
|
||||||
modelAndView.addObject("cndtnTrgtMngVOList", cndtnTrgtMngVOList);
|
modelAndView.addObject("cndtnTrgtMngVOList", cndtnTrgtMngVOList);
|
||||||
|
|
||||||
//cndtnTrgtMngVOList.get(0).getreg
|
//cndtnTrgtMngVOList.get(0).getreg
|
||||||
@ -191,6 +223,43 @@ public class SspnIdtmtServiceImpl implements SspnIdtmtService {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//핸드폰으로 인증번호 발송
|
||||||
|
if ("Y".equals(smsYn)) {
|
||||||
|
//인증번호 생성
|
||||||
|
String code = RandomStringUtils.randomNumeric(6);
|
||||||
|
VEEduAplctVO vEEduAplctVO = new VEEduAplctVO();
|
||||||
|
VeSendSMS sendSMS = new VeSendSMS();
|
||||||
|
cndtnTrgtInfoMngVO = egovCryptoUtil.decryptCndtnTrgtMngVOInfo(cndtnTrgtInfoMngVO); //핸드폰번호 복호화
|
||||||
|
vEEduAplctVO.setEduAplctOrd("기소유예 대상자 인증");
|
||||||
|
vEEduAplctVO.setSndCn("안녕하세요. 저작권배움터 기소유예 담당자입니다.\n인증번호는 " + code + " 입니다.");
|
||||||
|
vEEduAplctVO.setClphone(cndtnTrgtInfoMngVO.getClphone());
|
||||||
|
vEEduAplctVO.setSndFlag("B");
|
||||||
|
Map<String, Object> resultMap = sendSMS.VeSendSMS(vEEduAplctVO.getClphone(), vEEduAplctVO.getSndCn(), vEEduAplctVO.getSndFlag());
|
||||||
|
//문자 발송 성공 시
|
||||||
|
if("1".equals(resultMap.get("result_code"))){
|
||||||
|
//발송 로그
|
||||||
|
LoginVO loginVO = checkLoginUtil.getAuthLoginVO();
|
||||||
|
String snd_ord = sndGnrService.getNextStringId();
|
||||||
|
vEEduAplctVO.setSndHstryOrd(snd_ord);
|
||||||
|
vEEduAplctVO.setSndId(loginVO.getUniqId());
|
||||||
|
vEEduAplctVO.setTrgt(vEEduAplctVO.getClphone());
|
||||||
|
vEEduAplctVO.setSndCd("10");
|
||||||
|
vEEduAplctVO.setTrgtId(loginVO.getUniqId());
|
||||||
|
vEEduAplctSndHstryService.insert(vEEduAplctVO);
|
||||||
|
|
||||||
|
|
||||||
|
//인증번호 row 생성 (기존 강사인증 테이블 사용)
|
||||||
|
VEInstrDetailVO vEInstrDetailVO = new VEInstrDetailVO();
|
||||||
|
vEInstrDetailVO.setEmail(vEEduAplctVO.getClphone());
|
||||||
|
vEInstrDetailVO.setCrtfdNumber(code);
|
||||||
|
vEInstrDetailVO.setUserId(loginVO.getUniqId());
|
||||||
|
vEInstrMixService.deleteInstrEmailCrtfd(vEInstrDetailVO);
|
||||||
|
vEInstrMixService.insertInstrEmailCrtfd(vEInstrDetailVO);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
if(StringUtils.isNotEmpty(id)) {
|
if(StringUtils.isNotEmpty(id)) {
|
||||||
msg = "이미 신청한 대상자 입니다.";
|
msg = "이미 신청한 대상자 입니다.";
|
||||||
|
|||||||
@ -496,6 +496,9 @@
|
|||||||
|
|
||||||
)
|
)
|
||||||
AND a.prcs_aplct_prd_ord_cmplt IS NULL /* 병합되지 않았다. */
|
AND a.prcs_aplct_prd_ord_cmplt IS NULL /* 병합되지 않았다. */
|
||||||
|
<isNotEmpty property="clphone">
|
||||||
|
AND a.clphone = #clphone#
|
||||||
|
</isNotEmpty>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<!-- 기소유예 대상자 확인 STEP01 -->
|
<!-- 기소유예 대상자 확인 STEP01 -->
|
||||||
@ -533,6 +536,9 @@
|
|||||||
|
|
||||||
)
|
)
|
||||||
AND a.prcs_aplct_prd_ord_cmplt IS NULL /* 병합되지 않았다. */
|
AND a.prcs_aplct_prd_ord_cmplt IS NULL /* 병합되지 않았다. */
|
||||||
|
<isNotEmpty property="clphone">
|
||||||
|
AND a.clphone = #clphone#
|
||||||
|
</isNotEmpty>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<!-- 기소유예 대상자 확인 STEP00 -->
|
<!-- 기소유예 대상자 확인 STEP00 -->
|
||||||
|
|||||||
@ -169,6 +169,7 @@
|
|||||||
|
|
||||||
<pattern>*/cop/bbs/EgovBBSIdListSearch.do</pattern> <!-- 관리자 저작권체험교실 교육과정안내 미리보기 팝업 -->
|
<pattern>*/cop/bbs/EgovBBSIdListSearch.do</pattern> <!-- 관리자 저작권체험교실 교육과정안내 미리보기 팝업 -->
|
||||||
<pattern>/web/ve/aplct/fndtnEnhanceTrn/eduAplctPop.do</pattern> <!-- 실무역량강화 전체과정 신청 팝업 -->
|
<pattern>/web/ve/aplct/fndtnEnhanceTrn/eduAplctPop.do</pattern> <!-- 실무역량강화 전체과정 신청 팝업 -->
|
||||||
|
<pattern>/web/ve/aplct/sspnIdtmt/eduAplctPop.do</pattern> <!-- 기소유예 신청인 정보 입력 팝업 -->
|
||||||
|
|
||||||
<!-- <pattern>*/tngrVisitEdu/popup/*Popup.do</pattern>
|
<!-- <pattern>*/tngrVisitEdu/popup/*Popup.do</pattern>
|
||||||
<pattern>*/adultVisitEdu/popup/*Popup.do</pattern> -->
|
<pattern>*/adultVisitEdu/popup/*Popup.do</pattern> -->
|
||||||
|
|||||||
@ -25,7 +25,8 @@
|
|||||||
|
|
||||||
<script type="text/javascript" src="${pageContext.request.contextPath}/kccadrPb/usr/script/popup.js"></script>
|
<script type="text/javascript" src="${pageContext.request.contextPath}/kccadrPb/usr/script/popup.js"></script>
|
||||||
<script type="text/javaScript" language="javascript">
|
<script type="text/javaScript" language="javascript">
|
||||||
|
//본인인증 확인 여부 체크
|
||||||
|
var chkYn = "";
|
||||||
/*
|
/*
|
||||||
function fncGoScholList(){
|
function fncGoScholList(){
|
||||||
linkPage(1);
|
linkPage(1);
|
||||||
@ -75,6 +76,7 @@
|
|||||||
var dBirth = $('#dBirth').val().replace(/\./g, '');
|
var dBirth = $('#dBirth').val().replace(/\./g, '');
|
||||||
var trgtNm = $('#trgtNm').val();
|
var trgtNm = $('#trgtNm').val();
|
||||||
var sex = $('input[name="sex"]:checked').val();
|
var sex = $('input[name="sex"]:checked').val();
|
||||||
|
var clphone = $('#clphone').val();
|
||||||
|
|
||||||
$('#regForm input[name="prcsAplctPrdOrd"]').val(p_prcsAplctPrdOrd);
|
$('#regForm input[name="prcsAplctPrdOrd"]').val(p_prcsAplctPrdOrd);
|
||||||
|
|
||||||
@ -92,9 +94,14 @@
|
|||||||
alert("성별을 입력해주세요.");
|
alert("성별을 입력해주세요.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (clphone==""){
|
||||||
|
alert("휴대폰 번호를 입력해주세요.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
form.trgtNm.value = trgtNm;
|
form.trgtNm.value = trgtNm;
|
||||||
form.dBirth.value = dBirth;
|
form.dBirth.value = dBirth;
|
||||||
form.sex.value = sex;
|
form.sex.value = sex;
|
||||||
|
form.clphone.value = clphone;
|
||||||
|
|
||||||
var data = new FormData(document.getElementById("confirmForm"));
|
var data = new FormData(document.getElementById("confirmForm"));
|
||||||
|
|
||||||
@ -112,9 +119,24 @@
|
|||||||
success:function(returnData){
|
success:function(returnData){
|
||||||
console.log('returnData : ', returnData);
|
console.log('returnData : ', returnData);
|
||||||
if(returnData.result == "success"){
|
if(returnData.result == "success"){
|
||||||
|
|
||||||
|
if(chkYn != 'Y'){ //본인인증 전
|
||||||
|
alert("인증번호를 확인해주세요.");
|
||||||
|
$("#chkNo").show();
|
||||||
|
$("#chkBtn").hide();
|
||||||
|
//기존정보 변경 막기
|
||||||
|
$("#trgtNm").prop('readonly', true);
|
||||||
|
$("#date").prop('readonly', true);
|
||||||
|
$("#clphone").prop('readonly', true);
|
||||||
|
$(".duet-date__toggle").remove();
|
||||||
|
$("#sexM").attr("onclick", "return(false);");
|
||||||
|
$("#sexF").attr("onclick", "return(false);");
|
||||||
|
|
||||||
|
|
||||||
|
}else{ //본인인증 후
|
||||||
|
|
||||||
// 대상자 테이블 pk 값
|
// 대상자 테이블 pk 값
|
||||||
var sspnIdtmtTrgtOrd = returnData.id;
|
var sspnIdtmtTrgtOrd = returnData.id;
|
||||||
//alert(returnData.msg);
|
|
||||||
|
|
||||||
// 교육 신청 ajax
|
// 교육 신청 ajax
|
||||||
// 대상자 이름, 생년월일, 대상자TB ID
|
// 대상자 이름, 생년월일, 대상자TB ID
|
||||||
@ -127,7 +149,6 @@
|
|||||||
}else if(returnData.next == "N"){
|
}else if(returnData.next == "N"){
|
||||||
//동일 대상자 중에서 선택할수 있도록 처리해야 한다.
|
//동일 대상자 중에서 선택할수 있도록 처리해야 한다.
|
||||||
//forMulti
|
//forMulti
|
||||||
|
|
||||||
$('#confirmBtns').hide();
|
$('#confirmBtns').hide();
|
||||||
$('#VOList').show();
|
$('#VOList').show();
|
||||||
|
|
||||||
@ -154,6 +175,9 @@
|
|||||||
);
|
);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
alert(returnData.msg);
|
alert(returnData.msg);
|
||||||
|
|
||||||
@ -187,6 +211,39 @@
|
|||||||
fn_eduRegPopup(trgtNm, dBirth, p_sspnIdtmtTrgtOrd);
|
fn_eduRegPopup(trgtNm, dBirth, p_sspnIdtmtTrgtOrd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function fncChkNo(){
|
||||||
|
if($("#crtfdNumber").val().length != 6){
|
||||||
|
alert("인증번호 6자리를 입력해주세요.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
var data = new FormData(document.getElementById("newSrvyPopupForm"));
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: "${pageContext.request.contextPath}/web/ve/instr/instrInfo/emailCrtfdChkAjax.do",
|
||||||
|
data: data,
|
||||||
|
dataType:"json",
|
||||||
|
async: false,
|
||||||
|
processData: false,
|
||||||
|
contentType: false,
|
||||||
|
cache: false,
|
||||||
|
success: function (returnData, status) {
|
||||||
|
if(returnData.result == 'success'){
|
||||||
|
alert("확인되었습니다.");
|
||||||
|
chkYn = "Y";
|
||||||
|
$("#chkNo").hide();
|
||||||
|
|
||||||
|
fn_new_confirm('${vEEduChasiVO.prcsAplctPrdOrd}');
|
||||||
|
} else {
|
||||||
|
alert("인증번호가 일치하지 않습니다.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
/*
|
/*
|
||||||
boardCaptionDetailToggle4();
|
boardCaptionDetailToggle4();
|
||||||
@ -363,6 +420,19 @@ $(document).ready(function(){
|
|||||||
<%-- <script src="${pageContext.request.contextPath}/visitEdu/usr/publish/script/duetdatepicker2.js"></script> --%>
|
<%-- <script src="${pageContext.request.contextPath}/visitEdu/usr/publish/script/duetdatepicker2.js"></script> --%>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th scope=“row”>휴대폰 번호</th>
|
||||||
|
<td>
|
||||||
|
<input type="text" id="clphone" onkeyup="onlyNumber(this);" maxlength="11">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr id="chkNo" style="display:none;">
|
||||||
|
<th scope=“row”>인증번호</th>
|
||||||
|
<td>
|
||||||
|
<input type="text" name="crtfdNumber" id="crtfdNumber" onkeyup="onlyNumber(this);" maxlength="6">
|
||||||
|
<button type="button" class="btnType06" onclick="fncChkNo();">인증하기</button>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope=“row”>성별</th>
|
<th scope=“row”>성별</th>
|
||||||
<td>
|
<td>
|
||||||
@ -378,7 +448,7 @@ $(document).ready(function(){
|
|||||||
<div class="btn_left">
|
<div class="btn_left">
|
||||||
</div>
|
</div>
|
||||||
<div class="btn_center">
|
<div class="btn_center">
|
||||||
<button type="button" class="btnType05" onclick="fn_new_confirm('${vEEduChasiVO.prcsAplctPrdOrd}')">제출</button>
|
<button type="button" class="btnType05" id="chkBtn" onclick="fn_new_confirm('${vEEduChasiVO.prcsAplctPrdOrd}')">확인</button>
|
||||||
<button type="button" class="btnType02 tooltip-close" id="target_confirm_popup-close" data-focus="sub36_pop02_close" data-focus-next="sub36_pop02">취소</button>
|
<button type="button" class="btnType02 tooltip-close" id="target_confirm_popup-close" data-focus="sub36_pop02_close" data-focus-next="sub36_pop02">취소</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="btn_right">
|
<div class="btn_right">
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user