Преглед изворни кода

Merge branch 'jsshin' into develop

jsshin пре 5 година
родитељ
комит
28cc178746

+ 30 - 0
src/main/java/com/style24/front/biz/service/TsfCustomerService.java

@@ -889,6 +889,36 @@ public class TsfCustomerService {
 		return coreCustomerService.saveCustomerSecede(customer);
 		return coreCustomerService.saveCustomerSecede(customer);
 	}
 	}
 
 
+	/**
+	 * 마이페이지 - 비밀번호 변경
+	 * @param  customer - 고객번호
+	 * @return GagaMap - 결과
+	 * @author jsshin
+	 * @since 2021. 04. 01
+	 */
+	@Transactional("shopTxnManager")
+	public GagaMap changePassword(Customer customer) {
+		GagaMap resultMap = new GagaMap();
+		boolean isSuccess = false;
+		Login login = new Login();
+		login.setCustNo(customer.getCustNo());
+		Login loginCheckInfo = loginService.getLoginCheckInfo(login);
+
+		if (loginCheckInfo != null) {
+			isSuccess = passwordEncoder.matchesSha256(customer.getOrgPasswd(), loginCheckInfo.getPasswd());
+		}
+		if (!isSuccess) {
+			resultMap.setBoolean("isSuccess", isSuccess);
+			resultMap.setString("resultType", "WRONG_PWD");
+			return resultMap;
+		} else {
+			customer.setTempPasswdYn("N"); // 임시비밀번호여부
+			saveCustomerPassword(customer); // 비밀번호 수정
+		}
+		resultMap.setBoolean("isSuccess", isSuccess);
+		return resultMap;
+	}
+
 
 
 	/**
 	/**
 	 * KCP 계좌인증 처리
 	 * KCP 계좌인증 처리

+ 3 - 3
src/main/java/com/style24/front/biz/web/TsfCustomerController.java

@@ -801,11 +801,11 @@ public class TsfCustomerController extends TsfBaseController {
 	 * @author jsshin
 	 * @author jsshin
 	 * @since 2021. 03. 25
 	 * @since 2021. 03. 25
 	 */
 	 */
-	@PostMapping("/consent/useinfo/layer")
-	public ModelAndView cnstentUseInfoLayer() {
+	@PostMapping("/consent/useinfo/form")
+	public ModelAndView cnstentUseInfoForm(@RequestBody Customer customer) {
 		ModelAndView mav = new ModelAndView();
 		ModelAndView mav = new ModelAndView();
 
 
-		mav.addObject("custNm", "신주승");
+		mav.addObject("custNm", customer.getCustNm());
 
 
 		mav.setViewName(super.getDeviceViewName("customer/ConsentUseInfoForm"));
 		mav.setViewName(super.getDeviceViewName("customer/ConsentUseInfoForm"));
 
 

+ 38 - 3
src/main/java/com/style24/front/biz/web/TsfMypageController.java

@@ -1232,7 +1232,7 @@ public class TsfMypageController extends TsfBaseController {
 
 
 		mav.addObject("bankList", rendererService.getCommonCodeList("G940", "Y"));
 		mav.addObject("bankList", rendererService.getCommonCodeList("G940", "Y"));
 
 
-		mav.setViewName(super.getDeviceViewName("/mypage/MypageCustModifyForm"));
+		mav.setViewName(super.getDeviceViewName("mypage/MypageCustModifyForm"));
 		return mav;
 		return mav;
 	}
 	}
 
 
@@ -1353,7 +1353,7 @@ public class TsfMypageController extends TsfBaseController {
 
 
 		mav.addObject("custNm", customer.getCustNm());
 		mav.addObject("custNm", customer.getCustNm());
 
 
-		mav.setViewName(super.getDeviceViewName("/mypage/MypageCustSecedeForm"));
+		mav.setViewName(super.getDeviceViewName("mypage/MypageCustSecedeForm"));
 
 
 		return mav;
 		return mav;
 	}
 	}
@@ -1411,10 +1411,45 @@ public class TsfMypageController extends TsfBaseController {
 			return mav;
 			return mav;
 		}
 		}
 
 
-		mav.setViewName(super.getDeviceViewName("/mypage/MypageCustSecedeCompleteForm"));
+		mav.setViewName(super.getDeviceViewName("mypage/MypageCustSecedeCompleteForm"));
 
 
 		return mav;
 		return mav;
 	}
 	}
 
 
+	/**
+	 * 마이페이지 - 비밀번호 변경 팝업
+	 *
+	 * @return ModelAndView
+	 * @author jsshin
+	 * @since 2021. 04. 01
+	 */
+	@PostMapping("/password/modify/form")
+	public ModelAndView pwdModifyForm() {
+		ModelAndView mav = new ModelAndView();
+
+		mav.addObject("custId", TsfSession.getInfo().getCustId());
+
+		mav.setViewName(super.getDeviceViewName("mypage/MypageCustPwdModifyForm"));
+
+		return mav;
+	}
+
+	/**
+	 * 마이페이지 - 비밀번호 변경
+	 *
+	 * @return GagaMap
+	 * @author jsshin
+	 * @since 2021. 04. 01
+	 */
+	@PostMapping("/password/change")
+	@ResponseBody
+	public GagaMap changePassword(@RequestBody Customer customer) {
+		Integer custNo = TsfSession.getInfo().getCustNo();
+		customer.setCustNo(custNo);
+		customer.setRegNo(custNo);
+		customer.setUpdNo(custNo);
+		return customerService.changePassword(customer);
+	}
+
 	/*신주승 끝*/
 	/*신주승 끝*/
 }
 }

+ 35 - 24
src/main/webapp/WEB-INF/views/web/SigninFormWeb.html

@@ -147,11 +147,11 @@
 		}
 		}
 	});
 	});
 
 
-		//엔터키 로그인
+	//엔터키 로그인
 	$('#loginForm input[name=passwd]').keypress(function (event) {
 	$('#loginForm input[name=passwd]').keypress(function (event) {
 		if (event.which === 13) {
 		if (event.which === 13) {
 			event.preventDefault();
 			event.preventDefault();
-			fnValidConfirm();
+			$('#btnLogin').trigger('click');
 		}
 		}
 	});
 	});
 
 
