From 7e7db2fa55a9a3af46d4fd8ede0dee147f101d64 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期六, 09 五月 2020 21:41:27 +0800
Subject: [PATCH] 2.1需求

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserAccountServiceImpl.java |  185 ++-------------------------------------------
 1 files changed, 11 insertions(+), 174 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 2af722f..9b8bdc2 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
@@ -1,12 +1,6 @@
 package com.yeshi.fanli.service.impl.user;
 
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
 import java.io.InputStream;
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Date;
 import java.util.List;
 
 import javax.annotation.Resource;
@@ -24,11 +18,7 @@
 import com.google.gson.Gson;
 import com.qcloud.cos.model.COSObjectSummary;
 import com.qcloud.cos.model.ObjectListing;
-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;
@@ -36,15 +26,12 @@
 import com.yeshi.fanli.entity.bus.user.ForbiddenUserIdentifyCode.ForbiddenUserIdentifyCodeTypeEnum;
 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.UserExtraTaoBaoInfo;
 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.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;
@@ -60,11 +47,11 @@
 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.FilePathEnum;
+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.TimeUtil;
 import com.yeshi.fanli.util.factory.msg.MsgAccountDetailFactory;
 import com.yeshi.fanli.util.wx.WXLoginUtil;
 
@@ -89,13 +76,7 @@
 	private BindingAccountService bindingAccountService;
 
 	@Resource
-	private UserConnectHistoryMapper userConnectHistoryMapper;
-
-	@Resource
 	private ThreeSaleSerivce threeSaleSerivce;
-
-	@Resource
-	private AccountMessageMapper accountMessageMapper;
 
 	@Resource
 	private SpreadUserImgService spreadUserImgService;
@@ -470,112 +451,6 @@
 		}
 	}
 
