admin
2020-04-13 dd5b15229cb15459fa7c31ccea77dac28cbfafbd
fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/ThreeSaleSerivceImpl.java
@@ -117,9 +117,6 @@
            threeSaleMapper.deleteExpireRecord(inviter.getId(), inviteeUser.getId());
         }
         // 创建通知
         userInviteMsgNotificationService.inviteScan(inviter.getId(), threeSale);
      } else {// 是已经存在的用户
         if (worker.getId().longValue() == inviter.getId())
            throw new ThreeSaleException(4, "不能绑定自己");
@@ -163,9 +160,6 @@
                     threeSaleMapper.deleteExpireRecord(inviter.getId(), worker.getId());
                  }
                  userInviteMsgNotificationService.inviteScan(inviter.getId(), threeSale);
                  // threeSaleSerivce.bind(invitee, inviter);
               } else {
                  // 还存在有效的邀请,则不做处理
               }
@@ -195,7 +189,6 @@
               ts.setSucceedTime(System.currentTimeMillis());
               ts.setWorker(worker);
               threeSaleMapper.insertSelective(ts);
               inviteSuccess(inviter.getId(), worker.getId(), ts);
            } else {
               if (!list.get(0).getState() && list.get(0).getExpire() == ThreeSale.EXPIRE_NORMAL
                     && list.get(0).getBoss().getId() == inviter.getId().longValue()) {// 未生效的上级和现在上级一样就生效
@@ -203,7 +196,6 @@
                  update.setState(true);
                  update.setSucceedTime(System.currentTimeMillis());
                  threeSaleMapper.updateByPrimaryKeySelective(update);
                  inviteSuccess(list.get(0).getBoss().getId(), list.get(0).getWorker().getId(), list.get(0));
               }
            }
         }
@@ -238,7 +230,7 @@
         // if (inviter != null)
         // reComputeUserRank(inviter.getId());
         // 添加到队列
         inviteSuccess(oldSale.getBoss().getId(), oldSale.getWorker().getId(), oldSale);
         inviteSuccess(oldSale.getBoss().getId(), worker);
      }
   }
@@ -516,7 +508,7 @@
      threeSale.setUpdateTime(java.lang.System.currentTimeMillis());
      threeSaleMapper.insertSelective(threeSale);
      inviteSuccess(inviter.getId(), invitee.getId(), threeSale);
      inviteSuccess(inviter.getId(), invitee);
   }
   @Override
