admin
2020-05-12 1faf3ab0ba6c17eee48e68e8d0077ea61f45d75d
fanli/src/main/java/com/yeshi/fanli/service/impl/user/vip/TeamUserLevelStatisticServiceImpl.java
@@ -1,7 +1,10 @@
package com.yeshi.fanli.service.impl.user.vip;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
@@ -23,10 +26,9 @@
   @Resource
   private TeamUserLevelStatisticMapper teamUserLevelStatisticMapper;
   @Resource
   private UserInviteValidRecordService userInviteValidRecordService;
   @Override
   public TeamUserLevelStatistic selectByUid(Long uid) {
@@ -34,25 +36,51 @@
   }
   @Override
   public List<TeamUserLevelStatistic> listByUids(List<Long> uids) {
      List<TeamUserLevelStatistic> resultList = new ArrayList<>();
      List<TeamUserLevelStatistic> list = teamUserLevelStatisticMapper.listByUids(uids);
      // 放入Map中
      Map<Long, TeamUserLevelStatistic> map = new HashMap<>();
      if (list != null)
         for (TeamUserLevelStatistic s : list) {
            map.put(s.getId(), s);
         }
      for (Long uid : uids) {
         if (map.get(uid) == null) {
            initData(uid);
            TeamUserLevelStatistic statistic = selectByUid(uid);
            resultList.add(statistic);
         } else {
            resultList.add(map.get(uid));
         }
      }
      return resultList;
   }
   @Override
   public void initData(Long uid) {
      int pageSize = 1000;
      // 直接粉丝统计
      int daRenFirstCount = 0;
      int highFirstCount = 0;
      int superFirstCount = 0;
      int tearcherFirstCount = 0;
      for (int i = 0; i < 100; i ++) {
      for (int i = 0; i < 100; i++) {
         List<UserInviteValidRecord> list = userInviteValidRecordService.listFirstTeam(i * pageSize, pageSize, uid);
         if (list == null || list.size() == 0) {
            break;
         }
         for (UserInviteValidRecord ts : list) {
            UserLevelEnum level = userLevelManager.getUserLevel(ts.getWorkerId());
            if (level == UserLevelEnum.daRen) {
            if (level == UserLevelEnum.daRen || level == UserLevelEnum.normalVIP) {
               daRenFirstCount++;
            }  else if (level == UserLevelEnum.highVIP) {
            } else if (level == UserLevelEnum.highVIP) {
               highFirstCount++;
            } else if (level == UserLevelEnum.superVIP) {
               superFirstCount++;
@@ -61,22 +89,21 @@
            }
         }
      }
      // 间接粉丝统计
      int daRenSecondCount = 0;
      int highSecondCount = 0;
      int superSecondCount = 0;
      int tearcherSecondCount = 0;
      for (int i = 0; i < 100; i ++) {
      for (int i = 0; i < 100; i++) {
         List<UserInviteValidRecord> list = userInviteValidRecordService.listSecondTeam(i * pageSize, pageSize, uid);
         if (list == null || list.size() == 0) {
            break;
         }
         for (UserInviteValidRecord ts : list) {
            UserLevelEnum level = userLevelManager.getUserLevel(ts.getWorkerId());
            if (level == UserLevelEnum.daRen) {
            if (level == UserLevelEnum.daRen || level == UserLevelEnum.normalVIP) {
               daRenSecondCount++;
            } else if (level == UserLevelEnum.highVIP) {
               highSecondCount++;
@@ -104,6 +131,22 @@
   }
   @Override
   public void setUserLevel(Long uid, UserLevelEnum level) {
      TeamUserLevelStatistic old = selectByUid(uid);
      if (old == null) {
         initData(uid);
         old = selectByUid(uid);
      }
      TeamUserLevelStatistic update = new TeamUserLevelStatistic();
      update.setId(old.getId());
      update.setLevel(level);
      update.setUpdateTime(new Date());
      teamUserLevelStatisticMapper.updateByPrimaryKeySelective(update);
   }
   @Override
   public void add(TeamUserLevelStatistic statistic) {
      TeamUserLevelStatistic old = selectByUid(statistic.getId());
      if (old == null) {