From aec36e0e136b55ffeb1d22dd3d7f5c2443b806aa Mon Sep 17 00:00:00 2001
From: yujian <yujian@123.com>
Date: 星期一, 23 九月 2019 10:49:56 +0800
Subject: [PATCH] 品牌 后台管理

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserAccountServiceImpl.java |  137 +++++++++++++++++++++++++--------------------
 1 files changed, 75 insertions(+), 62 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserAccountServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserAccountServiceImpl.java
index d24e104..026e03c 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserAccountServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserAccountServiceImpl.java
@@ -24,6 +24,8 @@
 import com.yeshi.fanli.dao.mybatis.AccountMessageMapper;
 import com.yeshi.fanli.dao.mybatis.UserConnectHistoryMapper;
 import com.yeshi.fanli.dao.mybatis.UserInfoMapper;
+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;
 import com.yeshi.fanli.entity.bus.user.ForbiddenUserIdentifyCode.ForbiddenUserIdentifyCodeTypeEnum;
@@ -36,21 +38,21 @@
 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.exception.UserAccountException;
 import com.yeshi.fanli.exception.user.ForbiddenUserIdentifyCodeException;
+import com.yeshi.fanli.exception.user.UserAccountException;
 import com.yeshi.fanli.log.LogHelper;
-import com.yeshi.fanli.service.inter.hongbao.ThreeSaleSerivce;
-import com.yeshi.fanli.service.inter.msg.UserAccountMsgNotificationService;
-import com.yeshi.fanli.service.inter.user.BindingAccountService;
+import com.yeshi.fanli.service.inter.money.extract.BindingAccountService;
 import com.yeshi.fanli.service.inter.user.ForbiddenUserIdentifyCodeService;
 import com.yeshi.fanli.service.inter.user.SpreadUserImgService;
 import com.yeshi.fanli.service.inter.user.UserAccountBindingHistoryService;
 import com.yeshi.fanli.service.inter.user.UserAccountService;
-import com.yeshi.fanli.service.inter.user.UserExtraTaoBaoInfoService;
 import com.yeshi.fanli.service.inter.user.UserInfoDeleteRecordService;
 import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
 import com.yeshi.fanli.service.inter.user.UserInfoModifyRecordService;
 import com.yeshi.fanli.service.inter.user.UserInfoService;
+import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce;
+import com.yeshi.fanli.service.inter.user.msg.UserAccountMsgNotificationService;
+import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService;
 import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.FileUtil;
 import com.yeshi.fanli.util.RedisManager;
@@ -111,16 +113,16 @@
 
 	@Resource
 	private JedisPool jedisPool;
-	
-	
+
 	@Lazy
 	@Resource
 	private UserInfoModifyRecordService userInfoModifyRecordService;
-	
+
 	@Transactional
 	@Override
