From 7e7db2fa55a9a3af46d4fd8ede0dee147f101d64 Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期六, 09 五月 2020 21:41:27 +0800 Subject: [PATCH] 2.1需求 --- fanli/src/main/java/com/yeshi/fanli/service/impl/user/vip/TeamUserLevelStatisticServiceImpl.java | 138 +++++++++++++++++++++++++++++++-------------- 1 files changed, 95 insertions(+), 43 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/vip/TeamUserLevelStatisticServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/vip/TeamUserLevelStatisticServiceImpl.java index 62a721d..dddd4d6 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/vip/TeamUserLevelStatisticServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/vip/TeamUserLevelStatisticServiceImpl.java @@ -1,17 +1,20 @@ 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; 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.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.invite.UserInviteValidRecordService; import com.yeshi.fanli.service.inter.user.vip.TeamUserLevelStatisticService; import com.yeshi.fanli.service.manger.user.UserLevelManager; @@ -19,13 +22,13 @@ public class TeamUserLevelStatisticServiceImpl implements TeamUserLevelStatisticService { @Resource - private ThreeSaleSerivce threeSaleSerivce; - - @Resource private UserLevelManager userLevelManager; @Resource private TeamUserLevelStatisticMapper teamUserLevelStatisticMapper; + + @Resource + private UserInviteValidRecordService userInviteValidRecordService; @Override public TeamUserLevelStatistic selectByUid(Long uid) { @@ -33,56 +36,89 @@ } @Override - public void initData(Long uid) { - int state = ThreeSale.STATE_SUCCESS; - long count = threeSaleSerivce.countFirstTeam(uid, state); - List<ThreeSale> list = threeSaleSerivce.listFirstTeam(0L, (int) count, uid, state); - int normalFirstCount = 0; - int highFirstCount = 0; - int superFirstCount = 0; - int tearcherFirstCount = 0; - for (ThreeSale ts : list) { - UserLevelEnum level = userLevelManager.getUserLevel(ts.getWorker().getId()); - if (level == UserLevelEnum.normalVIP) { - normalFirstCount++; - } else if (level == UserLevelEnum.highVIP) { - highFirstCount++; - } else if (level == UserLevelEnum.superVIP) { - superFirstCount++; - } else if (level == UserLevelEnum.tearcher) { - tearcherFirstCount++; + 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)); } } - int normalSecondCount = 0; + 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++) { + 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 || level == UserLevelEnum.normalVIP) { + daRenFirstCount++; + } else if (level == UserLevelEnum.highVIP) { + highFirstCount++; + } else if (level == UserLevelEnum.superVIP) { + superFirstCount++; + } else if (level == UserLevelEnum.tearcher) { + tearcherFirstCount++; + } + } + } + + // 闂存帴绮変笣缁熻 + int daRenSecondCount = 0; int highSecondCount = 0; int superSecondCount = 0; int tearcherSecondCount = 0; + for (int i = 0; i < 100; i++) { + List<UserInviteValidRecord> list = userInviteValidRecordService.listSecondTeam(i * pageSize, pageSize, uid); + if (list == null || list.size() == 0) { + break; + } - long secondCount = threeSaleSerivce.countSecondTeam(uid, state); - int pageSize = 1000; - int toalPage = (int) (secondCount % pageSize == 0 ? secondCount / pageSize : secondCount / pageSize + 1); - for (int i = 0; i < toalPage; i++) { - list = threeSaleSerivce.listSecondTeam(i * pageSize, pageSize, uid, state); - if (list != null) - for (ThreeSale ts : list) { - UserLevelEnum level = userLevelManager.getUserLevel(ts.getWorker().getId()); - if (level == UserLevelEnum.normalVIP) { - normalSecondCount++; - } else if (level == UserLevelEnum.highVIP) { - highSecondCount++; - } else if (level == UserLevelEnum.superVIP) { - superSecondCount++; - } else if (level == UserLevelEnum.tearcher) { - tearcherSecondCount++; - } + for (UserInviteValidRecord ts : list) { + UserLevelEnum level = userLevelManager.getUserLevel(ts.getWorkerId()); + 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++; } + } } UserLevelEnum level = userLevelManager.getUserLevel(uid); TeamUserLevelStatistic statistic = new TeamUserLevelStatistic(); - statistic.setNormalFirstCount(normalFirstCount); - statistic.setNormalSecondCount(normalSecondCount); + statistic.setDaRenFirstCount(daRenFirstCount); + statistic.setDaRenSecondCount(daRenSecondCount); statistic.setHighFirstCount(highFirstCount); statistic.setHighSecondCount(highSecondCount); statistic.setSuperFirstCount(superFirstCount); @@ -95,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) { -- Gitblit v1.8.0