admin
2020-06-15 3e4ef41ffacd7f5fda2e81c3810cd11a6375b83c
fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/ThreeSaleSerivceImpl.java
@@ -23,12 +23,14 @@
import com.yeshi.fanli.entity.bus.user.ThreeSaleExtraInfo;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.exception.user.ThreeSaleException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
import com.yeshi.fanli.service.inter.user.UserActiveLogService;
import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
import com.yeshi.fanli.service.inter.user.UserInfoService;
import com.yeshi.fanli.service.inter.user.integral.IntegralGetService;
import com.yeshi.fanli.service.inter.user.invite.MsgInviteDetailService;
import com.yeshi.fanli.service.inter.user.invite.TeamFansInfoService;
import com.yeshi.fanli.service.inter.user.invite.ThreeSaleExtraInfoSerivce;
import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce;
import com.yeshi.fanli.service.inter.user.invite.UserInviteMsgNotificationService;
@@ -73,6 +75,11 @@
   @Lazy
   @Resource
   private IntegralGetService integralGetService;
   @Lazy
   @Resource
   private TeamFansInfoService teamFansInfoService;
   @Resource(name = "taskExecutor")
   private TaskExecutor executor;
@@ -208,7 +215,6 @@
      }
   }
   @Override
   public List<ThreeSale> listFirstTeamQuery(long start, int count, Long uid, Integer state, String startTime,
         String endTime, Integer validState) {
@@ -258,21 +264,21 @@
   @Override
   public JSONObject getMyFirstTeam(long start, int count, Long uid) {
      List<ThreeSale> list = threeSaleMapper.listFirstTeam(start, count, uid);
      List<ThreeSale> list = threeSaleMapper.listFirstTeam(start, count, uid, null);
      if (list == null) {
         list = new ArrayList<ThreeSale>();
      }
      long countTotal = threeSaleMapper.countFirstTeam(uid);
      long countTotal = threeSaleMapper.countFirstTeam(uid, null);
      return organizeTeam(countTotal, list);
   }
   @Override
   public JSONObject getMySecondTeam(long start, int count, Long uid) {
      List<ThreeSale> list = threeSaleMapper.listSecondTeam(start, count, uid);
      List<ThreeSale> list = threeSaleMapper.listSecondTeam(start, count, uid, null);
      if (list == null) {
         list = new ArrayList<ThreeSale>();
      }
      long countTotal = threeSaleMapper.countSecondTeam(uid);
      long countTotal = threeSaleMapper.countSecondTeam(uid, null);
      return organizeTeam(countTotal, list);
   }
@@ -401,13 +407,12 @@
      return threeSaleMapper.getSuccessRelationshipNum(uid);
   }
   @Override
   @Transactional(rollbackFor = Exception.class)
   public void bindInviteRelationship(Long workerId, Long bossId) throws ThreeSaleException {
      if (workerId == null || bossId == null)
         throw new ThreeSaleException(1, "用户信息为空");
      // 新建立确定关系
      ThreeSale threeSale = new ThreeSale();
      threeSale.setBoss(new UserInfo(bossId));
@@ -428,9 +433,14 @@
    */
   @Transactional
   private void inviteSuccess(Long workerId, Long bossId) {
      // 同步粉丝消息
      teamFansInfoService.addFansInfo(workerId, bossId, new Date());
      if (!Constant.IS_TEST) {
         UserInviteMQMsg msg = new UserInviteMQMsg(bossId, workerId, null, new Date(), UserInviteMQMsg.STATE_SUCCESS);
         UserInviteMQMsg msg = new UserInviteMQMsg(bossId, workerId, null, new Date(),
               UserInviteMQMsg.STATE_SUCCESS);
         Message message = MQMsgBodyFactory.create(MQTopicName.TOPIC_USER, UserTopicTagEnum.inviteSuccess, msg);
         message.setStartDeliverTime(java.lang.System.currentTimeMillis() + 5000);
         producer.send(message);
      }
@@ -440,24 +450,25 @@
            try { // 邀请金币
               integralGetService.addInviteLevelOne(bossId, workerId);
            } catch (Exception e) {
               e.printStackTrace();
               LogHelper.error(e);
            }
            
            // 邀请成功消息
            try {
               // 直接粉丝邀请成功
               UserInfo invitee = userInfoService.selectByPKey(workerId);
               userInviteMsgNotificationService.directInviteSuccess(bossId, invitee.getNickName(),
                     invitee.getPortrait(), new Date());
               // 间接粉丝邀请成功
               ThreeSale myBoss = threeSaleMapper.getMyBoss(bossId);
               if (myBoss != null) {
                  UserInfo boss = userInfoService.selectByPKey(bossId);
                  userInviteMsgNotificationService.indirectInviteSuccess(myBoss.getBoss().getId(),
                        boss.getNickName(),   invitee.getNickName(), invitee.getPortrait(), new Date());
                  userInviteMsgNotificationService.indirectInviteSuccess(myBoss.getBoss().getId(),
                        boss.getNickName(), invitee.getNickName(), invitee.getPortrait(), new Date());
               }
            } catch (Exception e) {
               e.printStackTrace();
               LogHelper.error(e);
            }
         }
      });