@@ -535,39 +527,48 @@
      threeSale.setUpdateTime(java.lang.System.currentTimeMillis());
      threeSaleMapper.insertSelective(threeSale);
      UserInfo boss = userInfoService.selectByPKey(threeSale.getBoss().getId());
      threeSale.setBoss(boss);
      threeSale.setWorker(invitee);
      // 邀请成功:消息、相关处理
      inviteSuccess(boss.getId(), invitee.getId(), threeSale);
      inviteSuccess(inviterId, invitee);
   }
   /**
    * 邀请成功
    */
   @Transactional
   private void inviteSuccess(Long bossId, Long workerId, ThreeSale threeSale) {
      // 邀请消息
      UserActiveLog activeLog = userActiveLogService.getUserLatestActiveInfo(bossId);
      if (activeLog != null && VersionUtil.greaterThan_2_0_5(
            "appstore".equalsIgnoreCase(activeLog.getChannel()) ? "ios" : "android", activeLog.getVersionCode())) { // 2.1版本以上
         userInviteMsgNotificationService.inviteSuccess2_1(bossId, threeSale);
      } else { // 最初消息
         userInviteMsgNotificationService.inviteSuccess(threeSale.getBoss().getId(), threeSale);
   private void inviteSuccess(Long bossId, UserInfo invitee) {
      if (!Constant.IS_TEST) {
         UserInviteMQMsg msg = new UserInviteMQMsg(bossId, invitee.getId(), null, new Date(), UserInviteMQMsg.STATE_SUCCESS);
         Message message = MQMsgBodyFactory.create(MQTopicName.TOPIC_USER, UserTopicTagEnum.inviteSuccess, msg);
         producer.send(message);
      }
      executor.execute(new Runnable() {
         @Override
         public void run() {
            // 邀请金币
            integralGetService.addInviteLevelOne(bossId, workerId);
            try {
               // 邀请金币
               integralGetService.addInviteLevelOne(bossId, invitee.getId());
            } catch (Exception e) {
               e.printStackTrace();
            }
            try {
               // 直接粉丝邀请成功
               userInviteMsgNotificationService.directInviteSuccess(bossId, invitee.getNickName(),
                     invitee.getPortrait(), new Date());
               // 间接粉丝邀请成功
               ThreeSale myBoss = threeSaleMapper.getMyBoss(bossId);
               if (myBoss != null) {
                  UserInfo boss = userInfoService.selectByPKey(bossId);
                  userInviteMsgNotificationService.indirectInviteSuccess(bossId, boss.getNickName(),
                        invitee.getNickName(), invitee.getPortrait(), new Date());
               }
            } catch (Exception e) {
               e.printStackTrace();
            }
         }
      });
      UserInviteMQMsg msg = new UserInviteMQMsg(bossId, workerId, null, new Date(), UserInviteMQMsg.STATE_SUCCESS);
      Message message = MQMsgBodyFactory.create(MQTopicName.TOPIC_USER, UserTopicTagEnum.inviteSuccess, msg);
      if (!Constant.IS_TEST)
         producer.send(message);
   }
   /**
@@ -610,23 +611,22 @@
   public List<ThreeSale> listFirstTeamByUndeleted(long start, int count, Long uid) {
      return threeSaleMapper.listFirstTeamByUndeleted(start, count, uid);
   }
   @Override
   public long countFirstTeamByUndeleted(Long uid) {
      return threeSaleMapper.countFirstTeamByUndeleted(uid);
   }
   @Override
   public List<ThreeSale> listSecondTeamByUndeleted(long start, int count, Long uid) {
      return threeSaleMapper.listSecondTeamByUndeleted(start, count, uid);
   }
   @Override
   public long countSecondTeamByUndeleted(Long uid) {
      return threeSaleMapper.countSecondTeamByUndeleted(uid);
   }
   @Override
   public List<ThreeSale> listSecondTeam(long start, int count, Long uid, Integer state) {
      return threeSaleMapper.listSecondTeam(start, count, uid, state);
@@ -671,4 +671,50 @@
      return deepList;
   }
   @Override
   public List<ThreeSale> getMyBossDeepList(Long uid) {
      //TODO 需要更加简便的方式处理
      return getMyBossDeepList(uid, 100);
   }
   @Override
   public void remvoeBreak(Long id, Long uid, Long tid) {
      ThreeSale threeSale = threeSaleMapper.selectByPrimaryKey(id);
      if (threeSale == null) {
         return;
      }
      Long workerId = threeSale.getWorker().getId();
      if (tid.longValue() != workerId.longValue()) {
         return;
      }
      Integer expire = threeSale.getExpire();
      if (expire == ThreeSale.EXPIRE_NORMAL) {
         return;
      }
      int upExpire = expire;
      Long bossId = threeSale.getBoss().getId();
      if (bossId.longValue() == uid.longValue()) { // 直接粉丝
         if (expire == ThreeSale.EXPIRE_BREAK_VIP_DEL4) {
            upExpire = ThreeSale.EXPIRE_BREAK_VIP_DEL34;
         } else {
            upExpire = ThreeSale.EXPIRE_BREAK_VIP_DEL3;
         }
      } else { // 间接粉丝
         if (expire == ThreeSale.EXPIRE_BREAK_VIP_DEL3) {
            upExpire = ThreeSale.EXPIRE_BREAK_VIP_DEL34;
         } else {
            upExpire = ThreeSale.EXPIRE_BREAK_VIP_DEL4;
         }
      }
      ThreeSale update = new ThreeSale();
      update.setId(id);
      update.setExpire(upExpire);
      update.setUpdateTime(java.lang.System.currentTimeMillis());
      threeSaleMapper.updateByPrimaryKeySelective(update);
   }
}