From ad9fbd2c18f280ef9bba47f28353d367cf2d94e8 Mon Sep 17 00:00:00 2001
From: yujian <yujian>
Date: 星期二, 14 五月 2019 11:28:03 +0800
Subject: [PATCH] Merge branch 'div_12'

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserAccountServiceImpl.java |  117 +++++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 82 insertions(+), 35 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 2a99246..f144b17 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
@@ -29,6 +29,7 @@
 import com.yeshi.fanli.entity.bus.user.LoginResult;
 import com.yeshi.fanli.entity.bus.user.SMSHistory;
 import com.yeshi.fanli.entity.bus.user.ThreeSale;
+import com.yeshi.fanli.entity.bus.user.UserAccountBindingHistory;
 import com.yeshi.fanli.entity.bus.user.UserConnectHistory;
 import com.yeshi.fanli.entity.bus.user.UserInfo;
 import com.yeshi.fanli.entity.bus.user.WeiXinUser;
@@ -39,6 +40,7 @@
 import com.yeshi.fanli.service.inter.user.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.UserInfoExtraService;
@@ -84,9 +86,12 @@
 
 	@Resource
 	private ForbiddenUserIdentifyCodeService forbiddenUserIdentifyCodeService;
-	
+
 	@Resource
 	private UserInfoExtraService userInfoExtraService;
+
+	@Resource
+	private UserAccountBindingHistoryService userAccountBindingHistoryService;
 
 	@Transactional
 	@Override
@@ -672,6 +677,14 @@
 			updateUserInfo.setNickName(Constant.systemCommonConfig.getDefaultNickName() + user.getId());
 			userInfoMapper.updateByPrimaryKeySelective(updateUserInfo);
 		}
+		
+		try {
+			// 绗竴娆$櫥褰曟椂鍒涘缓鐢ㄦ埛棰濆淇℃伅
+			userInfoExtraService.createUserInfoExtra(user.getId());
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		
 	}
 
 	@Override
@@ -900,21 +913,19 @@
 		return user.getPortrait();
 	}
 
-	
-	
 	@Transactional
 	@Override
