From c9cbdfa41d645d42eeaa7e06d550d4ef8ac328e7 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期五, 03 一月 2020 12:15:08 +0800
Subject: [PATCH] redis关键词

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserAccountServiceImpl.java |   84 ++++++++++++++++++++++++++---------------
 1 files changed, 53 insertions(+), 31 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 f04b8c3..e2b39fd 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
@@ -27,6 +27,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.user.wx.WXMPLoginData;
+import com.yeshi.fanli.dto.user.wx.WXMPLoginResult;
 import com.yeshi.fanli.dto.wx.WXAccountInfoDTO;
 import com.yeshi.fanli.entity.accept.AcceptData;
 import com.yeshi.fanli.entity.bus.user.BindingAccount;
@@ -42,6 +44,7 @@
 import com.yeshi.fanli.entity.bus.user.UserInfoModifyRecord.ModifyTypeEnum;
 import com.yeshi.fanli.entity.bus.user.WeiXinUser;
 import com.yeshi.fanli.exception.user.ForbiddenUserIdentifyCodeException;
+import com.yeshi.fanli.exception.user.ThreeSaleException;
 import com.yeshi.fanli.exception.user.UserAccountException;
 import com.yeshi.fanli.log.LogHelper;
 import com.yeshi.fanli.service.inter.money.extract.BindingAccountService;
@@ -57,7 +60,9 @@
 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.FilePathEnum;
 import com.yeshi.fanli.util.FileUtil;
+import com.yeshi.fanli.util.RedisKeyEnum;
 import com.yeshi.fanli.util.RedisManager;
 import com.yeshi.fanli.util.StringUtil;
 import com.yeshi.fanli.util.ThreadUtil;
@@ -122,7 +127,7 @@
 	@Resource
 	private UserInfoModifyRecordService userInfoModifyRecordService;
 
-	@Transactional(rollbackFor=Exception.class)
+	@Transactional(rollbackFor = Exception.class)
 	@Override
 	public LoginResult login(HttpServletRequest request, AcceptData acceptData, Boolean first, String appId,
 			String code, String phone, UserInfo tbUserInfo, boolean wxinstall, int loginType)
@@ -158,8 +163,7 @@
 				userInfo = getUserInfoByTaoBaoOpenId(appId, tbUserInfo.getOpenid());
 				// 鍒ゆ柇鐢ㄦ埛鏄惁琚垹闄�
 				if (userInfo != null && userInfo.getState() != null
-						&& (userInfo.getState() == UserInfo.STATE_DELETE_OUT_OF_DATE
-								|| userInfo.getState() == UserInfo.STATE_DELETE))
+						&& (userInfo.getState() != UserInfo.STATE_NORMAL))
 					userInfo = null;
 				if (userInfo == null) {// 鍘熷厛鐨勮处鍙蜂笉瀛樺湪
 					userInfo = new UserInfo();
@@ -203,8 +207,8 @@
 				userInfo = getUserInfoByWXUnionId(appId, weiXinUser.getUnionid());
 				// 鍒ゆ柇鐢ㄦ埛鏄惁琚垹闄�
 				if (userInfo != null && userInfo.getState() != null
-						&& (userInfo.getState() == UserInfo.STATE_DELETE_OUT_OF_DATE
-								|| userInfo.getState() == UserInfo.STATE_DELETE))
+						&& (userInfo.getState() != UserInfo.STATE_NORMAL
+							))
 					userInfo = null;
 				// 鐩存帴鐢ㄧ殑寰俊鐧诲綍
 				if (lastUser == null) {
@@ -342,8 +346,7 @@
 				userInfo = getUserInfoByPhone(appId, phone);
 				// 鍒ゆ柇鐢ㄦ埛鏄惁琚垹闄�
 				if (userInfo != null && userInfo.getState() != null
-						&& (userInfo.getState() == UserInfo.STATE_DELETE_OUT_OF_DATE
-								|| userInfo.getState() == UserInfo.STATE_DELETE))
+						&& (userInfo.getState() != UserInfo.STATE_NORMAL))
 					userInfo = null;
 
 				if (userInfo == null) {// 鍘熷厛鐨勮处鍙蜂笉瀛樺湪
@@ -380,7 +383,7 @@
 		}
 	}
 
-	@Transactional(rollbackFor=Exception.class)
+	@Transactional(rollbackFor = Exception.class)
 	@Override
 	public LoginResult loginNoInstallWX(AcceptData acceptData, String appId, String code, String phone,
 			UserInfo tbUserInfo, int loginType) throws UserAccountException {
@@ -432,8 +435,7 @@
 		}
 
 		// 鍒ゆ柇鐢ㄦ埛鏄惁琚垹闄�
-		if (userInfo != null && userInfo.getState() != null && (userInfo.getState() == UserInfo.STATE_DELETE_OUT_OF_DATE
-				|| userInfo.getState() == UserInfo.STATE_DELETE))
+		if (userInfo != null && userInfo.getState() != null && (userInfo.getState() != UserInfo.STATE_NORMAL))
 			userInfo = null;
 
 		if (userInfo != null) {
@@ -503,7 +505,7 @@
 		connectUsers(mainUser, lessUser);
 	}
 
