Explorar o código

로그인 시 앱 수신여부 관련 로직 추가

jsshin %!s(int64=4) %!d(string=hai) anos
pai
achega
cb966a89c3

+ 2 - 2
src/main/java/com/style24/front/support/security/handler/TsfLoginSuccessHandler.java

@@ -171,8 +171,8 @@ public class TsfLoginSuccessHandler implements AuthenticationSuccessHandler {
 		result.setString("returnUrl", returnUrl);
 		result.setString("custNo", loginDetails.getUsername()); // 로그인 후 APP푸시SDK 연동을 위해
 		if (loginDetails.isLogin()) {
-			result.setString("appAgreeDt", loginDetails.getLoginInfo().getAppAgreeDt());
-			result.setString("mkAgreeDt", loginDetails.getLoginInfo().getMkAgreeDt());
+			result.setString("appAgreeYn", loginDetails.getLoginInfo().getAppAgreeYn());
+			result.setString("mkAgreeYn", loginDetails.getLoginInfo().getMkAgreeYn());
 		}
 		GagaStringUtil.write(response, result);
 	}

+ 61 - 4
src/main/webapp/WEB-INF/views/mob/SigninFormMob.html

@@ -107,6 +107,12 @@
 /*<![CDATA[*/
 	let ckLoginId = "ckLoginId";
 	let rechaptchCheck = true;
