Merge branch 'wyh'

This commit is contained in:
name 2023-08-04 14:40:29 +09:00
commit 2f42d954e0
6 changed files with 437 additions and 93 deletions

View File

@ -0,0 +1,98 @@
package itn.let.mjo.human.web;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import itn.let.mjo.msgdata.web.MjonMsgDataController;
import itn.let.uss.umt.service.EgovMberManageService;
import itn.let.uss.umt.service.EgovUserManageService;
import itn.let.uss.umt.service.MberManageVO;
import itn.let.uss.umt.service.UserManageVO;
@Controller
public class MjonHumanPageController {
/** userManageService */
@Resource(name = "userManageService")
private EgovUserManageService userManageService;
/** mberManageService */
@Resource(name = "mberManageService")
private EgovMberManageService mberManageService;
private static final Logger logger = LoggerFactory.getLogger(MjonMsgDataController.class);
@RequestMapping(value="/web/user/humanPage.do")
public String humanPageIndex() throws Exception {
return "web/login/humanPage";
}
@RequestMapping(value="/web/user/humanPageAuthenticatedPage.do")
public String humanPageAuthenticatedUser() throws Exception {
return "web/login/humanPageAuthenticatedPage";
}
@RequestMapping(value="/web/user/humanCertifiedAjax.do")
public ModelAndView humanCertifiedAjax(
HttpServletRequest request, HttpServletResponse response, ModelMap model,
@ModelAttribute("userManageVO") UserManageVO userManageVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
try {
UserManageVO userInfoVO = new UserManageVO();
userInfoVO.setEmplyrNm(userManageVO.getEmplyrNm()); // 이름
userInfoVO.setMblDn(userManageVO.getMblDn()); // Dn
List<UserManageVO> usedNmList = userManageService.selectUserIdAjax(userInfoVO);
boolean TorF = usedNmList.size() > 0 ? true : false;
if (!TorF) {
System.out.println(TorF);
System.out.println(TorF);
modelAndView.addObject("message", "입력하신 아이디/이름 정보에 맞는 회원이 없습니다.");
modelAndView.addObject("result", "fail-check");
modelAndView.addObject("resultSts", "0");
modelAndView.addObject("resultBlockSts", "0");
return modelAndView;
}
MberManageVO mberManageVO = new MberManageVO();
// 회원 휴면회원에서 일반회원으로 업데이트
mberManageVO.setMberId(usedNmList.get(0).getEmplyrId()); //탈퇴사유 직접입력으로 타입 지정
mberManageVO.setDormantYn("N");
int updateCount = mberManageService.updateUserDormant(mberManageVO);
if(updateCount != 0) {
modelAndView.addObject("result", "success");
}else {
modelAndView.addObject("result", "fail");
}
}catch (Exception e) {
logger.error(e.getMessage(), e);
}
return modelAndView;
}
}

View File