@@ -166,12 +166,13 @@
 
 
 	// 로그인 실패 후 과정
 	// 로그인 실패 후 과정
 	var fnFailLoginProcess = function (result) {
 	var fnFailLoginProcess = function (result) {
+		// 탈퇴회원
 		if (result.status === 'SECEDE_CUST') {
 		if (result.status === 'SECEDE_CUST') {
-			// 탈퇴회원
-		} else if (result.status === 'SESSION_EXPIRED') {
-			// 세션만료
-		} else if (result.status === 'DORMANT_CUST') {
-			// 휴면회원
+			mcxDialog.alert("탈퇴 회원 입니다.");
+			return;
+		}
+		// 휴면회원
+		if (result.status === 'DORMANT_CUST') {
 			mcxDialog.alertC("휴면 고객님께서는 휴면을<br>해지하신 후 사용하실 수 있습니다.", {
 			mcxDialog.alertC("휴면 고객님께서는 휴면을<br>해지하신 후 사용하실 수 있습니다.", {
 				sureBtnText: "확인",
 				sureBtnText: "확인",
 				sureBtnClick: function() {
 				sureBtnClick: function() {
@@ -179,7 +180,9 @@
 				}
 				}
 			});
 			});
 			return;
 			return;
-		} else if (result.status === 'CI_EMPTY') {
+		}
+		// CI(본인인증)정보 없는 회원
+		if (result.status === 'CI_EMPTY') {
 			// 본인이증 필요한 회원
 			// 본인이증 필요한 회원
 			mcxDialog.alertC("본인인증 후 다시 로그인 하시기 바랍니다.", {
 			mcxDialog.alertC("본인인증 후 다시 로그인 하시기 바랍니다.", {
 				sureBtnText: "확인",
 				sureBtnText: "확인",
@@ -189,6 +192,7 @@
 			});
 			});
 			return;
 			return;
 		}
 		}
+		// 비밀번호 틀린 경우
 		if (!gagajf.isNull(result.message)) {
 		if (!gagajf.isNull(result.message)) {
 			grecaptcha.reset(); // 리캡챠 리셋
 			grecaptcha.reset(); // 리캡챠 리셋
 			let loginFailCnt = Number(result.loginFailInfo.loginFailCnt);
 			let loginFailCnt = Number(result.loginFailInfo.loginFailCnt);
@@ -196,16 +200,16 @@
 			$("#login_fail_cnt").html(loginFailCnt);
 			$("#login_fail_cnt").html(loginFailCnt);
 			$("#login_remain_cnt").html(10 - loginFailCnt);
 			$("#login_remain_cnt").html(10 - loginFailCnt);
 			$(".t_err_login_fail").show();
 			$(".t_err_login_fail").show();
+
+			// 비밀번호 5회 이상 틀린 경우 캡챠 노출
 			if (loginFailCnt >= 5 && loginFailCnt < 10) {
 			if (loginFailCnt >= 5 && loginFailCnt < 10) {
-				// 비밀번호 5회 이상 틀린 경우 캡챠 노출
 				$('#recaptcha').show();
 				$('#recaptcha').show();
 				rechaptchCheck = false;
 				rechaptchCheck = false;
+			// 비밀번호 10회 이상 틀린 경우 로그인 블락
 			} else if (loginFailCnt >= 10) {
 			} else if (loginFailCnt >= 10) {
 				$('#recaptcha').hide();
 				$('#recaptcha').hide();
 				rechaptchCheck = true;
 				rechaptchCheck = true;
-				// 비밀번호 10회 이상 틀린 경우 로그인 블락
 				let blockSecs = Number(result.loginFailInfo.blockSecs);
 				let blockSecs = Number(result.loginFailInfo.blockSecs);
-
 				if (blockSecs > 0) {
 				if (blockSecs > 0) {
 					$("#blockSecs2").html(blockSecs);
 					$("#blockSecs2").html(blockSecs);
 					fnSetLoginBlockTime();
 					fnSetLoginBlockTime();
@@ -248,9 +252,9 @@
 		}
 		}
 	}
 	}
 
 
-	// SNS 로그인 콜백함수
+	// SNS 로그인 콜백함수(네이버, 카카오, YES24)
 	var fnSnsSigninCallback = function(userInfo) {
 	var fnSnsSigninCallback = function(userInfo) {
-		// Ci이 조회 시 없음
+		// 1. CI 정보로 사용자가 없어서 회원가입 프로세스 처리 중 이메일, 휴대전화 중복
 		if (userInfo.custStat === 'DUP_PHONE_CUST') {
 		if (userInfo.custStat === 'DUP_PHONE_CUST') {
 			mcxDialog.alert("이미 사용 중인 휴대전화번호 입니다.");
 			mcxDialog.alert("이미 사용 중인 휴대전화번호 입니다.");
 			return;
 			return;
@@ -259,14 +263,12 @@
 			mcxDialog.alert("이미 사용 중인 이메일 입니다.");
 			mcxDialog.alert("이미 사용 중인 이메일 입니다.");
 			return;
 			return;
 		}
 		}
-		if (userInfo.custStat === 'EMPTY_PHONE_CUST') {
-			cfnGoToPage(_PAGE_CUSTOMER_SNS_JOIN);
-		}
-		// Ci이 조회 시 있음
+		// 2. SNS 로그인 정보로 탈퇴확인
 		if (userInfo.custStat === 'SECEDE_CUST') {
 		if (userInfo.custStat === 'SECEDE_CUST') {
 			mcxDialog.alert("탈퇴 회원 입니다.");
 			mcxDialog.alert("탈퇴 회원 입니다.");
 			return;
 			return;
 		}
 		}
+		// 3. SNS 로그인 정보로 휴면확인
 		if (userInfo.custStat === 'DORMANT_CUST') {
 		if (userInfo.custStat === 'DORMANT_CUST') {
 			mcxDialog.alertC("휴면 고객님께서는 휴면을<br>해지하신 후 사용하실 수 있습니다.", {
 			mcxDialog.alertC("휴면 고객님께서는 휴면을<br>해지하신 후 사용하실 수 있습니다.", {
 				sureBtnText: "확인",
 				sureBtnText: "확인",
@@ -274,19 +276,28 @@
 					cfnGoToPage(_PAGE_CUSTOMER_DORMANT);
 					cfnGoToPage(_PAGE_CUSTOMER_DORMANT);
 				}
 				}
 			});
 			});
+			return;
 		}
 		}
-		if (userInfo.custStat === 'FAIL_CUST') {
-			mcxDialog.alert("회원가입에 실패 했습니다.<br> 고객센터에 문의 하시기 바랍니다.");
+		// 4. 휴대전화 정보가 없으면 SNS 가입화면 이동
+		if (userInfo.custStat === 'EMPTY_PHONE_CUST') {
+			cfnGoToPage(_PAGE_CUSTOMER_SNS_JOIN);
+		}
+		// 5. YES24 첫 로그인 시도 시 정보동의 페이지 이동
+		if (userInfo.custStat === 'NEED_AGREE_CUST') {
+			cfnConsentUseInfo(userInfo.custNm);
 			return;
 			return;
 		}
 		}
-		if (userInfo.custStat === 'NEW_CUST') { // 회원가입
+		// 6. SNS 정보로 가입 성공시 가입완료 페이지 이동
+		if (userInfo.custStat === 'NEW_CUST') {
 			cfnGoToPage(_PAGE_CUSTOMER_JOIN_COMPLETE);
 			cfnGoToPage(_PAGE_CUSTOMER_JOIN_COMPLETE);
+			return;
 		}
 		}
-
-		if (userInfo.custStat === 'NEED_AGREE_CUST') { // YES24 로그인 시 동의화면 필요
-			cfnConsentUseInfo(userInfo.custNm);
+		// 7.SNS 정보로 가입 실패시 안내 창 알림
+		if (userInfo.custStat === 'FAIL_CUST') {
+			mcxDialog.alert("회원가입에 실패 했습니다.<br> 고객센터에 문의 하시기 바랍니다.");
+			return;
 		}
 		}
-
+		// 8. SNS 로그인 연동 성공 및 기존 SNS 연동된 회원 로그인 시도
 		if (userInfo.custStat === 'SUCC_CUST') {
 		if (userInfo.custStat === 'SUCC_CUST') {
 			let params = {};
 			let params = {};
 			params.snsType = userInfo.snsType;
 			params.snsType = userInfo.snsType;

+ 28 - 21
src/main/webapp/WEB-INF/views/web/customer/ConsentUseInfoFormWeb.html

@@ -57,61 +57,68 @@
 	});
 	});
 
 
 	var fnPeristalsisCallback = function (userInfo) {
 	var fnPeristalsisCallback = function (userInfo) {
+		// 1. CI 정보로 사용자가 없어서 회원가입 프로세스 처리 중 이메일, 휴대전화 중복
 		if (userInfo.custStat === 'DUP_PHONE_CUST') {
 		if (userInfo.custStat === 'DUP_PHONE_CUST') {
 			mcxDialog.alert("이미 사용 중인 휴대전화번호 입니다.");
 			mcxDialog.alert("이미 사용 중인 휴대전화번호 입니다.");
+			$.modal.close();
 			return;
 			return;
 		}
 		}
 		if (userInfo.custStat === 'DUP_EMAIL_CUST') {
 		if (userInfo.custStat === 'DUP_EMAIL_CUST') {
 			mcxDialog.alert("이미 사용 중인 이메일 입니다.");
 			mcxDialog.alert("이미 사용 중인 이메일 입니다.");
-			return;
-		}
-		if (userInfo.custStat === 'EMPTY_PHONE_CUST') {
-			cfnGoToPage(_PAGE_CUSTOMER_SNS_JOIN);
 			$.modal.close();
 			$.modal.close();
+			return;
 		}
 		}
-		// Ci이 조회 시 있음
+		// 2. SNS 로그인 정보로 탈퇴확인
 		if (userInfo.custStat === 'SECEDE_CUST') {
 		if (userInfo.custStat === 'SECEDE_CUST') {
 			mcxDialog.alert("탈퇴 회원 입니다.");
 			mcxDialog.alert("탈퇴 회원 입니다.");
+			$.modal.close();
 			return;
 			return;
 		}
 		}
+		// 3. SNS 로그인 정보로 휴면확인
 		if (userInfo.custStat === 'DORMANT_CUST') {
 		if (userInfo.custStat === 'DORMANT_CUST') {
-			cfnGoToPage(_PAGE_CUSTOMER_DORMANT);
-			$.modal.close();
+			mcxDialog.alertC("휴면 고객님께서는 휴면을<br>해지하신 후 사용하실 수 있습니다.", {
+				sureBtnText: "확인",
+				sureBtnClick: function() {
+					cfnGoToPage(_PAGE_CUSTOMER_DORMANT);
+					$.modal.close();
+				}
+			});
+			return;
 		}
 		}
-		if (userInfo.custStat === 'FAIL_CUST') {
-			mcxDialog.alert("회원가입에 실패 했습니다.<br> 고객센터에 문의 하시기 바랍니다.");
+		// 4. 휴대전화 정보가 없으면 SNS 가입화면 이동
+		if (userInfo.custStat === 'EMPTY_PHONE_CUST') {
+			cfnGoToPage(_PAGE_CUSTOMER_SNS_JOIN);
+			$.modal.close();
 			return;
 			return;
 		}
 		}
+		// 5. SNS 정보로 가입 성공시 가입완료 페이지 이동
 		if (userInfo.custStat === 'NEW_CUST') {
 		if (userInfo.custStat === 'NEW_CUST') {
 			cfnGoToPage(_PAGE_CUSTOMER_JOIN_COMPLETE);
 			cfnGoToPage(_PAGE_CUSTOMER_JOIN_COMPLETE);
 			$.modal.close();
 			$.modal.close();
+			return;
 		}
 		}
-
-		if (userInfo.custStat === 'SUCC_CUST') {
-			cfnGoToPage(_PAGE_MAIN);
+		// 6.SNS 정보로 가입 실패시 안내 창 알림
+		if (userInfo.custStat === 'FAIL_CUST') {
+			mcxDialog.alert("회원가입에 실패 했습니다.<br> 고객센터에 문의 하시기 바랍니다.");
 			$.modal.close();
 			$.modal.close();
+			return;
 		}
 		}
+		// 7. SNS 로그인 연동 성공 및 기존 SNS 연동된 회원 로그인 시도
 		if (userInfo.custStat === 'SUCC_CUST') {
 		if (userInfo.custStat === 'SUCC_CUST') {
 			let params = {};
 			let params = {};
 			params.snsType = userInfo.snsType;
 			params.snsType = userInfo.snsType;
 			params.snsId = [[${snsLoginPrefix}]] + userInfo.snsId;
 			params.snsId = [[${snsLoginPrefix}]] + userInfo.snsId;
 			$.post(_frontUrl + '/login'
 			$.post(_frontUrl + '/login'
 				, $.param(params)
 				, $.param(params)
-				, function(result) {
-					fnReloadAfterLogin(result);
-				}
+				, fnReloadAfterLogin
 				, "json");
 				, "json");
 		}
 		}
 	}
 	}
 	var fnReloadAfterLogin = function(result) {
 	var fnReloadAfterLogin = function(result) {
 		if (result.status === 'OK') {
 		if (result.status === 'OK') {
 			document.location.href = result.returnUrl;
 			document.location.href = result.returnUrl;
-		} else if (result.status === 'EMAIL_DUP') {
-
-		} else if(result.status === 'DORMANT_CUST') {
-			cfnGoToPage(_PAGE_CUSTOMER_DORMANT);
-		} else if(result.status === 'SECEDE_CUST') {
-
+		} else {
+			mcxDialog.alert("로그인 실패 하였습니다.<br> 고객센터에 문의 하시기 바랍니다.");
 		}
 		}
 		$.modal.close();
 		$.modal.close();
 	};
 	};

+ 12 - 11
src/main/webapp/WEB-INF/views/web/customer/JoinFormWeb.html

@@ -298,18 +298,19 @@
 		const $avlConPwd = $('#avlConPwd');
 		const $avlConPwd = $('#avlConPwd');
 		let password = $('#joinForm input[name=passwd]').val();
 		let password = $('#joinForm input[name=passwd]').val();
 		let confirmPassword = $('#joinForm input[name=confirmPassword]').val();
 		let confirmPassword = $('#joinForm input[name=confirmPassword]').val();
-		if (!gagajf.isNull(password) && !gagajf.isNull(confirmPassword)) {
-			if (fnValidationPwdSameConfirmPwd(password, confirmPassword)) {
-				$avlConPwd.hide();
-				$misPwd.show();
-				passwdCheck = false;
-			} else {
-				$misPwd.hide();
-				$avlConPwd.show();
-				passwdCheck = true;
-			}
-			fnPossibleJoin();
+		let sameConfirmPwd = fnValidationPwdSameConfirmPwd(password, confirmPassword);
+
+		if (sameConfirmPwd) {
+			$avlConPwd.show();
+			$misPwd.hide()
+			passwdCheck = true;
+		} else {
+			$misPwd.show();
+			$avlConPwd.hide();
+			passwdCheck = false;
 		}
 		}
+		fnPossibleJoin();
+
 	};
 	};
 
 
 	//	이메일 확인
 	//	이메일 확인