-	public UserInfo loginPhone(HttpServletRequest request,int loginType, String vcode, String phone,
-			String appId) throws UserAccountException {
+	public UserInfo loginPhone(HttpServletRequest request, int loginType, String vcode, String phone, String appId)
+			throws UserAccountException {
 
 		// 绌洪娓呯悊
 		if (phone == null || phone.trim().length() == 0) {
 			throw new UserAccountException(1, "璇疯緭鍏ユ墜鏈哄彿鐮�");
 		}
 		phone = phone.replaceAll(" ", "");
-				
+
 		// 鑻规灉搴旂敤鍟嗗簵涓婄嚎娴嬭瘯鍙风爜
-		if ("17316780233".equalsIgnoreCase(phone) && "258168".equalsIgnoreCase(vcode)) {
+		if ("17316780233".equalsIgnoreCase(phone) && "2581".equalsIgnoreCase(vcode)) {
 			;
 		} else {
 
@@ -928,8 +939,7 @@
 				throw new UserAccountException(1, "楠岃瘉鐮侀敊璇紝閲嶆柊杈撳叆");
 			}
 		}
-		redisManager.clearSMSFrequencyLimit(phone, SMSHistory.TYPE_LOGIN);
-		
+
 		JSONObject logInfo = new JSONObject();
 		logInfo.put("appId", appId);
 		logInfo.put("phone", phone);
@@ -942,6 +952,11 @@
 		if (identifyCode1 != null && identifyCode1.getEffective() != null && identifyCode1.getEffective()) {
 			throw new UserAccountException(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC);
 		}
+
+		// 娓呯┖闄愬埗
+		redisManager.clearSMSFrequencyLimit(phone, SMSHistory.TYPE_LOGIN);
+		// 娓呯悊娆℃暟
+		redisManager.removeCommonString("sendMSNLoginCount" + phone);
 
 		// 鏌ヨ鏄惁瀛樺湪璇ョ數璇濆巻鍙茬敤鎴�
 		UserInfo userInfo = userInfoMapper.getEffectiveUserInfoByPhone(phone);
@@ -958,8 +973,7 @@
 			userInfo.setState(UserInfo.STATE_NORMAL);
 			// 鍒涘缓鐢ㄦ埛
 			addUser(userInfo);
-			
-			
+
 			try {
 				// 绗竴娆$櫥褰曟椂鍒涘缓鐢ㄦ埛棰濆淇℃伅
 				userInfoExtraService.createUserInfoExtra(userInfo.getId());
@@ -970,10 +984,11 @@
 
 		return userInfo;
 	}
-	
+
 	@Transactional
 	@Override
-	public UserInfo loginWinXin(HttpServletRequest request,int loginType, String code, String appId) throws UserAccountException {
+	public UserInfo loginWinXin(HttpServletRequest request, int loginType, String code, String appId)
+			throws UserAccountException {
 		// 鏃ュ織淇℃伅
 		JSONObject logInfo = new JSONObject();
 		logInfo.put("appId", appId);
@@ -998,9 +1013,13 @@
 		UserInfo userInfo = userInfoMapper.getEffectiveUserInfoByWXUnionId(weiXinUser.getUnionid());
 		// 鐩存帴鐢ㄧ殑寰俊鐧诲綍
 		if (userInfo != null) {
+			LogHelper.test("寰俊unionID瀛樺湪:"+weiXinUser.getUnionid());
 			// 鏇存柊璐︽埛鐧诲綍淇℃伅
 			updateLonginInfo(userInfo, loginType, request);
+			// 鍒犻櫎閭�璇峰垎浜浘
+			spreadUserImgService.deleteImgUrl(userInfo.getId());
 		} else {
+			LogHelper.test("寰俊unionID涓嶅瓨鍦�:"+weiXinUser.getUnionid());
 			// 鍒涘缓鏂拌处鎴�
 			userInfo = new UserInfo();
 			userInfo.setPortrait(weiXinUser.getHeadimgurl());
@@ -1015,7 +1034,7 @@
 			userInfo.setLastLoginIp(request.getRemoteHost());
 			userInfo.setState(UserInfo.STATE_NORMAL);
 			addUser(userInfo);
-			
+
 			try {
 				// 绗竴娆$櫥褰曟椂鍒涘缓鐢ㄦ埛棰濆淇℃伅
 				userInfoExtraService.createUserInfoExtra(userInfo.getId());
@@ -1025,9 +1044,10 @@
 		}
 		return userInfo;
 	}
-	
+
 	/**
 	 * 鏇存柊璐︽埛鐧诲綍淇℃伅
+	 * 
 	 * @param userInfo
 	 * @param loginType
 	 * @param request
@@ -1040,15 +1060,14 @@
 		updateUserInfo.setLastLoginIp(request.getRemoteHost());
 		userInfoMapper.updateByPrimaryKeySelective(updateUserInfo);
 	}
-	
-	
+
 	@Override
 	public void bindPhoneNew(Long uid, String phone) throws UserAccountException {
 		UserInfo user = userInfoMapper.selectByPrimaryKey(uid);
 		if (user == null) {
 			throw new UserAccountException(1, "鐢ㄦ埛涓嶅瓨鍦�");
 		}
-		
+
 		String hasPhone = user.getPhone();
 		if (!StringUtil.isNullOrEmpty(hasPhone) && hasPhone.equals(phone)) {
 			throw new UserAccountException(2, "鎮ㄥ凡缁忕粦瀹氫簡璇ョ數璇濆彿鐮�");
@@ -1058,44 +1077,59 @@
 		if (phoneUser != null) {
 			throw new UserAccountException(2, "鍙风爜宸茬粡琚崰鐢�");
 		}
-		
+
 		// 鏇存柊鐢佃瘽鍙风爜
 		UserInfo update = new UserInfo(user.getId());
 		update.setPhone(phone);
 		userInfoMapper.updateByPrimaryKeySelective(update);
-		
+		// 鍔犲叆缁戝畾璁板綍
+		UserAccountBindingHistory history = new UserAccountBindingHistory();
+		history.setContent(phone);
+		history.setType(UserAccountBindingHistory.TYPE_PHONE);
+		history.setUid(uid);
+
+		// 涔嬪墠宸茬粡缁戝畾鐢佃瘽鍙风爜
+		if (!StringUtil.isNullOrEmpty(user.getPhone()))
+			history.setFirst(false);
+		else
+			history.setFirst(true);
+		userAccountBindingHistoryService.addUserAccountBindingHistory(history);
+
 		// 鍙戦�佹秷鎭�
 		userAccountMsgNotificationService.bindingSuccess(uid, MsgAccountDetailFactory.TYPE_PHONE);
 	}
-	
-	
+
 	@Override
 	public void bindWeiXin(Long uid, String code) throws UserAccountException {
 		UserInfo user = userInfoMapper.selectByPrimaryKey(uid);
 		if (user == null) {
 			throw new UserAccountException(1, "鐢ㄦ埛涓嶅瓨鍦�");
 		}
-		
+
 		WeiXinUser weiXinUser = WXLoginUtil.getWeiXinUserWithSavePortrait(code);
 		if (weiXinUser == null) {
 			throw new UserAccountException(2, "寰俊甯愬彿鎺堟潈澶辫触");
 		}
 		
-		if (weiXinUser.getUnionid().equalsIgnoreCase(user.getWxUnionId())) {
+		String wxUnionId = weiXinUser.getUnionid();
+		if (StringUtil.isNullOrEmpty(wxUnionId)) {
+			throw new UserAccountException(2, "寰俊甯愬彿鎺堟潈澶辫触");
+		}
+		
+		String wxUnionIdExist = user.getWxUnionId();
+		if (StringUtil.isNullOrEmpty(wxUnionIdExist)) {
+			UserInfo newUser = userInfoMapper.getEffectiveUserInfoByWXUnionId(wxUnionId);
+			if (newUser != null) {
+				throw new UserAccountException(4, "璇ュ井淇″彿宸茶鍏朵粬甯愬彿缁戝畾");
+			}
+		} else if (wxUnionId.equals(wxUnionIdExist)) {
 			throw new UserAccountException(3, "寰俊甯愬彿涓�鑷存棤闇�鏇存崲");
 		}
-		
-		UserInfo newUser = userInfoMapper.getEffectiveUserInfoByWXUnionId(weiXinUser.getUnionid());
-		if (newUser != null) {
-			throw new UserAccountException(4, "璇ュ井淇″彿宸茶鍏朵粬甯愬彿缁戝畾");
-		}
-		
-		String wxUnionId = user.getWxUnionId();
-		if (!StringUtil.isNullOrEmpty(wxUnionId) && StringUtil.isNullOrEmpty(user.getPhone())) {
+
+		if (StringUtil.isNullOrEmpty(user.getPhone())) {
 			throw new UserAccountException(5, "璇ュ笎鍙锋病鏈夌粦瀹氭墜鏈哄彿鐮侊紝闇�缁戝畾鎵嬫満鍙风爜鎵嶈兘瀹屾垚寰俊鏇存崲");
 		}
-		
-		
+
 		UserInfo updateUserInfo = new UserInfo(uid);
 		updateUserInfo.setWxName(weiXinUser.getNickname());
 		updateUserInfo.setWxOpenId(weiXinUser.getOpenid());
@@ -1112,7 +1146,20 @@
 		}
 		userInfoMapper.updateByPrimaryKeySelective(updateUserInfo);
 
+		// 鍔犲叆缁戝畾璁板綍
+		UserAccountBindingHistory history = new UserAccountBindingHistory();
+		history.setContent(weiXinUser.getUnionid());
+		history.setType(UserAccountBindingHistory.TYPE_WX);
+		history.setUid(uid);
+
+		// 涔嬪墠宸茬粡缁戝畾鐢佃瘽鍙风爜
+		if (!StringUtil.isNullOrEmpty(user.getWxUnionId()))
+			history.setFirst(false);
+		else
+			history.setFirst(true);
+		userAccountBindingHistoryService.addUserAccountBindingHistory(history);
+
 		userAccountMsgNotificationService.bindingSuccess(uid, MsgAccountDetailFactory.TYPE_WX);
 	}
-	
+
 }

--
Gitblit v1.8.0