yujian
2019-06-05 6a80821cea1d71ca4cb6c45239274898f46143f2
fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserAccountServiceImpl.java
@@ -31,9 +31,11 @@
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;
@@ -43,7 +45,9 @@
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;
@@ -62,6 +66,9 @@
   @Resource
   private UserInfoMapper userInfoMapper;
   @Resource
   private UserInfoService userInfoService;
   @Resource
   private BindingAccountService bindingAccountService;
@@ -92,6 +99,10 @@
   @Resource
   private UserAccountBindingHistoryService userAccountBindingHistoryService;
   @Resource
   private UserInfoDeleteRecordService userInfoDeleteRecordService;
   @Transactional
   @Override
@@ -537,6 +548,9 @@
      int addCount = 0;
      userAccountMsgNotificationService.connectSuccess(mainUser.getId(), lessUser.getId());
      userInfoDeleteRecordService.addDeleteRecord(lessUser.getId(), UserInfo.STATE_DELETE, "删除:账号被打通删除");
   }
   /**
@@ -677,6 +691,14 @@
         updateUserInfo.setNickName(Constant.systemCommonConfig.getDefaultNickName() + user.getId());
         userInfoMapper.updateByPrimaryKeySelective(updateUserInfo);
      }
      try {
         // 第一次登录时创建用户额外信息
         userInfoExtraService.createUserInfoExtra(user.getId());
      } catch (Exception e) {
         e.printStackTrace();
      }
   }
   @Override
@@ -917,7 +939,7 @@
      phone = phone.replaceAll(" ", "");
      // 苹果应用商店上线测试号码
      if ("17316780233".equalsIgnoreCase(phone) && "258168".equalsIgnoreCase(vcode)) {
      if ("17316780233".equalsIgnoreCase(phone) && "2581".equalsIgnoreCase(vcode)) {
         ;
      } else {
@@ -1127,14 +1149,19 @@
      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());
      }
      if (StringUtil.isNullOrEmpty(weiXinUser.getHeadimgurl())) {
         updateUserInfo.setPortrait(Constant.systemCommonConfig.getDefaultPortrait());
      // 将默认昵称替换成微信昵称
      String defaultNickName = Constant.systemCommonConfig.getDefaultNickName();
      if (!StringUtil.isNullOrEmpty(weiXinUser.getNickname()) && !StringUtil.isNullOrEmpty(defaultNickName)
            && defaultNickName.equals(user.getNickName())) {
         updateUserInfo.setNickName(weiXinUser.getNickname());
      }
      // 将默认头像替换成微信头像
      String defaultPortrait = Constant.systemCommonConfig.getDefaultPortrait();
      if (!StringUtil.isNullOrEmpty(weiXinUser.getHeadimgurl()) && !StringUtil.isNullOrEmpty(defaultPortrait)
            && defaultPortrait.equals(user.getPortrait())) {
         updateUserInfo.setPortrait(weiXinUser.getHeadimgurl());
      }
      userInfoMapper.updateByPrimaryKeySelective(updateUserInfo);
@@ -1154,4 +1181,131 @@
      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);
   }
}