From 573c491b4a1ba60e12a5678a01c1546c0077c1ee Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 30 七月 2019 09:07:42 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 fanli/src/main/java/com/yeshi/fanli/controller/AuthCallBackController.java |  182 +++++++++++++++++++++++++++++++++++++-------
 1 files changed, 151 insertions(+), 31 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/AuthCallBackController.java b/fanli/src/main/java/com/yeshi/fanli/controller/AuthCallBackController.java
index ad351ae..74cc47c 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/AuthCallBackController.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/AuthCallBackController.java
@@ -1,6 +1,7 @@
 package com.yeshi.fanli.controller;
 
 import java.io.IOException;
+import java.io.PrintWriter;
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
 import java.util.Date;
@@ -14,14 +15,18 @@
 
 import com.yeshi.fanli.entity.bus.user.UserInfo;
 import com.yeshi.fanli.entity.taobao.TaoBaoUnionAuthRecord;
+import com.yeshi.fanli.exception.taobao.TaoBaoAuthException;
 import com.yeshi.fanli.exception.user.UserExtraTaoBaoInfoException;
 import com.yeshi.fanli.log.LogHelper;
+import com.yeshi.fanli.service.inter.msg.UserAccountMsgNotificationService;
 import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionAuthRecordService;
 import com.yeshi.fanli.service.inter.user.UserExtraTaoBaoInfoService;
 import com.yeshi.fanli.util.AESUtil;
 import com.yeshi.fanli.util.Constant;
+import com.yeshi.fanli.util.RedisManager;
 import com.yeshi.fanli.util.StringUtil;
 import com.yeshi.fanli.util.TaoBaoConstant;
+import com.yeshi.fanli.util.ThreadUtil;
 import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
 
 import net.sf.json.JSONObject;
@@ -42,8 +47,15 @@
 	@Resource
 	private TaoBaoUnionAuthRecordService taoBaoUnionAuthRecordService;
 
+	@Resource
+	private UserAccountMsgNotificationService userAccountMsgNotificationService;
+
+	@Resource
+	private RedisManager redisManager;
+
 	@RequestMapping(value = "tb")
 	public void tb(String code, String state, HttpServletRequest request, HttpServletResponse response) {
+
 		LogHelper.test("娣樺疂鎺堟潈鍥炶皟:" + code + "锛�" + state);
 		if (StringUtil.isNullOrEmpty(code) || StringUtil.isNullOrEmpty(state)) {
 			LogHelper.error("娣樺疂鎺堟潈鍥炶皟鍑洪敊");
@@ -53,6 +65,14 @@
 				e1.printStackTrace();
 			}
 			return;
+		}
+		try {
+			String key = StringUtil.Md5("taobao-code-" + code);
+			if (!StringUtil.isNullOrEmpty(redisManager.getCommonString(key)))
+				return;
+			redisManager.cacheCommonString(key, 1 + "", 5);
+		} catch (Exception e) {
+
 		}
 		String stateStr = AESUtil.decrypt(state, Constant.UIDAESKEY);
 		int errCode = 0;
@@ -82,25 +102,69 @@
 			String openUid = data.optString("taobao_open_uid");
 			String taoBaoUid = data.optString("taobao_user_id");
 			String nickName = data.optString("taobao_user_nick");
