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