From 63bf3eac0b63606348e40d994a54de1cd4b6d3b9 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期六, 28 三月 2020 16:44:50 +0800
Subject: [PATCH] 数据统计 + 会员

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserOrderControllerV2.java |  268 +++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 238 insertions(+), 30 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserOrderControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserOrderControllerV2.java
index c1b138f..bf188f5 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserOrderControllerV2.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserOrderControllerV2.java
@@ -20,6 +20,8 @@
 import com.yeshi.fanli.entity.bus.user.UserInfo;
 import com.yeshi.fanli.entity.bus.user.vip.UserLevelEnum;
 import com.yeshi.fanli.entity.order.ESOrder;
+import com.yeshi.fanli.entity.order.InviteOrderSubsidy;
+import com.yeshi.fanli.entity.order.OrderTeamReward;
 import com.yeshi.fanli.entity.system.ConfigKeyEnum;
 import com.yeshi.fanli.exception.order.CommonOrderException;
 import com.yeshi.fanli.log.LogHelper;
@@ -27,10 +29,14 @@
 import com.yeshi.fanli.service.inter.count.HongBaoV2CountService;
 import com.yeshi.fanli.service.inter.order.CommonOrderService;
 import com.yeshi.fanli.service.inter.order.ESOrderService;
+import com.yeshi.fanli.service.inter.order.InviteOrderSubsidyServiceV2;
+import com.yeshi.fanli.service.inter.order.OrderTeamRewardService;
 import com.yeshi.fanli.service.inter.user.UserCustomSettingsService;
 import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
 import com.yeshi.fanli.service.inter.user.UserInfoService;
+import com.yeshi.fanli.service.inter.user.vip.UserVIPInfoService;
 import com.yeshi.fanli.util.Constant;
+import com.yeshi.fanli.util.MoneyBigDecimalUtil;
 import com.yeshi.fanli.util.RedisManager;
 import com.yeshi.fanli.util.StringUtil;
 import com.yeshi.fanli.util.VersionUtil;
@@ -73,8 +79,14 @@
 	@Resource
 	private ESOrderService esOrderService;
 
+	@Resource
+	private OrderTeamRewardService orderTeamRewardService;
 	
+	@Resource
+	private UserVIPInfoService userVIPInfoService;
 	
