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