@@ -474,7 +485,6 @@
      return threeSaleMapper.getByWorkerId(workerId);
   }
   @Override
   public ThreeSale selectByWorkerId(Long workerId) {
      return threeSaleMapper.selectSuccessByWorkerId(workerId);
@@ -492,24 +502,53 @@
   @Override
   public List<ThreeSale> listFirstTeam(long start, int count, Long uid) {
      return threeSaleMapper.listFirstTeam(start, count, uid);
      return threeSaleMapper.listFirstTeam(start, count, uid, null);
   }
   @Override
   public List<ThreeSale> listSecondTeam(long start, int count, Long uid) {
      return threeSaleMapper.listSecondTeam(start, count, uid);
      return threeSaleMapper.listSecondTeam(start, count, uid, null);
   }
   @Override
   public List<ThreeSale> listFirstTeam(long start, int count, Long uid, List<Long> listId) {
      return threeSaleMapper.listFirstTeam(start, count, uid, listId);
   }
   @Override
   public List<ThreeSale> listSecondTeam(long start, int count, Long uid, List<Long> listId) {
      return threeSaleMapper.listSecondTeam(start, count, uid, listId);
   }
   @Override
   public long countFirstTeam(Long uid) {
      return threeSaleMapper.countFirstTeam(uid);
      return threeSaleMapper.countFirstTeam(uid, null);
   }
   @Override
   public long countSecondTeam(Long uid) {
      return threeSaleMapper.countSecondTeam(uid);
      return threeSaleMapper.countSecondTeam(uid, null);
   }
   @Override
   public long countFirstTeam(Long uid, List<Long> listId) {
      return threeSaleMapper.countFirstTeam(uid, listId);
   }
   @Override
   public long countSecondTeam(Long uid, List<Long> listId) {
      return threeSaleMapper.countSecondTeam(uid, listId);
   }
   @Override
   public long countFirstTeamByDate(Long uid, int dayType) {
      return threeSaleMapper.countFirstTeamByDate(uid, dayType);
   }
   @Override
   public long countSecondTeamByDate(Long uid, int dayType) {
      return threeSaleMapper.countSecondTeamByDate(uid, dayType);
   }
   @Override
   public ThreeSale selectLatestByWorkerIdAndState(Long workerId, int state) {
@@ -552,8 +591,37 @@
   @Override
   public List<ThreeSale> getMyBossDeepList(Long uid) {
      //TODO 需要更加简便的方式处理
      // TODO 需要更加简便的方式处理
      return getMyBossDeepList(uid, 100);
   }
   @Override
   public Long getTopBoss(Long uid) {
      Long bossUid = null;
      UserInfo boss = getBoss(uid);
      while (boss != null) {
         bossUid = boss.getId();
         boss = getBoss(boss.getId());
      }
      return bossUid;
   }
   @Override
   public List<ThreeSale> listAll(Date minTime, Date maxTime, int page, int pageSize) {
      return threeSaleMapper.listAll(minTime == null ? null : minTime.getTime(),
            maxTime == null ? null : maxTime.getTime(), (page - 1) * pageSize, pageSize);
   }
   @Override
   public long countAll(Date minTime, Date maxTime) {
      return threeSaleMapper.countAll(minTime == null ? null : minTime.getTime(),
            maxTime == null ? null : maxTime.getTime());
   }
   @Override
   public List<Long> getAllBossId(){
      return threeSaleMapper.getAllBossId();
   }
}