Merge branch 'JIWOO' into advc

Conflicts:
	src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/service/VEInstrMixService.java
	src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/service/impl/VEInstrMixServiceImpl.java
	src/main/resources/egovframework/sqlmap/ve/instr/VEInstr_MIX_SQL_Tibero.xml
This commit is contained in:
jiwoo 2023-12-18 17:15:00 +09:00
commit 5336cf6a40
13 changed files with 623 additions and 21 deletions

View File

@ -27,5 +27,6 @@ public interface VEEduAplctSndHstryService {
//Page List
List<VEEduAplctVO> selectPagingList(VEEduAplctVO paramVO) throws Exception;
void insertInstrChkNo(VEEduAplctVO paramVO) throws Exception;
}

View File

@ -74,4 +74,7 @@ public class VEEduAplctSndHstryDAO extends EgovAbstractDAO {
return update("VEEduAplctSndHstryDAO.chrgInfoUpdate", paramVO);
}
public void insertInstrChkNo(VEEduAplctVO paramVO) throws Exception {
insert("VEEduAplctSndHstryDAO.insertInstrChkNo", paramVO);
}
}

View File

@ -58,4 +58,8 @@ public class VEEduAplctSndHstryServiceImpl implements VEEduAplctSndHstryService
public int chrgInfoUpdate(VEEduAplctVO paramVO) throws Exception {
return vEEduAplctSndHstryDAO.chrgInfoUpdate(paramVO);
}
public void insertInstrChkNo(VEEduAplctVO paramVO) throws Exception {
vEEduAplctSndHstryDAO.insertInstrChkNo(paramVO);
}
}

View File

@ -171,6 +171,8 @@ public class VEInstrDetailVO extends ComDefaultVO implements Serializable {
private String day1cnt;
private String day0cnt;
private String crtfdNumber; //인증번호
//수료증 출력용 데이터
private String desc1;
@ -900,5 +902,11 @@ public class VEInstrDetailVO extends ComDefaultVO implements Serializable {
public void setChk(String chk) {
this.chk = chk;
}
public String getCrtfdNumber() {
return crtfdNumber;
}
public void setCrtfdNumber(String crtfdNumber) {
this.crtfdNumber = crtfdNumber;
}
}

View File

@ -94,4 +94,19 @@ public interface VEInstrMixService {
List<VELctrDetailVO> selectEduPrfrmInfoFndthEnhanceTrn(VEInstrDetailVO vEInstrDetailVO) throws Exception;
VELctrDetailVO findByIdFromVeInstr(VEInstrDetailVO vEInstrDetailVO);
//R (강사 디테일 엑셀 업로드 데이터 정보. 메일 비교)
VEInstrDetailVO selectUploadInfoChkWithEmail(VEInstrDetailVO vEInstrDetailVO) throws Exception;
//강사 인증 이메일 삭제 처리
int deleteInstrEmailCrtfd(VEInstrDetailVO vEInstrDetailVO) throws Exception;
//강사 인증 이메일 생성 처리
int insertInstrEmailCrtfd(VEInstrDetailVO vEInstrDetailVO) throws Exception;
VEInstrDetailVO selectInstrEmailCrtfdNumber(VEInstrDetailVO vEInstrDetailVO) throws Exception;
//강사 등록 신청 제출 처리
int updateInstrId(VEInstrDetailVO vEInstrDetailVO) throws Exception;
int updateInstrDetailSbmtY(VEInstrDetailVO vEInstrDetailVO) throws Exception;
}

View File

@ -213,4 +213,26 @@ public class VEInstrMixDAO extends EgovAbstractDAO {
return (VELctrDetailVO) select("VEInstrMixDAO.findByIdFromVeInstr", vEInstrDetailVO);
}
public VEInstrDetailVO selectUploadInfoChkWithEmail(VEInstrDetailVO vEInstrDetailVO) throws Exception {
return (VEInstrDetailVO) select("VEInstrMixDAO.selectUploadInfoChkWithEmail", vEInstrDetailVO);
}
public int deleteInstrEmailCrtfd(VEInstrDetailVO vEInstrDetailVO) throws Exception {
return update("VEInstrMixDAO.deleteInstrEmailCrtfd", vEInstrDetailVO);
}
public int insertInstrEmailCrtfd(VEInstrDetailVO vEInstrDetailVO) throws Exception {
return update("VEInstrMixDAO.insertInstrEmailCrtfd", vEInstrDetailVO);
}
public VEInstrDetailVO selectInstrEmailCrtfdNumber(VEInstrDetailVO vEInstrDetailVO) throws Exception {
return (VEInstrDetailVO) select("VEInstrMixDAO.selectInstrEmailCrtfdNumber", vEInstrDetailVO);
}
public int updateInstrId(VEInstrDetailVO vEInstrDetailVO) throws Exception {
return update("VEInstrMixDAO.updateInstrId", vEInstrDetailVO);
}
public int updateInstrDetailSbmtY(VEInstrDetailVO vEInstrDetailVO) throws Exception {
return update("VEInstrMixDAO.updateInstrDetailSbmtY", vEInstrDetailVO);
}
}

