yujian
2020-04-27 77cd7f9358cc62d70249a78ee33c7626d4bdc5b5
fanli/src/main/java/com/yeshi/fanli/service/impl/user/vip/UserVIPPreInfoServiceImpl.java
@@ -65,7 +65,6 @@
   @Resource
   private UserInfoExtraService userInfoExtraService;
   @Resource
   private UserInfoService userInfoService;
@@ -172,32 +171,40 @@
      // 验证是否满足升级高级会员
      if (doneZiGou >= limitZiGou7) {
         try {
            twoProcess(uid, limitZiGou7, null);
            twoProcess(uid, limitZiGou7, null, false);
         } catch (UserVIPPreInfoException e) {
         }
      }
   }
   @Override
   @RequestSerializableByKeyService(key = "#uid")
   @Transactional(rollbackFor = Exception.class)
   public void upgradeVipByTeamNum(Long uid) {
      vipTeamVerify(uid);
   }
   @Override
   @RequestSerializableByKeyService(key = "#tid")
   @Transactional(rollbackFor = Exception.class)
   public void upgradeVipByTeamNum(Long tid) {
   public void upgradeBossVipByTeamNum(Long tid) {
      UserInfo boss = threeSaleSerivce.getBoss(tid);
      if (boss == null) {
         return;
      }
      Long bossId = boss.getId();
      vipTeamVerify(boss.getId());
   }
      // 验证上上级 -间接粉丝是否满足
      executor.execute(new Runnable() {
         @Override
         public void run() {
            upgradeVipByTeamNum(bossId);
         }
      });
      UserVIPPreInfo latest = getLatestProcessInfo(bossId);
   /**
    * 验证用户是否满足升级队员条件
    * @param uid
    */
   private void vipTeamVerify(Long uid) {
      UserVIPPreInfo latest = getLatestProcessInfo(uid);
      if (latest != null && latest.getProcess() == UserVIPPreInfo.PROCESS_2) {
         return;
      }
@@ -205,7 +212,7 @@
      // 有效粉丝
      int doneFirst = 0;
      int doneSecond = 0;
      UserInviteValidNum userInviteValidNum = userInviteValidNumService.selectByPrimaryKey(bossId);
      UserInviteValidNum userInviteValidNum = userInviteValidNumService.selectByPrimaryKey(uid);
      if (userInviteValidNum != null) {
         doneFirst = userInviteValidNum.getNumFirst() == null ? 0 : userInviteValidNum.getNumFirst();
         doneSecond = userInviteValidNum.getNumSecond() == null ? 0 : userInviteValidNum.getNumSecond();
@@ -225,13 +232,15 @@
      // 验证是否满足升级高级会员
      if (doneFirst >= limitFirst7 && doneSecond >= limitSecond7) {
         try {
            twoProcess(bossId, limitFirst7, limitSecond7);
            twoProcess(uid, limitFirst7, limitSecond7, true);
         } catch (UserVIPPreInfoException e) {
         }
      }
   }
   /**
    * 二阶段
    * 
@@ -242,12 +251,12 @@
    * @param secondTeam
    */
   @Transactional(rollbackFor = Exception.class)
   private void twoProcess(Long uid, long limit1, Long limit2) throws UserVIPPreInfoException{
   private void twoProcess(Long uid, long limit1, Long limit2, boolean teamPass) throws UserVIPPreInfoException {
      String item = null;
      if (limit2 == null) {
         item = "返利+分享订单";
      } else {
      if (teamPass) {
         item = "直接+间接粉丝";
      } else {
         item = "返利+分享订单";
      }
      Date upgradeTime = new Date();
@@ -275,7 +284,7 @@
            registerTime = userInfoRegister.getCreateTime();
         }
         int daysBetween = TimeUtil.getDayDifferenceCount(registerTime, upgradeTime);
         userAccountMsgNotificationService.vipPreUpgrade(uid, "快省达人", "高级会员", daysBetween, limit1, limit2);
         userAccountMsgNotificationService.vipPreUpgrade(uid, "快省达人", "高级会员", daysBetween, limit1, limit2, teamPass);
         // 直接粉丝升级提醒
         ThreeSale threeSale = threeSaleSerivce.getMyBoss(uid);
@@ -302,4 +311,9 @@
      return userVIPPreInfoMapper.selectByUidAndProcess(uid, process);
   }
   @Override
   public void deleteByPrimaryKey(Long id) {
      userVIPPreInfoMapper.deleteByPrimaryKey(id);
   }
}