-
-			// LogHelper.test("uid:" + uid + "\n accessToken:" + accessToken);
+			try {
+				nickName = URLDecoder.decode(nickName, "UTF-8");
+			} catch (Exception e) {
+			}
+			final String name = nickName;
+			LogHelper.test("uid:" + uid + "\n accessToken:" + accessToken);
 
 			// 鑾峰彇娓犻亾ID涓庝細鍛業D
 			if ("share".equalsIgnoreCase(source)) {
-				String relationId = TaoKeApiUtil.getRelationId(accessToken, TaoBaoConstant.TAOBAO_AUTH_APPKEY,
-						TaoBaoConstant.TAOBAO_AUTH_APPSECRET);// 娓犻亾ID
+				String relationId = null;
+
+				try {
+					relationId=	TaoKeApiUtil.getRelationId(accessToken, TaoBaoConstant.TAOBAO_AUTH_APPKEY,
+							TaoBaoConstant.TAOBAO_AUTH_APPSECRET);// 娓犻亾ID
+				} catch (TaoBaoAuthException e) {
+					if (e.getCode() == TaoBaoAuthException.CODE_NOT_REAL_NAME)
+						userAccountMsgNotificationService.taoBaoAuthFail(uid, name, "娣樺疂璐﹀彿鏈疄鍚�");
+				}
+
 				if (StringUtil.isNullOrEmpty(relationId))
 					LogHelper.test(uid + "娓犻亾澶囨澶辫触");
 				try {
-					userExtraTaoBaoInfoService.addRelationId(uid, relationId, taoBaoUid,nickName, true);
+					userExtraTaoBaoInfoService.addRelationId(uid, relationId, taoBaoUid, nickName, true);
 				} catch (UserExtraTaoBaoInfoException e) {
 					LogHelper.test(e.getMsg());
 					errCode = 5;
 				}
-			} else if ("zigou".equalsIgnoreCase(source))  {
-				String specialId = TaoKeApiUtil.getSpecialId(accessToken, TaoBaoConstant.TAOBAO_AUTH_APPKEY,
-						TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
-
+				// 寮傛鐢宠浼氬憳ID
+				ThreadUtil.run(new Runnable() {
+
+					@Override
+					public void run() {
+						String specialId = null;
+						try {
+							specialId = TaoKeApiUtil.getSpecialId(accessToken, TaoBaoConstant.TAOBAO_AUTH_APPKEY,
+									TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
+						} catch (TaoBaoAuthException e1) {
+
+						}
+
+						if (StringUtil.isNullOrEmpty(specialId))
+							LogHelper.test(uid + "浼氬憳澶囨澶辫触");
+						try {
+							userExtraTaoBaoInfoService.addSpecialId(uid, specialId, taoBaoUid, name, true);
+						} catch (UserExtraTaoBaoInfoException e) {
+							LogHelper.test(e.getMsg());
+						}
+					}
+				});
+				
+				//绋嶄綔寤惰繜
+				Thread.sleep(50);
+			} else if ("zigou".equalsIgnoreCase(source)) {
+				String specialId = null;
+
+				try {
+					specialId = TaoKeApiUtil.getSpecialId(accessToken, TaoBaoConstant.TAOBAO_AUTH_APPKEY,
+							TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
+				} catch (TaoBaoAuthException e) {
+					if (e.getCode() == TaoBaoAuthException.CODE_NOT_REAL_NAME)
+						userAccountMsgNotificationService.taoBaoAuthFail(uid, name, "娣樺疂璐﹀彿鏈疄鍚�");
+				}
+
 				if (StringUtil.isNullOrEmpty(specialId))
 					LogHelper.test(uid + "浼氬憳澶囨澶辫触");
 				try {
@@ -109,39 +173,79 @@
 					LogHelper.test(e.getMsg());
 					errCode = 5;
 				}
+
+				// 寮傛鐢宠娓犻亾ID
+				ThreadUtil.run(new Runnable() {
+
+					@Override
+					public void run() {
+						String relationId = null;
+						try {
+							relationId = TaoKeApiUtil.getRelationId(accessToken, TaoBaoConstant.TAOBAO_AUTH_APPKEY,
+									TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
+						} catch (TaoBaoAuthException e1) {
+						} // 娓犻亾ID
+						if (StringUtil.isNullOrEmpty(relationId))
+							LogHelper.test(uid + "娓犻亾澶囨澶辫触");
+						try {
+							userExtraTaoBaoInfoService.addRelationId(uid, relationId, taoBaoUid, name, true);
+						} catch (UserExtraTaoBaoInfoException e) {
+							LogHelper.test(e.getMsg());
+						}
+					}
+				});
+				//绋嶄綔寤惰繜
+				Thread.sleep(50);
+
 			} else if ("bind".equalsIgnoreCase(source)) {
-				
+
 				boolean bindInfo = true;
 				// 缁戝畾娣樺疂锛歏1.5.3
-				String relationId = TaoKeApiUtil.getRelationId(accessToken, Constant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET);// 娓犻亾ID
+				String relationId = null;
+
+				int tbErrorCode = 0;
+				try {
+					relationId = TaoKeApiUtil.getRelationId(accessToken, Constant.TAOBAO_AUTH_APPKEY,
+							TaoBaoConstant.TAOBAO_AUTH_APPSECRET);// 娓犻亾ID
+				} catch (TaoBaoAuthException e) {
+					tbErrorCode = e.getCode();
+				}
+
 				if (StringUtil.isNullOrEmpty(relationId)) {
 					LogHelper.test(uid + "娓犻亾澶囨澶辫触");
 					bindInfo = false;
 				}
-				
+
 				String specialId = null;
-				if(bindInfo) {
-					specialId = TaoKeApiUtil.getSpecialId(accessToken, Constant.TAOBAO_AUTH_APPKEY,
-							TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
+				if (bindInfo) {
+					try {
+						specialId = TaoKeApiUtil.getSpecialId(accessToken, Constant.TAOBAO_AUTH_APPKEY,
+								TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
+					} catch (TaoBaoAuthException e) {
+						tbErrorCode = e.getCode();
+					}
 					if (StringUtil.isNullOrEmpty(specialId)) {
 						LogHelper.test(uid + "浼氬憳澶囨澶辫触");
 						bindInfo = false;
 					}
 				}
-				
+
 				if (!bindInfo) {
+					if (tbErrorCode == TaoBaoAuthException.CODE_NOT_REAL_NAME) {
+						userAccountMsgNotificationService.taoBaoAuthFail(uid, name, "娣樺疂璐﹀彿鏈疄鍚�");
+					}
 					errCode = 5;// 淇℃伅鑾峰彇涓嶅叏
 				} else {
 					try {
-						userExtraTaoBaoInfoService.saveUserTaoBaoInfo(uid, relationId, specialId, taoBaoUid, nickName, true);
+						userExtraTaoBaoInfoService.saveUserTaoBaoInfo(uid, relationId, specialId, taoBaoUid, nickName,
+								true);
 					} catch (UserExtraTaoBaoInfoException e) {
 						LogHelper.test(e.getMsg());
 						errCode = 6;
 					}
 				}
-				
+
 			}
-				
 
 			if (!StringUtil.isNullOrEmpty(nickName))
 				try {
@@ -156,33 +260,39 @@
 			record.setTaoBaoUserNick(nickName);
 			record.setCreateTime(new Date());
 			taoBaoUnionAuthRecordService.addAuthRecord(record);
-			
+
 		} catch (Exception e) {
 			errCode = 4;
-			try {
-				LogHelper.errorDetailInfo(e);
-			} catch (Exception e1) {
-				e1.printStackTrace();
-			}
+			LogHelper.errorDetailInfo(e);
 		}
 
 		try {
 			if (errCode == 0)// 鎴愬姛
 			{
 				if ("share".equalsIgnoreCase(source)) {
-					response.sendRedirect("http://apph5.yeshitv.com/apppage/flq_bonusState.html?code=0");
+					// response.sendRedirect("http://apph5.yeshitv.com/apppage/flq_bonusState.html?code=0");
+					closeWebPage(response.getWriter());
 				} else if ("zigou".equalsIgnoreCase(source)) {
-					response.sendRedirect("http://apph5.yeshitv.com/apppage/flq_rebateState.html?code=0");
+					// response.sendRedirect("http://apph5.yeshitv.com/apppage/flq_rebateState.html?code=0");
+					closeWebPage(response.getWriter());
 				} else if ("bind".equalsIgnoreCase(source)) {
-					response.getWriter().print("<script>yestv.toast(\"鎭枩浣狅紝娣樺疂缁戝畾鎴愬姛\");yestv.finishPage();</script>");
+					String script = String.format(
+							"<script>if(/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {window.location.href = 'yestv://toast#%s';setTimeout(function(){window.location.href = 'yestv://finishPage';},100);} else {yestv.toast(\"鎭枩浣狅紝娣樺疂缁戝畾鎴愬姛\");yestv.finishPage();}</script>",
+							StringUtil.getBase64String("鎭枩浣狅紝娣樺疂缁戝畾鎴愬姛"));
+					response.getWriter().print(script);
 				}
 			} else {// 澶辫触
 				if ("share".equalsIgnoreCase(source)) {
-					response.sendRedirect("http://apph5.yeshitv.com/apppage/flq_bonusState.html?code=1");
+					// response.sendRedirect("http://apph5.yeshitv.com/apppage/flq_bonusState.html?code=1");
+					closeWebPage(response.getWriter());
 				} else if ("zigou".equalsIgnoreCase(source)) {
-					response.sendRedirect("http://apph5.yeshitv.com/apppage/flq_rebateState.html?code=1");
+					// response.sendRedirect("http://apph5.yeshitv.com/apppage/flq_rebateState.html?code=1");
+					closeWebPage(response.getWriter());
 				} else if ("bind".equalsIgnoreCase(source)) {
-					response.getWriter().print("<script>yestv.toast(\"鎶辨瓑锛屾窐瀹濈粦瀹氬け璐");yestv.finishPage();</script>");
+					String script = String.format(
+							"<script>if(/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {window.location.href = 'yestv://toast#%s';setTimeout(function(){window.location.href = 'yestv://finishPage';},100);} else {yestv.toast(\"鎶辨瓑锛屾窐瀹濈粦瀹氬け璐");yestv.finishPage();}</script>",
+							StringUtil.getBase64String("鎶辨瓑锛屾窐瀹濈粦瀹氬け璐�"));
+					response.getWriter().print(script);
 				}
 			}
 		} catch (Exception e) {
@@ -191,4 +301,14 @@
 
 	}
 
+	private void closeWebPage(PrintWriter out) {
+		String script = "<script>if(/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {setTimeout(function(){window.location.href = 'yestv://finishPage';},100);} else {yestv.finishPage();}</script>";
+		out.print(script);
+	}
+
+	@RequestMapping(value = "pinduoduo")
+	public void pinDuoDuo(HttpServletResponse response) {
+
+	}
+
 }

--
Gitblit v1.8.0