View File

@ -159,4 +159,31 @@ public class VEInstrMixServiceImpl implements VEInstrMixService {
public VELctrDetailVO findByIdFromVeInstr(VEInstrDetailVO vEInstrDetailVO) {
return vEInstrMixDAO.findByIdFromVeInstr(vEInstrDetailVO);
}
public VEInstrDetailVO selectUploadInfoChkWithEmail(VEInstrDetailVO vEInstrDetailVO) throws Exception {
return vEInstrMixDAO.selectUploadInfoChkWithEmail(vEInstrDetailVO);
}
public int deleteInstrEmailCrtfd(VEInstrDetailVO vEInstrDetailVO) throws Exception{
return vEInstrMixDAO.deleteInstrEmailCrtfd(vEInstrDetailVO);
}
public int insertInstrEmailCrtfd(VEInstrDetailVO vEInstrDetailVO) throws Exception{
return vEInstrMixDAO.insertInstrEmailCrtfd(vEInstrDetailVO);
}
public VEInstrDetailVO selectInstrEmailCrtfdNumber(VEInstrDetailVO vEInstrDetailVO) throws Exception {
return vEInstrMixDAO.selectInstrEmailCrtfdNumber(vEInstrDetailVO);
}
public int updateInstrId(VEInstrDetailVO vEInstrDetailVO) throws Exception{
return vEInstrMixDAO.updateInstrId(vEInstrDetailVO);
}
public int updateInstrDetailSbmtY(VEInstrDetailVO vEInstrDetailVO) throws Exception{
return vEInstrMixDAO.updateInstrDetailSbmtY(vEInstrDetailVO);
}
}

View File

