admin
2020-04-02 b9b613a285ebe0da27ca7dd2c3434c8c917abb74
fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/ThreeSaleSerivceImpl.java
@@ -86,7 +86,7 @@
      return threeSaleMapper.selectBoss(uid);
   }
   @Transactional
   @Transactional(rollbackFor = Exception.class)
   public void bind(UserInfo worker, UserInfo inviter) throws ThreeSaleException {
      if (worker == null || inviter == null)
         throw new ThreeSaleException(1, "用户信息为空");
@@ -134,7 +134,7 @@
            List<ThreeSale> list = listByWorkerId(worker.getId());
            if (list != null && list.size() > 0) {
               for (ThreeSale ts : list) {
                  if (!ts.getState() && ts.getExpire() == ThreeSale.EXPIRE_OUTOFDATE) {
                  if (!ts.getState() && ts.getExpire() == ThreeSale.EXPIRE_BREAK) {
                     outOfDateCount++;
                  }
               }
@@ -179,7 +179,7 @@
            if (list != null)
               for (int i = 0; i < list.size(); i++) {
                  if (list.get(i).getState() != null && list.get(i).getState() == false
                        && list.get(i).getExpire() == ThreeSale.EXPIRE_OUTOFDATE) {// 过期的
                        && list.get(i).getExpire() == ThreeSale.EXPIRE_BREAK) {// 过期的
                     list.remove(i);
                     i--;
                  }
@@ -500,7 +500,7 @@
   }
   @Override
   @Transactional
   @Transactional(rollbackFor = Exception.class)
   public void bindRelationshipByInviteCode(UserInfo invitee, UserInfo inviter) throws ThreeSaleException {
      if (invitee == null || inviter == null)
         throw new ThreeSaleException(1, "用户信息为空");
@@ -520,11 +520,11 @@
   }
   @Override
   @Transactional
   public void bindRelationshipByWX(UserInfo invitee, Long inviterId)throws ThreeSaleException {
   @Transactional(rollbackFor = Exception.class)
   public void bindRelationshipByWX(UserInfo invitee, Long inviterId) throws ThreeSaleException {
      if (invitee == null || inviterId == null)
         throw new ThreeSaleException(1, "用户信息为空");
         // 新建立确定关系
      // 新建立确定关系
      ThreeSale threeSale = new ThreeSale();
      threeSale.setBoss(new UserInfo(inviterId));
      threeSale.setWorker(invitee);
@@ -538,7 +538,7 @@
      UserInfo boss = userInfoService.selectByPKey(threeSale.getBoss().getId());
      threeSale.setBoss(boss);
      threeSale.setWorker(invitee);
      // 邀请成功:消息、相关处理
      inviteSuccess(boss.getId(), invitee.getId(), threeSale);
   }
@@ -550,13 +550,13 @@
   private void inviteSuccess(Long bossId, Long workerId, ThreeSale threeSale) {
      // 邀请消息
      UserActiveLog activeLog = userActiveLogService.getUserLatestActiveInfo(bossId);
      if (activeLog != null && VersionUtil.greaterThan_2_1("appstore".equalsIgnoreCase(activeLog.getChannel()) ? "ios" : "android",
            activeLog.getVersionCode())) { // 2.1版本以上
      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);
      }
      executor.execute(new Runnable() {
         @Override
         public void run() {
@@ -565,9 +565,9 @@
         }
      });
      UserInviteMQMsg msg = new UserInviteMQMsg(bossId, workerId, null, new Date(), UserInviteMQMsg.STATE_SUCCESS);
      Message message = MQMsgBodyFactory.create(MQTopicName.TOPIC_USER, UserTopicTagEnum.inviteSuccess,
            msg);
      producer.send(message);
      Message message = MQMsgBodyFactory.create(MQTopicName.TOPIC_USER, UserTopicTagEnum.inviteSuccess, msg);
      if (!Constant.IS_TEST)
         producer.send(message);
   }
   /**
@@ -590,7 +590,7 @@
   public ThreeSale selectByWorkerId(Long workerId) {
      return threeSaleMapper.selectSuccessByWorkerId(workerId);
   }
   @Override
   public ThreeSale getNearRelationByBossIdAndWorkerId(Long bossId, Long workerId) {
      return threeSaleMapper.getNearRelationByBossIdAndWorkerId(bossId, workerId);
@@ -607,6 +607,27 @@
   }
   @Override
   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);
   }
@@ -620,15 +641,76 @@
   public ThreeSale getByWorkerIdAndTime(Long workerId, long time) {
      return threeSaleMapper.getByWorkerIdAndTime(workerId, time);
   }
   @Override
   public void inviteSeparate(Long workerId, Long bossId) {
      threeSaleMapper.inviteSeparate(workerId, bossId);
   }
   @Override
   public long getTeamOrderNumByWorkerId(Long workerId) {
      return threeSaleMapper.getTeamOrderNumByWorkerId(workerId);
   }
   @Override
   public List<ThreeSale> getValidWorkerIdsByTime(Long bossId, long limitTime) {
      return threeSaleMapper.getValidWorkerIdsByTime(bossId, limitTime);
   }
   @Override
   public List<ThreeSale> getMyBossDeepList(Long uid, int deep) {
      List<ThreeSale> deepList = new ArrayList<>();
      ThreeSale boss = getMyBoss(uid);
      while (deep > 0 && boss != null) {
         deep--;
         deepList.add(boss);
         boss = getMyBoss(boss.getBoss().getId());
      }
      return deepList;
   }
   
   @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);
   }
}