@ -1635,9 +1635,10 @@ public class EgovLoginController {
* 작업자 : 원영현 과장 * 작업자 : 원영현 과장
*/ */
/*if(resultVO.getDormantYn().equals("Y") || resultVO.getDormantYn() == "Y") { if(resultVO.getDormantYn().equals("Y") || resultVO.getDormantYn() == "Y") {
}*/ return "redirect:/web/user/humanPage.do";
}
@ -2936,12 +2937,12 @@ public class EgovLoginController {
* : 2023.07.25 * : 2023.07.25
* 담당자 : 원영현 과장 수정 * 담당자 : 원영현 과장 수정
* : Dn 으로 회원정보 조회가 가능하도록 기능 수정 * : Dn 으로 회원정보 조회가 가능하도록 기능 수정
* 변경된 핸드폰 번호로 조회시 정보조회가 안되기 때문에 무조건 true 변경 * 변경된 핸드폰 번호로 조회시 정보조회가 안되기 때문에 이름과 ID를 이용하여 조건 수정
* */ * */
/*List<UserManageVO> usedNmList = new ArrayList<>(); userManageVO.setMoblphonNo("");
List<UserManageVO> usedNmList = new ArrayList<>();
usedNmList = userManageService.selectUserIdAjax2(userManageVO); usedNmList = userManageService.selectUserIdAjax2(userManageVO);
TorF = usedNmList.size() > 0 ? true : false;*/ TorF = usedNmList.size() > 0 ? true : false;
TorF = true;
} }
@ -2950,7 +2951,7 @@ public class EgovLoginController {
if (!TorF) { if (!TorF) {
System.out.println(" In if TorF :: "+TorF); System.out.println(" In if TorF :: "+TorF);
modelAndView.addObject("message", "입력하신 아이디/이름/휴대폰 번호에 맞는 회원이 없습니다."); modelAndView.addObject("message", "입력하신 아이디/이름에 맞는 회원이 없습니다.");
modelAndView.addObject("result", "fail-check"); modelAndView.addObject("result", "fail-check");
modelAndView.addObject("resultSts", "0"); modelAndView.addObject("resultSts", "0");
modelAndView.addObject("resultBlockSts", "0"); modelAndView.addObject("resultBlockSts", "0");

View File

@ -26,6 +26,7 @@
<result property="crtfcDnValue" column="crtfcDnValue" columnIndex="16"/> <result property="crtfcDnValue" column="crtfcDnValue" columnIndex="16"/>
<result property="dept" column="dept" columnIndex="17"/> <result property="dept" column="dept" columnIndex="17"/>
<result property="outerCertYn" column="outerCertYn" columnIndex="18"/> <result property="outerCertYn" column="outerCertYn" columnIndex="18"/>
<result property="dormantYn" column="dormantYn" columnIndex="19"/>
</resultMap> </resultMap>
<!-- 아이디 찾기를 위한 resultMap <!-- 아이디 찾기를 위한 resultMap
@ -42,32 +43,35 @@
<select id="loginDAO.actionLogin" resultMap="login"> <select id="loginDAO.actionLogin" resultMap="login">
<isEqual property="userSe" compareValue="GNR"> <isEqual property="userSe" compareValue="GNR">
<![CDATA[ <![CDATA[
SELECT MBER_ID AS id , SELECT
MBER_NM AS name , MBER_ID AS id
PASSWORD AS password , , MBER_NM AS name
IHIDNUM AS ihidNum , , PASSWORD AS password
MBER_EMAIL_ADRES AS email , , IHIDNUM AS ihidNum
'GNR' AS userSe , , MBER_EMAIL_ADRES AS email
NULL AS orgnztId, , 'GNR' AS userSe
ESNTL_ID AS uniqId , , NULL AS orgnztId
PASS_MISS AS passMiss , , ESNTL_ID AS uniqId
'P' AS emplyrSttusCode, , PASS_MISS AS passMiss
SHORT_PRICE AS shortPrice , , 'P' AS emplyrSttusCode
LONG_PRICE AS longPrice , , SHORT_PRICE AS shortPrice
PICTURE_PRICE AS picturePrice , , LONG_PRICE AS longPrice
USER_MONEY AS userMoney , , PICTURE_PRICE AS picturePrice
MBTLNUM AS moblphonNo , , USER_MONEY AS userMoney
CRTFC_DN_VALUE AS crtfcDnValue , , MBTLNUM AS moblphonNo
DEPT AS dept, , CRTFC_DN_VALUE AS crtfcDnValue
'' AS outerCertYn , DEPT AS dept
FROM lettngnrlmber A , '' AS outerCertYn
WHERE MBER_ID = #id# , DORMANT_YN AS dormantYn
AND PASSWORD = #password# FROM
AND MBER_STTUS = 'Y' lettngnrlmber A
]]> WHERE MBER_ID = #id#
<isEmpty property="statusAll"> AND PASSWORD = #password#
AND EMPLYR_STTUS_CODE = 'P' AND MBER_STTUS = 'Y'
</isEmpty> ]]>
<isEmpty property="statusAll">
AND EMPLYR_STTUS_CODE = 'P'
</isEmpty>
</isEqual> </isEqual>
<!-- // TODO : 본인인증 DI 추가 --> <!-- // TODO : 본인인증 DI 추가 -->
@ -316,29 +320,32 @@
<select id="loginDAO.siteActionLogin" resultMap="login"> <select id="loginDAO.siteActionLogin" resultMap="login">
<isEqual property="userSe" compareValue="USR"> <isEqual property="userSe" compareValue="USR">
<![CDATA[ <![CDATA[
SELECT EMPLYR_ID AS id SELECT
, USER_NM AS name EMPLYR_ID AS id
, PASSWORD AS password , USER_NM AS name
, IHIDNUM AS ihidNum , PASSWORD AS password
, EMAIL_ADRES AS email , IHIDNUM AS ihidNum
, 'USR' AS userSe , EMAIL_ADRES AS email
, ORGNZT_ID AS orgnztId , 'USR' AS userSe
, ESNTL_ID AS uniqId , ORGNZT_ID AS orgnztId
, PASS_MISS AS passMiss , ESNTL_ID AS uniqId
, EMPLYR_STTUS_CODE AS emplyrSttusCode, , PASS_MISS AS passMiss
, SHORT_PRICE AS shortPrice , EMPLYR_STTUS_CODE AS emplyrSttusCode,
, LONG_PRICE AS longPrice , SHORT_PRICE AS shortPrice
, PICTURE_PRICE AS picturePrice , LONG_PRICE AS longPrice
, USER_MONEY AS userMoney , PICTURE_PRICE AS picturePrice
, '' AS outerCertYn , USER_MONEY AS userMoney
FROM LETTNEMPLYRINFO A , '' AS outerCertYn
WHERE EMPLYR_ID = #id# , DORMANT_YN AS dormantYn
AND PASSWORD = #password# FROM
AND EMPLYR_STTUS_CODE = 'P' LETTNEMPLYRINFO A
]]> WHERE EMPLYR_ID = #id#
<isEmpty property="statusAll"> AND PASSWORD = #password#
AND EMPLYR_STTUS_CODE = 'P' AND EMPLYR_STTUS_CODE = 'P'
</isEmpty> ]]>
<isEmpty property="statusAll">
AND EMPLYR_STTUS_CODE = 'P'
</isEmpty>
</isEqual> </isEqual>
</select> </select>
@ -507,32 +514,35 @@
<select id="loginDAO.actionLoginCmpChk" resultMap="login"> <select id="loginDAO.actionLoginCmpChk" resultMap="login">
<isEqual property="userSe" compareValue="GNR"> <isEqual property="userSe" compareValue="GNR">
<![CDATA[ <![CDATA[
SELECT MBER_ID AS id , SELECT
MBER_NM AS name , MBER_ID AS id
PASSWORD AS password , , MBER_NM AS name
IHIDNUM AS ihidNum , , PASSWORD AS password
MBER_EMAIL_ADRES AS email , , IHIDNUM AS ihidNum
'GNR' AS userSe , , MBER_EMAIL_ADRES AS email
NULL AS orgnztId, , 'GNR' AS userSe
ESNTL_ID AS uniqId , , NULL AS orgnztId
PASS_MISS AS passMiss , , ESNTL_ID AS uniqId
'P' AS emplyrSttusCode, , PASS_MISS AS passMiss
SHORT_PRICE AS shortPrice , , 'P' AS emplyrSttusCode
LONG_PRICE AS longPrice , , SHORT_PRICE AS shortPrice
PICTURE_PRICE AS picturePrice , , LONG_PRICE AS longPrice
USER_MONEY AS userMoney , , PICTURE_PRICE AS picturePrice
MBTLNUM AS moblphonNo , , USER_MONEY AS userMoney
CRTFC_DN_VALUE AS crtfcDnValue , , MBTLNUM AS moblphonNo
DEPT AS dept, , CRTFC_DN_VALUE AS crtfcDnValue
'' AS outerCertYn , DEPT AS dept
FROM lettngnrlmber A , '' AS outerCertYn
WHERE MBER_ID = #id# , DORMANT_YN AS dormantYn
AND PASSWORD = #password# FROM
AND MBER_STTUS = #emplyrSttusCode# lettngnrlmber A
]]> WHERE MBER_ID = #id#
<isEmpty property="statusAll"> AND PASSWORD = #password#
AND EMPLYR_STTUS_CODE = 'P' AND MBER_STTUS = #emplyrSttusCode#
</isEmpty> ]]>
<isEmpty property="statusAll">
AND EMPLYR_STTUS_CODE = 'P'
</isEmpty>
</isEqual> </isEqual>
<isEqual property="userSe" compareValue="USR"> <isEqual property="userSe" compareValue="USR">

View File

@ -515,22 +515,24 @@
</select> </select>
<select id="userManageDAO.selectUserIdAjax" parameterClass="userVO" resultClass="userVO"> <select id="userManageDAO.selectUserIdAjax" parameterClass="userVO" resultClass="userVO">
SELECT a.mber_Id AS emplyrId, SELECT
DATE_FORMAT(a.SBSCRB_DE, '%Y-%m-%d') as sbscrbDeBegin, a.mber_Id AS emplyrId
a.CRTFC_DN_VALUE AS mblDn , DATE_FORMAT(a.SBSCRB_DE, '%Y-%m-%d') AS sbscrbDeBegin
FROM lettngnrlmber a , a.CRTFC_DN_VALUE AS mblDn
WHERE (a.MBER_NM = #emplyrNm# FROM
OR a.MANAGER_NM = #emplyrNm#) lettngnrlmber a
WHERE 1=1
AND (a.MBER_NM = #emplyrNm# OR a.MANAGER_NM = #emplyrNm#)
<isNotEmpty property="emailAdres"> <isNotEmpty property="emailAdres">
AND a.MBER_EMAIL_ADRES = #emailAdres# AND a.MBER_EMAIL_ADRES = #emailAdres#
</isNotEmpty> </isNotEmpty>
<isNotEmpty property="moblphonNo"> <isNotEmpty property="moblphonNo">
AND a.MBTLNUM = #moblphonNo# AND a.MBTLNUM = #moblphonNo#
</isNotEmpty> </isNotEmpty>
<isNotEmpty property="mblDn"> <isNotEmpty property="mblDn">
AND a.CRTFC_DN_VALUE = #mblDn# AND a.CRTFC_DN_VALUE = #mblDn#
</isNotEmpty> </isNotEmpty>
</select> </select>
<select id="userManageDAO.selectUserIdAjax2" parameterClass="userVO" resultClass="userVO"> <select id="userManageDAO.selectUserIdAjax2" parameterClass="userVO" resultClass="userVO">
SELECT SELECT

View File

@ -0,0 +1,47 @@
<%@ 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="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<script type="text/javascript">
function humanCancel(){
window.location.href='/web/main/mainPage.do';
}
function humanAuthenticatedPage(){
window.location.href='/web/user/humanPageAuthenticatedPage.do';
}
</script>
<form:form id="userManageVO" name="userManageVO" action="" method="post">
<!-- content 영역 -->
<div class="inner">
<!-- send top -->
<div class="send_top">
<!-- 마이페이지 - 로그인 -->
<div class="mypage_content current">
<div class="heading">
<h2>로그인</h2>
</div>
<div class="mem_cont_in widthM login_wrap">
<div class="img_area">
<img src="/publish/images/mem/img_logindormant_bg.png" alt="">
</div>
<div class="input_list">
<p class="welcome">회원님은 <span>장기 미이용</span> 회원이십니다.</p>
<p class="welcome_sub">아래 확인 버튼을 클릭하시면 문자온의 모든 서비스를 정상적으로 이용하기 위한 절차를 진행합니다.</p>
<div class="mem_btnWrap4">
<button type="button" class="mem_btnok" onclick="humanAuthenticatedPage(); return false;">확인</button>
<button type="button" class="mem_btncancel" onclick="humanCancel(); return false;">취소</button>
</div>
</div>
</div>
</div>
<!--// 마이페이지 - 로그인 -->
</div>
<!--// send top -->
</div>
<!--// content 영역 -->
</form:form>

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="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<script type="text/javascript">
function humanCancel(){
window.location.href='/web/main/mainPage.do';
}
function humanAuthenticated(){
var userId = $('#humanPage_userId').val().toLowerCase();
var userNm = $('#humanPage_userNm').val();
var moblphonNo = $('#humanPage_userPhone').val();
if(userId == ''){
alert("아이디를 입력해주세요.");
$('#humanPage_userId').focus();
return;
}
if(userNm == ''){
alert("이름을 입력해주세요.");
$('#humanPage_userNm').focus();
return;
}
if(moblphonNo == ''){
alert("휴대폰 번호를 입력해주세요.");
$('#humanPage_userPhone').focus();
return;
}
document.reqKMCISForm.mberNm.value = $('#humanPage_userNm').val();
document.reqKMCISForm.moblphonNo.value = $('#humanPage_userPhone').val();
document.reqKMCISForm.mberId.value = $('#humanPage_userId').val().toLowerCase();
var kmcPopUpForm = $("form[name=reqKMCISForm]").serialize() ;
$.ajax({
url : "<c:url value='/web/user/login/kmcPopupIdPwPramAjax.do' />"
, type : 'POST'
, data : kmcPopUpForm
, dataType:'json'
, success : function(returnData, status){
if(status == "success") {
if (returnData.result=="success"){
$("#tr_cert").val(returnData.tr_cert);
$("#tr_url").val(returnData.tr_url);
$("#tr_add").val(returnData.tr_add);
openKMCISWindow();
}else{
alert(returnData.message);
}
}else{
alert("실패");return;
}
}
, error : function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
function openKMCISWindow(){
var UserAgent = navigator.userAgent;
/* 모바일 접근 체크*/
// 모바일일 경우 (변동사항 있을경우 추가 필요)
if(UserAgent.match(/iPhone|iPod|Android|Windows CE|BlackBerry|Symbian|Windows Phone|webOS|Opera Mini|Opera Mobi|POLARIS|IEMobile|lgtelecom|nokia|SonyEricsson/i) != null || UserAgent.match(/LG|SAMSUNG|Samsung/) != null) {
document.reqKMCISForm.target = 'KMCISWindow'; // 모바일
}
// 모바일이 아닐 경우
else {
KMCIS_window = window.open('', 'KMCISWindow', 'width=425, height=550, resizable=0, scrollbars=no, status=0, titlebar=0, toolbar=0, left=435, top=250' );
if(KMCIS_window == null){
alert(" ※ 윈도우 XP SP2 또는 인터넷 익스플로러 7 사용자일 경우에는 \n 화면 상단에 있는 팝업 차단 알림줄을 클릭하여 팝업을 허용해 주시기 바랍니다. \n\n※ MSN,야후,구글 팝업 차단 툴바가 설치된 경우 팝업허용을 해주시기 바랍니다.");
}
document.reqKMCISForm.target = 'KMCISWindow';
}
document.reqKMCISForm.action = 'https://www.kmcert.com/kmcis/web/kmcisReq.jsp';
document.reqKMCISForm.submit();
}
function fnAddUserView() {
var resultForm = $("form[name=resultForm]").serialize() ;
$.ajax({
url : "<c:url value='/web/user/humanCertifiedAjax.do' />"
, type : 'POST'
, data : resultForm
, dataType:'json'
, success : function(returnData, status){
if(status == "success") {
if (returnData.result=="success"){
alert("회원정보 복원이 완료되었습니다.\n고객님의 안전한 사아트 이용을 위하여 다시 로그인 부탁드립니다.");
location.href="/web/user/login/login.do";
return;
}else{
alert("회원정보 복원에 오류가 발행했습니다.\n다시 인증 부탁드립니다.");
return;
}
}else{
alert("실패");return;
}
}
, error : function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
</script>
<!-- kmc 본인인증 결과 데이터 set -->
<form name="resultForm" id="resultForm" method="post" action="#">
<input type="hidden" name="emplyrNm" id="emplyrNm" value="">
<input type="hidden" name="moblphonNo" id="moblphonNo" value="">
<input type="hidden" name="mblDn" id="mblDn" value="">
<input type="hidden" name="findType" id="findType" value="kmc">
<input type="hidden" name="emplyrId" id="emplyrId" value="">
</form>
<form name="reqKMCISForm" method="post" action="#">
<input type="hidden" name="tr_cert" id="tr_cert" value = "${tr_cert}">
<input type="hidden" name="tr_url" id="tr_url" value = "${tr_url}">
<input type="hidden" name="tr_add" id="tr_add" value = "${tr_add}">
<input type="hidden" name="mberNm" id="mberNm" value="">
<input type="hidden" name="moblphonNo" id="moblphonNo" value="">
<input type="hidden" name="mberId" id="mberId" value="">
<input type="hidden" name="authRUrl" id="authRUrl" value="/web/cop/kmc/authRequestFindIdPwAjax.do">
<input type="hidden" name="authRUrlCode" id="authRUrlCode" value="001005">
</form>
<!-- content 영역 -->
<div class="inner">
<!-- send top -->
<div class="send_top">
<!-- 마이페이지 - 로그인 -->
<div class="mypage_content current">
<div class="heading">
<h2>로그인</h2>
</div>
<div class="mem_cont_in widthM login_wrap">
<div class="img_area">
<img src="/publish/images/mem/img_logindormant_bg.png" alt="">
</div>
<div class="input_list dormant_input_list">
<p class="welcome">회원님은 <span>장기 미이용</span> 회원이십니다.</p>
<div class="input_list listType1">
<div class="input_list_item">
<div class="input_left">아이디</div>
<div class="input_right">
<label for="humanPage_userId" class="label">아이디 입력</label>
<input type="text" name="humanPage_userId" id="humanPage_userId" class="list_inputType1 colorLight" placeholder="아이디를 입력하세요" onfocus="this.placeholder=''" onblur="this.placeholder='아이디를 입력하세요'">
</div>
</div>
<div class="input_list_item">
<div class="input_left">이름</div>
<div class="input_right">
<label for="humanPage_userNm" class="label">이름 입력</label>
<input type="text" name="humanPage_userNm" id="humanPage_userNm" class="list_inputType1 colorLight" placeholder="이름을 입력하세요" onfocus="this.placeholder=''" onblur="this.placeholder='이름을 입력하세요'">
</div>
</div>
<div class="input_list_item">
<div class="input_left">휴대폰번호</div>
<div class="input_right">
<label for="humanPage_userPhoneCheck" class="label">휴대폰번호 입력</label>
<input type="text" class="list_inputType1" name="humanPage_userPhone" id="humanPage_userPhone" oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1');" placeholder="- 없이 숫자만 입력" onfocus="this.placeholder=''" onblur="this.placeholder='- 없이 숫자만 입력'">
</div>
</div>
</div>
</div>
<div class="mem_btnWrap4">
<button type="button" class="mem_btnok" onclick="humanAuthenticated(); return false;">확인</button>
<button type="button" class="mem_btncancel" onclick="humanCancel(); return false;">취소</button>
</div>
</div>
</div>
<!--// 마이페이지 - 로그인 -->
</div>
<!--// send top -->
</div>
<!--// content 영역 -->