@ -10,6 +10,7 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.commons.lang.RandomStringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
@ -24,6 +25,7 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.fasterxml.jackson.databind.ObjectMapper;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kcc.com.cmm.EgovMessageSource;
import kcc.com.cmm.LoginVO;
@ -42,8 +44,11 @@ import kcc.let.utl.fcc.service.EgovCryptoUtil;
import kcc.let.utl.fcc.service.EgovCryptoUtil4VO;
import kcc.ve.adv.tngr.stngInfo.service.VEAStngService;
import kcc.ve.adv.tngr.stngInfo.service.VEAStngVO;
import kcc.ve.cmm.VeSendMail;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEAsgnmMIXService;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrAsgnmVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctSndHstryService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailActvtHstryService;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailActvtHstryVO;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailService;
@ -159,6 +164,13 @@ public class InstrPrflController {
@Resource(name = "vEInstrDetailActvtHstryService")
private VEInstrDetailActvtHstryService vEInstrDetailActvtHstryService;
@Resource(name = "sndGnrService")
private EgovIdGnrService sndGnrService;
// 교육신청발송이력
@Resource(name = "vEEduAplctSndHstryService")
private VEEduAplctSndHstryService vEEduAplctSndHstryService;
/**
* 1.신청변경신청 목록 - L
*/
@ -964,6 +976,12 @@ public class InstrPrflController {
System.out.println("=================");
return schduleManageService.selectSchManageStatusInstrList(schduleManageVO);
}
@RequestMapping("/web/ve/instr/popup/instrInfoChkPop.do")
public String instrInfoChkPop(@ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO, ModelMap model, HttpServletRequest request) throws Exception{
return "/web/ve/instr/tngrVisitEdu/instrInfo/popup/instrInfoChkPop";
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//
@ -1139,5 +1157,126 @@ public class InstrPrflController {
modelAndView.addObject("adultInstrYn", vEInstrDetailVO.getAdultInstrYn());
return modelAndView;
}
}
//이름과 이메일로 등록된 강사 정보 조회
@RequestMapping(value="/web/ve/instr/instrInfo/instrInfoChkAjax.do")
public ModelAndView instrInfoChkAjax(
VEInstrDetailVO vEInstrDetailVO
, ModelMap model
, HttpServletRequest request
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
//로그인 처리====================================
//로그인 정보 가져오기
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
vEInstrDetailVO.setUserId(loginVO.getUniqId());
String resultMsg = "success";
//이름 암호화
VEInstrDetailVO vEInstrInfoVO = new VEInstrDetailVO();
vEInstrDetailVO = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVO);
vEInstrInfoVO = vEInstrMixService.selectUploadInfoChkWithEmail(vEInstrDetailVO);
if(vEInstrInfoVO != null) {
//인증번호 발송하기
VeSendMail sendMail = new VeSendMail();
VEEduAplctVO vEEduAplctVO = new VEEduAplctVO();
//인증번호 생성
String code = RandomStringUtils.randomNumeric(6);
vEEduAplctVO.setSndCn("교육운영관리 시스템입니다. 강사 신청 인증번호는 " + code + "입니다.");
//로그 pk
//사용자 ID
vEEduAplctVO.setUserId(loginVO.getUniqId());
//플래그(성인, 청소년)
String flag = "C";
if("20".equals(vEInstrDetailVO.getInstrDiv())) {
flag = "S";
}
//메일 발송
String result = sendMail.VeSendMail(flag, vEInstrDetailVO.getEmail(), vEEduAplctVO);
if("success".equals(result)) {
//메일 발송 로그
String snd_ord = sndGnrService.getNextStringId();
vEEduAplctVO.setSndHstryOrd(snd_ord);
vEEduAplctVO.setTrgtId(loginVO.getUniqId());
vEEduAplctVO.setTrgt(vEInstrDetailVO.getEmail());
vEEduAplctSndHstryService.insertInstrChkNo(vEEduAplctVO);
//인증번호 row 생성
vEInstrDetailVO.setCrtfdNumber(code);
vEInstrDetailVO.setUserId(loginVO.getUniqId());
vEInstrMixService.deleteInstrEmailCrtfd(vEInstrDetailVO);
vEInstrMixService.insertInstrEmailCrtfd(vEInstrDetailVO);
}else {
resultMsg = "sndFail";
}
}else {
resultMsg = "fail";
}
if(vEInstrInfoVO != null) {
modelAndView.addObject("userId", vEInstrInfoVO.getUserId());
modelAndView.addObject("instrDetailOrd", vEInstrInfoVO.getInstrDetailOrd());
}
modelAndView.addObject("result", resultMsg);
return modelAndView;
}
//강사 등록 이메일 인증 체크
@RequestMapping(value="/web/ve/instr/instrInfo/emailCrtfdChkAjax.do")
public ModelAndView emailCrtfdChkAjax(
VEInstrDetailVO vEInstrDetailVO
, ModelMap model
, HttpServletRequest request
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
//로그인 처리====================================
//로그인 정보 가져오기
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
vEInstrDetailVO.setUserId(loginVO.getUniqId());
String resultMsg = "success";
vEInstrDetailVO = vEInstrMixService.selectInstrEmailCrtfdNumber(vEInstrDetailVO);
if(vEInstrDetailVO == null) {
resultMsg = "fail";
}
modelAndView.addObject("result", resultMsg);
return modelAndView;
}
//강사 등록 신청 처리
@RequestMapping(value="/web/ve/instr/instrInfo/updateInstrSbmtYAjax.do")
public ModelAndView updateInstrSbmtYAjax(
VEInstrDetailVO vEInstrDetailVO
, ModelMap model
, HttpServletRequest request
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
//로그인 처리====================================
//로그인 정보 가져오기
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
vEInstrDetailVO.setRqstId(loginVO.getUniqId());
String resultMsg = "success";
//강사 등록 신청 제출 Y 처리
try {
vEInstrMixService.updateInstrId(vEInstrDetailVO);
vEInstrMixService.updateInstrDetailSbmtY(vEInstrDetailVO);
}catch(Exception e){
resultMsg = "fail";
}
modelAndView.addObject("result", resultMsg);
return modelAndView;
}
}

