admin
2020-05-19 744594ef1a2f530fc3e86ea9dc48b62247f79420
fanli/src/main/java/com/yeshi/fanli/service/impl/user/vip/TeamUserLevelStatisticServiceImpl.java
@@ -11,13 +11,14 @@
import org.springframework.stereotype.Service;
import com.yeshi.fanli.dao.mybatis.user.vip.TeamUserLevelStatisticMapper;
import com.yeshi.fanli.entity.bus.user.ThreeSale;
import com.yeshi.fanli.entity.bus.user.UserInviteValidRecord;
import com.yeshi.fanli.dao.mybatis.user.vip.UserLevelStatisticMapper;
import com.yeshi.fanli.dto.vip.UserLevelStatisticDTO;
import com.yeshi.fanli.entity.bus.user.vip.TeamUserLevelStatistic;
import com.yeshi.fanli.entity.bus.user.vip.UserLevelEnum;
import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce;
import com.yeshi.fanli.service.inter.user.vip.TeamUserLevelStatisticService;
import com.yeshi.fanli.service.manger.user.UserLevelManager;
import com.yeshi.fanli.util.user.UserLevelUtil;
@Service
public class TeamUserLevelStatisticServiceImpl implements TeamUserLevelStatisticService {
@@ -30,6 +31,9 @@
   @Resource
   private ThreeSaleSerivce threeSaleSerivce;
   @Resource
   private UserLevelStatisticMapper userLevelStatisticMapper;
   @Override
   public TeamUserLevelStatistic selectByUid(Long uid) {
@@ -64,56 +68,46 @@
   @Override
   public void initData(Long uid) {
      int pageSize = 1000;
      // 直接粉丝统计
      List<UserLevelStatisticDTO> firstList = userLevelStatisticMapper.statisticFirstTeamLevelCount(uid);
      List<UserLevelStatisticDTO> secondList = userLevelStatisticMapper.statisticSecondTeamLevelCount(uid);
      int daRenFirstCount = 0;
      int highFirstCount = 0;
      int superFirstCount = 0;
      int tearcherFirstCount = 0;
      for (int i = 0; i < 100; i++) {
          List<ThreeSale> list = threeSaleSerivce.listFirstTeam(i * pageSize, pageSize, uid);
         if (list == null || list.size() == 0) {
            break;
         }
         for (ThreeSale ts : list) {
            UserLevelEnum level = userLevelManager.getUserLevel(ts.getWorker().getId());
            if (level == UserLevelEnum.daRen || level == UserLevelEnum.normalVIP) {
               daRenFirstCount++;
            } else if (level == UserLevelEnum.highVIP) {
               highFirstCount++;
            } else if (level == UserLevelEnum.superVIP) {
               superFirstCount++;
            } else if (level == UserLevelEnum.tearcher) {
               tearcherFirstCount++;
            }
         }
      for (UserLevelStatisticDTO dto : firstList) {
         UserLevelEnum level = UserLevelUtil.getByLevel(dto.getLevel());
         if (level == null)
            level = UserLevelEnum.daRen;
         if (level == UserLevelEnum.daRen || level == UserLevelEnum.normalVIP) {
            daRenFirstCount += dto.getNum();
         } else if (level == UserLevelEnum.highVIP)
            highFirstCount += dto.getNum();
         else if (level == UserLevelEnum.superVIP)
            superFirstCount += dto.getNum();
         else if (level == UserLevelEnum.tearcher)
            tearcherFirstCount += dto.getNum();
      }
      // 间接粉丝统计
      int daRenSecondCount = 0;
      int highSecondCount = 0;
      int superSecondCount = 0;
      int tearcherSecondCount = 0;
      for (int i = 0; i < 100; i++) {
         List<ThreeSale> list  = threeSaleSerivce.listSecondTeam(i * pageSize, pageSize, uid);
         if (list == null || list.size() == 0) {
            break;
         }
         for (ThreeSale ts : list) {
            UserLevelEnum level = userLevelManager.getUserLevel(ts.getWorker().getId());
            if (level == UserLevelEnum.daRen || level == UserLevelEnum.normalVIP) {
               daRenSecondCount++;
            } else if (level == UserLevelEnum.highVIP) {
               highSecondCount++;
            } else if (level == UserLevelEnum.superVIP) {
               superSecondCount++;
            } else if (level == UserLevelEnum.tearcher) {
               tearcherSecondCount++;
            }
         }
      for (UserLevelStatisticDTO dto : secondList) {
         UserLevelEnum level = UserLevelUtil.getByLevel(dto.getLevel());
         if (level == null)
            level = UserLevelEnum.daRen;
         if (level == UserLevelEnum.daRen || level == UserLevelEnum.normalVIP) {
            daRenSecondCount += dto.getNum();
         } else if (level == UserLevelEnum.highVIP)
            highSecondCount += dto.getNum();
         else if (level == UserLevelEnum.superVIP)
            superSecondCount += dto.getNum();
         else if (level == UserLevelEnum.tearcher)
            tearcherSecondCount += dto.getNum();
      }
      UserLevelEnum level = userLevelManager.getUserLevel(uid);