-	public LoginResult login(HttpServletRequest request, Boolean first, String appId, String code, String phone,
-			UserInfo tbUserInfo, boolean wxinstall, int loginType) throws UserAccountException {
+	public LoginResult login(HttpServletRequest request, AcceptData acceptData, Boolean first, String appId,
+			String code, String phone, UserInfo tbUserInfo, boolean wxinstall, int loginType)
+			throws UserAccountException {
 
 		JSONObject logInfo = new JSONObject();
 		logInfo.put("appId", appId);
@@ -182,7 +184,9 @@
 
 			case 2:// 寰俊
 					// 閫氳繃Code鎹㈠彇淇℃伅
-				weiXinUser = WXLoginUtil.getWeiXinUserWithSavePortrait(code);
+				WXAccountInfoDTO wxAccount = Constant.getWXAccount(acceptData.getPlatform(), acceptData.getVersion());
+				weiXinUser = WXLoginUtil.getWeiXinUserWithSavePortrait(code, wxAccount.getAppId(),
+						wxAccount.getAppSecret());
 				if (weiXinUser == null)
 					throw new UserAccountException(1001, "鏃犳硶鑾峰彇鍒板井淇′釜浜轰俊鎭�");
 				LogHelper.test("寰俊鎺堟潈鐢ㄦ埛淇℃伅锛�" + new Gson().toJson(weiXinUser));
@@ -363,7 +367,7 @@
 			}
 
 		} else {// 娌℃湁瀹夎寰俊
-			LoginResult result = loginNoInstallWX(appId, code, phone, tbUserInfo, loginType);
+			LoginResult result = loginNoInstallWX(acceptData, appId, code, phone, tbUserInfo, loginType);
 			if (result.getType() == LoginResult.TYPE_CREATE)
 				session.setAttribute("LAST_LOGIN_USER", result.getUser());
 			return result;
@@ -372,8 +376,8 @@
 
 	@Transactional
 	@Override
-	public LoginResult loginNoInstallWX(String appId, String code, String phone, UserInfo tbUserInfo, int loginType)
-			throws UserAccountException {
+	public LoginResult loginNoInstallWX(AcceptData acceptData, String appId, String code, String phone,
+			UserInfo tbUserInfo, int loginType) throws UserAccountException {
 		JSONObject logInfo = new JSONObject();
 		logInfo.put("appId", appId);
 		logInfo.put("code", code);
@@ -397,7 +401,9 @@
 			break;
 		case 2:// 寰俊
 				// 閫氳繃Code鎹㈠彇淇℃伅
-			weiXinUser = WXLoginUtil.getWeiXinUserWithSavePortrait(code);
+			WXAccountInfoDTO wxAccount = Constant.getWXAccount(acceptData.getPlatform(), acceptData.getVersion());
+			weiXinUser = WXLoginUtil.getWeiXinUserWithSavePortrait(code, wxAccount.getAppId(),
+					wxAccount.getAppSecret());
 			if (weiXinUser == null)
 				throw new UserAccountException(1001, "鏃犳硶鑾峰彇鍒板井淇′釜浜轰俊鎭�");
 
@@ -698,7 +704,7 @@
 		if (StringUtil.isNullOrEmpty(user.getPortrait()))
 			user.setPortrait(Constant.systemCommonConfig.getDefaultPortrait());
 		userInfoMapper.insertSelective(user);
-		
+
 		// 鏄电О涓虹┖鏃� 榛樿鏄电О
 		if (StringUtil.isNullOrEmpty(user.getNickName())) {
 			UserInfo updateUserInfo = new UserInfo(user.getId());
@@ -712,14 +718,13 @@
 		} catch (Exception e) {
 			e.printStackTrace();
 		}
-		
-		
-		if (!StringUtil.isNullOrEmpty(user.getPhone())) 
+
+		if (!StringUtil.isNullOrEmpty(user.getPhone()))
 			userInfoModifyRecordService.addModifyRecord(uid, ModifyTypeEnum.bindPhone, user.getPhone());
-		
-		if (!StringUtil.isNullOrEmpty(user.getWxUnionId())) 
+
+		if (!StringUtil.isNullOrEmpty(user.getWxUnionId()))
 			userInfoModifyRecordService.addModifyRecord(uid, ModifyTypeEnum.bindWeiXin, user.getWxUnionId());
-		
+
 	}
 
 	@Override
@@ -729,7 +734,7 @@
 
 	@Override
 	public void bindPhone(Long uid, String phone) throws UserAccountException {
-		UserInfo user = userInfoMapper.selectByPrimaryKey(uid);
+		UserInfo user = userInfoMapper.selectAvailableByPrimaryKey(uid);
 		if (user == null)
 			throw new UserAccountException(4, "鐢ㄦ埛涓嶅瓨鍦�");
 
@@ -744,14 +749,13 @@
 		update.setPhone(phone);
 		userInfoMapper.updateByPrimaryKeySelective(update);
 		userAccountMsgNotificationService.bindingSuccess(uid, MsgAccountDetailFactory.TYPE_PHONE);
-		
-		
+
 		userInfoModifyRecordService.addModifyRecord(uid, ModifyTypeEnum.bindPhone, phone);
 	}
 
 	@Override
 	public void unBindPhone(Long uid, String phone) throws UserAccountException {
-		UserInfo user = userInfoMapper.selectByPrimaryKey(uid);
+		UserInfo user = userInfoMapper.selectAvailableByPrimaryKey(uid);
 		if (user == null)
 			throw new UserAccountException(4, "鐢ㄦ埛涓嶅瓨鍦�");
 
@@ -773,7 +777,7 @@
 	@Override
 	public void bindTaoBao(Long uid, String tbOpenId, String tbNickName, String tbPortrait)
 			throws UserAccountException {
-		UserInfo user = userInfoMapper.selectByPrimaryKey(uid);
+		UserInfo user = userInfoMapper.selectAvailableByPrimaryKey(uid);
 		if (user == null)
 			throw new UserAccountException(4, "鐢ㄦ埛涓嶅瓨鍦�");
 
@@ -803,7 +807,7 @@
 
 	@Override
 	public void unBindTaoBao(Long uid) throws UserAccountException {
-		UserInfo user = userInfoMapper.selectByPrimaryKey(uid);
+		UserInfo user = userInfoMapper.selectAvailableByPrimaryKey(uid);
 		if (user == null)
 			throw new UserAccountException(4, "鐢ㄦ埛涓嶅瓨鍦�");
 		if (StringUtil.isNullOrEmpty(user.getOpenid()))
@@ -830,11 +834,13 @@
 	}
 
 	@Override
-	public void changeWXBind(Long uid, String code) throws UserAccountException {
-		UserInfo user = userInfoMapper.selectByPrimaryKey(uid);
+	public void changeWXBind(AcceptData acceptData, Long uid, String code) throws UserAccountException {
+		UserInfo user = userInfoMapper.selectAvailableByPrimaryKey(uid);
 		if (user == null)
 			throw new UserAccountException(4, "鐢ㄦ埛涓嶅瓨鍦�");
-		WeiXinUser weiXinUser = WXLoginUtil.getWeiXinUserWithSavePortrait(code);
+		WXAccountInfoDTO wxAccount = Constant.getWXAccount(acceptData.getPlatform(), acceptData.getVersion());
+		WeiXinUser weiXinUser = WXLoginUtil.getWeiXinUserWithSavePortrait(code, wxAccount.getAppId(),
+				wxAccount.getAppSecret());
 		if (weiXinUser == null)
 			throw new UserAccountException(10, "鑾峰彇寰俊鐢ㄦ埛淇℃伅澶辫触");
 		if (weiXinUser.getUnionid().equalsIgnoreCase(user.getWxUnionId()))
@@ -842,18 +848,21 @@
 
 		UserInfo newUser = getUserInfoByWXUnionId(user.getAppId(), weiXinUser.getUnionid());
 		if (newUser != null)
-			throw new UserAccountException(13, "浜诧紝浣犺鏇存崲缁戝畾鐨勫井淇″彿宸茶鍏朵粬璐﹀彿缁戝畾");
+			throw new UserAccountException(13, "璇ュ井淇″彿宸茶鍏朵粬璐﹀彿缁戝畾");
 
 		UserInfo updateUserInfo = new UserInfo(uid);
 		updateUserInfo.setWxName(weiXinUser.getNickname());
 		updateUserInfo.setWxOpenId(weiXinUser.getOpenid());
 		updateUserInfo.setWxPic(weiXinUser.getHeadimgurl());
 		updateUserInfo.setWxUnionId(weiXinUser.getUnionid());
+
 		// 灏嗛粯璁ゆ樀绉版浛鎹㈡垚寰俊鏄电О
 		String defaultNickName = Constant.systemCommonConfig.getDefaultNickName();
-		if (!StringUtil.isNullOrEmpty(weiXinUser.getNickname()) && !StringUtil.isNullOrEmpty(defaultNickName)
-				&& (defaultNickName.equals(user.getNickName()) || "杩斿埄鍒�".equals(user.getNickName()))) {
-			updateUserInfo.setNickName(weiXinUser.getNickname());
+		if (!StringUtil.isNullOrEmpty(defaultNickName) && !StringUtil.isNullOrEmpty(weiXinUser.getNickname())) {
+			defaultNickName = defaultNickName + uid;
+			if ((defaultNickName.equals(user.getNickName()) || "鏉挎牀蹇渷".equals(user.getNickName()))) {
+				updateUserInfo.setNickName(weiXinUser.getNickname());
+			}
 		}
 
 		// 灏嗛粯璁ゅご鍍忔浛鎹㈡垚寰俊澶村儚
@@ -862,12 +871,11 @@
 				&& defaultPortrait.equals(user.getPortrait())) {
 			updateUserInfo.setPortrait(weiXinUser.getHeadimgurl());
 		}
-		
+
 		userInfoMapper.updateByPrimaryKeySelective(updateUserInfo);
 
 		userAccountMsgNotificationService.changeBindingSuccess(uid, MsgAccountDetailFactory.TYPE_WX);
-		
-		
+
 		userInfoModifyRecordService.addModifyRecord(uid, ModifyTypeEnum.bindWeiXin, weiXinUser.getUnionid());
 	}
 
@@ -878,7 +886,7 @@
 				TimeUtil.getGernalTime(System.currentTimeMillis(), "yyyyMMddHHmmss"));
 
 		// 澶囦唤鐢ㄦ埛淇℃伅
-		UserInfo user = userInfoMapper.selectByPrimaryKey(uid);
+		UserInfo user = userInfoMapper.selectAvailableByPrimaryKey(uid);
 
 		// TODO 澶囦唤璧勯噾鏄庣粏
 
@@ -915,7 +923,7 @@
 	public void clearUserPortrait(Long uid) {
 		if (uid == null)
 			return;
-		UserInfo user = userInfoMapper.selectByPrimaryKey(uid);
+		UserInfo user = userInfoMapper.selectAvailableByPrimaryKey(uid);
 		String prefix = String.format("/portrait/wx/%s_", user.getWxUnionId());
 		ObjectListing list = COSManager.getInstance().getObjectList(prefix, null, 30);
 		if (list != null && list.getObjectSummaries() != null)
@@ -930,7 +938,7 @@
 	public String repairPortrait(Long uid) {
 		if (uid == null)
 			return null;
-		UserInfo user = userInfoMapper.selectByPrimaryKey(uid);
+		UserInfo user = userInfoMapper.selectAvailableByPrimaryKey(uid);
 		if (user == null)
 			return null;
 		String prefix = String.format("/portrait/wx/%s_", user.getWxUnionId());
@@ -1020,7 +1028,7 @@
 			if (exec == null || exec.size() == 0) {
 				throw new UserAccountException(10, "璇风◢鍚庡啀璇�");
 			} else {
-				
+
 				// 鏌ヨ鏄惁瀛樺湪璇ョ數璇濆巻鍙茬敤鎴�
 				UserInfo userInfo = userInfoMapper.getEffectiveUserInfoByPhone(phone);
 				if (userInfo != null) {
@@ -1029,7 +1037,7 @@
 				} else {
 					userInfo = new UserInfo();
 					userInfo.setAppId(appId);
-					//userInfo.setNickName(Constant.systemCommonConfig.getDefaultNickName());
+					// userInfo.setNickName(Constant.systemCommonConfig.getDefaultNickName());
 					userInfo.setPortrait(Constant.systemCommonConfig.getDefaultPortrait());
 					userInfo.setPhone(phone);
 					userInfo.setLoginType(loginType);
@@ -1043,10 +1051,10 @@
 					} catch (Exception e) {
 						e.printStackTrace();
 					}
-					
+
 					userInfoModifyRecordService.addModifyRecord(userInfo.getId(), ModifyTypeEnum.bindPhone, phone);
 				}
-			
+
 				return userInfo;
 			}
 		} catch (Exception e) {
@@ -1061,8 +1069,8 @@
 
 	@Transactional
 	@Override
-	public UserInfo loginWinXin(HttpServletRequest request, int loginType, String code, String appId)
-			throws UserAccountException {
+	public UserInfo loginWinXin(HttpServletRequest request, AcceptData acceptData, int loginType, String code,
+			String appId) throws UserAccountException {
 		// 鏃ュ織淇℃伅
 		JSONObject logInfo = new JSONObject();
 		logInfo.put("appId", appId);
@@ -1071,7 +1079,9 @@
 		LogHelper.lgoinInfo(logInfo.toString());
 
 		// 閫氳繃Code鎹㈠彇淇℃伅
-		WeiXinUser weiXinUser = WXLoginUtil.getWeiXinUserWithSavePortrait(code);
+		WXAccountInfoDTO wxAccount = Constant.getWXAccount(acceptData.getPlatform(), acceptData.getVersion());
+		WeiXinUser weiXinUser = WXLoginUtil.getWeiXinUserWithSavePortrait(code, wxAccount.getAppId(),
+				wxAccount.getAppSecret());
 		if (weiXinUser == null) {
 			throw new UserAccountException(1, "寰俊甯愬彿鎺堟潈澶辫触");
 		}
@@ -1129,8 +1139,9 @@
 					} catch (Exception e) {
 						e.printStackTrace();
 					}
-					
-					userInfoModifyRecordService.addModifyRecord(userInfo.getId(), ModifyTypeEnum.bindWeiXin, weiXinUser.getUnionid());
+
+					userInfoModifyRecordService.addModifyRecord(userInfo.getId(), ModifyTypeEnum.bindWeiXin,
+							weiXinUser.getUnionid());
 				}
 				return userInfo;
 			}
@@ -1162,7 +1173,7 @@
 
 	@Override
 	public void bindPhoneNew(Long uid, String phone) throws UserAccountException {
-		UserInfo user = userInfoMapper.selectByPrimaryKey(uid);
+		UserInfo user = userInfoMapper.selectAvailableByPrimaryKey(uid);
 		if (user == null) {
 			throw new UserAccountException(1, "鐢ㄦ埛涓嶅瓨鍦�");
 		}
@@ -1196,19 +1207,20 @@
 
 		// 鍙戦�佹秷鎭�
 		userAccountMsgNotificationService.bindingSuccess(uid, MsgAccountDetailFactory.TYPE_PHONE);
-		
+
 		userInfoModifyRecordService.addModifyRecord(uid, ModifyTypeEnum.bindPhone, phone);
-		
+
 	}
 
 	@Override
-	public void bindWeiXin(Long uid, String code) throws UserAccountException {
-		UserInfo user = userInfoMapper.selectByPrimaryKey(uid);
+	public void bindWeiXin(AcceptData acceptData, Long uid, String code) throws UserAccountException {
+		UserInfo user = userInfoMapper.selectAvailableByPrimaryKey(uid);
 		if (user == null) {
 			throw new UserAccountException(1, "鐢ㄦ埛涓嶅瓨鍦�");
 		}
-
-		WeiXinUser weiXinUser = WXLoginUtil.getWeiXinUserWithSavePortrait(code);
+		WXAccountInfoDTO wxAccount = Constant.getWXAccount(acceptData.getPlatform(), acceptData.getVersion());
+		WeiXinUser weiXinUser = WXLoginUtil.getWeiXinUserWithSavePortrait(code, wxAccount.getAppId(),
+				wxAccount.getAppSecret());
 		if (weiXinUser == null) {
 			throw new UserAccountException(2, "寰俊甯愬彿鎺堟潈澶辫触");
 		}
@@ -1240,9 +1252,11 @@
 
 		// 灏嗛粯璁ゆ樀绉版浛鎹㈡垚寰俊鏄电О
 		String defaultNickName = Constant.systemCommonConfig.getDefaultNickName();
-		if (!StringUtil.isNullOrEmpty(weiXinUser.getNickname()) && !StringUtil.isNullOrEmpty(defaultNickName)
-				&& (defaultNickName.equals(user.getNickName()) || "杩斿埄鍒�".equals(user.getNickName()))) {
-			updateUserInfo.setNickName(weiXinUser.getNickname());
+		if (!StringUtil.isNullOrEmpty(defaultNickName) && !StringUtil.isNullOrEmpty(weiXinUser.getNickname())) {
+			defaultNickName = defaultNickName + uid;
+			if ((defaultNickName.equals(user.getNickName()) || "鏉挎牀蹇渷".equals(user.getNickName()))) {
+				updateUserInfo.setNickName(weiXinUser.getNickname());
+			}
 		}
 
 		// 灏嗛粯璁ゅご鍍忔浛鎹㈡垚寰俊澶村儚
@@ -1267,8 +1281,7 @@
 		userAccountBindingHistoryService.addUserAccountBindingHistory(history);
 
 		userAccountMsgNotificationService.bindingSuccess(uid, MsgAccountDetailFactory.TYPE_WX);
-		
-		
+
 		userInfoModifyRecordService.addModifyRecord(uid, ModifyTypeEnum.bindWeiXin, wxUnionId);
 	}
 

--
Gitblit v1.8.0