View File

@ -233,4 +233,25 @@
</isNotEmpty>
WHERE EDU_APLCT_ORD = #eduAplctOrd#
</update>
<insert id="VEEduAplctSndHstryDAO.insertInstrChkNo" parameterClass="VEEduAplctVO">
/* VEEduAplctSndHstryDAO.insertInstrChkNo */
INSERT INTO <include refid="VEEduAplctSndHstryDAO.table_name"/>
(
<include refid="VEEduAplctSndHstryDAO.column_name"/>
)
VALUES
(
'강사 등록 인증메일',
#sndHstryOrd#,
'20',
SYSDATE,
#sndId#,
SUBSTR(#sndCn#,0,950),
#trgtId#,
#trgt#
)
</insert>
</sqlMap>

View File

@ -355,7 +355,7 @@
ORDER BY 1=1
ORDER BY 1
<isEmpty property="orderByQuery">
, b.user_id desc
@ -1306,6 +1306,23 @@
AND b.instr_nm = #instrNm#
AND b.phone = #phone#)
</select>
<!-- 엑셀 업로드 한 강사 디테일 정보 R(메일확인) -->
<select id="VEInstrMixDAO.selectUploadInfoChkWithEmail" parameterClass="VEInstrDetailVO" resultClass="VEInstrDetailVO">
/* VEInstrMixDAO.selectUploadInfoChkWithEmail */
SELECT
<include refid="VEInstrMixDAO.select_detail_column_name"/>
FROM
<include refid="VEInstrMixDAO.detail_table_name"/> a
WHERE
a.instr_div = #instrDiv#
AND a.instr_nm = #instrNm#
AND a.email = #email#
AND (a.SBMT_YN != 'Y' or a.SBMT_YN IS NULL)
AND a.frst_regist_pnttm = (SELECT MIN(b.frst_regist_pnttm) FROM ve_instr_detail b WHERE b.instr_div = #instrDiv#
AND b.instr_nm = #instrNm#
AND b.email = #email#)
</select>
<!-- 엑셀 업로드 한 강사 디테일 정보 R 데이터 있는 경우-->
<select id="VEInstrMixDAO.selectUploadInfoDetailWithData" parameterClass="VEInstrDetailVO" resultClass="VEInstrDetailVO">
@ -3442,6 +3459,7 @@
)bbb
on(bbb.prcs_aplct_prd_ord=aaa.prcsOrd)
GROUP BY rollup(yr, bbb.prcs_nm)
<<<<<<< HEAD
</select>
<select id="VEInstrMixDAO.findByIdFromVeInstr" parameterClass="VEInstrDetailVO" resultClass="VELctrDetailVO">
@ -3463,4 +3481,64 @@
USER_ID = #userId#
</select>
=======
</select>
<delete id="VEInstrMixDAO.deleteInstrEmailCrtfd" parameterClass="VEInstrDetailVO">
/* VEInstrMixDAO.deleteInstrEmailCrtfd */
DELETE FROM VEA_INSTR_EMAIL_CRTFD
WHERE user_id = #userId#
</delete>
<insert id="VEInstrMixDAO.insertInstrEmailCrtfd" parameterClass="VEInstrDetailVO">
/* VEInstrMixDAO.insertInstrEmailCrtfd */
INSERT INTO VEA_INSTR_EMAIL_CRTFD
(
user_id,
email,
crtfd_number,
frst_regist_pnttm
)
VALUES(
#userId#,
#email#,
#crtfdNumber#,
sysdate
)
</insert>
<select id="VEInstrMixDAO.selectInstrEmailCrtfdNumber" parameterClass="VEInstrDetailVO" resultClass="VEInstrDetailVO">
/* VEInstrMixDAO.selectInstrEmailCrtfdNumber */
SELECT
user_id,
email,
crtfd_number
FROM
VEA_INSTR_EMAIL_CRTFD
WHERE
user_id = #userId#
AND crtfd_number = #crtfdNumber#
</select>
<update id="VEInstrMixDAO.updateInstrId" parameterClass="VEInstrDetailVO">
/* VEInstrMixDAO.updateInstrId */
UPDATE <include refid="VEInstrMixDAO.table_name"/> SET
user_id = #rqstId#
,last_updt_pnttm = sysdate
,last_updusr_id = #rqstId#
WHERE user_id = #userId#
</update>
<update id="VEInstrMixDAO.updateInstrDetailSbmtY" parameterClass="VEInstrDetailVO">
/* VEInstrMixDAO.updateInstrDetailSbmtY */
UPDATE <include refid="VEInstrMixDAO.detail_table_name"/> SET
user_id = #rqstId#
,sbmt_yn = 'Y'
,sbmt_pnttm = sysdate
,last_updt_pnttm = sysdate
,last_updusr_id = #rqstId#
WHERE instr_detail_ord = #instrDetailOrd#
AND instr_div = #instrDiv#
</update>
>>>>>>> refs/heads/JIWOO
</sqlMap>

View File

@ -47,22 +47,16 @@
</style>
<script type="text/javaScript" language="javascript">
function fncGoReg(instrDiv){
var varFrom = document.getElementById("createForm");
varFrom.instrDiv.value = instrDiv;
if(instrDiv == '10'){
var url = "${pageContext.request.contextPath}/web/ve/instr/tngrVisitEdu/instrInfo/instrPrflReg.do";
/* var url = "${pageContext.request.contextPath}/web/ve/instr/tngrVisitEdu/instrInfo/instrPrflRegRqst.do"; */
}
if(instrDiv == '20'){
var url = "${pageContext.request.contextPath}/web/ve/instr/adultVisitEdu/instrInfo/instrPrflReg.do";
}
varFrom.action = url;
varFrom.submit();
}
function fncGoRegPopupLayer(type){
commonPopLayeropen(
"${pageContext.request.contextPath}/web/ve/instr/popup/instrInfoChkPop.do"
, 900
, 464
, {'instrDiv' : type}
, "Y"
, "fileUploadPop"
);
}
</script>
</head>
<body>
@ -87,11 +81,11 @@
<div class="sel_tpye">
<p><span>강사유형</span>을 선택해주세요</p>
<ul>
<li class="type1" onclick="fncGoReg('10'); return false;">
<li class="type1" onclick="fncGoRegPopupLayer('10'); return false;">
<i></i>
<p>청소년 대상</p>
</li>
<li class="type2" onclick="fncGoReg('20'); return false;">
<li class="type2" onclick="fncGoRegPopupLayer('20'); return false;">
<i></i>
<p>성인 대상</p>
</li>

View File

@ -0,0 +1,104 @@
<%--
Class Name : instrPrflReg.jsp
Description : 강사등록
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2021.12.02 조용준 내용
author : 조용준
since : 2021.12.02
--%>
<%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<!-- for validator #1 -->
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator"%>
<!-- for validator #1 -->
<!DOCTYPE html>
<html lang="ko">
<head>
<title>강사프로필 등록</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<!-- for validator #2 -->
<script type="text/javascript" src="<c:url value="/validator.do"/>"></script>
<validator:javascript formName="vEInstrDetailVO" staticJavascript="false" xhtml="true" cdata="false" />
<!-- for validator #2 -->
<style>
input:disabled {
background-color: #f9f9f9 !important;
}
input:read-only {
background-color: #f9f9f9 !important;
}
</style>
<script type="text/javaScript" language="javascript">
function fncGoReg(instrDiv){
var varFrom = document.getElementById("createForm");
varFrom.instrDiv.value = instrDiv;
if(instrDiv == '10'){
var url = "${pageContext.request.contextPath}/web/ve/instr/tngrVisitEdu/instrInfo/instrPrflReg.do";
/* var url = "${pageContext.request.contextPath}/web/ve/instr/tngrVisitEdu/instrInfo/instrPrflRegRqst.do"; */
}
if(instrDiv == '20'){
var url = "${pageContext.request.contextPath}/web/ve/instr/adultVisitEdu/instrInfo/instrPrflReg.do";
}
varFrom.action = url;
varFrom.submit();
}
</script>
</head>
<body>
<!-- cont -->
<div class="cont_wrap" id="sub">
<form:form id="createForm" name="createForm" commandName="vEInstrDetailVO" onsubmit="return false;">
<input type="hidden" name="instrDiv" value="<c:out value='${info.instrDiv}'/>"/><!-- 강사구분 -->
</form:form>
<div class="tit_box">
<i class="tit_box_icon1"></i>
<div>
<p>찾아가는 저작권 교육</p>
<span>‘찾아가는 저작권 교육’은 저작권 교육이 필요한 <span>전국 초ㆍ중ㆍ고등학교, 청소년ㆍ아동복지ㆍ노인ㆍ장애인 기관 및 단체 등</span>에 직접 방문하여
무료로 강의를 지원하는 맞춤형 교육 서비스입니다.
<p style="font-weight:400;color:red;font-size:17px;padding-top:8px; padding-bottom: 0;">담당자 연락처) 055-792-0233</p></span>
</div>
</div>
<div class="sel_tpye">
<p><span>강사유형</span>을 선택해주세요</p>
<ul>
<li class="type1" onclick="fncGoReg('10'); return false;">
<i></i>
<p>청소년 대상</p>
</li>
<li class="type2" onclick="fncGoReg('20'); return false;">
<i></i>
<p>성인 대상</p>
</li>
</ul>
</div>
</div>
<!-- //cont -->
</body>
</html>

