From 42411e4a26461229c6bca6e89ca55e98a80f5a4e Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期四, 30 九月 2021 18:08:17 +0800
Subject: [PATCH] bug修改

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/user/vip/TeamUserLevelStatisticServiceImpl.java |  296 +++++++++++++++++++++++++++++++++-------------------------
 1 files changed, 167 insertions(+), 129 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 1012708..66eb36c 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,129 +1,167 @@
-package com.yeshi.fanli.service.impl.user.vip;
-
-import java.util.Date;
-import java.util.List;
-
-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.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.UserInviteValidRecordService;
-import com.yeshi.fanli.service.inter.user.vip.TeamUserLevelStatisticService;
-import com.yeshi.fanli.service.manger.user.UserLevelManager;
-
-@Service
-public class TeamUserLevelStatisticServiceImpl implements TeamUserLevelStatisticService {
-
-	@Resource
-	private UserLevelManager userLevelManager;
-
-	@Resource
-	private TeamUserLevelStatisticMapper teamUserLevelStatisticMapper;
-	
-	@Resource
-	private UserInviteValidRecordService userInviteValidRecordService;
-	
-
-	@Override
-	public TeamUserLevelStatistic selectByUid(Long uid) {
-		return teamUserLevelStatisticMapper.selectByPrimaryKey(uid);
-	}
-
-	@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) {
-					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;
-			}
-			
-			for (UserInviteValidRecord ts : list) {
-				UserLevelEnum level = userLevelManager.getUserLevel(ts.getWorkerId());
-				if (level == UserLevelEnum.daRen) {
-					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.setDaRenFirstCount(daRenFirstCount);
-		statistic.setDaRenSecondCount(daRenSecondCount);
-		statistic.setHighFirstCount(highFirstCount);
-		statistic.setHighSecondCount(highSecondCount);
-		statistic.setSuperFirstCount(superFirstCount);
-		statistic.setSuperSecondCount(superSecondCount);
-		statistic.setTearcherFirstCount(tearcherFirstCount);
-		statistic.setTearcherSecondCount(tearcherSecondCount);
-		statistic.setId(uid);
-		statistic.setLevel(level);
-		add(statistic);
-	}
-
-	@Override
-	public void add(TeamUserLevelStatistic statistic) {
-		TeamUserLevelStatistic old = selectByUid(statistic.getId());
-		if (old == null) {
-			if (statistic.getCreateTime() == null)
-				statistic.setCreateTime(new Date());
-			teamUserLevelStatisticMapper.insertSelective(statistic);
-		} else {
-			statistic.setUpdateTime(new Date());
-			teamUserLevelStatisticMapper.updateByPrimaryKeySelective(statistic);
-		}
-	}
-
-	@Override
-	public void updateUserLevel(Long uid) {
-		UserLevelEnum level = userLevelManager.getUserLevel(uid);
-		TeamUserLevelStatistic statistic = new TeamUserLevelStatistic();
-		statistic.setId(uid);
-		statistic.setLevel(level);
-		statistic.setUpdateTime(new Date());
-		teamUserLevelStatisticMapper.updateByPrimaryKeySelective(statistic);
-	}
-
-}
+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.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 {
+
+	@Resource
+	private UserLevelManager userLevelManager;
+
+	@Resource
+	private TeamUserLevelStatisticMapper teamUserLevelStatisticMapper;
+
+	@Resource
+	private ThreeSaleSerivce threeSaleSerivce;
+
+	@Resource
+	private UserLevelStatisticMapper userLevelStatisticMapper;
+
+	@Override
+	public TeamUserLevelStatistic selectByUid(Long uid) {
+		return teamUserLevelStatisticMapper.selectByPrimaryKey(uid);
+	}
+
+	@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) {
+		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 (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 (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);
+		TeamUserLevelStatistic statistic = new TeamUserLevelStatistic();
+		statistic.setDaRenFirstCount(daRenFirstCount);
+		statistic.setDaRenSecondCount(daRenSecondCount);
+		statistic.setHighFirstCount(highFirstCount);
+		statistic.setHighSecondCount(highSecondCount);
+		statistic.setSuperFirstCount(superFirstCount);
+		statistic.setSuperSecondCount(superSecondCount);
+		statistic.setTearcherFirstCount(tearcherFirstCount);
+		statistic.setTearcherSecondCount(tearcherSecondCount);
+		statistic.setId(uid);
+		statistic.setLevel(level);
+		add(statistic);
+	}
+
+	@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) {
+			if (statistic.getCreateTime() == null)
+				statistic.setCreateTime(new Date());
+			teamUserLevelStatisticMapper.insertSelective(statistic);
+		} else {
+			statistic.setUpdateTime(new Date());
+			teamUserLevelStatisticMapper.updateByPrimaryKeySelective(statistic);
+		}
+	}
+
+	@Override
+	public void updateUserLevel(Long uid) {
+		UserLevelEnum level = userLevelManager.getUserLevel(uid);
+		TeamUserLevelStatistic statistic = new TeamUserLevelStatistic();
+		statistic.setId(uid);
+		statistic.setLevel(level);
+		statistic.setUpdateTime(new Date());
+		teamUserLevelStatisticMapper.updateByPrimaryKeySelective(statistic);
+	}
+
+}

--
Gitblit v1.8.0