+	@Resource
+	private InviteOrderSubsidyServiceV2 inviteOrderSubsidyServiceV2;
 	
 	/**
 	 * 璁㈠崟鍒楄〃
@@ -403,16 +415,26 @@
 		
 		// 鍥㈤槦濂栧姳 TODO
 		if (VersionUtil.greaterThan_2_1(acceptData.getPlatform(), acceptData.getVersion())) {
-			data.put("teamSubsidy", "999.66");
-			data.put("teamReward", "777.66");
-			data.put("tutorSubsidy", "888.66");
+			BigDecimal teamSubsidy = inviteOrderSubsidyServiceV2.sumValidMoneyByUidAndDate(uid, dateType, null);
+			if (teamSubsidy == null) {
+				teamSubsidy = new BigDecimal(0);
+			}
+			
+			BigDecimal teamReward = orderTeamRewardService.sumValidMoneyByUidAndDate(uid, dateType, null);
+			if (teamReward == null) {
+				teamReward = new BigDecimal(0);
+			}
+			
+			data.put("teamSubsidy", teamSubsidy.setScale(2, BigDecimal.ROUND_DOWN).toString());
+			data.put("teamReward", teamReward.setScale(2, BigDecimal.ROUND_DOWN).toString());
+			data.put("tutorSubsidy", "0.00");
 		}
 		out.print(JsonUtil.loadTrueResult(data));
 	}
 
 	
 	/**
-	 * 鍥㈤槦鏀剁泭缁熻
+	 * 鍥㈤槦鏀剁泭缁熻  缁熻宸插埌璐︽湭鍒拌处 锛� 绱鍙粺璁″凡鍒拌处
 	 * @param acceptData
 	 * @param uid
 	 * @param type 1-鍥㈤槦琛ヨ创   2-鍥㈤槦濂栧姳 3-瀵煎笀娲ヨ创
@@ -434,38 +456,224 @@
 			type = 1;
 		}
 		
-		JSONObject data = new JSONObject();
-		data.put("link", "https://www.baidu.com/");
-		String total = "";
 		if (type == 1) {
-			total = "111.3";
+			// 琛ヨ创
+			sumTeamSubsidy(out, user);
 		} else if (type == 2) {
-			total = "222.3";
-		} else if (type == 3) {
-			total = "333.3";
-		}
-		
-		if (StringUtil.isNullOrEmpty(total)) {
-			data.put("exist", false);
+			// 濂栧姳
+			sumTeamReward(out, user);
 		} else {
-			data.put("exist",  true);
-			data.put("portrait", user.getPortrait());
-			
-			TeamBonusVO today = new TeamBonusVO("1.3", "2.3" ,"3.6");
-			TeamBonusVO yesterday = new TeamBonusVO("1.3", "2.3" ,"3.6");
-			TeamBonusVO thisMonth = new TeamBonusVO("1.3", "2.3" ,"3.6");
-			TeamBonusVO lastMonth = new TeamBonusVO("1.3", "2.3" ,"3.6");
-			data.put("total", total);
-			data.put("direct", "655.36");
-			data.put("indirect", "236.58");
-			data.put("today", today);
-			data.put("yesterday", yesterday);
-			data.put("thisMonth", thisMonth);
-			data.put("lastMonth", lastMonth);
+			// 瀵煎笀娲ヨ创
+			JSONObject data = new JSONObject();
+			data.put("exist", false);
+			data.put("link", configService.get(ConfigKeyEnum.tutorSubsidyLink.getKey()));
+			out.print(JsonUtil.loadTrueResult(data));
 		}
-		out.print(JsonUtil.loadTrueResult(data));
 	}
 
+	/**
+	 * 缁熻琛ヨ创
+	 * @param out
+	 * @param user
+	 */
+	private void sumTeamSubsidy(PrintWriter out, UserInfo user) {
+		Long uid = user.getId();
+		// 鏄惁VIP
+		boolean vip = userVIPInfoService.isVIP(uid);
+		
+		JSONObject data = new JSONObject();
+		data.put("link", configService.get(ConfigKeyEnum.orderTeamSubsidyLink.getKey()));
+		if (!vip) {
+			data.put("exist",  false);
+			out.print(JsonUtil.loadTrueResult(data));
+			return;
+		} 
+		
+		data.put("exist",  true);
+		data.put("portrait", user.getPortrait());
+		
+		// 浠婃棩缁熻
+		BigDecimal todayDirect = inviteOrderSubsidyServiceV2.sumValidMoneyByUidAndDate(uid, 1, InviteOrderSubsidy.LEVEL_ONE);
+		if (todayDirect == null) {
+			todayDirect = new BigDecimal(0);
+		}
+		BigDecimal todayIndirect = inviteOrderSubsidyServiceV2.sumValidMoneyByUidAndDate(uid, 1, InviteOrderSubsidy.LEVEL_TWO);
+		if (todayIndirect == null) {
+			todayIndirect = new BigDecimal(0);
+		}
+		TeamBonusVO today = new TeamBonusVO();
+		today.setDirect(todayDirect.setScale(2, BigDecimal.ROUND_DOWN).toString());
+		today.setIndirect(todayIndirect.setScale(2, BigDecimal.ROUND_DOWN).toString());
+		today.setTotal(MoneyBigDecimalUtil.add(todayDirect, todayIndirect).setScale(2, BigDecimal.ROUND_DOWN).toString());
+		
+		
+		// 鏄ㄦ棩缁熻
+		BigDecimal yesterdayDirect = inviteOrderSubsidyServiceV2.sumValidMoneyByUidAndDate(uid, 2, InviteOrderSubsidy.LEVEL_ONE);
+		if (yesterdayDirect == null) {
+			yesterdayDirect = new BigDecimal(0);
+		}
+		BigDecimal yesterdayIndirect = inviteOrderSubsidyServiceV2.sumValidMoneyByUidAndDate(uid, 2, InviteOrderSubsidy.LEVEL_TWO);
+		if (yesterdayIndirect == null) {
+			yesterdayIndirect = new BigDecimal(0);
+		}
+		TeamBonusVO yesterday = new TeamBonusVO();
+		yesterday.setDirect(yesterdayDirect.setScale(2, BigDecimal.ROUND_DOWN).toString());
+		yesterday.setIndirect(yesterdayIndirect.setScale(2, BigDecimal.ROUND_DOWN).toString());
+		yesterday.setTotal(MoneyBigDecimalUtil.add(yesterdayDirect, yesterdayIndirect).setScale(2, BigDecimal.ROUND_DOWN).toString());
+		
+		
+		// 鏈湀缁熻
+		BigDecimal thisMonthDirect = inviteOrderSubsidyServiceV2.sumValidMoneyByUidAndDate(uid, 3, InviteOrderSubsidy.LEVEL_ONE);
+		if (thisMonthDirect == null) {
+			thisMonthDirect = new BigDecimal(0);
+		}
+		BigDecimal thisMonthIndirect = inviteOrderSubsidyServiceV2.sumValidMoneyByUidAndDate(uid, 3, InviteOrderSubsidy.LEVEL_TWO);
+		if (thisMonthIndirect == null) {
+			thisMonthIndirect = new BigDecimal(0);
+		}
+		TeamBonusVO thisMonth = new TeamBonusVO();
+		thisMonth.setDirect(thisMonthDirect.setScale(2, BigDecimal.ROUND_DOWN).toString());
+		thisMonth.setIndirect(thisMonthIndirect.setScale(2, BigDecimal.ROUND_DOWN).toString());
+		thisMonth.setTotal(MoneyBigDecimalUtil.add(thisMonthDirect, thisMonthIndirect).setScale(2, BigDecimal.ROUND_DOWN).toString());
+					
+		
+		// 鏈湀缁熻
+		BigDecimal lastMonthDirect = inviteOrderSubsidyServiceV2.sumValidMoneyByUidAndDate(uid, 4, InviteOrderSubsidy.LEVEL_ONE);
+		if (lastMonthDirect == null) {
+			lastMonthDirect = new BigDecimal(0);
+		}
+		BigDecimal lastMonthIndirect = inviteOrderSubsidyServiceV2.sumValidMoneyByUidAndDate(uid, 4, InviteOrderSubsidy.LEVEL_TWO);
+		if (lastMonthIndirect == null) {
+			lastMonthIndirect = new BigDecimal(0);
+		}
+		TeamBonusVO lastMonth = new TeamBonusVO();
+		lastMonth.setDirect(lastMonthDirect.setScale(2, BigDecimal.ROUND_DOWN).toString());
+		lastMonth.setIndirect(lastMonthIndirect.setScale(2, BigDecimal.ROUND_DOWN).toString());
+		lastMonth.setTotal(MoneyBigDecimalUtil.add(lastMonthDirect, lastMonthIndirect).setScale(2, BigDecimal.ROUND_DOWN).toString());
+							
+		
+		BigDecimal direct = inviteOrderSubsidyServiceV2.sumRecievedMoneyByUid(uid, InviteOrderSubsidy.LEVEL_ONE);
+		if (direct == null) {
+			direct = new BigDecimal(0);
+		}
+		BigDecimal indirect = inviteOrderSubsidyServiceV2.sumRecievedMoneyByUid(uid, InviteOrderSubsidy.LEVEL_TWO);
+		if (indirect == null) {
+			indirect = new BigDecimal(0);
+		}
+		BigDecimal total = MoneyBigDecimalUtil.add(direct, indirect);
+		 
+		data.put("today", today);
+		data.put("yesterday", yesterday);
+		data.put("thisMonth", thisMonth);
+		data.put("lastMonth", lastMonth);
+		data.put("total", total.setScale(2, BigDecimal.ROUND_DOWN).toString());
+		data.put("direct", direct.setScale(2, BigDecimal.ROUND_DOWN).toString());
+		data.put("indirect", indirect.setScale(2, BigDecimal.ROUND_DOWN).toString());
+		out.print(JsonUtil.loadTrueResult(data));
+	}
+	
+	/**
+	 * 缁熻鍥㈤槦濂栧姳
+	 * @param out
+	 * @param user
+	 */
+	private void sumTeamReward(PrintWriter out, UserInfo user) {
+		Long uid = user.getId();
+		// 鏄惁VIP
+		boolean vip = userVIPInfoService.isVIP(uid);
+		
+		JSONObject data = new JSONObject();
+		data.put("link", configService.get(ConfigKeyEnum.orderTeamRewardLink.getKey()));
+		if (!vip) {
+			data.put("exist",  false);
+			out.print(JsonUtil.loadTrueResult(data));
+			return;
+		} 
+		
+		data.put("exist",  true);
+		data.put("portrait", user.getPortrait());
+		
+		
+		// 浠婃棩缁熻
+		BigDecimal todayDirect = orderTeamRewardService.sumValidMoneyByUidAndDate(uid, 1, OrderTeamReward.LEVEL_ONE);
+		if (todayDirect == null) {
+			todayDirect = new BigDecimal(0);
+		}
+		BigDecimal todayIndirect = orderTeamRewardService.sumValidMoneyByUidAndDate(uid, 1, OrderTeamReward.LEVEL_TWO);
+		if (todayIndirect == null) {
+			todayIndirect = new BigDecimal(0);
+		}
+		TeamBonusVO today = new TeamBonusVO();
+		today.setDirect(todayDirect.setScale(2, BigDecimal.ROUND_DOWN).toString());
+		today.setIndirect(todayIndirect.setScale(2, BigDecimal.ROUND_DOWN).toString());
+		today.setTotal(MoneyBigDecimalUtil.add(todayDirect, todayIndirect).setScale(2, BigDecimal.ROUND_DOWN).toString());
+		
+		
+		// 鏄ㄦ棩缁熻
+		BigDecimal yesterdayDirect = orderTeamRewardService.sumValidMoneyByUidAndDate(uid, 2, OrderTeamReward.LEVEL_ONE);
+		if (yesterdayDirect == null) {
+			yesterdayDirect = new BigDecimal(0);
+		}
+		BigDecimal yesterdayIndirect = orderTeamRewardService.sumValidMoneyByUidAndDate(uid, 2, OrderTeamReward.LEVEL_TWO);
+		if (yesterdayIndirect == null) {
+			yesterdayIndirect = new BigDecimal(0);
+		}
+		TeamBonusVO yesterday = new TeamBonusVO();
+		yesterday.setDirect(yesterdayDirect.setScale(2, BigDecimal.ROUND_DOWN).toString());
+		yesterday.setIndirect(yesterdayIndirect.setScale(2, BigDecimal.ROUND_DOWN).toString());
+		yesterday.setTotal(MoneyBigDecimalUtil.add(yesterdayDirect, yesterdayIndirect).setScale(2, BigDecimal.ROUND_DOWN).toString());
+		
+		
+		// 鏈湀缁熻
+		BigDecimal thisMonthDirect = orderTeamRewardService.sumValidMoneyByUidAndDate(uid, 3, OrderTeamReward.LEVEL_ONE);
+		if (thisMonthDirect == null) {
+			thisMonthDirect = new BigDecimal(0);
+		}
+		BigDecimal thisMonthIndirect = orderTeamRewardService.sumValidMoneyByUidAndDate(uid, 3, OrderTeamReward.LEVEL_TWO);
+		if (thisMonthIndirect == null) {
+			thisMonthIndirect = new BigDecimal(0);
+		}
+		TeamBonusVO thisMonth = new TeamBonusVO();
+		thisMonth.setDirect(thisMonthDirect.setScale(2, BigDecimal.ROUND_DOWN).toString());
+		thisMonth.setIndirect(thisMonthIndirect.setScale(2, BigDecimal.ROUND_DOWN).toString());
+		thisMonth.setTotal(MoneyBigDecimalUtil.add(thisMonthDirect, thisMonthIndirect).setScale(2, BigDecimal.ROUND_DOWN).toString());
+					
+		
+		// 鏈湀缁熻
+		BigDecimal lastMonthDirect = orderTeamRewardService.sumValidMoneyByUidAndDate(uid, 4, OrderTeamReward.LEVEL_ONE);
+		if (lastMonthDirect == null) {
+			lastMonthDirect = new BigDecimal(0);
+		}
+		BigDecimal lastMonthIndirect = orderTeamRewardService.sumValidMoneyByUidAndDate(uid, 4, OrderTeamReward.LEVEL_TWO);
+		if (lastMonthIndirect == null) {
+			lastMonthIndirect = new BigDecimal(0);
+		}
+		TeamBonusVO lastMonth = new TeamBonusVO();
+		lastMonth.setDirect(lastMonthDirect.setScale(2, BigDecimal.ROUND_DOWN).toString());
+		lastMonth.setIndirect(lastMonthIndirect.setScale(2, BigDecimal.ROUND_DOWN).toString());
+		lastMonth.setTotal(MoneyBigDecimalUtil.add(lastMonthDirect, lastMonthIndirect).setScale(2, BigDecimal.ROUND_DOWN).toString());
+							
+		
+		BigDecimal direct = orderTeamRewardService.sumRecievedMoneyByUid(uid, OrderTeamReward.LEVEL_ONE);
+		if (direct == null) {
+			direct = new BigDecimal(0);
+		}
+		BigDecimal indirect = orderTeamRewardService.sumRecievedMoneyByUid(uid, OrderTeamReward.LEVEL_TWO);
+		if (indirect == null) {
+			indirect = new BigDecimal(0);
+		}
+		BigDecimal total = MoneyBigDecimalUtil.add(direct, indirect);
+		 
+		data.put("today", today);
+		data.put("yesterday", yesterday);
+		data.put("thisMonth", thisMonth);
+		data.put("lastMonth", lastMonth);
+		data.put("total", total.setScale(2, BigDecimal.ROUND_DOWN).toString());
+		data.put("direct", direct.setScale(2, BigDecimal.ROUND_DOWN).toString());
+		data.put("indirect", indirect.setScale(2, BigDecimal.ROUND_DOWN).toString());
+		out.print(JsonUtil.loadTrueResult(data));
+	}
+	
 	
 	/**
 	 * 杩斿埄璇存槑

--
Gitblit v1.8.0