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