-	@Override
-	public void connectUsers(HttpSession session) throws UserAccountException {
-		UserInfo mainUser = (UserInfo) session.getAttribute("WEIXIN_USERINFO");
-		UserInfo lessUser = (UserInfo) session.getAttribute("LAST_LOGIN_USER");
-
-		int lessUserLoginType = lessUser.getLoginType();
-
-		if (mainUser == null || lessUser == null || mainUser.getId() == null || lessUser.getId() == null)
-			throw new UserAccountException(30001, "缂哄皯鎵撻�氳处鍙�");
-
-		mainUser = userInfoMapper.selectByPrimaryKeyForUpdate(mainUser.getId());
-		lessUser = userInfoMapper.selectByPrimaryKeyForUpdate(lessUser.getId());
-
-		session.removeAttribute("WEIXIN_USERINFO");
-		session.removeAttribute("LAST_LOGIN_USER");
-
-		if (mainUser == null || lessUser == null)
-			throw new UserAccountException(30002, "缂哄皯鎵撻�氳处鍙�");
-
-		// 鍒ゆ柇鏄惁鏈夌粦瀹氱浉鍚岀被鍨嬬殑璐﹀彿
-		if (lessUserLoginType == 1) {// 娆¤处鍙蜂互娣樺疂鐧诲綍
-			if (!StringUtil.isNullOrEmpty(mainUser.getPhone()) && !StringUtil.isNullOrEmpty(lessUser.getPhone())
-					&& !lessUser.getPhone().equalsIgnoreCase(mainUser.getPhone()))
-				throw new UserAccountException(30003, "璇峰厛瑙i櫎鍏朵腑涓�涓处鍙风殑鎵嬫満缁戝畾");
-
-		} else if (lessUserLoginType == 3) {// 娆¤处鍙蜂互鎵嬫満鍙风櫥褰�
-			if (!StringUtil.isNullOrEmpty(mainUser.getOpenid()) && !StringUtil.isNullOrEmpty(lessUser.getOpenid())
-					&& !lessUser.getOpenid().equalsIgnoreCase(mainUser.getOpenid()))
-				throw new UserAccountException(30003, "璇峰厛瑙i櫎鍏朵腑涓�涓处鍙风殑娣樺疂缁戝畾");
-		}
-		connectUsers(mainUser, lessUser);
-	}
-
-	@Transactional(rollbackFor = Exception.class)
-	@Override
-	public void connectUsers(UserInfo mainUser, UserInfo lessUser) throws UserAccountException {
-		mainUser = userInfoMapper.selectByPrimaryKeyForUpdate(mainUser.getId());
-		lessUser = userInfoMapper.selectByPrimaryKeyForUpdate(lessUser.getId());
-
-		if (!StringUtil.isNullOrEmpty(mainUser.getOpenid()) && !StringUtil.isNullOrEmpty(lessUser.getOpenid()))
-			throw new UserAccountException(9, "涓や釜璐﹀彿閮界粦瀹氫簡娣樺疂锛岃瑙g粦鍏朵腑涓�涓�");
-
-		if (!StringUtil.isNullOrEmpty(mainUser.getPhone()) && !StringUtil.isNullOrEmpty(lessUser.getPhone()))
-			throw new UserAccountException(9, "涓や釜璐﹀彿閮界粦瀹氫簡鎵嬫満鍙风爜锛岃瑙g粦鍏朵腑涓�涓�");
-
-		if (lessUser.getMyHongBao().compareTo(new BigDecimal("10")) >= 0
-				&& mainUser.getMyHongBao().compareTo(new BigDecimal("10")) > 0)
-			throw new UserAccountException(10, String.format("璐︽埛ID:%s 鐨勮祫閲戣秴杩�10鍏冿紝涓轰繚璇佽祫閲戝畨鍏ㄨ鑱旂郴瀹㈡湇鎵撻��", lessUser.getId() + ""));
-
-		// 鍒ゅ畾鏄惁缁戝畾浜嗗悓涓�鏀粯瀹�
-		BindingAccount mainUserAccount = bindingAccountService.getBindingAccountByUidAndType(mainUser.getId(),
-				BindingAccount.TYPE_ALIPAY);
-
-		BindingAccount lessUserAccount = bindingAccountService.getBindingAccountByUidAndType(lessUser.getId(),
-				BindingAccount.TYPE_ALIPAY);
-
-		// 鏈変笉鍚岀殑鏀粯瀹濊处鍙�
-		boolean hasDiffrentAlipayAccount = false;
-		if (mainUserAccount != null && lessUserAccount != null) {
-			if (!mainUserAccount.getAccount().equalsIgnoreCase(lessUserAccount.getAccount()))
-				hasDiffrentAlipayAccount = true;
-		}
-
-		if (hasDiffrentAlipayAccount)
-			throw new UserAccountException(10, "涓や釜璐︽埛閮界粦瀹氫簡鏀粯瀹濓紝璇峰厛瑙g粦鍏朵腑涓�涓�");
-
-		// 鍒ゅ畾鏄惁鏈夐噸鍙犵殑璐﹀彿
-		UserInfo updateUser = new UserInfo(mainUser.getId());
-		if (!StringUtil.isNullOrEmpty(lessUser.getOpenid())) {
-			updateUser.setOpenid(lessUser.getOpenid());
-			updateUser.setTbName(lessUser.getTbName());
-			updateUser.setTbPic(lessUser.getTbPic());
-		}
-
-		if (!StringUtil.isNullOrEmpty(lessUser.getPhone())) {
-			updateUser.setPhone(lessUser.getPhone());
-		}
-
-		// 澶囦唤鍘熸潵鐨勭敤鎴蜂俊鎭�
-		String logUrl = backupUserImportantInfo(lessUser.getId());
-
-		// 娣诲姞鎵撻�氳褰�
-		UserConnectHistory userConnectHistory = new UserConnectHistory();
-		userConnectHistory.setCreateTime(new Date());
-		userConnectHistory.setLessUser(lessUser);
-		userConnectHistory.setMainUser(mainUser);
-		userConnectHistory.setLogUrl(logUrl);
-		userConnectHistoryMapper.insertSelective(userConnectHistory);
-
-		userInfoMapper.updateByPrimaryKeySelective(updateUser);
-		// 鍒犻櫎鍘熸潵鐨勮处鍙�
-		UserInfo updateLessUser = new UserInfo(lessUser.getId());
-		updateLessUser.setState(UserInfo.STATE_DELETE);
-		updateLessUser.setStateDesc("璐﹀彿琚墦閫氬垹闄�");
-		userInfoMapper.updateByPrimaryKeySelective(updateLessUser);
-		// 铻嶅悎涓氬姟
-		userInfoMapper.connectUser(mainUser.getId(), lessUser.getId());
-
-		// 鏌ヨ鏄惁鏈夊浣欑殑鏂颁汉绾㈠寘
-		int subCount = 0;
-		int addCount = 0;
-
-		userAccountMsgNotificationService.connectSuccess(mainUser.getId(), lessUser.getId());
-
-		userInfoDeleteRecordService.addDeleteRecord(lessUser.getId(), UserInfo.STATE_DELETE, "鍒犻櫎锛氳处鍙疯鎵撻�氬垹闄�");
-	}
 
 	/**
 	 * 鏍规嵁绯荤粺涓巙nionid瀵绘壘鐢ㄦ埛
@@ -885,46 +760,6 @@
 	}
 
 	@Override
-	public String backupUserImportantInfo(Long uid) {
-
-		String logPath = String.format(FileUtil.getCacheDir() + "/benfen_%s_" + uid + ".log",
-				TimeUtil.getGernalTime(System.currentTimeMillis(), "yyyyMMddHHmmss"));
-
-		// 澶囦唤鐢ㄦ埛淇℃伅
-		UserInfo user = userInfoMapper.selectAvailableByPrimaryKey(uid);
-
-		// TODO 澶囦唤璧勯噾鏄庣粏
-
-		// 澶囦唤閭�璇峰叧绯�
-		List<ThreeSale> threeSaleList = new ArrayList<>();
-
-		FileWriter fw = null;
-		try {
-			// 璁剧疆涓�:True,琛ㄧず鍐欏叆鐨勬椂鍊欒拷鍔犳暟鎹�
-			fw = new FileWriter(new File(logPath), true);
-
-			fw.write("#UserInfo" + "\r\n");
-			fw.write(JsonUtil.getSimpleGsonWithDate().toJson(user) + "\r\n");
-
-			fw.write("#ThreeSale" + "\r\n");
-			fw.write(JsonUtil.getSimpleGsonWithDate().toJson(threeSaleList) + "\r\n");
-
-			fw.close();
-
-			String logUrl = COSManager.getInstance()
-					.uploadFile(new File(logPath), "beifen/" + new File(logPath).getName()).getUrl();
-			return logUrl;
-		} catch (IOException e) {
-			e.printStackTrace();
-		} finally {
-			if (new File(logPath).exists())
-				new File(logPath).delete();
-		}
-
-		return null;
-	}
-
-	@Override
 	public void clearUserPortrait(Long uid) {
 		if (uid == null)
 			return;
@@ -1018,7 +853,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);
@@ -1128,7 +965,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.userWXPortrait.getPath() + "%s_%s.jpg", weiXinUser.getUnionid(),
 											System.currentTimeMillis() + ""));
 							if (result != null && !StringUtil.isNullOrEmpty(result.getUrl()))
 								portrait = result.getUrl();
@@ -1205,9 +1042,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);
@@ -1353,7 +1190,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.userWXPortrait.getPath() + "%s_%s.jpg", weiXinUser.getUnionid(), System.currentTimeMillis() + ""));
 				if (result != null && !StringUtil.isNullOrEmpty(result.getUrl())) {
 					headimgurl = result.getUrl();
 				} else {
@@ -1413,7 +1250,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.userWXPortrait.getPath() +"%s_%s.jpg", weiXinUser.getUnionid(), System.currentTimeMillis() + ""));
 				if (result != null && !StringUtil.isNullOrEmpty(result.getUrl()))
 					portrait = result.getUrl();
 			} else {

--
Gitblit v1.8.0