이지우 - 사용자 기소유예 접수 시 대상자 조회에 휴대폰 인증 기능 추가
This commit is contained in:
parent
6188e98daa
commit
af61e366ac
@ -1,16 +1,26 @@
|
||||
package kcc.ve.aplct.sspnIdtmt.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.apache.commons.lang.RandomStringUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
|
||||
import kcc.com.cmm.LoginVO;
|
||||
import kcc.com.utl.user.service.CheckLoginUtil;
|
||||
import kcc.let.utl.fcc.service.EgovCryptoUtil;
|
||||
import kcc.ve.aplct.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.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.impl.CndtnTrgtMngDAO;
|
||||
|
||||
@ -26,6 +36,25 @@ public class SspnIdtmtServiceImpl implements SspnIdtmtService {
|
||||
@Resource(name="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
|
||||
public void insertVeEduAplct(VEEduAplctVO paramVO) {
|
||||
@ -107,6 +136,7 @@ public class SspnIdtmtServiceImpl implements SspnIdtmtService {
|
||||
String msg="";
|
||||
String id="";
|
||||
String next=""; //?
|
||||
String smsYn = ""; //휴대폰 인증 번호 발송 여부
|
||||
try {
|
||||
result="";
|
||||
//
|
||||
@ -176,6 +206,7 @@ public class SspnIdtmtServiceImpl implements SspnIdtmtService {
|
||||
msg = "";
|
||||
id = cndtnTrgtMngVOList.get(0).getSspnIdtmtTrgtOrd();
|
||||
next = "Y";
|
||||
smsYn = "Y";
|
||||
//next = Integer.toString(cndtnTrgtMngVOList.size()); //대상자 수
|
||||
|
||||
}else if (cndtnTrgtMngVOList.size()>1) { //대상 리스트 던질것
|
||||
@ -184,6 +215,7 @@ public class SspnIdtmtServiceImpl implements SspnIdtmtService {
|
||||
msg = "";
|
||||
id = ""; //여기에 대상 선택을 위한 데이터를 넣어준다.
|
||||
next = "N";
|
||||
smsYn = "Y";
|
||||
modelAndView.addObject("cndtnTrgtMngVOList", cndtnTrgtMngVOList);
|
||||
|
||||
//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)) {
|
||||
msg = "이미 신청한 대상자 입니다.";
|
||||
|
||||
@ -496,6 +496,9 @@
|
||||
|
||||
)
|
||||
AND a.prcs_aplct_prd_ord_cmplt IS NULL /* 병합되지 않았다. */
|
||||
<isNotEmpty property="clphone">
|
||||
AND a.clphone = #clphone#
|
||||
</isNotEmpty>
|
||||
</select>
|
||||
|
||||
<!-- 기소유예 대상자 확인 STEP01 -->
|
||||
@ -533,6 +536,9 @@
|
||||
|
||||
)
|
||||
AND a.prcs_aplct_prd_ord_cmplt IS NULL /* 병합되지 않았다. */
|
||||
<isNotEmpty property="clphone">
|
||||
AND a.clphone = #clphone#
|
||||
</isNotEmpty>
|
||||
</select>
|
||||
|
||||
<!-- 기소유예 대상자 확인 STEP00 -->
|
||||
|
||||
@ -169,6 +169,7 @@
|
||||
|
||||
<pattern>*/cop/bbs/EgovBBSIdListSearch.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>*/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" language="javascript">
|
||||
|
||||
//본인인증 확인 여부 체크
|
||||
var chkYn = "";
|
||||
/*
|
||||
function fncGoScholList(){
|
||||
linkPage(1);
|
||||
@ -75,6 +76,7 @@
|
||||
var dBirth = $('#dBirth').val().replace(/\./g, '');
|
||||
var trgtNm = $('#trgtNm').val();
|
||||
var sex = $('input[name="sex"]:checked').val();
|
||||
var clphone = $('#clphone').val();
|
||||
|
||||
$('#regForm input[name="prcsAplctPrdOrd"]').val(p_prcsAplctPrdOrd);
|
||||
|
||||
@ -92,9 +94,14 @@
|
||||
alert("성별을 입력해주세요.");
|
||||
return;
|
||||
}
|
||||
if (clphone==""){
|
||||
alert("휴대폰 번호를 입력해주세요.");
|
||||
return;
|
||||
}
|
||||
form.trgtNm.value = trgtNm;
|
||||
form.dBirth.value = dBirth;
|
||||
form.sex.value = sex;
|
||||
form.clphone.value = clphone;
|
||||
|
||||
var data = new FormData(document.getElementById("confirmForm"));
|
||||
|
||||
@ -112,48 +119,65 @@
|
||||
success:function(returnData){
|
||||
console.log('returnData : ', returnData);
|
||||
if(returnData.result == "success"){
|
||||
// 대상자 테이블 pk 값
|
||||
var sspnIdtmtTrgtOrd = returnData.id;
|
||||
//alert(returnData.msg);
|
||||
|
||||
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);");
|
||||
|
||||
// 교육 신청 ajax
|
||||
// 대상자 이름, 생년월일, 대상자TB ID
|
||||
if(returnData.next == "Y")
|
||||
{
|
||||
//sspnIdtmtTrgtOrd = returnData.id;
|
||||
// fncEduReg(trgtNm, dBirth, returnData.id);
|
||||
$('#target_confirm_popup-close').click();
|
||||
fn_eduRegPopup(trgtNm, dBirth, returnData.id);
|
||||
}else if(returnData.next == "N"){
|
||||
//동일 대상자 중에서 선택할수 있도록 처리해야 한다.
|
||||
//forMulti
|
||||
|
||||
$('#confirmBtns').hide();
|
||||
$('#VOList').show();
|
||||
|
||||
returnData.cndtnTrgtMngVOList.forEach(
|
||||
function (el, index){
|
||||
var v_forMulti = '';
|
||||
v_forMulti = v_forMulti +"<tr>";
|
||||
v_forMulti = v_forMulti +"<td>";
|
||||
v_forMulti = v_forMulti +el.reqNmbr;
|
||||
v_forMulti = v_forMulti +"</td>";
|
||||
v_forMulti = v_forMulti +"<td>";
|
||||
v_forMulti = v_forMulti +el.prsctrNm;
|
||||
v_forMulti = v_forMulti +"</td>";
|
||||
v_forMulti = v_forMulti +"<td>";
|
||||
//v_forMulti = v_forMulti +el.sspnIdtmtTrgtOrd;
|
||||
|
||||
}else{ //본인인증 후
|
||||
|
||||
// 대상자 테이블 pk 값
|
||||
var sspnIdtmtTrgtOrd = returnData.id;
|
||||
|
||||
// 교육 신청 ajax
|
||||
// 대상자 이름, 생년월일, 대상자TB ID
|
||||
if(returnData.next == "Y")
|
||||
{
|
||||
//sspnIdtmtTrgtOrd = returnData.id;
|
||||
//fncEduReg(trgtNm, dBirth, returnData.id);
|
||||
$('#target_confirm_popup-close').click();
|
||||
fn_eduRegPopup(trgtNm, dBirth, returnData.id);
|
||||
}else if(returnData.next == "N"){
|
||||
//동일 대상자 중에서 선택할수 있도록 처리해야 한다.
|
||||
//forMulti
|
||||
$('#confirmBtns').hide();
|
||||
$('#VOList').show();
|
||||
|
||||
returnData.cndtnTrgtMngVOList.forEach(
|
||||
function (el, index){
|
||||
var v_forMulti = '';
|
||||
v_forMulti = v_forMulti +"<tr>";
|
||||
v_forMulti = v_forMulti +"<td>";
|
||||
v_forMulti = v_forMulti +el.reqNmbr;
|
||||
v_forMulti = v_forMulti +"</td>";
|
||||
v_forMulti = v_forMulti +"<td>";
|
||||
v_forMulti = v_forMulti +el.prsctrNm;
|
||||
v_forMulti = v_forMulti +"</td>";
|
||||
v_forMulti = v_forMulti +"<td>";
|
||||
//v_forMulti = v_forMulti +el.sspnIdtmtTrgtOrd;
|
||||
|
||||
v_forMulti = v_forMulti +"<button type=\"button\" class=\"btnType05\" onclick=\"fn_new_select('"+el.sspnIdtmtTrgtOrd+"')\">선택</button>";
|
||||
|
||||
v_forMulti = v_forMulti +"</td>";
|
||||
v_forMulti = v_forMulti +"</tr>";
|
||||
v_forMulti = v_forMulti +"<button type=\"button\" class=\"btnType05\" onclick=\"fn_new_select('"+el.sspnIdtmtTrgtOrd+"')\">선택</button>";
|
||||
|
||||
v_forMulti = v_forMulti +"</td>";
|
||||
v_forMulti = v_forMulti +"</tr>";
|
||||
|
||||
$('#forMulti').after(v_forMulti);
|
||||
}
|
||||
);
|
||||
$('#forMulti').after(v_forMulti);
|
||||
}
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}else{
|
||||
alert(returnData.msg);
|
||||
|
||||
@ -187,6 +211,39 @@
|
||||
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(){
|
||||
/*
|
||||
boardCaptionDetailToggle4();
|
||||
@ -363,6 +420,19 @@ $(document).ready(function(){
|
||||
<%-- <script src="${pageContext.request.contextPath}/visitEdu/usr/publish/script/duetdatepicker2.js"></script> --%>
|
||||
</td>
|
||||
</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>
|
||||
<th scope=“row”>성별</th>
|
||||
<td>
|
||||
@ -378,7 +448,7 @@ $(document).ready(function(){
|
||||
<div class="btn_left">
|
||||
</div>
|
||||
<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>
|
||||
</div>
|
||||
<div class="btn_right">
|
||||
|
||||
Loading…
Reference in New Issue
Block a user