+ 28 - 23
src/main/webapp/WEB-INF/views/web/customer/JoinTypeFormWeb.html

@@ -52,7 +52,6 @@
 							</li>
 							</li>
 							<li>
 							<li>
 								<a href="javascript:void(0)" onclick="cfnLoginYes24();">
 								<a href="javascript:void(0)" onclick="cfnLoginYes24();">
-<!--									<a href="javascript:void(0)" onclick="cfnConsentUseInfo('신주승')">-->
 									<i class="ico ico_snslogin yes24"></i>
 									<i class="ico ico_snslogin yes24"></i>
 									<span>YES24</span>
 									<span>YES24</span>
 								</a>
 								</a>
@@ -67,10 +66,10 @@
 
 
 <script th:inline="javascript">
 <script th:inline="javascript">
 	/*<![CDATA[*/
 	/*<![CDATA[*/
-	// SNS 로그인 콜백함수
 
 
+	// SNS 로그인 콜백함수(네이버, 카카오, YES24)
 	var fnSnsSigninCallback = function(userInfo) {
 	var fnSnsSigninCallback = function(userInfo) {
-		// Ci이 조회 시 없음
+		// 1. CI 정보로 사용자가 없어서 회원가입 프로세스 처리 중 이메일, 휴대전화 중복
 		if (userInfo.custStat === 'DUP_PHONE_CUST') {
 		if (userInfo.custStat === 'DUP_PHONE_CUST') {
 			mcxDialog.alert("이미 사용 중인 휴대전화번호 입니다.");
 			mcxDialog.alert("이미 사용 중인 휴대전화번호 입니다.");
 			return;
 			return;
@@ -79,51 +78,57 @@
 			mcxDialog.alert("이미 사용 중인 이메일 입니다.");
 			mcxDialog.alert("이미 사용 중인 이메일 입니다.");
 			return;
 			return;
 		}
 		}
-		if (userInfo.custStat === 'EMPTY_PHONE_CUST') {
-			cfnGoToPage(_PAGE_CUSTOMER_SNS_JOIN);
-		}
-		// Ci이 조회 시 있음
+		// 2. SNS 로그인 정보로 탈퇴확인
 		if (userInfo.custStat === 'SECEDE_CUST') {
 		if (userInfo.custStat === 'SECEDE_CUST') {
 			mcxDialog.alert("탈퇴 회원 입니다.");
 			mcxDialog.alert("탈퇴 회원 입니다.");
 			return;
 			return;
 		}
 		}
+		// 3. SNS 로그인 정보로 휴면확인
 		if (userInfo.custStat === 'DORMANT_CUST') {
 		if (userInfo.custStat === 'DORMANT_CUST') {
-			cfnGoToPage(_PAGE_CUSTOMER_DORMANT);
+			mcxDialog.alertC("휴면 고객님께서는 휴면을<br>해지하신 후 사용하실 수 있습니다.", {
+				sureBtnText: "확인",
+				sureBtnClick: function() {
+					cfnGoToPage(_PAGE_CUSTOMER_DORMANT);
+				}
+			});
+			return;
 		}
 		}
-		if (userInfo.custStat === 'FAIL_CUST') {
-			mcxDialog.alert("회원가입에 실패 했습니다.<br> 고객센터에 문의 하시기 바랍니다.");
+		// 4. 휴대전화 정보가 없으면 SNS 가입화면 이동
+		if (userInfo.custStat === 'EMPTY_PHONE_CUST') {
+			cfnGoToPage(_PAGE_CUSTOMER_SNS_JOIN);
+		}
+		// 5. YES24 첫 로그인 시도 시 정보동의 페이지 이동
+		if (userInfo.custStat === 'NEED_AGREE_CUST') {
+			cfnConsentUseInfo(userInfo.custNm);
 			return;
 			return;
 		}
 		}
+		// 6. SNS 정보로 가입 성공시 가입완료 페이지 이동
 		if (userInfo.custStat === 'NEW_CUST') {
 		if (userInfo.custStat === 'NEW_CUST') {
 			cfnGoToPage(_PAGE_CUSTOMER_JOIN_COMPLETE);
 			cfnGoToPage(_PAGE_CUSTOMER_JOIN_COMPLETE);
+			return;
 		}
 		}
-
+		// 7.SNS 정보로 가입 실패시 안내 창 알림
+		if (userInfo.custStat === 'FAIL_CUST') {
+			mcxDialog.alert("회원가입에 실패 했습니다.<br> 고객센터에 문의 하시기 바랍니다.");
+			return;
+		}
+		// 8. SNS 로그인 연동 성공 및 기존 SNS 연동된 회원 로그인 시도
 		if (userInfo.custStat === 'SUCC_CUST') {
 		if (userInfo.custStat === 'SUCC_CUST') {
 			let params = {};
 			let params = {};
 			params.snsType = userInfo.snsType;
 			params.snsType = userInfo.snsType;
 			params.snsId = [[${snsLoginPrefix}]] + userInfo.snsId;
 			params.snsId = [[${snsLoginPrefix}]] + userInfo.snsId;
 			$.post(_frontUrl + '/login'
 			$.post(_frontUrl + '/login'
 				, $.param(params)
 				, $.param(params)
-				, function(result) {
-					fnReloadAfterLogin(result);
-				}
+				,fnReloadAfterLogin
 				, "json");
 				, "json");
 		}
 		}
-
 	};
 	};
 
 
