From 09417e97672be66c5e312b10f23a9e30da3acb97 Mon Sep 17 00:00:00 2001
From: Administrator <Administrator@MS-20170306HGUF>
Date: 星期一, 24 二月 2020 15:23:08 +0800
Subject: [PATCH] 热销转换发圈

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserAccountController.java |  142 ++++++++++++++++++++++++-----------------------
 1 files changed, 73 insertions(+), 69 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserAccountController.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserAccountController.java
index fcbbdc1..cf95a76 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserAccountController.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserAccountController.java
@@ -14,6 +14,7 @@
 import org.yeshi.utils.encrypt.DESUtil;
 
 import com.alipay.api.AlipayApiException;
+import com.yeshi.fanli.dto.wx.WXAccountInfoDTO;
 import com.yeshi.fanli.entity.accept.AcceptData;
 import com.yeshi.fanli.entity.bus.user.BindingAccount;
 import com.yeshi.fanli.entity.bus.user.ForbiddenUserIdentifyCode;
@@ -23,6 +24,7 @@
 import com.yeshi.fanli.entity.bus.user.UserInfo;
 import com.yeshi.fanli.entity.bus.user.UserInfoModifyRecord.ModifyTypeEnum;
 import com.yeshi.fanli.entity.bus.user.WeiXinUser;
+import com.yeshi.fanli.entity.push.DeviceActive;
 import com.yeshi.fanli.entity.system.BusinessSystem;
 import com.yeshi.fanli.entity.taobao.ClientTBPid;
 import com.yeshi.fanli.entity.taobao.PidUser;
@@ -35,16 +37,20 @@
 import com.yeshi.fanli.service.inter.config.BusinessSystemService;
 import com.yeshi.fanli.service.inter.config.ConfigService;
 import com.yeshi.fanli.service.inter.homemodule.HomeNavbarUserService;
-import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
-import com.yeshi.fanli.service.inter.hongbao.HongBaoV2Service;
-import com.yeshi.fanli.service.inter.hongbao.ThreeSaleSerivce;
+import com.yeshi.fanli.service.inter.money.UserMoneyService;
+import com.yeshi.fanli.service.inter.money.extract.BindingAccountService;
+import com.yeshi.fanli.service.inter.money.extract.ExtractService;
+import com.yeshi.fanli.service.inter.order.HongBaoV2Service;
 import com.yeshi.fanli.service.inter.order.LostOrderService;
 import com.yeshi.fanli.service.inter.order.OrderService;
+import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
+import com.yeshi.fanli.service.inter.push.DeviceActiveService;
 import com.yeshi.fanli.service.inter.push.DeviceTokenHWService;
+import com.yeshi.fanli.service.inter.push.DeviceTokenOPPOService;
+import com.yeshi.fanli.service.inter.push.DeviceTokenVIVOService;
+import com.yeshi.fanli.service.inter.push.DeviceTokenXMService;
 import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
 import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinOriginService;
-import com.yeshi.fanli.service.inter.user.BindingAccountService;
-import com.yeshi.fanli.service.inter.user.ExtractService;
 import com.yeshi.fanli.service.inter.user.ForbiddenUserIdentifyCodeService;
 import com.yeshi.fanli.service.inter.user.ShamUserService;
 import com.yeshi.fanli.service.inter.user.SpreadUserImgService;
@@ -54,15 +60,15 @@
 import com.yeshi.fanli.service.inter.user.UserInfoDeleteRecordService;
 import com.yeshi.fanli.service.inter.user.UserInfoModifyRecordService;
 import com.yeshi.fanli.service.inter.user.UserInfoService;
-import com.yeshi.fanli.service.inter.user.UserMoneyService;
 import com.yeshi.fanli.service.inter.user.UserShareGoodsRecordService;
 import com.yeshi.fanli.service.inter.user.UserSystemCouponService;
+import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce;
 import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.GsonUtil;
+import com.yeshi.fanli.util.RedisKeyEnum;
 import com.yeshi.fanli.util.RedisManager;
 import com.yeshi.fanli.util.StringUtil;
 import com.yeshi.fanli.util.ThreadUtil;
-import com.yeshi.fanli.util.VersionUtil;
 import com.yeshi.fanli.util.account.UserUtil;
 import com.yeshi.fanli.util.wx.WXLoginUtil;
 