View File

@ -0,0 +1,186 @@
<%@ 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="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ 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="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
<link rel="stylesheet" href="<c:url value='/innorix/innorix.css'/>" type="text/css">
<script type="text/javascript">
function fncInfoChk(){
//# sourceURL=foo.coffee
if($("#instrNm").val() == ''){
alert('성명을 입력해주세요.');
return false;
};
if($("#email1").val() == ''){
alert('이메일을 입력해주세요.');
return false;
};
if($("#email2").val() == ''){
alert('이메일을 입력해주세요.');
return false;
};
//이메일 합치기
$("#email").val($("#email1").val() + "@"+ $("#email2").val());
var data = new FormData(document.getElementById("linkForm"));
$.ajax({
type: "POST",
url: "${pageContext.request.contextPath}/web/ve/instr/instrInfo/instrInfoChkAjax.do",
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success: function (returnData, status) {
if(returnData.result == 'success'){
alert("이메일로 발송된 인증번호를 확인해주세요.");
$("#chkNo").show();
$(".btnType05").hide();
$("#instrDetailOrd").val(returnData.instrDetailOrd);
$("#userId").val(returnData.userId);
} else if(returnData.result == 'sndFail'){
alert("인증번호 발송이 실패했습니다. 관리자에게 문의해주세요.");
}else{
alert("등록된 강사정보가 없습니다. 관리자에게 문의해주세요.");
}
},
error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
});
}
function fncChkNo(){
if($("#crtfdNumber").val().length != 6){
alert("인증번호 6자리를 입력해주세요.");
return false;
}
var data = new FormData(document.getElementById("linkForm"));
$.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'){
instrAplct();
} else {
alert("인증번호가 일치하지 않습니다.");
return false;
}
},
error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
});
}
function instrAplct(){
var data = new FormData(document.getElementById("linkForm"));
$.ajax({
type: "POST",
url: "${pageContext.request.contextPath}/web/ve/instr/instrInfo/updateInstrSbmtYAjax.do",
data: data,
dataType:"json",
async: false,
processData: false,
contentType: false,
cache: false,
success: function (returnData, status) {
if(returnData.result == 'success'){
alert("강사 신청 완료하였습니다.");
location.href="<c:url value='/web/main/mainPage.do'/>";
} else {
alert("강사 신청 실패하였습니다");
return false;
}
},
error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
});
}
</script>
<!-- 파일 업로드 -->
<form name="linkForm" id="linkForm" method="post" >
<input type="hidden" name="instrDiv" id="instrDiv" value="<c:out value='${vEEduAplctVO.instrDiv}'/>"/><!-- 강사구분 -->
<input type="hidden" name="email" id="email" value=""/><!-- 강사구분 -->
<input type="hidden" name="instrDetailOrd" id="instrDetailOrd" value=""/>
<input type="hidden" name="userId" id="userId" value=""/>
<div class="tooltip-wrap">
<div class="popup_wrap popType03" tabindex="0" data-tooltip-con="sub35_pop01" data-focus="sub35_pop01" data-focus-prev="sub35_pop01_close">
<div class="popup_tit">
<p>
강사 인증
</p>
<button class="btn_popup_close tooltip-close" data-focus="list_popup_close" title="팝업 닫기"><i></i></button>
</div>
<div class="popup_cont">
<div class="pop_tb_type01">
<table>
<caption>숙박신청 (th)를 제공하는 표</caption>
<colgroup>
<col style="width: 120px;">
<col style="width: auto">
</colgroup>
<tbody>
<tr>
<th scope="row">
<p>성명</p>
</th>
<td>
<input type="text" name="instrNm" id="instrNm">
</td>
</tr>
<tr>
<th scope="row">
<p>이메일</p>
</th>
<td>
<input type="text" name="email1" id="email1" onkeyup="onlyAlphabetNumber(this);" size="20" maxlength="30">
@
<input type="text" name="email2" id="email2" onkeyup="onlyAlphabetNumber(this);" size="20" maxlength="30">
<ve:select codeId="ADR030" id="emailType" name="emailType" styleClass="selType1" defaultValue="" defaultText="직접입력" onChange="emailSelect(this);"/>
</td>
</tr>
<tr id="chkNo" style="display:none;">
<th scope="row">
<p>인증번호</p>
</th>
<td>
<input type="text" name="crtfdNumber" id="crtfdNumber" onkeyup="onlyNumber(this);" size="20" maxlength="6">
<button type="button" class="btnType06" onclick="fncChkNo();">인증하기</button>
</td>
</tr>
</tbody>
</table>
<div class="pop_btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
<button type="button" class="btnType05" onclick="fncInfoChk();">정보 확인</button>
<button type="button" class="btnType02 tooltip-close" data-focus="sub35_pop01_close" data-focus-next="sub35_pop01">취소</button>
</div>
<div class="btn_right">
</div>
</div>
</div>
</div>
</div>
</div>
</form>
<!--// 파일 업로드 -->