-
 	var fnReloadAfterLogin = function(result) {
 	var fnReloadAfterLogin = function(result) {
 		if (result.status === 'OK') {
 		if (result.status === 'OK') {
 			document.location.href = result.returnUrl;
 			document.location.href = result.returnUrl;
-		} else if (result.status === 'EMAIL_DUP') {
-
-		} else if(result.status === 'DORMANT_CUST') {
-			cfnGoToPage(_PAGE_CUSTOMER_DORMANT);
-		} else if(result.status === 'SECEDE_CUST') {
-
 		} else {
 		} else {
-			//cfnGoToPage(_PAGE_CUSTOMER_JOIN_CERTIFY_SNS);
+			mcxDialog.alert("로그인 실패 하였습니다.<br> 고객센터에 문의 하시기 바랍니다.");
 		}
 		}
 	};
 	};
 
 

+ 6 - 5
src/main/webapp/WEB-INF/views/web/customer/PasswordChangeFormWeb.html

@@ -186,15 +186,16 @@
 		const $btnSavePassword = $('#btnSavePassword');
 		const $btnSavePassword = $('#btnSavePassword');
 		let password = $('#resetPasswordForm input[name=passwd]').val();
 		let password = $('#resetPasswordForm input[name=passwd]').val();
 		let confirmPassword = $('#resetPasswordForm input[name=confirmPassword]').val();
 		let confirmPassword = $('#resetPasswordForm input[name=confirmPassword]').val();