-	@Transactional(rollbackFor=Exception.class)
+	@Transactional(rollbackFor = Exception.class)
 	@Override
 	public void connectUsers(UserInfo mainUser, UserInfo lessUser) throws UserAccountException {
 		mainUser = userInfoMapper.selectByPrimaryKeyForUpdate(mainUser.getId());
@@ -594,8 +596,7 @@
 		List<UserInfo> list = userInfoMapper.listByAppIdAndWXUnionId(appId, unionId);
 		// 鍓旈櫎琚垹闄ゆ帀鐨勭敤鎴�
 		for (int i = 0; i < list.size(); i++) {
-			if (list.get(i).getState() == UserInfo.STATE_DELETE
-					|| list.get(i).getState() == UserInfo.STATE_DELETE_OUT_OF_DATE) {
+			if (list.get(i).getState() == UserInfo.STATE_NORMAL) {
 				list.remove(i);
 				i--;
 			}
@@ -622,8 +623,7 @@
 
 		// 鍓旈櫎琚垹闄ゆ帀鐨勭敤鎴�
 		for (int i = 0; i < list.size(); i++) {
-			if (list.get(i).getState() == UserInfo.STATE_DELETE
-					|| list.get(i).getState() == UserInfo.STATE_DELETE_OUT_OF_DATE) {
+			if (list.get(i).getState() != UserInfo.STATE_NORMAL) {
 				list.remove(i);
 				i--;
 			}
@@ -651,8 +651,7 @@
 
 		// 鍓旈櫎琚垹闄ゆ帀鐨勭敤鎴�
 		for (int i = 0; i < list.size(); i++) {
-			if (list.get(i).getState() == UserInfo.STATE_DELETE
-					|| list.get(i).getState() == UserInfo.STATE_DELETE_OUT_OF_DATE) {
+			if (list.get(i).getState() !=UserInfo.STATE_NORMAL) {
 				list.remove(i);
 				i--;
 			}
@@ -670,7 +669,7 @@
 		userInfoMapper.updateByPrimaryKeySelective(userInfo);
 	}
 
-	@Transactional(rollbackFor=Exception.class)
+	@Transactional(rollbackFor = Exception.class)
 	@Override
 	public void register(UserInfo userInfo) throws UserAccountException {
 		if (!StringUtil.isNullOrEmpty(userInfo.getPhone())) {
@@ -915,7 +914,7 @@
 			fw.close();
 
 			String logUrl = COSManager.getInstance()
-					.uploadFile(new File(logPath), "beifen/" + new File(logPath).getName()).getUrl();
+					.uploadFile(new File(logPath), FilePathEnum.beifen.getPath() + new File(logPath).getName()).getUrl();
 			return logUrl;
 		} catch (IOException e) {
 			e.printStackTrace();
@@ -975,7 +974,7 @@
 		return user.getPortrait();
 	}
 
-	@Transactional(rollbackFor=Exception.class)
+	@Transactional(rollbackFor = Exception.class)
 	@Override
 	public UserInfo loginPhone(HttpServletRequest request, int loginType, String vcode, String phone, String appId)
 			throws UserAccountException {
@@ -1021,7 +1020,9 @@
 		// 娓呯┖闄愬埗
 		redisManager.clearSMSFrequencyLimit(phone, SMSHistory.TYPE_LOGIN);
 		// 娓呯悊娆℃暟
-		redisManager.removeCommonString("sendMSNLoginCount" + phone);
+		String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.SMSLoginCount, phone);
+		redisManager.removeCommonString(key);
+
 
 		// 閲囩敤redis浜嬪姟闃叉涓�涓墜鏈哄彿澶氭娉ㄥ唽闂
 		String watchKey = StringUtil.Md5("REGISTER:" + phone);
@@ -1075,7 +1076,7 @@
 		throw new UserAccountException(10, "璇风◢鍚庡啀璇�");
 	}
 
-	@Transactional(rollbackFor=Exception.class)
+	@Transactional(rollbackFor = Exception.class)
 	@Override
 	public UserInfo loginWinXin(HttpServletRequest request, AcceptData acceptData, int loginType, String code,
 			String appId) throws UserAccountException {
@@ -1131,7 +1132,7 @@
 						InputStream asInputStream = HttpUtil.getAsInputStream(weiXinUser.getHeadimgurl());
 						if (asInputStream != null) {
 							FileUploadResult result = COSManager.getInstance().uploadFile(asInputStream,
-									String.format("/portrait/wx/%s_%s.jpg", weiXinUser.getUnionid(),
+									String.format(FilePathEnum.userPortrait.getPath() + "%s_%s.jpg", weiXinUser.getUnionid(),
 											System.currentTimeMillis() + ""));
 							if (result != null && !StringUtil.isNullOrEmpty(result.getUrl()))
 								portrait = result.getUrl();
@@ -1180,7 +1181,7 @@
 		throw new UserAccountException(10, "璇风◢鍚庡啀璇�");
 	}
 
-	@Transactional(rollbackFor=Exception.class)
+	@Transactional(rollbackFor = Exception.class)
 	@Override
 	public UserInfo loginWeiXinNew(HttpServletRequest request, AcceptData acceptData, int loginType, String wxCode,
 			String appId) throws UserAccountException {
@@ -1208,9 +1209,9 @@
 
 		UserInfo userInfo = userInfoMapper.getEffectiveUserInfoByWXUnionId(weiXinUser.getUnionid());
 		if (userInfo == null) {
-			String longinKey = StringUtil.Md5("WXLogin:" + weiXinUser.getUnionid());
-			redisManager.cacheCommonString(longinKey, JsonUtil.getSimpleGson().toJson(weiXinUser), 60 * 20);
-			throw new UserAccountException(101, longinKey);
+			String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.emptyKey, StringUtil.Md5("WXLogin:" + weiXinUser.getUnionid()));
+			redisManager.cacheCommonString(key, JsonUtil.getSimpleGson().toJson(weiXinUser), 60 * 20);
+			throw new UserAccountException(101, key);
 		}
 		// 鏇存柊璐︽埛鐧诲綍淇℃伅
 		updateLonginInfo(userInfo, loginType, request);
@@ -1281,14 +1282,33 @@
 
 	}
 
+	@Transactional(rollbackFor=UserAccountException.class)
 	@Override
 	public void bindWeiXin(AcceptData acceptData, Long uid, String code) throws UserAccountException {
+		WXAccountInfoDTO wxAccount = Constant.getWXAccount(acceptData.getPlatform(), acceptData.getVersion());
+		WeiXinUser weiXinUser = WXLoginUtil.getWeiXinUser(code, wxAccount.getAppId(), wxAccount.getAppSecret());
+		if (weiXinUser == null) {
+			throw new UserAccountException(2, "寰俊甯愬彿鎺堟潈澶辫触");
+		}
+
+		String wxUnionId = weiXinUser.getUnionid();
+		if (StringUtil.isNullOrEmpty(wxUnionId)) {
+			throw new UserAccountException(2, "寰俊甯愬彿鎺堟潈澶辫触");
+		}
+		bindWeiXin(uid, weiXinUser);
+	}
+	
+	
+	
+	
+	@Transactional(rollbackFor=UserAccountException.class)
+	@Override
+	public void bindWeiXin(Long uid,WeiXinUser weiXinUser) throws UserAccountException {
 		UserInfo user = userInfoMapper.selectAvailableByPrimaryKey(uid);
 		if (user == null) {
 			throw new UserAccountException(1, "鐢ㄦ埛涓嶅瓨鍦�");
 		}
-		WXAccountInfoDTO wxAccount = Constant.getWXAccount(acceptData.getPlatform(), acceptData.getVersion());
-		WeiXinUser weiXinUser = WXLoginUtil.getWeiXinUser(code, wxAccount.getAppId(), wxAccount.getAppSecret());
+		
 		if (weiXinUser == null) {
 			throw new UserAccountException(2, "寰俊甯愬彿鎺堟潈澶辫触");
 		}
@@ -1337,7 +1357,7 @@
 				LogHelper.test("寰俊澶村儚涓嬭浇澶辫触: " + weiXinUser.getUnionid() + " " + headimgurl);
 			} else {
 				FileUploadResult result = COSManager.getInstance().uploadFile(asInputStream, String
-						.format("/portrait/wx/%s_%s.jpg", weiXinUser.getUnionid(), System.currentTimeMillis() + ""));
+						.format(FilePathEnum.userPortrait.getPath() + "%s_%s.jpg", weiXinUser.getUnionid(), System.currentTimeMillis() + ""));
 				if (result != null && !StringUtil.isNullOrEmpty(result.getUrl())) {
 					headimgurl = result.getUrl();
 				} else {
@@ -1397,7 +1417,7 @@
 			InputStream asInputStream = HttpUtil.getAsInputStream(weiXinUser.getHeadimgurl());
 			if (asInputStream != null) {
 				FileUploadResult result = COSManager.getInstance().uploadFile(asInputStream, String
-						.format("/portrait/wx/%s_%s.jpg", weiXinUser.getUnionid(), System.currentTimeMillis() + ""));
+						.format(FilePathEnum.userPortrait.getPath() +"%s_%s.jpg", weiXinUser.getUnionid(), System.currentTimeMillis() + ""));
 				if (result != null && !StringUtil.isNullOrEmpty(result.getUrl()))
 					portrait = result.getUrl();
 			} else {
@@ -1574,4 +1594,6 @@
 		// 鎻掑叆璁板綍
 		userInfoDeleteRecordService.addDeleteRecord(uid, UserInfo.STATE_DELETE_OUT_OF_DATE, reason);
 	}
+
+
 }

--
Gitblit v1.8.0