From bb133d1e82c337da646e90740b82584b82f9a0e6 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期六, 18 四月 2020 10:03:41 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/div' into div

---
 fanli/src/main/java/com/yeshi/fanli/service/manger/order/TeamDividentsManager.java |   61 ++++++++++++++++++------------
 1 files changed, 37 insertions(+), 24 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/manger/order/TeamDividentsManager.java b/fanli/src/main/java/com/yeshi/fanli/service/manger/order/TeamDividentsManager.java
index 86323b3..dde11fd 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/manger/order/TeamDividentsManager.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/manger/order/TeamDividentsManager.java
@@ -113,31 +113,42 @@
 
 	// 鏄惁鍙互鍒嗙孩
 	private boolean isCanDividents(TeamUserLevelStatistic tus) {
-		if (Constant.IS_TEST && tus.getLevel() != UserLevelEnum.daRen && tus.getLevel() != UserLevelEnum.normalVIP)
-			return true;
+//		if (Constant.IS_TEST && tus.getLevel() != UserLevelEnum.daRen && tus.getLevel() != UserLevelEnum.normalVIP)
+//			return true;
 
 		if (tus != null && (tus.getLevel() == UserLevelEnum.highVIP || tus.getLevel() == UserLevelEnum.superVIP
 				|| tus.getLevel() == UserLevelEnum.tearcher)) {
-			if (tus.getLevel() == UserLevelEnum.highVIP) {
-				int vipFirstCount = tus.getNormalFirstCount() + tus.getHighFirstCount() + tus.getSuperFirstCount()
-						+ tus.getTearcherFirstCount();
-				if (vipFirstCount >= 3)// 鐩存帴绮変笣鏅�氫細鍛樼瓑绾т互涓婄殑鐢ㄦ埛>=3
+
+			if (tus.getLevel() == UserLevelEnum.tearcher) {
+				int firstCount = tus.getSuperFirstCount() + tus.getTearcherFirstCount();
+				int secondCount = tus.getHighSecondCount() + tus.getSuperSecondCount() + tus.getTearcherSecondCount();
+				if (firstCount >= 3 && secondCount >= 3) {// 鐩存帴绮変笣瓒呯骇浼氬憳绛夌骇浠ヤ笂鐨勭敤鎴�>=3
+					// 闂存帴绮変笣鏅�氫細鍛樹互涓婄瓑绾�>=3
 					return true;
-			} else if (tus.getLevel() == UserLevelEnum.superVIP) {
+				} else {
+					// 濡傛灉瀵煎笀涓嶆弧瓒虫潯浠跺氨闇�瑕侀檷绾т负瓒呯骇浼氬憳
+					tus.setLevel(UserLevelEnum.superVIP);
+				}
+			}
+
+			if (tus.getLevel() == UserLevelEnum.superVIP) {
 				int firstCount = tus.getSuperFirstCount() + tus.getTearcherFirstCount();
 				int secondCount = tus.getNormalSecondCount() + tus.getHighSecondCount() + tus.getSuperSecondCount()
 						+ tus.getTearcherSecondCount();
 				if (firstCount >= 3 && secondCount >= 3) {// 鐩存帴绮変笣瓒呯骇浼氬憳绛夌骇浠ヤ笂鐨勭敤鎴�>=3
 															// 闂存帴绮変笣鏅�氫細鍛樹互涓婄瓑绾�>=3
 					return true;
+				} else {
+					// 濡傛灉瓒呯骇浼氬憳涓嶆弧瓒虫潯浠跺氨闇�瑕侀檷绾т负楂樼骇浼氬憳
+					tus.setLevel(UserLevelEnum.highVIP);
 				}
-			} else {
-				int firstCount = tus.getSuperFirstCount() + tus.getTearcherFirstCount();
-				int secondCount = tus.getHighSecondCount() + tus.getSuperSecondCount() + tus.getTearcherSecondCount();
-				if (firstCount >= 3 && secondCount >= 3) {// 鐩存帴绮変笣瓒呯骇浼氬憳绛夌骇浠ヤ笂鐨勭敤鎴�>=3
-															// 闂存帴绮変笣楂樼骇浼氬憳浠ヤ笂绛夌骇>=3
+			}
+
+			if (tus.getLevel() == UserLevelEnum.highVIP) {
+				int vipFirstCount = tus.getNormalFirstCount() + tus.getHighFirstCount() + tus.getSuperFirstCount()
+						+ tus.getTearcherFirstCount();
+				if (vipFirstCount >= 3)// 鐩存帴绮変笣鏅�氫細鍛樼瓑绾т互涓婄殑鐢ㄦ埛>=3
 					return true;
-				}
 			}
 		}
 		return false;
@@ -178,7 +189,7 @@
 		if (threeSalesList == null)
 			return;
 
-		Map<Long, UserLevelEnum> uidLevel = new HashMap<Long, UserLevelEnum>();
+		Map<Long, UserLevelEnum> uidLevelMap = new HashMap<Long, UserLevelEnum>();
 		for (ThreeSale ts : threeSalesList) {
 			if (ts.getBoss() != null) {
 				TeamUserLevelStatistic tus = teamUserLevelStatisticService.selectByUid(ts.getBoss().getId());
@@ -187,20 +198,20 @@
 				tus = teamUserLevelStatisticService.selectByUid(ts.getBoss().getId());
 
 				if (isCanDividents(tus)) {
-					uidLevel.put(tus.getId(), tus.getLevel());
+					uidLevelMap.put(tus.getId(), tus.getLevel());
 				}
 			}
 		}
 
 		// 娌℃湁鍙備笌鍒嗙孩鐨勭敤鎴�
-		if (uidLevel == null || uidLevel.size() == 0) {
+		if (uidLevelMap == null || uidLevelMap.size() == 0) {
 			return;
 		}
 
-		BigDecimal perDivident = computePerDivident(uidLevel, totalMoney);
-		for (Iterator<Long> its = uidLevel.keySet().iterator(); its.hasNext();) {
+		BigDecimal perDivident = computePerDivident(uidLevelMap, totalMoney);
+		for (Iterator<Long> its = uidLevelMap.keySet().iterator(); its.hasNext();) {
 			Long uid = its.next();
-			BigDecimal dividents = computeUserDivident(perDivident, uidLevel.get(uid));
+			BigDecimal dividents = computeUserDivident(perDivident, uidLevelMap.get(uid));
 			// 灏嗚祫閲戝垎閰嶅埌鍙備笌鍒嗙孩鐨勭敤鎴�
 			TeamDividentsSourceUser teamDividentsSourceUser = new TeamDividentsSourceUser();
 			teamDividentsSourceUser.setDay(day);
@@ -213,16 +224,18 @@
 
 	// 璁$畻骞冲潎鍒嗙孩
 	private BigDecimal computePerDivident(Map<Long, UserLevelEnum> uidLevels, BigDecimal totalMoney) {
-		int count = 0;
+		BigDecimal count = new BigDecimal(0);
 		for (Iterator<Long> its = uidLevels.keySet().iterator(); its.hasNext();) {
 			Long uid = its.next();
 			if (uidLevels.get(uid) == UserLevelEnum.highVIP) {
-				count += 1;
+				count = count.add(new BigDecimal(1));
 			} else if (uidLevels.get(uid) == UserLevelEnum.superVIP) {
-				count += 2;
+				count = count.add(new BigDecimal(2));
+			} else if (uidLevels.get(uid) == UserLevelEnum.tearcher) {
+				count = count.add(new BigDecimal(2.5));
 			}
 		}
-		return MoneyBigDecimalUtil.div(totalMoney, new BigDecimal(count));
+		return MoneyBigDecimalUtil.div(totalMoney, count);
 	}
 
 	private BigDecimal computeUserDivident(BigDecimal perDivident, UserLevelEnum userLevel) {
@@ -231,7 +244,7 @@
 		} else if (userLevel == UserLevelEnum.superVIP) {
 			return MoneyBigDecimalUtil.mul(perDivident, new BigDecimal(2));
 		} else if (userLevel == UserLevelEnum.tearcher) {
-			return MoneyBigDecimalUtil.mul(perDivident, new BigDecimal(2));
+			return MoneyBigDecimalUtil.mul(perDivident, new BigDecimal(2.5));
 		}
 		return null;
 	}

--
Gitblit v1.8.0