This commit is contained in:
subsub 2023-10-31 11:56:32 +09:00
commit 3e650b88da
17 changed files with 205 additions and 40 deletions

View File

@ -96,4 +96,6 @@ public interface EgovLoginService {
void updateMberSeqKeyAjax(LoginVO vo) throws Exception; void updateMberSeqKeyAjax(LoginVO vo) throws Exception;
void updateMberSeqKeyNull(LoginVO vo) throws Exception; void updateMberSeqKeyNull(LoginVO vo) throws Exception;
LoginVO actionLoginMberId(LoginVO vo) throws Exception;
} }

View File

@ -291,4 +291,27 @@ public class EgovLoginServiceImpl extends EgovAbstractServiceImpl implements
public void updateMberSeqKeyNull(LoginVO vo) throws Exception { public void updateMberSeqKeyNull(LoginVO vo) throws Exception {
loginDAO.updateMberSeqKeyNull(vo); loginDAO.updateMberSeqKeyNull(vo);
} }
@Override
public LoginVO actionLoginMberId(LoginVO vo) throws Exception {
//최고관리자를 제외한 사용자 sso 로그인으로 비밀번호 암호화 삭제(210818, 이준호)
// 1. 입력한 비밀번호를 암호화한다.
if("USR".equals(vo.getUserSe())) {
String enpassword = EgovFileScrty.encryptPassword(vo.getPassword(), vo.getId());
vo.setPassword(enpassword);
}
// 2. 아이디와 암호화된 비밀번호가 DB와 일치하는지 확인한다.
LoginVO loginVO = loginDAO.actionLoginMberId(vo);
// 3. 결과를 리턴한다.
if (loginVO != null && !loginVO.getId().equals("") && !loginVO.getPassword().equals("")) {
return loginVO;
} else {
loginVO = new LoginVO();
}
return loginVO;
}
} }

View File

@ -145,4 +145,8 @@ public class LoginDAO extends EgovAbstractDAO {
update("loginDAO.updateMberSeqKeyNull", vo); update("loginDAO.updateMberSeqKeyNull", vo);
} }
public LoginVO actionLoginMberId(LoginVO vo) throws Exception {
return (LoginVO)select("loginDAO.actionLoginMberId", vo);
}
} }

View File

