From 573c491b4a1ba60e12a5678a01c1546c0077c1ee Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 30 七月 2019 09:07:42 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserAccountServiceImpl.java | 429 +++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 335 insertions(+), 94 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..9185a59 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,19 +29,25 @@ 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.WeiXinUser; import com.yeshi.fanli.exception.UserAccountException; +import com.yeshi.fanli.exception.user.ForbiddenUserIdentifyCodeException; import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.hongbao.ThreeSaleSerivce; import com.yeshi.fanli.service.inter.msg.UserAccountMsgNotificationService; 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.UserInfoDeleteRecordService; import com.yeshi.fanli.service.inter.user.UserInfoExtraService; +import com.yeshi.fanli.service.inter.user.UserInfoService; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.FileUtil; import com.yeshi.fanli.util.RedisManager; @@ -51,6 +57,9 @@ import com.yeshi.fanli.util.wx.WXLoginUtil; import net.sf.json.JSONObject; +import redis.clients.jedis.Jedis; +import redis.clients.jedis.JedisPool; +import redis.clients.jedis.Transaction; @Service public class UserAccountServiceImpl implements UserAccountService { @@ -60,6 +69,9 @@ @Resource private UserInfoMapper userInfoMapper; + + @Resource + private UserInfoService userInfoService; @Resource private BindingAccountService bindingAccountService; @@ -84,9 +96,18 @@ @Resource private ForbiddenUserIdentifyCodeService forbiddenUserIdentifyCodeService; - + @Resource private UserInfoExtraService userInfoExtraService; + + @Resource + private UserAccountBindingHistoryService userAccountBindingHistoryService; + + @Resource + private UserInfoDeleteRecordService userInfoDeleteRecordService; + + @Resource + private JedisPool jedisPool; @Transactional @Override @@ -532,6 +553,8 @@ int addCount = 0; userAccountMsgNotificationService.connectSuccess(mainUser.getId(), lessUser.getId()); + + userInfoDeleteRecordService.addDeleteRecord(lessUser.getId(), UserInfo.STATE_DELETE, "鍒犻櫎锛氳处鍙疯鎵撻�氬垹闄�"); } /** @@ -652,6 +675,7 @@ @Override public void addUser(UserInfo user) { + Long maxUid = userInfoMapper.getMaxUid(); if (maxUid == null) maxUid = 100000L; @@ -671,6 +695,13 @@ UserInfo updateUserInfo = new UserInfo(user.getId()); updateUserInfo.setNickName(Constant.systemCommonConfig.getDefaultNickName() + user.getId()); userInfoMapper.updateByPrimaryKeySelective(updateUserInfo); + } + + try { + // 绗竴娆$櫥褰曟椂鍒涘缓鐢ㄦ埛棰濆淇℃伅 + userInfoExtraService.createUserInfoExtra(user.getId()); + } catch (Exception e) { + e.printStackTrace(); } } @@ -900,21 +931,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 { @@ -924,12 +953,14 @@ String oldVcode = redisManager.getSMSVCode(phone, SMSHistory.TYPE_LOGIN); LogHelper.test("----------------------鐧诲綍楠岃瘉鐮侊細 " + oldVcode); - if (StringUtil.isNullOrEmpty(oldVcode) || !oldVcode.equalsIgnoreCase(vcode)) { - throw new UserAccountException(1, "楠岃瘉鐮侀敊璇紝閲嶆柊杈撳叆"); - } + if (!Constant.IS_TEST) + if (StringUtil.isNullOrEmpty(oldVcode) || !oldVcode.equalsIgnoreCase(vcode)) { + throw new UserAccountException(1, "楠岃瘉鐮侀敊璇紝閲嶆柊杈撳叆"); + } else {// 楠岃瘉鐮佽緭鍏ユ纭� + redisManager.clearSMSVCode(phone, SMSHistory.TYPE_LOGIN); + } } - redisManager.clearSMSFrequencyLimit(phone, SMSHistory.TYPE_LOGIN); - + JSONObject logInfo = new JSONObject(); logInfo.put("appId", appId); logInfo.put("phone", phone); @@ -943,37 +974,65 @@ throw new UserAccountException(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC); } - // 鏌ヨ鏄惁瀛樺湪璇ョ數璇濆巻鍙茬敤鎴� - UserInfo userInfo = userInfoMapper.getEffectiveUserInfoByPhone(phone); - if (userInfo != null) { - // 鏇存柊璐︽埛鐧诲綍淇℃伅 - updateLonginInfo(userInfo, loginType, request); - } else { - userInfo = new UserInfo(); - userInfo.setAppId(appId); - userInfo.setNickName(Constant.systemCommonConfig.getDefaultNickName()); - userInfo.setPortrait(Constant.systemCommonConfig.getDefaultPortrait()); - userInfo.setPhone(phone); - userInfo.setLoginType(loginType); - userInfo.setState(UserInfo.STATE_NORMAL); - // 鍒涘缓鐢ㄦ埛 - addUser(userInfo); - - - try { - // 绗竴娆$櫥褰曟椂鍒涘缓鐢ㄦ埛棰濆淇℃伅 - userInfoExtraService.createUserInfoExtra(userInfo.getId()); - } catch (Exception e) { - e.printStackTrace(); - } - } + // 娓呯┖闄愬埗 + redisManager.clearSMSFrequencyLimit(phone, SMSHistory.TYPE_LOGIN); + // 娓呯悊娆℃暟 + redisManager.removeCommonString("sendMSNLoginCount" + phone); - return userInfo; + // 閲囩敤redis浜嬪姟闃叉涓�涓墜鏈哄彿澶氭娉ㄥ唽闂 + String watchKey = StringUtil.Md5("REGISTER:" + phone); + Jedis jedis = jedisPool.getResource(); + try { + jedis.watch(watchKey); + if (jedis.get(watchKey) != null && Integer.parseInt(jedis.get(watchKey)) > 1) + throw new UserAccountException(10, "璇风◢鍚庡啀璇�"); + Transaction tran = jedis.multi(); + tran.incr(watchKey); + List<Object> exec = tran.exec(); + if (exec == null || exec.size() == 0) { + throw new UserAccountException(10, "璇风◢鍚庡啀璇�"); + } else { + + // 鏌ヨ鏄惁瀛樺湪璇ョ數璇濆巻鍙茬敤鎴� + UserInfo userInfo = userInfoMapper.getEffectiveUserInfoByPhone(phone); + if (userInfo != null) { + // 鏇存柊璐︽埛鐧诲綍淇℃伅 + updateLonginInfo(userInfo, loginType, request); + } else { + userInfo = new UserInfo(); + userInfo.setAppId(appId); + userInfo.setNickName(Constant.systemCommonConfig.getDefaultNickName()); + userInfo.setPortrait(Constant.systemCommonConfig.getDefaultPortrait()); + userInfo.setPhone(phone); + userInfo.setLoginType(loginType); + userInfo.setState(UserInfo.STATE_NORMAL); + // 鍒涘缓鐢ㄦ埛 + addUser(userInfo); + + try { + // 绗竴娆$櫥褰曟椂鍒涘缓鐢ㄦ埛棰濆淇℃伅 + userInfoExtraService.createUserInfoExtra(userInfo.getId()); + } catch (Exception e) { + e.printStackTrace(); + } + } + + return userInfo; + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + jedis.del(watchKey); + jedis.unwatch(); + jedisPool.returnResource(jedis); + } + throw new UserAccountException(10, "璇风◢鍚庡啀璇�"); } - + @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); @@ -995,39 +1054,67 @@ throw new UserAccountException(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC); } - UserInfo userInfo = userInfoMapper.getEffectiveUserInfoByWXUnionId(weiXinUser.getUnionid()); - // 鐩存帴鐢ㄧ殑寰俊鐧诲綍 - if (userInfo != null) { - // 鏇存柊璐︽埛鐧诲綍淇℃伅 - updateLonginInfo(userInfo, loginType, request); - } else { - // 鍒涘缓鏂拌处鎴� - userInfo = new UserInfo(); - userInfo.setPortrait(weiXinUser.getHeadimgurl()); - userInfo.setAppId(appId); - userInfo.setNickName(weiXinUser.getNickname()); - userInfo.setWxName(weiXinUser.getNickname()); - userInfo.setWxOpenId(weiXinUser.getOpenid()); - userInfo.setWxUnionId(weiXinUser.getUnionid()); - userInfo.setWxPic(weiXinUser.getHeadimgurl()); - userInfo.setLastLoginTime(System.currentTimeMillis()); - userInfo.setLoginType(loginType); - userInfo.setLastLoginIp(request.getRemoteHost()); - userInfo.setState(UserInfo.STATE_NORMAL); - addUser(userInfo); - - try { - // 绗竴娆$櫥褰曟椂鍒涘缓鐢ㄦ埛棰濆淇℃伅 - userInfoExtraService.createUserInfoExtra(userInfo.getId()); - } catch (Exception e) { - e.printStackTrace(); + // 閲囩敤redis浜嬪姟闃叉涓�涓井淇″彿澶氭娉ㄥ唽闂 + String watchKey = StringUtil.Md5("REGISTER:" + weiXinUser.getUnionid()); + Jedis jedis = jedisPool.getResource(); + try { + jedis.watch(watchKey); + if (jedis.get(watchKey) != null && Integer.parseInt(jedis.get(watchKey)) > 1) + throw new UserAccountException(10, "璇风◢鍚庡啀璇�"); + Transaction tran = jedis.multi(); + tran.incr(watchKey); + List<Object> exec = tran.exec(); + if (exec == null || exec.size() == 0) { + throw new UserAccountException(10, "璇风◢鍚庡啀璇�"); + } else { + + 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()); + userInfo.setAppId(appId); + userInfo.setNickName(weiXinUser.getNickname()); + userInfo.setWxName(weiXinUser.getNickname()); + userInfo.setWxOpenId(weiXinUser.getOpenid()); + userInfo.setWxUnionId(weiXinUser.getUnionid()); + userInfo.setWxPic(weiXinUser.getHeadimgurl()); + userInfo.setLastLoginTime(System.currentTimeMillis()); + userInfo.setLoginType(loginType); + userInfo.setLastLoginIp(request.getRemoteHost()); + userInfo.setState(UserInfo.STATE_NORMAL); + addUser(userInfo); + + try { + // 绗竴娆$櫥褰曟椂鍒涘缓鐢ㄦ埛棰濆淇℃伅 + userInfoExtraService.createUserInfoExtra(userInfo.getId()); + } catch (Exception e) { + e.printStackTrace(); + } + } + return userInfo; } + } catch (Exception e) { + e.printStackTrace(); + } finally { + jedis.del(watchKey); + jedis.unwatch(); + jedisPool.returnResource(jedis); } - return userInfo; + throw new UserAccountException(10, "璇风◢鍚庡啀璇�"); } - + /** * 鏇存柊璐︽埛鐧诲綍淇℃伅 + * * @param userInfo * @param loginType * @param request @@ -1040,15 +1127,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,61 +1144,216 @@ 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()); updateUserInfo.setWxPic(weiXinUser.getHeadimgurl()); updateUserInfo.setWxUnionId(weiXinUser.getUnionid()); - updateUserInfo.setNickName(weiXinUser.getNickname()); - updateUserInfo.setPortrait(weiXinUser.getHeadimgurl()); - if (StringUtil.isNullOrEmpty(weiXinUser.getNickname())) { - updateUserInfo.setNickName(Constant.systemCommonConfig.getDefaultNickName()); + + // 灏嗛粯璁ゆ樀绉版浛鎹㈡垚寰俊鏄电О + String defaultNickName = Constant.systemCommonConfig.getDefaultNickName(); + if (!StringUtil.isNullOrEmpty(weiXinUser.getNickname()) && !StringUtil.isNullOrEmpty(defaultNickName) + && defaultNickName.equals(user.getNickName())) { + updateUserInfo.setNickName(weiXinUser.getNickname()); } - if (StringUtil.isNullOrEmpty(weiXinUser.getHeadimgurl())) { - updateUserInfo.setPortrait(Constant.systemCommonConfig.getDefaultPortrait()); + // 灏嗛粯璁ゅご鍍忔浛鎹㈡垚寰俊澶村儚 + String defaultPortrait = Constant.systemCommonConfig.getDefaultPortrait(); + if (!StringUtil.isNullOrEmpty(weiXinUser.getHeadimgurl()) && !StringUtil.isNullOrEmpty(defaultPortrait) + && defaultPortrait.equals(user.getPortrait())) { + updateUserInfo.setPortrait(weiXinUser.getHeadimgurl()); } 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); } - + + @Override + public void forbiddenUserAll(Long uid, String reason) { + UserInfo currentInfo = userInfoService.selectByPKey(uid); + if (currentInfo == null) { + return; + } + if (currentInfo.getState() != UserInfo.STATE_NORMAL) { + return; + } + + currentInfo.setState(UserInfo.STATE_FORBIDDEN); + currentInfo.setStateDesc(reason); + userInfoService.updateByPrimaryKeySelective(currentInfo); + + // 鎻掑叆璁板綍 + userInfoDeleteRecordService.addDeleteRecord(uid, UserInfo.STATE_FORBIDDEN, reason); + + // 鍔犲叆灏佺鐨勮处鍙峰垪琛� + ForbiddenUserIdentifyCode forbiddenUserIdentifyCode = new ForbiddenUserIdentifyCode(); + forbiddenUserIdentifyCode.setType(ForbiddenUserIdentifyCodeTypeEnum.wxUnionId); + forbiddenUserIdentifyCode.setIdentifyCode(currentInfo.getWxUnionId()); + forbiddenUserIdentifyCode.setBeiZhu(currentInfo.getWxName()); + try { + forbiddenUserIdentifyCodeService.forbiddenIdentifyCode(forbiddenUserIdentifyCode); + } catch (ForbiddenUserIdentifyCodeException e) { + e.printStackTrace(); + } + + // 鐢佃瘽鍙风爜 + forbiddenUserIdentifyCode = new ForbiddenUserIdentifyCode(); + forbiddenUserIdentifyCode.setType(ForbiddenUserIdentifyCodeTypeEnum.phone); + forbiddenUserIdentifyCode.setIdentifyCode(currentInfo.getPhone()); + try { + forbiddenUserIdentifyCodeService.forbiddenIdentifyCode(forbiddenUserIdentifyCode); + } catch (ForbiddenUserIdentifyCodeException e) { + e.printStackTrace(); + } + + // 娣樺疂 + UserExtraTaoBaoInfo taoBao = userExtraTaoBaoInfoService.getByUid(uid); + if (taoBao != null && !StringUtil.isNullOrEmpty(taoBao.getTaoBaoUid())) { + forbiddenUserIdentifyCode = new ForbiddenUserIdentifyCode(); + forbiddenUserIdentifyCode.setType(ForbiddenUserIdentifyCodeTypeEnum.taobaoUid); + forbiddenUserIdentifyCode.setIdentifyCode(taoBao.getTaoBaoUid()); + try { + forbiddenUserIdentifyCodeService.forbiddenIdentifyCode(forbiddenUserIdentifyCode); + } catch (ForbiddenUserIdentifyCodeException e) { + e.printStackTrace(); + } + } + + // 鏌ヨ鏀粯瀹濈粦瀹� + List<BindingAccount> list = bindingAccountService.getBindingAccountByUid(uid); + if (list != null) { + for (BindingAccount ba : list) { + forbiddenUserIdentifyCode = new ForbiddenUserIdentifyCode(); + forbiddenUserIdentifyCode.setType(ForbiddenUserIdentifyCodeTypeEnum.alipayAccount); + forbiddenUserIdentifyCode.setIdentifyCode(ba.getAccount()); + forbiddenUserIdentifyCode.setBeiZhu(ba.getName()); + try { + forbiddenUserIdentifyCodeService.forbiddenIdentifyCode(forbiddenUserIdentifyCode); + } catch (ForbiddenUserIdentifyCodeException e) { + e.printStackTrace(); + } + } + } + } + + @Override + public void forbiddenUser(Long uid, String reason) { + UserInfo currentInfo = userInfoService.selectByPKey(uid); + if (currentInfo == null) { + return; + } + + if (currentInfo.getState() != UserInfo.STATE_NORMAL) { + return; + } + + currentInfo.setState(UserInfo.STATE_FORBIDDEN); + currentInfo.setStateDesc(reason); + userInfoService.updateByPrimaryKeySelective(currentInfo); + + // 鎻掑叆璁板綍 + userInfoDeleteRecordService.addDeleteRecord(uid, UserInfo.STATE_FORBIDDEN, reason); + } + + @Override + public void DeleteUser(Long uid, String reason) { + UserInfo currentInfo = userInfoService.selectByPKey(uid); + if (currentInfo == null) { + return; + } + + if (currentInfo.getState() != UserInfo.STATE_NORMAL) { + return; + } + + currentInfo.setState(UserInfo.STATE_DELETE); + currentInfo.setStateDesc(reason); + userInfoService.updateByPrimaryKeySelective(currentInfo); + // 鎻掑叆璁板綍 + userInfoDeleteRecordService.addDeleteRecord(uid, UserInfo.STATE_DELETE, reason); + } + + @Override + public void DeleteUserOutOfDate(Long uid, String reason) { + UserInfo currentInfo = userInfoService.selectByPKey(uid); + if (currentInfo == null) { + return; + } + + if (currentInfo.getState() != UserInfo.STATE_NORMAL) { + return; + } + + currentInfo.setState(UserInfo.STATE_DELETE_OUT_OF_DATE); + currentInfo.setStateDesc(reason); + userInfoService.updateByPrimaryKeySelective(currentInfo); + // 鎻掑叆璁板綍 + userInfoDeleteRecordService.addDeleteRecord(uid, UserInfo.STATE_DELETE_OUT_OF_DATE, reason); + } } -- Gitblit v1.8.0