@@ -124,6 +130,15 @@
 	private DeviceTokenHWService deviceTokenHWService;
 
 	@Resource
+	private DeviceTokenOPPOService deviceTokenOPPOService;
+
+	@Resource
+	private DeviceTokenXMService deviceTokenXMService;
+
+	@Resource
+	private DeviceTokenVIVOService deviceTokenVIVOService;
+
+	@Resource
 	private TaoBaoUnionConfigService taoBaoUnionConfigService;
 
 	@Resource
@@ -152,13 +167,13 @@
 
 	@Resource
 	private UserTaoLiJinOriginService userTaoLiJinOriginService;
-	
+
 	@Resource
 	private UserInfoModifyRecordService userInfoModifyRecordService;
 
-	private static final String PASSWORD_MAX_ERROR = "password_max_error";
-	private static final String EXTRACT_MIN_MONEY = "extract_min_money";
-	private static final String EXTRACT_MAX_MONEY = "extract_max_money";
+	@Resource
+	private DeviceActiveService deviceActiveService;
+
 
 	/**
 	 * 
@@ -221,8 +236,8 @@
 		tbUserInfo.setTbPic(tbPortrait);
 
 		try {
-			LoginResult result = userAccountService.login(request, first, system.getAppid(), code, phone, tbUserInfo,
-					wxinstall, loginType);
+			LoginResult result = userAccountService.login(request, acceptData, first, system.getAppid(), code, phone,
+					tbUserInfo, wxinstall, loginType);
 			if (result == null)
 				LogHelper.error("login-result涓虹┖鍊�");
 
@@ -252,6 +267,13 @@
 							platformType = 2;
 						}
 						userSystemCouponService.copyLotteryPrize(uuser.getId(), platformType, acceptData.getDevice());
+						// 缁戝畾oppo,vivo鎺ㄩ��
+						DeviceActive active = deviceActiveService.getFirstActiveInfo(acceptData.getDevice());
+						if (active != null) {
+							deviceTokenOPPOService.bindUid(uuser.getId(), active.getId());
+							deviceTokenVIVOService.bindUid(uuser.getId(), active.getId());
+							deviceTokenXMService.bindUid(active.getId(), uuser.getId());
+						}
 					} catch (Exception e) {
 						e.printStackTrace();
 					}
@@ -260,7 +282,7 @@
 
 		} catch (UserAccountException e) {
 			try {
-				LogHelper.cookieLog("鐧诲綍鍑洪敊:" + e.getCode() + "-" + e.getMessage());
+				LogHelper.error("鐧诲綍鍑洪敊:" + e.getCode() + "-" + e.getMessage());
 			} catch (Exception e1) {
 				e1.printStackTrace();
 			}
@@ -334,39 +356,6 @@
 		}
 	}
 
-	/**
-	 * 璐﹀彿鎵撻��
-	 * 
-	 * @param acceptData
-	 * @param mainUid
-	 * @param lessUid
-	 * @param session
-	 * @param out
-	 */
-	@RequestMapping(value = "connect")
-	public void connect(AcceptData acceptData, long mainUid, long lessUid, HttpSession session, PrintWriter out) {
-		BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
-				acceptData.getPackages());
-		if (system == null) {
-			out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
-			return;
-		}
-
-		if (mainUid == 0 || lessUid == 0) {
-			out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犳墦閫氱敤鎴稩D"));
-			return;
-		}
-
-		try {
-			userAccountService.connectUsers(new UserInfo(mainUid), new UserInfo(lessUid));
-			UserInfo user = userInfoService.getUserByIdWithMybatis(mainUid);
-			JSONObject data = new JSONObject();
-			data.put("user", GsonUtil.toJsonExpose(UserUtil.filterForClientUser(user)));
-			out.print(JsonUtil.loadTrueResult(data));
-		} catch (UserAccountException e) {
-			out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
-		}
-	}
 
 	/**
 	 * 鑾峰彇鐢ㄦ埛ID
@@ -387,7 +376,10 @@
 		}
 		UserInfo user = null;
 		if (!StringUtil.isNullOrEmpty(code)) {
-			WeiXinUser weiXinUser = WXLoginUtil.getWeiXinUserWithSavePortrait(code);
+			WXAccountInfoDTO accountInfo = Constant.getWXAccount(acceptData.getPlatform(), acceptData.getVersion());
+
+			WeiXinUser weiXinUser = WXLoginUtil.getWeiXinUserWithSavePortrait(code, accountInfo.getAppId(),
+					accountInfo.getAppSecret());
 			if (weiXinUser == null) {
 				out.print(JsonUtil.loadFalseResult(1, "鑾峰彇寰俊鐢ㄦ埛淇℃伅澶辫触"));
 				return;
@@ -640,7 +632,7 @@
 		}
 
 		try {
-			userAccountService.changeWXBind(uid, code);
+			userAccountService.changeWXBind(acceptData, uid, code);
 			UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
 			// 鍒ゆ柇taoBaoUid鏄惁宸茬粡灏佺
 			ForbiddenUserIdentifyCode ic = forbiddenUserIdentifyCodeService
@@ -769,8 +761,7 @@
 			return;
 		}
 
-		String key = "bindalipay-" + uid;
-
+		String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.bindAlipay, uid + "");
 		if (!StringUtil.isNullOrEmpty(redisManager.getCommonString(key))) {
 			out.print(JsonUtil.loadFalseResult(2, "鏈嶅姟鍣ㄧ箒蹇欙紝璇风◢鍚庨噸璇�"));
 			return;
@@ -825,8 +816,7 @@
 			return;
 		}
 
-		String key = "bindalipay-" + uid;
-
+		String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.bindAlipay, uid + "");
 		if (!StringUtil.isNullOrEmpty(redisManager.getCommonString(key))) {
 			out.print(JsonUtil.loadFalseResult(1001, "鏈嶅姟鍣ㄧ箒蹇欙紝璇风◢鍚庨噸璇�"));
 			return;
@@ -916,8 +906,7 @@
 			return;
 		}
 
-		String key = "bindalipay-" + uid;
-
+		String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.bindAlipay, uid + "");
 		if (!StringUtil.isNullOrEmpty(redisManager.getCommonString(key))) {
 			out.print(JsonUtil.loadFalseResult(1001, "鏈嶅姟鍣ㄧ箒蹇欙紝璇风◢鍚庨噸璇�"));
 			return;
@@ -941,6 +930,8 @@
 		String[] ALIPAY_CODES = new String[] { "SYSTEM_ERROR", "PERMIT_CHECK_PERM_LIMITED", "PERM_AML_NOT_REALNAME_REV",
 				"PERM_AML_NOT_REALNAME_REV", "PAYEE_USER_INFO_ERROR", "PAYEE_ACC_OCUPIED",
 				"PERMIT_CHECK_PERM_IDENTITY_THEFT", "PERMIT_NON_BANK_LIMIT_PAYEE", "EXCEED_LIMIT_UNRN_DM_AMOUNT" };
+		BindingAccount oldBindingAccount = bindingAccountService.getBindingAccountByUidAndType(uid,
+				BindingAccount.TYPE_ALIPAY);
 		try {
 			BigDecimal balance = user.getMyHongBao();
 			BindingAccount bindingAccount = bindingAccountService.changeAlipayBindingWithVerify(uid, name, account);
@@ -951,7 +942,7 @@
 			else
 				out.print(JsonUtil.loadTrue(0, JsonUtil.getGson().toJson(bindingAccount),
 						"绯荤粺宸叉垚鍔熻浆璐�0.1鍏冨埌鎻愮幇璐﹀彿涓紝鎻愮幇璐﹀彿楠岃瘉閫氳繃锛屾伃鍠滀綘锛佸彲浠ユ彁鐜颁簡銆傛敞锛氭0.1鍏冨皢浼氬湪鍚庣画浜х敓鐨勪綑棰濅腑鍚堢悊鎵i櫎锛屾暚璇风煡鏅撱��"));
-			
+
 			userInfoModifyRecordService.addModifyRecord(uid, ModifyTypeEnum.bindAlipay, account);
 		} catch (AlipayTransferException e1) {
 			if (e1.getSubCode().equalsIgnoreCase("PAYEE_NOT_EXIST")) {
@@ -974,7 +965,11 @@
 		} catch (AlipayAccountException e3) {
 			// 璐︽埛鏃犱綑棰�
 			if (e3.getCode() == AlipayAccountException.CODE_NO_MONEY) {
-				out.print(JsonUtil.loadFalseResult(5, "浣犵殑璐︽埛鐩墠娌℃湁浣欓锛屾棤闇�缁戝畾鎻愮幇璐﹀彿銆�"));
+				if (oldBindingAccount != null) {
+					out.print(JsonUtil.loadFalseResult(5, "褰撳墠璐︽埛娌℃湁浣欓锛屾棤闇�淇敼锛岃鏈変綑棰濆悗淇敼"));
+				} else {
+					out.print(JsonUtil.loadFalseResult(5, "褰撳墠璐︽埛娌℃湁浣欓锛岃鏈変綑棰濆悗缁戝畾"));
+				}
 				return;
 				// 鎻愮幇娆℃暟闄愬埗
 			} else if (e3.getCode() == AlipayAccountException.CODE_TIMES_LIMIT) {
@@ -1118,9 +1113,19 @@
 	public void logOut(AcceptData acceptData, Long uid, PrintWriter out) {
 		if (uid == null || uid == 0)
 			return;
-		// 闇�瑕佽В缁慔W鎺ㄩ�佺殑鐢ㄦ埛缁戝畾
-		if ("android".equalsIgnoreCase(acceptData.getPlatform()))
+		if ("android".equalsIgnoreCase(acceptData.getPlatform())) {
+			DeviceActive deviceActive = deviceActiveService.getFirstActiveInfo(acceptData.getDevice());
+			// 闇�瑕佽В缁慔W鎺ㄩ�佺殑鐢ㄦ埛缁戝畾
 			deviceTokenHWService.unBindDeviceToken(acceptData.getDevice());
+			if (deviceActive != null) {
+				// 瑙g粦OPPO鎺ㄩ�佺殑鐢ㄦ埛缁戝畾
+				deviceTokenOPPOService.unBindUid(uid, deviceActive.getId());
+				// 瑙g粦VIVO鎺ㄩ�佺殑鐢ㄦ埛缁戝畾
+				deviceTokenVIVOService.unBindUid(uid, deviceActive.getId());
+				// 瑙g粦XM鎺ㄩ�佺殑鐢ㄦ埛缁戝畾
+				deviceTokenXMService.unBindUid(deviceActive.getId());
+			}
+		}
 		out.print(JsonUtil.loadTrueResult(""));
 	}
 
@@ -1156,7 +1161,7 @@
 
 			// 寰俊鐧诲綍
 			if (loginType == 2) {
-				userInfo = userAccountService.loginWinXin(request, loginType, code, system.getAppid());
+				userInfo = userAccountService.loginWinXin(request, acceptData, loginType, code, system.getAppid());
 			}
 
 			if (userInfo == null) {
@@ -1191,13 +1196,12 @@
 							e.printStackTrace();
 						}
 
-						if (VersionUtil.greaterThan_1_5_60(acceptData.getPlatform(), acceptData.getVersion())) {
-							/* 鏂颁汉绾㈠寘 */
-							try {
-								userTaoLiJinOriginService.synchDeviceHongbao(uuser.getId(), device);
-							} catch (Exception e) {
-								e.printStackTrace();
-							}
+						// 缁戝畾oppo鎺ㄩ��
+						DeviceActive active = deviceActiveService.getFirstActiveInfo(acceptData.getDevice());
+						if (active != null) {
+							deviceTokenOPPOService.bindUid(uuser.getId(), active.getId());
+							deviceTokenVIVOService.bindUid(uuser.getId(), active.getId());
+							deviceTokenXMService.bindUid(active.getId(), uuser.getId());
 						}
 					}
 				});
@@ -1206,7 +1210,7 @@
 		} catch (UserAccountException e) {
 			out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
 			try {
-				LogHelper.cookieLog("鐧诲綍鍑洪敊:" + e.getCode() + "-" + e.getMessage());
+				LogHelper.error("鐧诲綍鍑洪敊:" + e.getCode() + "-" + e.getMessage());
 			} catch (Exception e1) {
 				e1.printStackTrace();
 			}
@@ -1312,7 +1316,7 @@
 		}
 
 		try {
-			userAccountService.bindWeiXin(uid, code);
+			userAccountService.bindWeiXin(acceptData, uid, code);
 
 			UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
 			// 鍒ゆ柇taoBaoUid鏄惁宸茬粡灏佺

--
Gitblit v1.8.0