From 0ec22dcf4fd9c4496e6f681e7fab89f56c6e4e8a Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期四, 02 四月 2020 14:45:20 +0800 Subject: [PATCH] vip 消息 --- fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserOrderControllerV2.java | 408 ++++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 258 insertions(+), 150 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 bf188f5..7ca517a 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 @@ -5,7 +5,9 @@ import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; import javax.annotation.Resource; @@ -17,9 +19,13 @@ import org.yeshi.utils.NumberUtil; import com.yeshi.fanli.entity.accept.AcceptData; +import com.yeshi.fanli.entity.bus.user.HongBaoV2; import com.yeshi.fanli.entity.bus.user.UserInfo; import com.yeshi.fanli.entity.bus.user.vip.UserLevelEnum; +import com.yeshi.fanli.entity.order.CommonOrder; +import com.yeshi.fanli.entity.order.CommonOrderGoods; import com.yeshi.fanli.entity.order.ESOrder; +import com.yeshi.fanli.entity.order.HongBaoOrder; import com.yeshi.fanli.entity.order.InviteOrderSubsidy; import com.yeshi.fanli.entity.order.OrderTeamReward; import com.yeshi.fanli.entity.system.ConfigKeyEnum; @@ -27,9 +33,12 @@ import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.config.ConfigService; import com.yeshi.fanli.service.inter.count.HongBaoV2CountService; +import com.yeshi.fanli.service.inter.order.CommonOrderGoodsService; import com.yeshi.fanli.service.inter.order.CommonOrderService; import com.yeshi.fanli.service.inter.order.ESOrderService; +import com.yeshi.fanli.service.inter.order.HongBaoOrderService; import com.yeshi.fanli.service.inter.order.InviteOrderSubsidyServiceV2; +import com.yeshi.fanli.service.inter.order.OrderHongBaoMoneyComputeService; import com.yeshi.fanli.service.inter.order.OrderTeamRewardService; import com.yeshi.fanli.service.inter.user.UserCustomSettingsService; import com.yeshi.fanli.service.inter.user.UserInfoExtraService; @@ -41,6 +50,7 @@ import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.VersionUtil; import com.yeshi.fanli.util.account.UserUtil; +import com.yeshi.fanli.util.user.UserLevelUtil; import com.yeshi.fanli.vo.order.CommonOrderVO; import com.yeshi.fanli.vo.order.GoodsRebateVO; import com.yeshi.fanli.vo.order.OrderCountVO; @@ -72,22 +82,31 @@ @Resource private RedisManager redisManager; - + @Resource private UserCustomSettingsService userCustomSettingsService; - + @Resource private ESOrderService esOrderService; @Resource private OrderTeamRewardService orderTeamRewardService; - + @Resource private UserVIPInfoService userVIPInfoService; - + @Resource private InviteOrderSubsidyServiceV2 inviteOrderSubsidyServiceV2; - + + @Resource + private HongBaoOrderService hongBaoOrderService; + + @Resource + private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService; + + @Resource + private CommonOrderGoodsService commonOrderGoodsService; + /** * 璁㈠崟鍒楄〃 * @@ -115,23 +134,24 @@ * @param out */ @RequestMapping(value = "getOrderList", method = RequestMethod.POST) - public void getOrderList(AcceptData acceptData, Integer page, Long uid, Integer state, String type, - Integer orderState, String orderNo, String startTime, String endTime, Integer slotTime, - Integer dateType, Integer goodsType, String source, PrintWriter out) { + public void getOrderList(AcceptData acceptData, Integer page, Long uid, Integer state, String type, + Integer orderState, String orderNo, String startTime, String endTime, Integer slotTime, Integer dateType, + Integer goodsType, String source, PrintWriter out) { if (uid == null) { out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); return; } - + if (page == null || page < 1) page = 1; - + // 鎼滅储鍐呭銆佽鍗曞彿 - if (!StringUtil.isNullOrEmpty(orderNo) && VersionUtil.greaterThan_2_0_6(acceptData.getPlatform(), acceptData.getVersion())) { + if (!StringUtil.isNullOrEmpty(orderNo) + && VersionUtil.greaterThan_2_0_6(acceptData.getPlatform(), acceptData.getVersion())) { searchOrder(acceptData, orderNo, page, uid, out); return; } - + // 杞崲鐘舵�� if (state != null) { if (state == 0) { @@ -152,18 +172,18 @@ Integer orderType = null; if (StringUtil.isNullOrEmpty(type)) { orderType = null; - } else if (!"0".equalsIgnoreCase(type)){ - orderType = Integer.parseInt(type); - } + } else if (!"0".equalsIgnoreCase(type)) { + orderType = Integer.parseInt(type); + } if (goodsType != null && goodsType == 0) goodsType = null; - + // 绛涢�夋椂闂� if (slotTime != null) { try { SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); - + switch (slotTime) { case 1: // 鏈�杩戜笁澶� endTime = sd.format(new Date()); @@ -193,7 +213,7 @@ e.printStackTrace(); } } - + if (endTime != null && endTime.trim().length() > 0) { endTime += " 23:59:59"; } @@ -201,8 +221,8 @@ List<Integer> listSource = new ArrayList<>(); if (goodsType != null) { listSource.add(goodsType); - } - + } + try { // 绛涢�夌粨鏋滈《閮ㄧ粺璁� String validMoney = "0.00"; @@ -210,14 +230,14 @@ if (page == 1) { BigDecimal predictMoney = hongBaoV2CountService.getRewardMoneyByToSearch(uid, dateType, orderType, 1, orderNo, state, startTime, endTime, listSource); - if (predictMoney != null) + if (predictMoney != null) validMoney = predictMoney.setScale(2, BigDecimal.ROUND_DOWN).toString(); - + BigDecimal postSaleMoney = hongBaoV2CountService.getRewardMoneyByToSearch(uid, dateType, orderType, 2, orderNo, state, startTime, endTime, listSource); - if (postSaleMoney != null) + if (postSaleMoney != null) invalidMoney = postSaleMoney.setScale(2, BigDecimal.ROUND_DOWN).toString(); - + if (orderType != null && dateType != null && dateType == 4) { if (orderType == 1) { dateType = 6; // 杩斿埄璁㈠崟鏈夋晥 @@ -226,22 +246,22 @@ } } } - - // 鏌ヨ鍒楄〃 - List<CommonOrderVO> list = commonOrderService.getOrderByUid(acceptData, page, uid, state, orderType, orderState, - orderNo, startTime, endTime, dateType, listSource); - // 缁熻鎬绘暟 - long count = commonOrderService.countGroupOrderNoByUid(uid, state, orderType, orderState, orderNo, startTime, - endTime, dateType, listSource); - // 鍒ゆ柇鏄惁闇�瑕佹樉绀鸿鍗曟壘鍥炴彁绀� 8绉掑唴璇锋眰3娆¤Е鍙� + // 鏌ヨ鍒楄〃 + List<CommonOrderVO> list = commonOrderService.getOrderByUid(acceptData, page, uid, state, orderType, + orderState, orderNo, startTime, endTime, dateType, listSource); + // 缁熻鎬绘暟 + long count = commonOrderService.countGroupOrderNoByUid(uid, state, orderType, orderState, orderNo, + startTime, endTime, dateType, listSource); + + // 鍒ゆ柇鏄惁闇�瑕佹樉绀鸿鍗曟壘鍥炴彁绀� 8绉掑唴璇锋眰3娆¤Е鍙� String orderFindUrl = null; - if (state ==null && page == 1) { - if (redisManager.frequencyLimit("orderlist-" + acceptData.getDevice(), 8, 4)||count==0L) { + if (state == null && page == 1) { + if (redisManager.frequencyLimit("orderlist-" + acceptData.getDevice(), 8, 4) || count == 0L) { orderFindUrl = configService.get(ConfigKeyEnum.orderFindNotifyUrl.getKey()); } } - + JSONObject data = new JSONObject(); data.put("count", count); data.put("result_list", JsonUtil.getApiCommonGson().toJson(list)); @@ -258,7 +278,7 @@ LogHelper.errorDetailInfo(e); } } - + /** * 鎼滅储璁㈠崟 * @param key @@ -269,9 +289,10 @@ long count = 0; List<CommonOrderVO> list = null; if (NumberUtil.isNumeric(key.replace("-", ""))) { - list = commonOrderService.getOrderByUid(acceptData, page, uid, null, null, null, key, null, null, null, null); - } - + list = commonOrderService.getOrderByUid(acceptData, page, uid, null, null, null, key, null, null, null, + null); + } + if (list == null || list.size() == 0) { List<ESOrder> listES = esOrderService.query(key, uid.toString(), null); if (listES.size() != 0) { @@ -281,11 +302,11 @@ } else { count = list.size(); } - + if (list == null) { list = new ArrayList<>(); } - + JSONObject data = new JSONObject(); data.put("count", count); data.put("result_list", JsonUtil.getApiCommonGson().toJson(list)); @@ -297,7 +318,6 @@ } } - /** * 鐢ㄦ埛璁㈠崟缁熻 * @@ -313,7 +333,7 @@ out.print(JsonUtil.loadFalseResult(1, "璇锋眰鍙傛暟涓嶆纭�")); return; } - + try { UserInfo user = userInfoService.selectByPKey(uid); if (user == null) { @@ -329,7 +349,7 @@ } JSONObject data = new JSONObject(); data.put("userInfo", userInfo); - + List<Integer> listSource = new ArrayList<>(); if (type == null || type == 0) { OrderCountVO total = commonOrderService.getOrderCount(uid, null, null); @@ -342,10 +362,10 @@ data.put("self", 0); data.put("shared", 0); data.put("invite", 0); - + listSource.add(type); } - + // 浠婂ぉ OrderCountVO today = commonOrderService.getOrderCount(uid, 1, listSource); today.setTotal(today.getSelf() + today.getShared() + today.getInvite()); @@ -370,7 +390,6 @@ } } - /** * 缁熻濂栭噾 * @param acceptData @@ -384,47 +403,47 @@ out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); return; } - + boolean show = false; UserSettingsVO settings = null; try { settings = userCustomSettingsService.getMySettings(uid); } catch (Exception e) { } - + // 楠岃瘉鏄惁鏄剧ず妯″潡 - if (settings != null && settings.getNoBonusCount()!= null) { - if(settings.getNoBonusCount() == 1) { + if (settings != null && settings.getNoBonusCount() != null) { + if (settings.getNoBonusCount() == 1) { show = false; - } else if(settings.getNoBonusCount() == 0) { + } else if (settings.getNoBonusCount() == 0) { show = true; } } else { show = hongBaoV2CountService.getHongBaoCount(uid, null) > 0; } - + BigDecimal selfMoney = hongBaoV2CountService.getRewardMoneyToCount(uid, dateType, 1, null); BigDecimal shareMoney = hongBaoV2CountService.getRewardMoneyToCount(uid, dateType, 2, null); BigDecimal inviteMoney = hongBaoV2CountService.getRewardMoneyToCount(uid, dateType, 3, null); - + JSONObject data = new JSONObject(); data.put("show", show); - data.put("selfMoney", selfMoney.setScale(2,BigDecimal.ROUND_DOWN).toString()); + data.put("selfMoney", selfMoney.setScale(2, BigDecimal.ROUND_DOWN).toString()); data.put("shareMoney", shareMoney.setScale(2, BigDecimal.ROUND_DOWN).toString()); data.put("inviteMoney", inviteMoney.setScale(2, BigDecimal.ROUND_DOWN).toString()); - + // 鍥㈤槦濂栧姳 TODO if (VersionUtil.greaterThan_2_1(acceptData.getPlatform(), acceptData.getVersion())) { 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"); @@ -432,7 +451,6 @@ out.print(JsonUtil.loadTrueResult(data)); } - /** * 鍥㈤槦鏀剁泭缁熻 缁熻宸插埌璐︽湭鍒拌处 锛� 绱鍙粺璁″凡鍒拌处 * @param acceptData @@ -445,17 +463,17 @@ out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); return; } - + UserInfo user = userInfoService.selectByPKey(uid); if (user == null) { out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛涓嶅瓨鍦�")); return; } - + if (type == null || type < 1 || type > 3) { type = 1; } - + if (type == 1) { // 琛ヨ创 sumTeamSubsidy(out, user); @@ -480,78 +498,86 @@ 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); + data.put("exist", false); out.print(JsonUtil.loadTrueResult(data)); return; - } - - data.put("exist", true); + } + + data.put("exist", true); data.put("portrait", user.getPortrait()); - + // 浠婃棩缁熻 - BigDecimal todayDirect = inviteOrderSubsidyServiceV2.sumValidMoneyByUidAndDate(uid, 1, InviteOrderSubsidy.LEVEL_ONE); + 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); + 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()); - - + today.setTotal( + MoneyBigDecimalUtil.add(todayDirect, todayIndirect).setScale(2, BigDecimal.ROUND_DOWN).toString()); + // 鏄ㄦ棩缁熻 - BigDecimal yesterdayDirect = inviteOrderSubsidyServiceV2.sumValidMoneyByUidAndDate(uid, 2, InviteOrderSubsidy.LEVEL_ONE); + 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); + 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()); - - + yesterday.setTotal(MoneyBigDecimalUtil.add(yesterdayDirect, yesterdayIndirect) + .setScale(2, BigDecimal.ROUND_DOWN).toString()); + // 鏈湀缁熻 - BigDecimal thisMonthDirect = inviteOrderSubsidyServiceV2.sumValidMoneyByUidAndDate(uid, 3, InviteOrderSubsidy.LEVEL_ONE); + 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); + 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()); - - + thisMonth.setTotal(MoneyBigDecimalUtil.add(thisMonthDirect, thisMonthIndirect) + .setScale(2, BigDecimal.ROUND_DOWN).toString()); + // 鏈湀缁熻 - BigDecimal lastMonthDirect = inviteOrderSubsidyServiceV2.sumValidMoneyByUidAndDate(uid, 4, InviteOrderSubsidy.LEVEL_ONE); + 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); + 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()); - - + 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); @@ -561,7 +587,7 @@ indirect = new BigDecimal(0); } BigDecimal total = MoneyBigDecimalUtil.add(direct, indirect); - + data.put("today", today); data.put("yesterday", yesterday); data.put("thisMonth", thisMonth); @@ -571,7 +597,7 @@ data.put("indirect", indirect.setScale(2, BigDecimal.ROUND_DOWN).toString()); out.print(JsonUtil.loadTrueResult(data)); } - + /** * 缁熻鍥㈤槦濂栧姳 * @param out @@ -581,19 +607,18 @@ 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); + data.put("exist", false); out.print(JsonUtil.loadTrueResult(data)); return; - } - - data.put("exist", true); + } + + data.put("exist", true); data.put("portrait", user.getPortrait()); - - + // 浠婃棩缁熻 BigDecimal todayDirect = orderTeamRewardService.sumValidMoneyByUidAndDate(uid, 1, OrderTeamReward.LEVEL_ONE); if (todayDirect == null) { @@ -606,54 +631,60 @@ 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()); - - + today.setTotal( + MoneyBigDecimalUtil.add(todayDirect, todayIndirect).setScale(2, BigDecimal.ROUND_DOWN).toString()); + // 鏄ㄦ棩缁熻 - BigDecimal yesterdayDirect = orderTeamRewardService.sumValidMoneyByUidAndDate(uid, 2, OrderTeamReward.LEVEL_ONE); + 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); + 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()); - - + yesterday.setTotal(MoneyBigDecimalUtil.add(yesterdayDirect, yesterdayIndirect) + .setScale(2, BigDecimal.ROUND_DOWN).toString()); + // 鏈湀缁熻 - BigDecimal thisMonthDirect = orderTeamRewardService.sumValidMoneyByUidAndDate(uid, 3, OrderTeamReward.LEVEL_ONE); + 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); + 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()); - - + thisMonth.setTotal(MoneyBigDecimalUtil.add(thisMonthDirect, thisMonthIndirect) + .setScale(2, BigDecimal.ROUND_DOWN).toString()); + // 鏈湀缁熻 - BigDecimal lastMonthDirect = orderTeamRewardService.sumValidMoneyByUidAndDate(uid, 4, OrderTeamReward.LEVEL_ONE); + 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); + 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()); - - + 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); @@ -663,7 +694,7 @@ indirect = new BigDecimal(0); } BigDecimal total = MoneyBigDecimalUtil.add(direct, indirect); - + data.put("today", today); data.put("yesterday", yesterday); data.put("thisMonth", thisMonth); @@ -673,8 +704,7 @@ data.put("indirect", indirect.setScale(2, BigDecimal.ROUND_DOWN).toString()); out.print(JsonUtil.loadTrueResult(data)); } - - + /** * 杩斿埄璇存槑 * @param acceptData @@ -684,51 +714,129 @@ * @param out */ @RequestMapping(value = "getReBateInfo") - public void getReBateInfo(String callback, AcceptData acceptData, Long uid, String orderNo, Integer sourceType, PrintWriter out) { + public void getReBateInfo(String callback, AcceptData acceptData, Long uid, String orderNo, Integer sourceType, + PrintWriter out) { if (uid == null) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�")); return; } - + UserInfo user = userInfoService.selectByPKey(uid); if (user == null) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛涓嶅瓨鍦�")); return; } - - GoodsRebateVO goodsVO = new GoodsRebateVO(); - goodsVO.setTitle("鑸掑鑸掑厠鍏夋劅鐐櫧鐗欑墖缇庣櫧鐗欓娇鐗欒啘濂楄鍘婚粍鐗欐竻鏂板彛姘�"); - goodsVO.setPicture("https://img.alicdn.com/bao/uploaded/i4/355739614/O1CN01RB6Hlg2KtGMWR4mON_!!0-item_pic.jpg"); - goodsVO.setActualPay("楼60.00"); - goodsVO.setFanliRate("X20%"); - goodsVO.setFanliExpect("楼25.00"); - goodsVO.setCommision("10.00"); - goodsVO.setSubsidy("6.00"); - - GoodsRebateVO goodsVO2 = new GoodsRebateVO(); - goodsVO2.setTitle("棣ヤ僵缇庣櫧鏌旇偆姘寸埥鑲ゆ按琛ユ按淇濇箍濂冲寲濡嗘箍鏁风簿鍗庢按鐢锋棗鑸板簵瀹樼綉姝e搧"); - goodsVO2.setPicture("https://img.alicdn.com/bao/uploaded/i4/738252756/O1CN01MgFdXy1WEI8zmkyg7_!!0-item_pic.jpg"); - goodsVO2.setActualPay("楼62.00"); - goodsVO2.setFanliRate("X22%"); - goodsVO2.setFanliExpect("楼26.00"); - goodsVO2.setCommision("12.00"); - goodsVO2.setSubsidy("8.00"); - - List<GoodsRebateVO> listGoods= new ArrayList<>(); - listGoods.add(goodsVO); - listGoods.add(goodsVO2); - + + // 鎸夎鍗曞彿 鏌ヨ + List<CommonOrder> commonOrderList = commonOrderService.listBySourceTypeAndOrderId(sourceType, orderNo); + Integer rank = commonOrderList.get(0).getUrank(); + UserLevelEnum userLevel = UserLevelUtil.getByOrderRank(rank); + if (userLevel == null) + userLevel = UserLevelEnum.daRen; + + List<HongBaoOrder> hongBaoOrderList = hongBaoOrderService.listDetailByOrderIdAndSourceType(orderNo, sourceType); + OrderRebateVO orderRebateVO = new OrderRebateVO(); - orderRebateVO.setTotalFanLi("楼50.00"); - orderRebateVO.setUpperFanLi("楼60.00"); - orderRebateVO.setUserLevel(UserLevelEnum.daRen.name()); - orderRebateVO.setJumpLink("https://www.baidu.com/"); - orderRebateVO.setListGoods(listGoods); - + List<GoodsRebateVO> voList = new ArrayList<>(); + BigDecimal totalMoney = new BigDecimal(0); + UserLevelEnum upperLevel = UserLevelUtil.getNextLevel(userLevel); + BigDecimal upperTotalMoney = new BigDecimal(0); + Map<Long, CommonOrderGoods> orderGoodsMap = new HashMap<>(); + + List<Long> goodsIdList = new ArrayList<>(); + if (hongBaoOrderList != null) + for (HongBaoOrder hongBaoOrder : hongBaoOrderList) { + if (hongBaoOrder.getCommonOrder() != null) + goodsIdList.add(hongBaoOrder.getCommonOrder().getCommonOrderGoods().getId()); + } + + List<CommonOrderGoods> goodsList = commonOrderGoodsService.listByByPrimaryKeys(goodsIdList); + if (goodsList != null) + for (CommonOrderGoods goods : goodsList) + orderGoodsMap.put(goods.getId(), goods); + + if (userLevel == UserLevelEnum.daRen) { + for (HongBaoOrder hongBaoOrder : hongBaoOrderList) { + if (hongBaoOrder.getHongBaoV2().getState() == HongBaoV2.STATE_SHIXIAO) + hongBaoOrder.getHongBaoV2().setMoney(new BigDecimal(0)); + CommonOrder commonOrder = hongBaoOrder.getCommonOrder(); + GoodsRebateVO goodsVO = new GoodsRebateVO(); + if (orderGoodsMap.get(commonOrder.getCommonOrderGoods().getId()) != null) { + goodsVO.setTitle(orderGoodsMap.get(commonOrder.getCommonOrderGoods().getId()).getTitle()); + goodsVO.setPicture(orderGoodsMap.get(commonOrder.getCommonOrderGoods().getId()).getPicture()); + } + BigDecimal payment = hongBaoOrder.getCommonOrder().getPayment(); + if (hongBaoOrder.getCommonOrder().getSettlement() != null) + payment = hongBaoOrder.getCommonOrder().getSettlement(); + if (payment == null) + payment = new BigDecimal(0); + + goodsVO.setActualPay("楼" + payment); + + if (payment.compareTo(new BigDecimal(0)) <= 0) { + goodsVO.setFanliRate("X0%"); + } else { + goodsVO.setFanliRate("X" + + MoneyBigDecimalUtil + .div(hongBaoOrder.getHongBaoV2().getMoney().multiply(new BigDecimal(100)), payment) + + "%"); + } + goodsVO.setFanliExpect("楼" + hongBaoOrder.getHongBaoV2().getMoney()); + voList.add(goodsVO); + totalMoney = totalMoney.add(hongBaoOrder.getHongBaoV2().getMoney()); + if (upperLevel != null) { + upperTotalMoney = upperTotalMoney + .add(orderHongBaoMoneyComputeService.computeFanliMoney(commonOrder, upperLevel)); + } + } + orderRebateVO.setListGoods(voList); + } else { + for (HongBaoOrder hongBaoOrder : hongBaoOrderList) { + if (hongBaoOrder.getHongBaoV2().getState() == HongBaoV2.STATE_SHIXIAO) + hongBaoOrder.getHongBaoV2().setMoney(new BigDecimal(0)); + CommonOrder commonOrder = hongBaoOrder.getCommonOrder(); + GoodsRebateVO goodsVO = new GoodsRebateVO(); + if (orderGoodsMap.get(commonOrder.getCommonOrderGoods().getId()) != null) { + goodsVO.setTitle(orderGoodsMap.get(commonOrder.getCommonOrderGoods().getId()).getTitle()); + goodsVO.setPicture(orderGoodsMap.get(commonOrder.getCommonOrderGoods().getId()).getPicture()); + } + BigDecimal payment = hongBaoOrder.getCommonOrder().getPayment(); + if (hongBaoOrder.getCommonOrder().getSettlement() != null) + payment = hongBaoOrder.getCommonOrder().getSettlement(); + if (payment == null) + payment = new BigDecimal(0); + + goodsVO.setActualPay("楼" + payment); + + BigDecimal commission = orderHongBaoMoneyComputeService.computeBaseFanliMoney(commonOrder); + goodsVO.setCommision("楼" +commission); + + BigDecimal darenFanli = orderHongBaoMoneyComputeService.computeFanliMoney(commonOrder, + UserLevelEnum.daRen); + + BigDecimal vipFanli = hongBaoOrder.getHongBaoV2().getMoney(); + + goodsVO.setOriginSubsidy(darenFanli.subtract(commission) + ""); + goodsVO.setSubsidy("楼" +vipFanli.subtract(commission)); + voList.add(goodsVO); + totalMoney = totalMoney.add(vipFanli); + if (upperLevel != null) { + upperTotalMoney = upperTotalMoney + .add(orderHongBaoMoneyComputeService.computeFanliMoney(commonOrder, upperLevel)); + } + } + orderRebateVO.setListGoods(voList); + } + orderRebateVO.setTotalFanLi("楼" + totalMoney); + if (upperLevel != null) { + orderRebateVO.setUpperFanLi("楼" + upperTotalMoney); + orderRebateVO.setUserLevel(upperLevel.name()); + orderRebateVO.setJumpLink(upperLevel.getDetailLink()); + } + JSONObject data = new JSONObject(); data.put("result", orderRebateVO); JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); } - } -- Gitblit v1.8.0