+		let sameConfirmPwd = fnValidationPwdSameConfirmPwd(password, confirmPassword);
 
 
-		if (fnValidationPwdSameConfirmPwd(password, confirmPassword)) {
-			$avlConPwd.hide();
-			$misPwd.show();
-			$btnSavePassword.attr('disabled', true);
-		} else {
+		if (sameConfirmPwd) {
 			$misPwd.hide();
 			$misPwd.hide();
 			$avlConPwd.show();
 			$avlConPwd.show();
 			$btnSavePassword.attr('disabled', false);
 			$btnSavePassword.attr('disabled', false);
+		} else {
+			$avlConPwd.hide();
+			$misPwd.show();
+			$btnSavePassword.attr('disabled', true);
 		}
 		}
 
 
 	};
 	};

+ 7 - 9
src/main/webapp/WEB-INF/views/web/mypage/MypageCustModifyFormWeb.html

@@ -89,7 +89,7 @@
 												<span>비밀번호</span>
 												<span>비밀번호</span>
 											</th>
 											</th>
 											<td>
 											<td>
-												<button type="button" class="btn btn_primary_line" onclick="cfnGoToPage(_PAGE_CUSTOMER_PWD_CHANGE_TEMP);">
+												<button type="button" class="btn btn_primary_line" onclick="cfnPasswordModify();">
 													<span>변경하기</span>
 													<span>변경하기</span>
 												</button>
 												</button>
 											</td>
 											</td>
@@ -380,8 +380,6 @@
 		let marketingModifyYn = 'N';
 		let marketingModifyYn = 'N';
 		let accountModifyYn = 'N';
 		let accountModifyYn = 'N';
 		let emailModifyYn = 'N';
 		let emailModifyYn = 'N';
-		let smsAgreeYn;
-		let emailAgreeYn;
 
 
 		if (gagajf.isNull(custModiFy.email)) {
 		if (gagajf.isNull(custModiFy.email)) {
 			mcxDialog.alertC('이메일 주소를 입력해주세요.',{
 			mcxDialog.alertC('이메일 주소를 입력해주세요.',{
@@ -392,7 +390,7 @@
 			});
 			});
 		}
 		}
 
 
-		if (orgCustInfo.email != custModiFy.email) {
+		if (orgCustInfo.email !== custModiFy.email) {
 			emailModifyYn = 'Y';
 			emailModifyYn = 'Y';
 		}
 		}
 
 
@@ -402,11 +400,11 @@
 		custModiFy.bankCd = $('.combo .select').find('input[name=bankCd]').val();
 		custModiFy.bankCd = $('.combo .select').find('input[name=bankCd]').val();
 
 
 		// 은행코드가 바꼈는지
 		// 은행코드가 바꼈는지
-		if (orgAccountInfo.bankCd != custModiFy.bankCd) {
+		if (orgAccountInfo.bankCd !== custModiFy.bankCd) {
 			accountModifyYn = 'Y';
 			accountModifyYn = 'Y';
 		}
 		}
 
 
-		if (orgAccountInfo.accountNo != custModiFy.accountNo) {
+		if (orgAccountInfo.accountNo !== custModiFy.accountNo) {
 			accountModifyYn = 'Y';
 			accountModifyYn = 'Y';
 		}
 		}
 
 
@@ -432,12 +430,12 @@
 		}
 		}
 
 
 		// SMS 수신여부
 		// SMS 수신여부
-		if (orgCustInfo.smsAgreeYn != custModiFy.smsAgreeYn) {
+		if (orgCustInfo.smsAgreeYn !== custModiFy.smsAgreeYn) {
 			marketingModifyYn = 'Y';
 			marketingModifyYn = 'Y';
 		}
 		}
 
 
 		// 이메일 수신여부
 		// 이메일 수신여부
-		if (orgCustInfo.emailAgreeYn != custModiFy.emailAgreeYn) {
+		if (orgCustInfo.emailAgreeYn !== custModiFy.emailAgreeYn) {
 			marketingModifyYn = 'Y';
 			marketingModifyYn = 'Y';
 		}
 		}
 
 