@ -16,6 +16,7 @@ import javax.servlet.http.HttpSession;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.json.JSONObject; import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContext;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
@ -58,6 +59,10 @@ public class APILoginContoller {
@Resource(name = "loginService") @Resource(name = "loginService")
private EgovLoginService loginService; private EgovLoginService loginService;
/** 구동 환경 */
@Value("#{property['Globals.prod.islocal']}")
private String environment;
/** /**
* @methodName : loginKeyChk * @methodName : loginKeyChk
* @author : 이지우 * @author : 이지우
@ -185,6 +190,9 @@ public class APILoginContoller {
} }
byte[] postDataBytes = postData.toString().getBytes("UTF-8"); byte[] postDataBytes = postData.toString().getBytes("UTF-8");
URL obj = new URL("http://223.255.205.7/notdeco/mbrLinkSso.do"); URL obj = new URL("http://223.255.205.7/notdeco/mbrLinkSso.do");
if("real".equals(environment)) {
obj = new URL("https://edu-copyright.or.kr/notdeco/mbrLinkSso.do");
}
HttpURLConnection con = (HttpURLConnection)obj.openConnection(); HttpURLConnection con = (HttpURLConnection)obj.openConnection();
con.setRequestMethod("POST"); con.setRequestMethod("POST");
con.setRequestProperty("Content-Length", String.valueOf(postDataBytes.length)); con.setRequestProperty("Content-Length", String.valueOf(postDataBytes.length));

View File

@ -365,10 +365,15 @@ public class EgovLoginController {
model.addAttribute("beforeUrl", beforeUrl); model.addAttribute("beforeUrl", beforeUrl);
model.addAttribute("message", message); model.addAttribute("message", message);
model.addAttribute("environment", environment); model.addAttribute("environment", environment);
//운영서버는 sso로그인 화면이 아닌 e배움터 로그인 화면으로 이동. //로컬은 셀렉트박스 로그인
if(!"local".equals(environment)) { //개발은 e배움터 개발서버 로그인
//운영은 e배움터 운영서버 로그인
if("dev".equals(environment)) {
return "redirect:http://223.255.205.7/user/member/loginForm.do?eduOff=Y"; return "redirect:http://223.255.205.7/user/member/loginForm.do?eduOff=Y";
} }
if("real".equals(environment)) {
return "redirect:https://edu-copyright.or.kr/user/member/loginForm.do?eduOff=Y";
}
// initRsa(request); // initRsa(request);
if (test != null && test.equals("test")) { if (test != null && test.equals("test")) {
return "web/kccadr/login/SsoLoginUsr3"; return "web/kccadr/login/SsoLoginUsr3";
@ -718,7 +723,13 @@ public class EgovLoginController {
loginVO.setStatusAll("N"); loginVO.setStatusAll("N");
ssologinVO.setMembSeq(loginVO.getId()); //중요 ssologinVO.setMembSeq(loginVO.getId()); //중요
//loginVO = loginService.actionLogin(loginVO); //loginVO = loginService.actionLogin(loginVO);
loginVO = loginService.actionLoginDev(loginVO); //개발자 아이디 선택 로그인시
//기존에 개발자 로그인은 selectbox와 mber_seq로 로그인 처리.
//e배움터 연동 mber_seq는 key로 사용하기 때문에 mber_id로 로그인 처리 과정
//loginVO = loginService.actionLoginDev(loginVO); //개발자 아이디 선택 로그인시
loginVO = loginService.actionLoginMberId(loginVO);
//ssologinVO.setMembSeq(loginVO.getId()); //중요 //ssologinVO.setMembSeq(loginVO.getId()); //중요
//loginVO = loginService.actionLoginDev(loginVO); //개발자 아이디 선택 로그인시 //loginVO = loginService.actionLoginDev(loginVO); //개발자 아이디 선택 로그인시

View File

@ -22,12 +22,18 @@ Globals.LocalIp = 127.0.0.1
# DB\uc11c\ubc84 \ud0c0\uc785(mysql,oracle,altibase,tibero) - datasource \ubc0f sqlMap \ud30c\uc77c \uc9c0\uc815\uc5d0 \uc0ac\uc6a9\ub428 # DB\uc11c\ubc84 \ud0c0\uc785(mysql,oracle,altibase,tibero) - datasource \ubc0f sqlMap \ud30c\uc77c \uc9c0\uc815\uc5d0 \uc0ac\uc6a9\ub428
Globals.DbType = tibero Globals.DbType = tibero
# \uac1c\ubc1c\uc6a9 DB \uc11c\ubc84 tibero \uc5f0\ub3d9 # \uac1c\ubc1c\uc6a9 DB \uc11c\ubc84 tibero \uc5f0\ub3d9
Globals.UserName= EDUSCE #Globals.UserName= EDUSCE
Globals.Password= edusce#23 #Globals.Password= edusce#23
Globals.UserName= teduUr
Globals.Password= tedu1234
Globals.DriverClassName=com.tmax.tibero.jdbc.TbDriver Globals.DriverClassName=com.tmax.tibero.jdbc.TbDriver
#\uac1c\ubc1c DB \uc11c\ubc84 #\ub85c\uceec DB
Globals.Url=jdbc:tibero:thin:@10.255.3.58:8629:copydb Globals.Url=jdbc:tibero:thin:@192.168.0.30:8633:tibero
#\uc6b4\uc601 \uac1c\ubc1cDB
#Globals.Url=jdbc:tibero:thin:@10.255.3.58:8629:copydb
#\uc6b4\uc601 DB
#Globals.Url=jdbc:tibero:thin:@172.17.0.10:8629:copydb
# \uc800\uc791\uc704 \ubb38\uc790\uc804\uc1a1 DB(\uac1c\ubc1c) # \uc800\uc791\uc704 \ubb38\uc790\uc804\uc1a1 DB(\uac1c\ubc1c)
@ -147,9 +153,12 @@ Globals.pdf.webpath=/pdf/out/
#Globals.pdf.webpath=/pdf/out/ #Globals.pdf.webpath=/pdf/out/
#prod \uac1c\ubc1c, \uc2e4\uc11c\ubc84 \uad6c\ubd84\uac12 #prod \uac1c\ubc1c, \uc2e4\uc11c\ubc84 \uad6c\ubd84\uac12
#\uac1c\ubc1c\uc11c\ubc84 #\ub85c\uceec
#Globals.prod.islocal=local
#\uc6b4\uc601 \uac1c\ubc1c
#\uac1c\ubc1c \uc11c\ubc84 \ud14c\uc2a4\ud2b8\ub97c \uc704\ud574 DB\ub294 \ub85c\uceec\uc744 \ubc14\ub77c\ubcf4\uba70 \ub85c\uadf8\uc778\uc740 e\ubc30\uc6c0\ud130 \uc5f0\ub3d9 \ucc98\ub9ac\ub97c \uc704\ud574 islocal \uad6c\ubd84
Globals.prod.islocal=dev Globals.prod.islocal=dev
#\uc2e4\uc11c\ubc84 #\uc6b4\uc601
#Globals.prod.islocal=real #Globals.prod.islocal=real

View File

@ -26,8 +26,12 @@ Globals.UserName= EDUSCE
Globals.Password= edusce#23 Globals.Password= edusce#23
Globals.DriverClassName=com.tmax.tibero.jdbc.TbDriver Globals.DriverClassName=com.tmax.tibero.jdbc.TbDriver
#\uac1c\ubc1c DB \uc11c\ubc84 #\ub85c\uceec DB
Globals.Url=jdbc:tibero:thin:@172.17.0.10:8629:copydb #Globals.Url=jdbc:tibero:thin:@192.168.0.30:8633:tibero
#\uc6b4\uc601 \uac1c\ubc1cDB - \ud14c\uc2a4\ud2b8 \uc644\ub8cc \ud6c4 \uc6b4\uc601 DB\ub85c \ubcc0\uacbd \uc608\uc815
Globals.Url=jdbc:tibero:thin:@10.255.3.58:8629:copydb
#\uc6b4\uc601 DB
#Globals.Url=jdbc:tibero:thin:@172.17.0.10:8629:copydb
# \uc800\uc791\uc704 \ubb38\uc790\uc804\uc1a1 DB(\uac1c\ubc1c) # \uc800\uc791\uc704 \ubb38\uc790\uc804\uc1a1 DB(\uac1c\ubc1c)
@ -147,11 +151,12 @@ Globals.pdf.webpath=/pdf/out/
#Globals.pdf.webpath=/pdf/out/ #Globals.pdf.webpath=/pdf/out/
#prod \uac1c\ubc1c, \uc2e4\uc11c\ubc84 \uad6c\ubd84\uac12 #prod \uac1c\ubc1c, \uc2e4\uc11c\ubc84 \uad6c\ubd84\uac12
#\uac1c\ubc1c\uc11c\ubc84 #\ub85c\uceec
#Globals.prod.islocal=local #Globals.prod.islocal=local
#\uc2e4\uc11c\ubc84 #\uc6b4\uc601 \uac1c\ubc1c
#Globals.prod.islocal=dev
#\uc6b4\uc601
Globals.prod.islocal=real Globals.prod.islocal=real
#Globals.prod.islocal=svr
#\ub300\uc6a9\ub7c9 innorix license #\ub300\uc6a9\ub7c9 innorix license

View File

@ -26,8 +26,12 @@ Globals.UserName= teduUr
Globals.Password= tedu1234 Globals.Password= tedu1234
Globals.DriverClassName=com.tmax.tibero.jdbc.TbDriver Globals.DriverClassName=com.tmax.tibero.jdbc.TbDriver
#\uac1c\ubc1c DB \uc11c\ubc84 #\ub85c\uceec DB
Globals.Url=jdbc:tibero:thin:@192.168.0.30:8633:tibero Globals.Url=jdbc:tibero:thin:@192.168.0.30:8633:tibero
#\uc6b4\uc601 \uac1c\ubc1cDB
#Globals.Url=jdbc:tibero:thin:@10.255.3.58:8629:copydb
#\uc6b4\uc601 DB
#Globals.Url=jdbc:tibero:thin:@172.17.0.10:8629:copydb
# \uc800\uc791\uc704 \ubb38\uc790\uc804\uc1a1 DB(\uac1c\ubc1c) # \uc800\uc791\uc704 \ubb38\uc790\uc804\uc1a1 DB(\uac1c\ubc1c)
@ -147,9 +151,11 @@ Globals.pdf.webpath=/pdf/out/
#Globals.pdf.webpath=/pdf/out/ #Globals.pdf.webpath=/pdf/out/
#prod \uac1c\ubc1c, \uc2e4\uc11c\ubc84 \uad6c\ubd84\uac12 #prod \uac1c\ubc1c, \uc2e4\uc11c\ubc84 \uad6c\ubd84\uac12
#\uac1c\ubc1c\uc11c\ubc84 #\ub85c\uceec
Globals.prod.islocal=local Globals.prod.islocal=local
#\uc2e4\uc11c\ubc84 #\uc6b4\uc601 \uac1c\ubc1c
#Globals.prod.islocal=dev
#\uc6b4\uc601
#Globals.prod.islocal=real #Globals.prod.islocal=real

View File

@ -118,6 +118,53 @@
</isEqual> </isEqual>
</isNotNull> </isNotNull>
</select> </select>
<!-- e배움터 연동 후 mber_seq가 아닌 mber_id로 로그인 -->
<select id="loginDAO.actionLoginMberId" resultMap="login">
<!-- 일반회원 loginDAO.actionLoginDev -->
<isNotNull property="userSe">
<isEqual property="userSe" compareValue="GNR">
SELECT mber_id AS id
, mber_nm AS name
, password AS password
, ihidNum AS ihidNum
, mber_email_adres AS email
, 'GNR' AS userSe
, '-' AS orgnztId
, ESNTL_ID AS uniqId
, 0 AS passMiss
, mber_sttus AS emplyrSttusCode
, mbtlnum AS membCelnum
, birth_day AS membBirth
FROM lettngnrlmber a
WHERE mber_id = #id#
<isEmpty property="statusAll">
AND emplyr_sttus_code = 'P'
</isEmpty>
</isEqual>
<!-- 업무사용자 -->
<isEqual property="userSe" compareValue="USR">
SELECT EMPLYR_ID AS id
, USER_NM AS name
, PASSWORD AS password
, IHIDNUM AS ihidNum
, EMAIL_ADRES AS email
, 'USR' AS userSe
, ORGNZT_ID AS orgnztId
, ESNTL_ID AS uniqId
, PASS_MISS AS passMiss
, EMPLYR_STTUS_CODE AS emplyrSttusCode
, mbtlnum AS membCelnum
, '' AS membBirth
FROM LETTNEMPLYRINFO a
WHERE EMPLYR_ID = #id#
<isEmpty property="statusAll">
AND emplyr_sttus_code = 'P'
</isEmpty>
</isEqual>
</isNotNull>
</select>
<!-- 일반 로그인 --> <!-- 일반 로그인 -->
<!-- <select id="loginDAO.actionLogin" resultMap="login"> <!-- <select id="loginDAO.actionLogin" resultMap="login">

View File

@ -776,6 +776,8 @@
, d.lctr_plan_atch_file_id AS lctrPlanAtchFileId , d.lctr_plan_atch_file_id AS lctrPlanAtchFileId
, d.user_id AS instrCnfrmId , d.user_id AS instrCnfrmId
, (SELECT COUNT(1) FROM ve_edu_chasi_instr_asgnm_hstry WHERE edu_aplct_ord = #eduAplctOrd# AND edu_chasi_ord = #eduChasiOrd#) AS hstryCnt , (SELECT COUNT(1) FROM ve_edu_chasi_instr_asgnm_hstry WHERE edu_aplct_ord = #eduAplctOrd# AND edu_chasi_ord = #eduChasiOrd#) AS hstryCnt
, b.attend_atch_file_id AS attendAtchFileId
, b.pht_atch_file_id AS phtAtchFileId
FROM ve_edu_chasi a FROM ve_edu_chasi a
JOIN ve_edu_aplct b JOIN ve_edu_aplct b
ON a.edu_aplct_ord = b.edu_aplct_ord ON a.edu_aplct_ord = b.edu_aplct_ord

View File

@ -124,6 +124,7 @@ function usrJoin(){
} }
function goEEdu() { function goEEdu() {
var environment = '${environment}';
$.ajax({ $.ajax({
url : "<c:url value='/web/updateMberSeqKeyAjax.do'/>", url : "<c:url value='/web/updateMberSeqKeyAjax.do'/>",
async:false, async:false,
@ -132,8 +133,11 @@ function usrJoin(){
cache: false, cache: false,
success: function (returnData, status) { success: function (returnData, status) {
if(returnData.status == 'loginY'){ if(returnData.status == 'loginY'){
window.location.href = "http://223.255.205.7/user/main/main.do?user_id="+returnData.user_id+"&key="+returnData.key; if(environment == 'real'){
window.location.href = "http://https://edu-copyright.or.kr.255.205.7/user/main/main.do?user_id="+returnData.user_id+"&key="+returnData.key;
}else{
window.location.href = "http://223.255.205.7/user/main/main.do?user_id="+returnData.user_id+"&key="+returnData.key;
}
} else if(returnData.status == 'fail') { } else if(returnData.status == 'fail') {
alert("key 갱신 오류"); alert("key 갱신 오류");
@ -203,7 +207,7 @@ function usrJoin(){
<p class="login_info"><a href="http://223.255.205.7/user/usrservice/selectUserSeView.do?eduOff=Y" class="header_join" title="새창열림"><i></i>회원가입</a></p> <!-- e-배움터 개발서버 --> <p class="login_info"><a href="http://223.255.205.7/user/usrservice/selectUserSeView.do?eduOff=Y" class="header_join" title="새창열림"><i></i>회원가입</a></p> <!-- e-배움터 개발서버 -->
</c:if> </c:if>
<!-- svr --> <!-- svr -->
<c:if test="${environment eq 'svr' }"> <c:if test="${environment eq 'real' }">
<p class="login_info header_login_wrap"><a href="https://edu-copyright.or.kr/user/member/loginForm.do?eduOff=Y" class="header_login"><i></i>로그인</a></p> <!-- e-배움터 운영서버 --> <p class="login_info header_login_wrap"><a href="https://edu-copyright.or.kr/user/member/loginForm.do?eduOff=Y" class="header_login"><i></i>로그인</a></p> <!-- e-배움터 운영서버 -->
<p class="login_info"><a href="https://edu-copyright.or.kr/user/usrservice/selectUserSeView.do?eduOff=Y" class="header_join" title="새창열림"><i></i>회원가입</a></p> <!-- e-배움터 운영서버 --> <p class="login_info"><a href="https://edu-copyright.or.kr/user/usrservice/selectUserSeView.do?eduOff=Y" class="header_join" title="새창열림"><i></i>회원가입</a></p> <!-- e-배움터 운영서버 -->
</c:if> </c:if>
@ -241,11 +245,15 @@ function usrJoin(){
</button> --%> </button> --%>
<div class="area_right"> <div class="area_right">
<!-- e배움터 로그인 연동으로 인하여 로컬, 운영 구분 --> <p class="login_after"><c:out value="${LoginVO.id}"/><span>님</span></p>
<c:if test="${environment eq 'local'}"> <!-- e배움터 로그인 연동으로 인하여 개발, 운영 구분 -->
<p class="login_after"><c:out value="${ssoLoginVO.membName}"/><span>님</span></p> <c:if test="${environment eq 'real' }">
<p class="login_info"><a href="#" onclick="javascript:usrModify();" title="새창열림">회원정보 수정</a></p> <p class="login_info"><a href="https://edu-copyright.or.kr/user/member/loginForm.do" title="새창열림">회원정보 수정</a></p>
</c:if> </c:if>
<c:if test="${environment ne 'real' }">
<p class="login_info"><a href="http://223.255.205.7/user/member/loginForm.do" title="새창열림">회원정보 수정</a></p>
</c:if>
<p class="login_info"><a href="#" onclick="location.href='${pageContext.request.contextPath}/web/uat/uia/actionLogout.do'">로그아웃</a></p> <p class="login_info"><a href="#" onclick="location.href='${pageContext.request.contextPath}/web/uat/uia/actionLogout.do'">로그아웃</a></p>
<div class="btn_util"> <div class="btn_util">
<button class="btn_minus" onClick="zoomOut();" title="글자 확대"></button> <button class="btn_minus" onClick="zoomOut();" title="글자 확대"></button>
@ -297,7 +305,7 @@ function usrJoin(){
<button type="button" class="btn_mobile btn_login" onclick="location.href='http://223.255.205.7/user/member/loginForm.do?eduOff=Y'" title="로그인"></button> <button type="button" class="btn_mobile btn_login" onclick="location.href='http://223.255.205.7/user/member/loginForm.do?eduOff=Y'" title="로그인"></button>
<button type="button" class="btn_mobile btn_join" onclick="location.href='http://223.255.205.7/user/usrservice/selectUserSeView.do?eduOff=Y'" title="회원가입"></button> <button type="button" class="btn_mobile btn_join" onclick="location.href='http://223.255.205.7/user/usrservice/selectUserSeView.do?eduOff=Y'" title="회원가입"></button>
</c:if> </c:if>
<c:if test="${environment eq 'svr' }"> <c:if test="${environment eq 'real' }">
<button type="button" class="btn_mobile btn_login" onclick="location.href='https://edu-copyright.or.kr/user/member/loginForm.do?eduOff=Y'" title="로그인"></button> <button type="button" class="btn_mobile btn_login" onclick="location.href='https://edu-copyright.or.kr/user/member/loginForm.do?eduOff=Y'" title="로그인"></button>
<button type="button" class="btn_mobile btn_join" onclick="location.href='https://edu-copyright.or.kr/user/usrservice/selectUserSeView.do?eduOff=Y'" title="회원가입"></button> <button type="button" class="btn_mobile btn_join" onclick="location.href='https://edu-copyright.or.kr/user/usrservice/selectUserSeView.do?eduOff=Y'" title="회원가입"></button>
</c:if> </c:if>

View File

@ -124,7 +124,9 @@ function usrIdPassFind(choose){
개발자 아이디 선택 : <select id="devIdSelect" style="width: 400px; height: 30px;" onchange="login()"> 개발자 아이디 선택 : <select id="devIdSelect" style="width: 400px; height: 30px;" onchange="login()">
<option value="">로그인할 아이디를 선택해주세요.</option> <option value="">로그인할 아이디를 선택해주세요.</option>
<option value="3000118:1">공통 담당자1 (USRCNFRM_00000002620)_성인강사1</option>
<!-- e배움터 연동 전 mber_seq로 로그인 처리 -->
<!-- <option value="3000118:1">공통 담당자1 (USRCNFRM_00000002620)_성인강사1</option>
<option value="3000119:1">공통 담당자3 (USRCNFRM_00000002614)_성인강사2</option> <option value="3000119:1">공통 담당자3 (USRCNFRM_00000002614)_성인강사2</option>
<option value="3000122:1">공통 담당자x (USRCNFRM_00000002610)_청소년강사1</option> <option value="3000122:1">공통 담당자x (USRCNFRM_00000002610)_청소년강사1</option>
@ -132,7 +134,29 @@ function usrIdPassFind(choose){
<option value="3000125:1">개발팀 사용자(USRCNFRM_00000002613)_일반사용자1</option> <option value="3000125:1">개발팀 사용자(USRCNFRM_00000002613)_일반사용자1</option>
<option value="3000128:1">개발팀 사용자(USRCNFRM_00000002720)_일반사용자2</option> <option value="3000128:1">개발팀 사용자(USRCNFRM_00000002720)_일반사용자2</option> -->
<!-- e배움터 연동 후 mber_id로 로그인 처리 -->
<option value="USRCNFRM_00000002620:1">공통 담당자1 (USRCNFRM_00000002620)_성인강사1</option>
<option value="USRCNFRM_00000002614:1">공통 담당자3 (USRCNFRM_00000002614)_성인강사2</option>
<option value="USRCNFRM_00000002610:1">공통 담당자x (USRCNFRM_00000002610)_청소년강사1</option>
<option value="USRCNFRM_00000002612:1">사용자_김x호(USRCNFRM_00000002612)_청소년강사2</option>
<option value="USRCNFRM_00000002613:1">개발팀 사용자(USRCNFRM_00000002613)_일반사용자1</option>
<option value="USRCNFRM_00000002720:1">개발팀 사용자(USRCNFRM_00000002720)_일반사용자2</option>
<option value="eduoff1@forwiz.com:1">테스트계정1 (eduoff1@forwiz.com)_테스트계정1</option>
<option value="eduoff2@forwiz.com:1">테스트계정2 (eduoff2@forwiz.com)_테스트계정2</option>
<option value="eduoff3@forwiz.com:1">테스트계정3 (eduoff3@forwiz.com)_테스트계정3</option>
<option value="eduoff4@forwiz.com:1">테스트계정4 (eduoff4@forwiz.com)_테스트계정4</option>
<option value="eduoff5@forwiz.com:1">테스트계정5 (eduoff5@forwiz.com)_테스트계정5</option>
<option value="eduoff6@forwiz.com:1">테스트계정6 (eduoff6@forwiz.com)_테스트계정6</option>
<!-- <!--
<option value="3000118:1">공통 담당자1 (USRCNFRM_00000002620)_우영두</option> <option value="3000118:1">공통 담당자1 (USRCNFRM_00000002620)_우영두</option>

View File

@ -21,12 +21,16 @@
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%> <%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<!-- for validator #1 --> <!-- for validator #1 -->
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator"%> <%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator"%>
<!-- for validator #1 --> <!-- for validator #1 -->
<meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta http-equiv="content-type" content="text/html; charset=utf-8">
<spring:eval expression="@property['Globals.Innorix.License']" var="license"/>
<script src="<c:url value='/innorix/innorix_${license}.js' />"></script>
<script src="<c:url value='/js/kccadr/innorixCommon.js' />"></script>
<!-- for validator #2 --> <!-- for validator #2 -->
<script type="text/javascript" src="<c:url value="/validator.do"/>"></script> <script type="text/javascript" src="<c:url value="/validator.do"/>"></script>
@ -1022,6 +1026,7 @@
<button type="button" class="btnType01 updownRoad" data-tooltip="sub35_pop01" id="ATTEND" onclick="filePopupLayer('ATTEND')" title="팝업 열림">강사 참석 확인서 업로드</button> <button type="button" class="btnType01 updownRoad" data-tooltip="sub35_pop01" id="ATTEND" onclick="filePopupLayer('ATTEND')" title="팝업 열림">강사 참석 확인서 업로드</button>
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
<button type="button" class="btnType01" onclick="location.href='${pageContext.request.contextPath}/cmm/fms/FileDown.do?atchFileId=FILE_000000000015299&amp;fileSn=1'" title="서약서 양식 다운로드">강사 참석 확인서 양식 다운로드</button>
</td> </td>
</tr> </tr>

View File

@ -64,7 +64,7 @@
<c:choose> <c:choose>
<c:when test="${not empty info.sbmtPnttmDetail}"> <c:when test="${not empty info.sbmtPnttmDetail}">
<fmt:parseDate value="${info.sbmtPnttmDetail}" var="sbmtPnttm" pattern="yyyy-MM-dd HH:mm:ss"/> <fmt:parseDate value="${info.sbmtPnttmDetail}" var="sbmtPnttm" pattern="yyyy-MM-dd HH:mm:ss"/>
<fmt:formatDate value="${sbmtPnttm}" pattern="yyyy.MM.dd HH시 mm분"/> <fmt:formatDate value="${sbmtPnttm}" pattern="yyyy-MM-dd HH시 mm분"/>
</c:when> </c:when>
<c:otherwise> <c:otherwise>
- -
@ -76,7 +76,7 @@
<p>접수종료일</p> <p>접수종료일</p>
</th> </th>
<td> <td>
<c:out value="${endPnttm }"/> <c:out value="${endPnttm}"/>
</td> </td>
</tr> </tr>
<tr class="trLength2"> <tr class="trLength2">
@ -87,7 +87,7 @@
<c:choose> <c:choose>
<c:when test="${not empty info.sbmtPnttm}"> <c:when test="${not empty info.sbmtPnttm}">
<fmt:parseDate value="${info.sbmtPnttm}" var="sbmtPnttm" pattern="yyyy-MM-dd"/> <fmt:parseDate value="${info.sbmtPnttm}" var="sbmtPnttm" pattern="yyyy-MM-dd"/>
<fmt:formatDate value="${sbmtPnttm}" pattern="20yy.MM.dd"/> <fmt:formatDate value="${sbmtPnttm}" pattern="20yy-MM-dd"/>
</c:when> </c:when>
<c:otherwise> <c:otherwise>
- -
@ -102,8 +102,7 @@
<td colspan="3"> <td colspan="3">
<c:choose> <c:choose>
<c:when test="${not empty info.endPnttm}"> <c:when test="${not empty info.endPnttm}">
<fmt:parseDate value="${info.endPnttm}" var="endPnttm" pattern="yyyyMMddHHmm"/> <c:out value="${endPnttm}"/>
<fmt:formatDate value="${endPnttm}" pattern="yyyy.MM.dd"/>
</c:when> </c:when>
<c:otherwise> <c:otherwise>
- -

View File

@ -150,7 +150,7 @@
<c:choose> <c:choose>
<c:when test="${not empty info.sbmtPnttmDetail}"> <c:when test="${not empty info.sbmtPnttmDetail}">
<fmt:parseDate value="${info.sbmtPnttmDetail}" var="sbmtPnttm" pattern="yyyy-MM-dd HH:mm:ss"/> <fmt:parseDate value="${info.sbmtPnttmDetail}" var="sbmtPnttm" pattern="yyyy-MM-dd HH:mm:ss"/>
<fmt:formatDate value="${sbmtPnttm}" pattern="yyyy.MM.dd HH시 mm분"/> <fmt:formatDate value="${sbmtPnttm}" pattern="yyyy-MM-dd HH시 mm분"/>
</c:when> </c:when>
<c:otherwise> <c:otherwise>
- -
@ -173,7 +173,7 @@
<c:choose> <c:choose>
<c:when test="${not empty info.sbmtPnttm}"> <c:when test="${not empty info.sbmtPnttm}">
<fmt:parseDate value="${info.sbmtPnttm}" var="sbmtPnttm" pattern="yyyy-MM-dd"/> <fmt:parseDate value="${info.sbmtPnttm}" var="sbmtPnttm" pattern="yyyy-MM-dd"/>
<fmt:formatDate value="${sbmtPnttm}" pattern="20yy.MM.dd"/> <fmt:formatDate value="${sbmtPnttm}" pattern="20yy-MM-dd"/>
</c:when> </c:when>
<c:otherwise> <c:otherwise>
- -
@ -187,9 +187,8 @@
</th> </th>
<td colspan="3"> <td colspan="3">
<c:choose> <c:choose>
<c:when test="${not empty info.endPnttm}"> <c:when test="${not empty endPnttm}">
<fmt:parseDate value="${info.endPnttm}" var="endPnttm" pattern="yyyyMMddHHmm"/> <c:out value="${endPnttm }"/>
<fmt:formatDate value="${endPnttm}" pattern="yyyy.MM.dd"/>
</c:when> </c:when>
<c:otherwise> <c:otherwise>
- -

View File

@ -218,8 +218,7 @@
<li> <li>
<span>접수종료일</span> <span>접수종료일</span>
<span> <span>
<fmt:parseDate value="${list.endPnttm}" var="endPnttm" pattern="yyyyMMddHHmm"/> <c:out value="${list.endPnttm }"/>
<fmt:formatDate value="${endPnttm}" pattern="yyyy.MM.dd"/>
</span> </span>
</li> </li>
<li> <li>

View File

@ -294,6 +294,20 @@ $( document ).ready(function() {
</th> </th>
<td colspan="3"><c:out value="${cryptoUtil.decrypt(info.email)}"/></td> <td colspan="3"><c:out value="${cryptoUtil.decrypt(info.email)}"/></td>
</tr> </tr>
<tr>
<th scope="row">
<p>강사 참석 확인서</p>
</th>
<td colspan="3"><c:out value="${cryptoUtil.decrypt(info.chrgNm)}"/></td>
</tr>
<tr>
<th scope="row">
<p>교육 사진</p>
</th>
<td colspan="3"><c:out value="${cryptoUtil.decrypt(info.chrgNm)}"/></td>
</tr>
</tbody> </tbody>
</table> </table>
</div> </div>