+	let custAppAgreeYn;
+	let custMkAgreeYn;
+	let phoneAppAgreeYn;
+	let phoneMkAgreeYn;
+	let custNo;
+	let returnUrl;
 
 	// 로그인
 	$('#btnLogin').on('click', function() {
@@ -171,7 +177,11 @@
 	var fnReloadAfterLogin = function(result) {
 		if (result.status === 'OK') {
 			if (_isApp === 'true') {
-				document.location.href = "idsend://?id=" + result.custNo + "^link=" + result.returnUrl;
+				custAppAgreeYn = result.appAgreeYn;
+				custMkAgreeYn = result.mkAgreeYn;
+				custNo = result.custNo;
+				returnUrl = result.returnUrl;
+				fnIsPushEnable(); // 정보성 PUSH, 마케팅 PUSH 수신여부 확인
 			} else {
 				document.location.href = result.returnUrl;
 			}
@@ -331,14 +341,61 @@
 		}
 	};
 
-	// 앱푸시동의 데이터 처리
-	var fnAppPushAgreeUpdate = function (appAgreeYn) {
+	// 앱에서 호출되는 함수(앱푸시)
+	var settingsSwtichPush = function(onOff) {
+		if (onOff === 'ON') {
+			phoneAppAgreeYn = 'Y';
+		} else if (onOff === 'OFF'){
+			phoneAppAgreeYn = 'N';
+		}
+		fnIsAdEnable();
+	}
+
+	// 앱에서 호출되는 함수(마케팅동의)
+	var settingsSwtichAdvertise = function (onOff) {
+		if (onOff === 'ON') {
+			phoneMkAgreeYn = 'Y';
+		} else if (onOff === 'OFF'){
+			phoneMkAgreeYn = 'N';
+		}
+
+		// 기기에 등록된 정보성 PUSH, 마케팅 PUSH 수신여부와
+		// 고객DB 수신여부 비교 후 다르면 기기에 등록된 데이터로 업데이트
+		if (phoneAppAgreeYn !== custAppAgreeYn || phoneMkAgreeYn !== custMkAgreeYn ) {
+			fnUpdatePush(phoneAppAgreeYn, phoneMkAgreeYn);
+		}
+		document.location.href = "idsend://?id=" + custNo + "^link=" + returnUrl;
+	}
+
+	// 정보성 PUSH ON, OFF 여부 확인
+	// 호출시 앱에서 settingsSwtichPush 호출 해서 ON, OFF 값을 param 값으로 준다.
+	var fnIsPushEnable = function () {
+		if (_osType === 'A') {
+			window.style24.isPushEnable();
+		} else if (_osType === 'I') {
+			window.webkit.messageHandlers.isPushEnable.postMessage({'dummy':'dummy'});
+		}
+	}
+
+	// 마케팅 PUSH ON, OFF 여부확인
+	// 호출시 앱에서 settingsSwtichAdvertise 호출 해서 ON, OFF 값을 param 값으로 준다.
+	var fnIsAdEnable = function () {
+		if (_osType === 'A') {
+			window.style24.isAdEnable();
+		} else if (_osType === 'I') {
+			window.webkit.messageHandlers.isAdEnable.postMessage({'dummy':'dummy'});
+		}
+	}
+
+	var fnUpdatePush = function (appAgreeYn, mkAgreeYn) {
 		let params = {}
 		params.appAgreeYn = appAgreeYn;
+		params.mkAgreeYn = mkAgreeYn;
 		let jsonData = JSON.stringify(params);
-		gagajf.ajaxJsonSubmit('/app/appagree/update', jsonData);
+		gagajf.ajaxJsonSubmit('/app/push/update', jsonData);
 	}
 
+
 	$(document).ready(function() {
 
 		$('#loginForm input[name=loginId]').val(gagajf.getCookie(ckLoginId));

+ 61 - 7
src/main/webapp/WEB-INF/views/mob/SnsCallBackFormMob.html

@@ -23,6 +23,12 @@
 <script th:inline="javascript">
 /*<![CDATA[*/
 	const resultMap = [[${resultMap}]];
+	let custAppAgreeYn;
+	let custMkAgreeYn;
+	let phoneAppAgreeYn;
+	let phoneMkAgreeYn;
+	let custNo;
+	let returnUrl;
 
 	// SNS 로그인 콜백함수(네이버, 카카오, YES24)
 	var fnSnsSigninCallback = function(userInfo) {
@@ -100,10 +106,11 @@
 	var fnReloadAfterLogin = function(result) {
 		if (result.status === 'OK') {
 			if (_isApp === 'true') {
-				if (gagajf.isNull(result.appAgreeDt)) {
-					fnAppPushAgreeUpdate('Y');
-				}
-				document.location.href = "idsend://?id=" + result.custNo + "^link=" + result.returnUrl;
+				custAppAgreeYn = result.appAgreeYn;
+				custMkAgreeYn = result.mkAgreeYn;
+				custNo = result.custNo;
+				returnUrl = result.returnUrl;
+				fnIsPushEnable(); // 정보성 PUSH, 마케팅 PUSH 수신여부 확인
 			} else {
 				document.location.href = result.returnUrl;
 			}
@@ -143,12 +150,59 @@
 
 		return; // 정상적으로 로그인 되지 않았으므로 return
 	}
-		// 앱푸시동의 데이터 처리
-	var fnAppPushAgreeUpdate = function (appAgreeYn) {
+
+	// 앱에서 호출되는 함수(앱푸시)
+	var settingsSwtichPush = function(onOff) {
+		if (onOff === 'ON') {
+			phoneAppAgreeYn = 'Y';
+		} else if (onOff === 'OFF'){
+			phoneAppAgreeYn = 'N';
+		}
+		fnIsAdEnable();
+	}
+
+	// 앱에서 호출되는 함수(마케팅동의)
+	var settingsSwtichAdvertise = function (onOff) {
+		if (onOff === 'ON') {
+			phoneMkAgreeYn = 'Y';
+		} else if (onOff === 'OFF'){
+			phoneMkAgreeYn = 'N';
+		}
+
+		// 기기에 등록된 정보성 PUSH, 마케팅 PUSH 수신여부와
+		// 고객DB 수신여부 비교 후 다르면 기기에 등록된 데이터로 업데이트
+		if (phoneAppAgreeYn !== custAppAgreeYn || phoneMkAgreeYn !== custMkAgreeYn ) {
+			fnUpdatePush(phoneAppAgreeYn, phoneMkAgreeYn);
+		}
+		document.location.href = "idsend://?id=" + custNo + "^link=" + returnUrl;
+	}
+
+	// 정보성 PUSH ON, OFF 여부 확인
+	// 호출시 앱에서 settingsSwtichPush 호출 해서 ON, OFF 값을 param 값으로 준다.
+	var fnIsPushEnable = function () {
+		if (_osType === 'A') {
+			window.style24.isPushEnable();
+		} else if (_osType === 'I') {
+			window.webkit.messageHandlers.isPushEnable.postMessage({'dummy':'dummy'});
+		}
+	}
+
+	// 마케팅 PUSH ON, OFF 여부확인
+	// 호출시 앱에서 settingsSwtichAdvertise 호출 해서 ON, OFF 값을 param 값으로 준다.
+	var fnIsAdEnable = function () {
+		if (_osType === 'A') {
+			window.style24.isAdEnable();
+		} else if (_osType === 'I') {
+			window.webkit.messageHandlers.isAdEnable.postMessage({'dummy':'dummy'});
+		}
+	}
+
+	var fnUpdatePush = function (appAgreeYn, mkAgreeYn) {
 		let params = {}
 		params.appAgreeYn = appAgreeYn;
+		params.mkAgreeYn = mkAgreeYn;
 		let jsonData = JSON.stringify(params);
-		gagajf.ajaxJsonSubmit('/app/appagree/update', jsonData);
+		gagajf.ajaxJsonSubmit('/app/push/update', jsonData);
 	}
 
 	$(document).ready(function() {

+ 61 - 7
src/main/webapp/WEB-INF/views/mob/customer/ConsentUseInfoFormMob.html

@@ -53,6 +53,13 @@
 </div>
 <script th:inline="javascript">
 	/*<![CDATA[*/
+	let custAppAgreeYn;
+	let custMkAgreeYn;
+	let phoneAppAgreeYn;
+	let phoneMkAgreeYn;
+	let custNo;
+	let returnUrl;
+
 	$('#btnAgree').on('click', function () {
 		let jsonData = JSON.stringify({});
 		gagajf.ajaxJsonSubmit('/customer/peristalsis/yes24', jsonData, fnPeristalsisCallback)
@@ -126,10 +133,11 @@
 	var fnReloadAfterLogin = function(result) {
 		if (result.status === 'OK') {
 			if (_isApp === 'true') {
-				if (gagajf.isNull(result.appAgreeDt)) {
-					fnAppPushAgreeUpdate('Y');
-				}
-				document.location.href = "idsend://?id=" + result.custNo + "^link=" + result.returnUrl;
+				custAppAgreeYn = result.appAgreeYn;
+				custMkAgreeYn = result.mkAgreeYn;
+				custNo = result.custNo;
+				returnUrl = result.returnUrl;
+				fnIsPushEnable(); // 정보성 PUSH, 마케팅 PUSH 수신여부 확인
 			} else {
 				document.location.href = result.returnUrl;
 			}
@@ -144,12 +152,58 @@
 		$.modal.close();
 	});
 
-		// 앱푸시동의 데이터 처리
-	var fnAppPushAgreeUpdate = function (appAgreeYn) {
+	// 앱에서 호출되는 함수(앱푸시)
+	var settingsSwtichPush = function(onOff) {
+		if (onOff === 'ON') {
+			phoneAppAgreeYn = 'Y';
+		} else if (onOff === 'OFF'){
+			phoneAppAgreeYn = 'N';
+		}
+		fnIsAdEnable();
+	}
+
+	// 앱에서 호출되는 함수(마케팅동의)
+	var settingsSwtichAdvertise = function (onOff) {
+		if (onOff === 'ON') {
+			phoneMkAgreeYn = 'Y';
+		} else if (onOff === 'OFF'){
+			phoneMkAgreeYn = 'N';
+		}
+
+		// 기기에 등록된 정보성 PUSH, 마케팅 PUSH 수신여부와
+		// 고객DB 수신여부 비교 후 다르면 기기에 등록된 데이터로 업데이트
+		if (phoneAppAgreeYn !== custAppAgreeYn || phoneMkAgreeYn !== custMkAgreeYn ) {
+			fnUpdatePush(phoneAppAgreeYn, phoneMkAgreeYn);
+		}
+		document.location.href = "idsend://?id=" + custNo + "^link=" + returnUrl;
+	}
+
+	// 정보성 PUSH ON, OFF 여부 확인
+	// 호출시 앱에서 settingsSwtichPush 호출 해서 ON, OFF 값을 param 값으로 준다.
+	var fnIsPushEnable = function () {
+		if (_osType === 'A') {
+			window.style24.isPushEnable();
+		} else if (_osType === 'I') {
+			window.webkit.messageHandlers.isPushEnable.postMessage({'dummy':'dummy'});
+		}
+	}
+
+	// 마케팅 PUSH ON, OFF 여부확인
+	// 호출시 앱에서 settingsSwtichAdvertise 호출 해서 ON, OFF 값을 param 값으로 준다.
+	var fnIsAdEnable = function () {
+		if (_osType === 'A') {
+			window.style24.isAdEnable();
+		} else if (_osType === 'I') {
+			window.webkit.messageHandlers.isAdEnable.postMessage({'dummy':'dummy'});
+		}
+	}
+
+	var fnUpdatePush = function (appAgreeYn, mkAgreeYn) {
 		let params = {}
 		params.appAgreeYn = appAgreeYn;
+		params.mkAgreeYn = mkAgreeYn;
 		let jsonData = JSON.stringify(params);
-		gagajf.ajaxJsonSubmit('/app/appagree/update', jsonData);
+		gagajf.ajaxJsonSubmit('/app/push/update', jsonData);
 	}