@@ -465,7 +463,7 @@
 
 
 	// 은행계좌 유효성체크
 	// 은행계좌 유효성체크
 	var fnGetAccountValidation = function () {
 	var fnGetAccountValidation = function () {
-		let custModiFy =  $('#custModiFyForm').serializeObject();
+		let custModiFy = $('#custModiFyForm').serializeObject();
 
 
 		if (gagajf.isNull(custModiFy.bankCd) && !gagajf.isNull(custModiFy.accountNo)) {
 		if (gagajf.isNull(custModiFy.bankCd) && !gagajf.isNull(custModiFy.accountNo)) {
 			mcxDialog.alertC('은행을 선택해주세요.',{
 			mcxDialog.alertC('은행을 선택해주세요.',{

+ 260 - 0
src/main/webapp/WEB-INF/views/web/mypage/MypageCustPwdModifyFormWeb.html

@@ -0,0 +1,260 @@
+<!DOCTYPE html>
+<html lang="ko"
+	  xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : MypageCustPwdModifyFormWeb.html
+ * @desc    : 비밀번호 변경 팝업
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2021 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.04.01   jsshin       최초 작성
+ *******************************************************************************
+ -->
+<div class="modal-dialog" role="document">
+	<div class="modal-content">
+		<div class="modal-header">
+		<h5 class="modal-title" id="pswordModifyLabel">비밀번호 변경</h5>
+	</div>
+	<div class="modal-body">
+		<div class="pop_cont">
+			<form id="pwdModifyForm" class="form_wrap form_full">
+				<input type="hidden" name="custId" th:value="${custId}"/>
+				<div class="form_field">
+					<label class="input_label">기존 비밀번호</label>
+					<div class="input_wrap">
+						<input type="password" class="form_control" id="orgPasswd" name="orgPasswd" placeholder="기존 비밀번호를 입력해주세요." minlength="8" maxlength="20" required="required" data-valid-name="기존 비밀번호" />
+					</div>
+				</div>
+				<div class="form_field">
+					<label class="input_label">신규 비밀번호</label>
+					<div class="input_wrap form_full">
+						<input type="password" id="passwd" name="passwd" placeholder="신규 비밀번호를 입력해주세요.(8~20자 영문, 숫자, 특수문자 중 2가지 이상 조합)" class="form_control" minlength="8" maxlength="20" required="required" data-valid-name="신규 비밀번호"/>
+						<!-- case (사용불가 비밀번호일경우,사용가능한 비밀번호일경우) -->
+						<div class="help_block">
+							<!-- 사용불가 비밀번호일경우 -->
+							<p class="mt10">
+								<span id="firstFailed" class="c_gray">
+									<i class="ico ico_check gray mr5"></i>영문(대/소문자), 숫자, 특수문자 중 2가지 이상 조합(8~20자)<br>
+								</span>
+								<span id="secondFailed" class="c_gray">
+									<i class="ico ico_check gray mr5"></i>4개이상 연속되거나 동일한 문자/숫자 제외<br>
+								</span>
+								<span id="thirdFailed" class="c_gray">
+									<i class="ico ico_check gray mr5"></i>아이디 제외
+								</span>
+							</p>
+							<!-- //사용불가 비밀번호일경우 -->
+							<!-- 사용가능한 비밀번호일경우 -->
+							<p id="avlPwd" class="mt10 hide">
+								<span class="c_black2">
+									<i class="ico ico_check black mr5"></i>사용 가능한 비밀번호입니다
+								</span>
+							</p>
+							<!-- //사용가능한 비밀번호일경우 -->
+						</div>
+						<!-- //case (사용불가 비밀번호일경우,사용가능한 비밀번호일경우) -->
+					</div>
+				</div>
+				<div class="form_field">
+					<label class="input_label">신규 비밀번호 확인</label>
+					<div class="input_wrap form_full">
+						<input type="password" id="confirmPassword" name="confirmPassword" placeholder="신규 비밀번호를 다시 입력해주세요." class="form_control" minlength="8" maxlength="20" required="required" data-valid-name="신규 비밀번호 확인"/>
+						<!-- case (비밀번호확인 틀렸을경우,비밀번호 일치할경우) -->
+						<div class="help_block">
+							<!-- 비밀번호확인 틀렸을경우 -->
+							<p id="misPwd" class="t_err hide">
+								비밀번호가 일치하지 않습니다.
+							</p>
+							<!-- //비밀번호확인 틀렸을경우 -->
+							<!-- 비밀번호 일치할경우 -->
+							<p id="avlConPwd" class="mt10 hide">
+								<span class="c_black2"><i class="ico ico_check black mr5"></i>비밀번호가 일치합니다.</span>
+							</p>
+							<!-- //비밀번호 일치할경우 -->
+						</div>
+						<!-- //case (비밀번호확인 틀렸을경우,비밀번호 일치할경우) -->
+					</div>
+				</div>
+			</form>
+		</div>
+	</div>
+	<div class="modal-footer">
+		<div class="btn_group_block ui_row">
+			<div class="ui_col_6">
+				<button type="button" id="btnClose" class="btn btn_default btn_block"><span>취소</span></button>
+			</div>
+			<div class="ui_col_6">
+				<button type="button" id="btnSavePassword" class="btn btn_dark btn_block"><span>변경</span></button>
+			</div>
+		</div>
+	</div>
+</div>
+<script th:src="@{'/biz/customer.js?v=' + ${#calendars.format(#calendars.createNow(), 'yyyyMMddHHmmss')}}" src="/biz/customer.js"></script>
+<script th:inline="javascript">
+	/*<![CDATA[*/
+	let checkPwd;
+	let checkConfirmPwd;
+
+	$("#btnClose").on('click', function() {
+		$.modal.close();
+	});
+
+	// 신규 비밀번호 입력
+	$('#pwdModifyForm input[name=passwd]').on('focusout keyup keydown', function () {
+		fnCheckPassword();
+	});
+
+	// 신규 비밀번호 확인 입력
+	$('#pwdModifyForm input[name=confirmPassword]').on('focusout keyup keydown', function () {
+		fnCheckConfirmPassword();
+	});
+
+	// 비밀번호 확인
+	var fnCheckPassword = function () {
+		const $firstFailed = $('#firstFailed');
+		const $secondFailed = $('#secondFailed');
+		const $thirdFailed = $('#thirdFailed');
+		const $avlPwd = $('#avlPwd');
+		const red = 'c_red2';
+		const gray = 'c_gray';
+		let custId = $('#pwdModifyForm input[name=custId]').val();
+		let password = $('#pwdModifyForm input[name=passwd]').val();
+		let confirmPassword = $('#pwdModifyForm input[name=confirmPassword]').val();
+		let pwdCheck = true;
+
+		// 영문, 숫자, 특수문자 2종 이상 혼용 || 길이
+		if (fnValidtaionPwdMixedWord(password) || fnValidationPwdLength(password)) {
+			pwdCheck = false;
+			$firstFailed.removeClass(gray);
+			$firstFailed.addClass(red);
+		} else {
+			$firstFailed.removeClass(red);
+			$firstFailed.addClass(gray);
+		}
+
+		// 동일한 문자/숫자 4자이상 || 연속된 문자가 4자이상
+		if (fnValidationPwdSameWord(password) || fnValidtaionPwdCntnsWord(password)) {
+			pwdCheck = false;
+			$secondFailed.removeClass(gray);
+			$secondFailed.addClass(red);
+		} else {
+			$secondFailed.removeClass(red);
+			$secondFailed.addClass(gray);
+		}
+
+		// 아이디 포함
+		if (fnValidationPwdSameId(password, custId)) {
+			pwdCheck = false;
+			$thirdFailed.removeClass(gray);
+			$thirdFailed.addClass(red);
+		} else {
+			$thirdFailed.removeClass(red);
+			$thirdFailed.addClass(gray);
+		}
+
+		if (pwdCheck) {
+			$firstFailed.hide();
+			$secondFailed.hide();
+			$thirdFailed.hide();
+			$avlPwd.show();
+			checkPwd = true;
+		} else {
+			$firstFailed.show();
+			$secondFailed.show();
+			$thirdFailed.show();
+			$avlPwd.hide();
+			checkPwd = false;
+		}
+
+		if (!gagajf.isNull(confirmPassword)) {
+			fnCheckConfirmPassword();
+		}
+
+	};
+
+	// 비밀번호체크
+	var fnCheckConfirmPassword = function () {
+		const $misPwd = $('#misPwd');
+		const $avlConPwd = $('#avlConPwd');
+		const $btnSavePassword = $('#btnSavePassword');
+		let password = $('#pwdModifyForm input[name=passwd]').val();
+		let confirmPassword = $('#pwdModifyForm input[name=confirmPassword]').val();
+
+		let sameConfirmPwd = fnValidationPwdSameConfirmPwd(password, confirmPassword);
+
+		if (sameConfirmPwd) {
+			$avlConPwd.show();
+			$misPwd.hide();
+			checkConfirmPwd = true;
+			//$btnSavePassword.attr('disabled', false);
+		} else {
+			$misPwd.show();
+			$avlConPwd.hide();
+			checkConfirmPwd = false;
+			//$btnSavePassword.attr('disabled', true);
+		}
+
+	};
+
+	// 패스워드 저장
+	$('#btnSavePassword').on('click', function () {
+		let pwdModifyForm = $('#pwdModifyForm').serializeObject();
+
+		if (gagajf.isNull(pwdModifyForm.orgPasswd)) {
+			mcxDialog.alert('기존 비밀번호 입력해주세요.');
+			return;
+		}
+
+		if (gagajf.isNull(pwdModifyForm.passwd)) {
+			mcxDialog.alert('신규 비밀번호를 입력해주세요.');
+			return;
+		}
+
+		if (gagajf.isNull(pwdModifyForm.confirmPassword)) {
+			mcxDialog.alert('신규 비밀번호 확인을 입력해주세요.');
+			return;
+		}
+
+		if (!checkPwd) {
+			mcxDialog.alert('유효하지 않은 신규 비밀번호 입니다.');
+			return;
+		}
+
+		if (!checkConfirmPwd) {
+			mcxDialog.alert('유효하지 않은 신규 비밀번호 입니다.');
+			return;
+		}
+
+		if (pwdModifyForm.passwd !== pwdModifyForm.confirmPassword) {
+			mcxDialog.alert('신규 비밀번호가 일치하지 않습니다. 다시 확인해주세요.');
+			return;
+		}
+
+		fnCheckPassword();
+		fnCheckConfirmPassword();
+		let jsonData = JSON.stringify(pwdModifyForm);
+		gagajf.ajaxJsonSubmit('/mypage/password/change', jsonData, fnChangePasswordCallback);
+	});
+
+	var fnChangePasswordCallback = function (result) {
+		if (result.isSuccess) {
+			mcxDialog.alertC("비밀번호가 변경되었습니다.", {
+				sureBtnText: "확인",
+				sureBtnClick: function() {
+					$.modal.close();
+				}
+			});
+		} else {
+			if (result.resultType === 'WRONG_PWD') {
+				mcxDialog.alert('기존 비밀번호가 일치하지 않습니다. 다시 확인해주세요.');
+			}
+		}
+	};
+
+	/*]]>*/
+</script>
+</html>

+ 9 - 12
src/main/webapp/WEB-INF/views/web/mypage/MypageCustSnsJoinInitPwdFormWeb.html

@@ -202,19 +202,16 @@
 		const $btnSavePassword = $('#btnSavePassword');
 		const $btnSavePassword = $('#btnSavePassword');
 		let password = $('#resetPasswordForm input[name=passwd]').val();
 		let password = $('#resetPasswordForm input[name=passwd]').val();
 		let confirmPassword = $('#resetPasswordForm input[name=confirmPassword]').val();
 		let confirmPassword = $('#resetPasswordForm input[name=confirmPassword]').val();
-		if (!gagajf.isNull(password) && !gagajf.isNull(confirmPassword)) {
-			if (fnValidationPwdSameConfirmPwd(password, confirmPassword)) {
-				$avlConPwd.hide();
-				$misPwd.show();
-				$btnSavePassword.attr('disabled', true);
-			} else {
-				$misPwd.hide();
-				$avlConPwd.show();
-				$btnSavePassword.attr('disabled', false);
-			}
+		let sameConfirmPwd = fnValidationPwdSameConfirmPwd(password, confirmPassword);
+		if (sameConfirmPwd) {
+			$misPwd.hide();
+			$avlConPwd.show();
+			$btnSavePassword.attr('disabled', false);
+		} else {
+			$avlConPwd.hide();
+			$misPwd.show();
+			$btnSavePassword.attr('disabled', true);
 		}
 		}
-
-
 	};
 	};
 
 
 	// 패스워드 저장
 	// 패스워드 저장

+ 6 - 5
src/main/webapp/biz/customer.js

@@ -172,12 +172,13 @@ var fnValidationPwdSameId = function (password, custId) {
  * @since 2021. 02. 17
  * @since 2021. 02. 17
  */
  */
 var fnValidationPwdSameConfirmPwd = function (password, confirmPassword) {
 var fnValidationPwdSameConfirmPwd = function (password, confirmPassword) {
-	let result;
+	let result = false;
 
 
-	if (password != confirmPassword) {
-		result = true;
-	} else {
-		result = false;
+	if (!gagajf.isNull(password) && !gagajf.isNull(confirmPassword)) {
+		if (password === confirmPassword) {
+			result = true;
+		}
 	}
 	}
+
 	return result;
 	return result;
 };
 };

+ 26 - 4
src/main/webapp/ux/style24_link.js

@@ -27,7 +27,8 @@ const _PAGE_CUSTOMER_SECEDE_COMPLETE = _frontUrl + "/customer/secede/complete/fo
 const _PAGE_CUSTOMER_CERTIFICATION = _frontUrl + "/customer/certification/form"						// 고객 > 본인인증화면
 const _PAGE_CUSTOMER_CERTIFICATION = _frontUrl + "/customer/certification/form"						// 고객 > 본인인증화면
 const _PAGE_USE_TERMS = _frontUrl + "/customer/use/terms/form";										// Footer > 이용약관
 const _PAGE_USE_TERMS = _frontUrl + "/customer/use/terms/form";										// Footer > 이용약관
 const _PAGE_PRIVACY_POLICY = _frontUrl + "/customer/privacy/policy/form";							// Footer > 개인정보취급방침
 const _PAGE_PRIVACY_POLICY = _frontUrl + "/customer/privacy/policy/form";							// Footer > 개인정보취급방침
-const _PAGE_CUSTOMER_CONSENT_USERINFO = _frontUrl + "/customer/consent/useinfo/layer";				// 정보 이용동의 : Yes24 로그인
+const _PAGE_CUSTOMER_CONSENT_USERINFO = _frontUrl + "/customer/consent/useinfo/form";				// 정보 이용동의 : Yes24 로그인
+
 
 
 //== 상품상세 ==/
 //== 상품상세 ==/
 const _PAGE_GOODS_DETAIL = _frontUrl + "/goods/detail/form?goodsCd=";								// 상품 상세
 const _PAGE_GOODS_DETAIL = _frontUrl + "/goods/detail/form?goodsCd=";								// 상품 상세
@@ -65,6 +66,7 @@ const _PAGE_MYPAGE_DELIVERY_ADDR = _frontUrl + "/mypage/delivery/addr/form";	//
 const _PAGE_MYPAGE_WISHLIST = _frontUrl + "/mypage/wish/list/form";				// 마이페이지 > 위시리스트
 const _PAGE_MYPAGE_WISHLIST = _frontUrl + "/mypage/wish/list/form";				// 마이페이지 > 위시리스트
 const _PAGE_MYPAGE_CUSTOMER = _frontUrl + "/mypage/customer/confirm/form";		// 마이페이지 > 내정보 관리 > 회원정보 확인
 const _PAGE_MYPAGE_CUSTOMER = _frontUrl + "/mypage/customer/confirm/form";		// 마이페이지 > 내정보 관리 > 회원정보 확인
 const _PAGE_MYPAGE_CUSTOMER_MODIFY = _frontUrl + "/mypage/customer/modify/form";// 마이페이지 > 내정보 관리 > 회원정보 수정
 const _PAGE_MYPAGE_CUSTOMER_MODIFY = _frontUrl + "/mypage/customer/modify/form";// 마이페이지 > 내정보 관리 > 회원정보 수정
+const _PAGE_PASSWORD_MODIFY = _frontUrl + "/mypage/password/modify/form";		// 마이페이지 > 비밀번호 변경
 const _PAGE_MYPAGE_SECEDE = _frontUrl + "/mypage/customer/secede/form";			// 마이페이지 > 회원탈퇴
 const _PAGE_MYPAGE_SECEDE = _frontUrl + "/mypage/customer/secede/form";			// 마이페이지 > 회원탈퇴
 const _PAGE_WISHLIST = _frontUrl + "/mypage/wish/list/form";					// 마이페이지 > 위시리스트
 const _PAGE_WISHLIST = _frontUrl + "/mypage/wish/list/form";					// 마이페이지 > 위시리스트
 const _PAGE_WISHLIST_PUT = _frontUrl + "/mypage/wish/list/put";					// 위시리스트 담기
 const _PAGE_WISHLIST_PUT = _frontUrl + "/mypage/wish/list/put";					// 위시리스트 담기
@@ -691,7 +693,7 @@ function cfGoodsReview(goodsCd) {
 /**
 /**
  * @type   : function
  * @type   : function
  * @access : public
  * @access : public
- * @desc   : 딜구성상품상세 full 팝업
+ * @desc   : Yes24 정보이용동의 화면
  * @param  : custNm - 고객명
  * @param  : custNm - 고객명
  * <pre>
  * <pre>
  *		cfnConsentUseInfo(custNm);
  *		cfnConsentUseInfo(custNm);
@@ -699,12 +701,32 @@ function cfGoodsReview(goodsCd) {
  */
  */
 function cfnConsentUseInfo(custNm) {
 function cfnConsentUseInfo(custNm) {
 	let str = '<div class="modal fade mbAgree_pop" id="layer_consent_useinfo" tabIndex="-1" role="dialog" aria-labelledby="mbAgreeLabel" aria-hidden="true"></div>';
 	let str = '<div class="modal fade mbAgree_pop" id="layer_consent_useinfo" tabIndex="-1" role="dialog" aria-labelledby="mbAgreeLabel" aria-hidden="true"></div>';
-
+	let params = {}
+	params.custNm = custNm;
 	if ($('#layer_consent_useinfo').length == 0) {
 	if ($('#layer_consent_useinfo').length == 0) {
 		$('body').append(str);
 		$('body').append(str);
 	}
 	}
 
 
-	cfOpenLayer(_PAGE_CUSTOMER_CONSENT_USERINFO, 'layer_consent_useinfo');
+	cfOpenLayer(_PAGE_CUSTOMER_CONSENT_USERINFO, 'layer_consent_useinfo',params);
+}
+
+
+/**
+ * @type   : function
+ * @access : public
+ * @desc   : 패스워드 변경 팝업
+ * <pre>
+ *		cfnPasswordModify();
+ * </pre>
+ */
+function cfnPasswordModify() {
+	let str = '<div class="modal fade pswordModify_pop" id="pswordModifyPop" tabindex="-1" role="dialog" aria-labelledby="pswordModifyLabel" aria-hidden="true"></div>';
+
+	if ($('#pswordModifyPop').length == 0) {
+		$('body').append(str);
+	}
+
+	cfOpenLayer(_PAGE_PASSWORD_MODIFY, 'pswordModifyPop');
 }
 }
 
 
 /**
 /**