From 744594ef1a2f530fc3e86ea9dc48b62247f79420 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 19 五月 2020 17:13:23 +0800 Subject: [PATCH] 饿了么绘图,添加口碑 --- fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserOrderControllerV2.java | 235 ++++++++++++++++++---------------------------------------- 1 files changed, 72 insertions(+), 163 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 b44c528..e162767 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 @@ -18,8 +18,12 @@ import org.yeshi.utils.JsonUtil; import org.yeshi.utils.NumberUtil; +import com.google.gson.Gson; +import com.yeshi.fanli.dto.order.UserTeamLevel; +import com.yeshi.fanli.dto.user.UserInviteLevelEnum; import com.yeshi.fanli.entity.accept.AcceptData; import com.yeshi.fanli.entity.bus.user.HongBaoV2; +import com.yeshi.fanli.entity.bus.user.PreviewInfo.PreviewEnum; import com.yeshi.fanli.entity.bus.user.UserInfo; import com.yeshi.fanli.entity.bus.user.UserSystemCouponRecord; import com.yeshi.fanli.entity.bus.user.vip.UserLevelEnum; @@ -27,7 +31,6 @@ 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.system.ConfigKeyEnum; import com.yeshi.fanli.entity.system.SystemCoupon.CouponTypeEnum; import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder; @@ -40,10 +43,11 @@ 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.InviteOrderSubsidyService; +import com.yeshi.fanli.service.inter.order.HongBaoV2Service; import com.yeshi.fanli.service.inter.order.OrderHongBaoMapService; import com.yeshi.fanli.service.inter.order.OrderHongBaoMoneyComputeService; import com.yeshi.fanli.service.inter.order.tb.TaoBaoWeiQuanOrderService; +import com.yeshi.fanli.service.inter.user.PreviewInfoService; import com.yeshi.fanli.service.inter.user.UserCustomSettingsService; import com.yeshi.fanli.service.inter.user.UserInfoExtraService; import com.yeshi.fanli.service.inter.user.UserInfoService; @@ -59,11 +63,11 @@ 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.CurrentBonusVO; import com.yeshi.fanli.vo.order.GoodsRebateVO; import com.yeshi.fanli.vo.order.HongBaoCountVO; import com.yeshi.fanli.vo.order.OrderCountVO; import com.yeshi.fanli.vo.order.OrderRebateVO; +import com.yeshi.fanli.vo.user.MineInfoVO; import com.yeshi.fanli.vo.user.UserInfoExtraVO; import com.yeshi.fanli.vo.user.UserSettingsVO; @@ -101,8 +105,8 @@ private UserVIPInfoService userVIPInfoService; @Resource - private InviteOrderSubsidyService inviteOrderSubsidyServiceV2; - + private HongBaoV2Service hongBaoV2Service; + @Resource private HongBaoOrderService hongBaoOrderService; @@ -129,6 +133,10 @@ @Resource private OrderHongBaoMapService orderHongBaoMapService; + + @Resource + private PreviewInfoService previewInfoService; + /** * 璁㈠崟鍒楄〃 @@ -452,35 +460,36 @@ show = hongBaoV2CountService.getHongBaoCount(uid, null) > 0; } - BigDecimal selfMoney = hongBaoV2CountService.getRewardMoneyToCount(uid, dateType, 1, null); - BigDecimal shareMoney = hongBaoV2CountService.getRewardMoneyToCount(uid, dateType, 2, null); + BigDecimal selfMoney = null; + BigDecimal shareMoney = null; + BigDecimal teamMoney = null; + // VIP棰勮淇℃伅 + if (VersionUtil.greaterThan_2_1(acceptData.getPlatform(), acceptData.getVersion())) { + String redisContent = previewInfoService.getRedisContent(uid, PreviewEnum.mineInfo); + if (!StringUtil.isNullOrEmpty(redisContent)) { + MineInfoVO vo = new Gson().fromJson(redisContent, MineInfoVO.class); + if (vo != null) { + if (!StringUtil.isNullOrEmpty(vo.getSelfRebate())) + selfMoney = new BigDecimal(vo.getSelfRebate()); + if (!StringUtil.isNullOrEmpty(vo.getShareBonus())) + shareMoney = new BigDecimal(vo.getShareBonus()); + if (!StringUtil.isNullOrEmpty(vo.getTeamBonus())) + teamMoney = new BigDecimal(vo.getTeamBonus()); + } + } + } + + if (selfMoney == null) { + selfMoney = hongBaoV2CountService.getRewardMoneyToCount(uid, dateType, 1, null); + shareMoney = hongBaoV2CountService.getRewardMoneyToCount(uid, dateType, 2, null); + teamMoney = 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("shareMoney", shareMoney.setScale(2, BigDecimal.ROUND_DOWN).toString()); - - - BigDecimal teamMoney = new BigDecimal(0); - if (!VersionUtil.greaterThan_2_1(acceptData.getPlatform(), acceptData.getVersion())) { - teamMoney = hongBaoV2CountService.getRewardMoneyToCount(uid, dateType, 3, null); - } else { - BigDecimal bonus = null; - BigDecimal subsidy = null; - BigDecimal dividend = null; // TODO 鍒嗙孩缁熻 - if (dateType == 4) { // 宸插埌璐� - dividend = new BigDecimal(0); - bonus = hongBaoV2CountService.geBonusByuid(uid, dateType, 3, 2); - subsidy = inviteOrderSubsidyServiceV2.sumMoneyByUidAndDateAndState(uid,dateType,null,3); - } else { // 鏈け鏁� - bonus = hongBaoV2CountService.geBonusByuid(uid, dateType, 3, 4); - subsidy = inviteOrderSubsidyServiceV2.sumValidMoneyByUidAndDate(uid,dateType,null); - } - - dividend = new BigDecimal(0); - // 鎬诲洟闃熷鍔� - teamMoney = bonus.add(subsidy).add(dividend); - } data.put("inviteMoney", teamMoney.setScale(2, BigDecimal.ROUND_DOWN).toString()); out.print(JsonUtil.loadTrueResult(data)); } @@ -574,13 +583,21 @@ } } - + // 绾㈠寘鑾峰緱鑰� HongBaoV2 hongBaoV2 = hoList.get(0).getHongBaoV2(); UserLevelEnum userLevel = UserLevelUtil.getByOrderRank(hongBaoV2.getUrank()); if (userLevel == null) userLevel = UserLevelEnum.daRen; UserLevelEnum upperLevel = UserLevelEnum.superVIP; + // 璁㈠崟璐拱鑰� + CommonOrder commonOrder1 = hoList.get(0).getCommonOrder(); + Date downTime = commonOrder1.getThirdCreateTime(); + UserLevelEnum buyer = UserLevelUtil.getByOrderRank(commonOrder1.getUrank()); + if (buyer == null) { + buyer = UserLevelEnum.daRen; + } + BigDecimal upperTotalMoney = new BigDecimal(0); List<GoodsRebateVO> voList = new ArrayList<>(); for (HongBaoOrder hongBaoOrder : hoList) { @@ -598,7 +615,10 @@ // 瀹炰粯娆� BigDecimal payment = hongBaoOrder.getCommonOrder().getPayment(); - if (hongBaoOrder.getCommonOrder().getSettlement() != null) + // 鑻ュ凡缁撶畻 -鏄剧ず缁撶畻閲戦 + Integer orderState = hongBaoOrder.getCommonOrder().getState(); + if (hongBaoOrder.getCommonOrder().getSettlement() != null + && (orderState == CommonOrder.STATE_JS || orderState == CommonOrder.STATE_WQ)) payment = hongBaoOrder.getCommonOrder().getSettlement(); if (payment == null) payment = new BigDecimal(0); @@ -608,6 +628,7 @@ // 鍩虹浣i噾 BigDecimal commission = orderHongBaoMoneyComputeService.computeBaseFanliMoney(commonOrder); goodsVO.setCommision("楼" +commission.setScale(2, BigDecimal.ROUND_DOWN)); + // 骞冲彴琛ヨ创 = 杩斿埄 - 鍩虹浣i噾 goodsVO.setSubsidy("楼" + fanli.subtract(commission).setScale(2, BigDecimal.ROUND_DOWN)); // 杈句汉琛ヨ创 @@ -626,58 +647,29 @@ upperTotalMoney = upperTotalMoney.add(orderHongBaoMoneyComputeService.computeFanliMoney(commonOrder, upperLevel)); } else if (type == 2) { upperTotalMoney = upperTotalMoney.add(orderHongBaoMoneyComputeService.computeShareMoney(commonOrder, upperLevel)); - } - } - - CommonOrder commonOrder = hoList.get(0).getCommonOrder(); - Date downTime = commonOrder.getThirdCreateTime(); - - // 鍥㈤槦琛ヨ创 - if (type == 3) { - BigDecimal teamSubsidy = null; - BigDecimal lowerSubsidy = null; - InviteOrderSubsidy inviteOrderSubsidy = inviteOrderSubsidyServiceV2.getByOrderNoAndType(uid, orderNo, sourceType); - if (inviteOrderSubsidy != null) { - teamSubsidy = inviteOrderSubsidy.getMoney(); - Integer urank = commonOrder.getUrank(); - UserLevelEnum buyerUserLevel = UserLevelUtil.getByOrderRank(urank); - boolean direct = false; + } else if (type == 3) { + List<UserTeamLevel> bossLevelList = new ArrayList<>(); if (hongBaoV2.getType() == HongBaoV2.TYPE_YIJI || hongBaoV2.getType() == HongBaoV2.TYPE_SHARE_YIJI) { - direct = true; + bossLevelList.add(new UserTeamLevel(null, UserLevelEnum.superVIP)); + upperTotalMoney = upperTotalMoney.add(orderHongBaoMoneyComputeService.computeFirstInviteMoney(commonOrder, + buyer, bossLevelList)); + } else { + Integer bRank = hongBaoV2Service.getDirectBossUrankByPid(hongBaoOrder.getHongBaoV2().getParent().getId()); + UserLevelEnum directBoss = UserLevelUtil.getByOrderRank(bRank); + if (directBoss == null) { + directBoss = UserLevelEnum.daRen; + } + bossLevelList.add(new UserTeamLevel(null, directBoss)); + bossLevelList.add(new UserTeamLevel(null, UserLevelEnum.superVIP)); + upperTotalMoney = upperTotalMoney.add(orderHongBaoMoneyComputeService.computeSecondInviteMoney(commonOrder, + buyer, bossLevelList)); } - - BigDecimal originRate = orderHongBaoMoneyComputeService.getTeamSubsidyRate(downTime,buyerUserLevel, userLevel, direct); - - // 璁$畻杈句汉琛ヨ创 - if (userLevel != UserLevelEnum.daRen) { - BigDecimal daRenRate = orderHongBaoMoneyComputeService.getTeamSubsidyRate(downTime, buyerUserLevel, - UserLevelEnum.daRen, direct); - lowerSubsidy = MoneyBigDecimalUtil.div(teamSubsidy.multiply(daRenRate), originRate); - } - - if (userLevel != UserLevelEnum.superVIP && userLevel != UserLevelEnum.tearcher) { - BigDecimal vipRate = orderHongBaoMoneyComputeService.getTeamSubsidyRate(downTime, buyerUserLevel, - UserLevelEnum.superVIP, direct); - upperTotalMoney = upperTotalMoney.add(MoneyBigDecimalUtil.div(teamSubsidy.multiply(vipRate), originRate)); - System.out.println(upperTotalMoney); - } - } else { - teamSubsidy = BigDecimal.valueOf(0.00); - lowerSubsidy = BigDecimal.valueOf(0.00); } - - if (userLevel != UserLevelEnum.daRen) { - orderRebateVO.setOriginSubsidy("楼" + lowerSubsidy.setScale(2, BigDecimal.ROUND_DOWN)); - } - orderRebateVO.setSubsidyDesc("鍥㈤槦琛ヨ创"); - orderRebateVO.setSubsidy("楼" + teamSubsidy.setScale(2, BigDecimal.ROUND_DOWN) +""); - - hongBao = hongBao.add(teamSubsidy); } + orderRebateVO.setFanLiDesc(predictDesc + typeName); orderRebateVO.setFanLi("楼" + hongBao.setScale(2, BigDecimal.ROUND_DOWN)); - orderRebateVO.setType(type); orderRebateVO.setStateDesc(stateDesc); orderRebateVO.setListGoods(voList); @@ -687,7 +679,7 @@ orderRebateVO.setUserLevel(userLevel.name()); } - // 涓婄骇杩斿埄 + // 瓒呯骇浼氬憳杩斿埄 if (upperLevel != null) { orderRebateVO.setUpperFanLi("楼" + upperTotalMoney); orderRebateVO.setJumpLink(upperLevel.getDetailLink()); @@ -745,14 +737,14 @@ } } else { Date accountTime = hongBaoV2.getGetTime(); - if (accountTime != null) { + // 鍒拌处鏃堕棿 -绾㈠寘閲戦闄愬埗 + if (accountTime != null && hongBao.compareTo(Constant.REWARD_COUPON_LIMIT_MONEY) <= 0) { boolean vip = userInviteService.verifyVIP(uid); Date endDay = DateUtil.plusDayDate(Constant.COUPON_REWARD_LIMIT_DAY, accountTime); long currentTime = java.lang.System.currentTimeMillis(); if (endDay.getTime() > currentTime && !vip) { UserSystemCouponRecord couponRecord = userSystemCouponRecordService.getRecordByOrderNo(orderNo, null); - if (couponRecord == null - || (couponRecord.getCouponType() == CouponTypeEnum.rebatePercentCoupon.name() && couponRecord.getState() != UserSystemCouponRecord.STATE_SUCCESS)) { + if (couponRecord == null) { orderRebateVO.setCoupon(true); orderRebateVO.setCouponType(1); orderRebateVO.setCouponText("绔嬪嵆浣跨敤"); @@ -767,87 +759,4 @@ JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); } - - /** - * 鏁版嵁缁熻 - * @param acceptData - * @param uid - * @param type 1鑷喘 2鍒嗕韩 3鍥㈤槦 - * @param out - */ - @RequestMapping(value = "getCurrentBonus", method = RequestMethod.POST) - public void getCurrentBonus(AcceptData acceptData, Long uid, Integer type, PrintWriter out) { - if (uid == null) { - out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); - return; - } - - JSONObject data = new JSONObject(); - if (type == 1 || type == 2) { - CurrentBonusVO bonus = new CurrentBonusVO(); - bonus.setToday(hongBaoV2CountService.geBonusByuid(uid, 1, type, 2).setScale(2, BigDecimal.ROUND_DOWN).toString()); - bonus.setYesterday(hongBaoV2CountService.geBonusByuid(uid, 2, type, 2).setScale(2, BigDecimal.ROUND_DOWN).toString()); - bonus.setThisMonth(hongBaoV2CountService.geBonusByuid(uid, 3, type, 2).setScale(2, BigDecimal.ROUND_DOWN).toString()); - bonus.setLastMonth(hongBaoV2CountService.geBonusByuid(uid, 4, type, 2).setScale(2, BigDecimal.ROUND_DOWN).toString()); - - CurrentBonusVO bonusNot = new CurrentBonusVO(); - bonusNot.setToday(hongBaoV2CountService.geBonusByuid(uid, 1, type, 1).setScale(2, BigDecimal.ROUND_DOWN).toString()); - bonusNot.setYesterday(hongBaoV2CountService.geBonusByuid(uid, 2, type, 1).setScale(2, BigDecimal.ROUND_DOWN).toString()); - bonusNot.setThisMonth(hongBaoV2CountService.geBonusByuid(uid, 3, type, 1).setScale(2, BigDecimal.ROUND_DOWN).toString()); - bonusNot.setLastMonth(hongBaoV2CountService.geBonusByuid(uid, 4, type, 1).setScale(2, BigDecimal.ROUND_DOWN).toString()); - - - data.put("bonus",bonus); - data.put("bonusNot",bonusNot); - data.put("total", hongBaoV2CountService.geBonusByuid(uid, null, type, 2).setScale(2, BigDecimal.ROUND_DOWN).toString()); - data.put("totalNot", hongBaoV2CountService.geBonusByuid(uid, null, type, 1).setScale(2, BigDecimal.ROUND_DOWN).toString()); - } else { - CurrentBonusVO bonus = new CurrentBonusVO(); - bonus.setToday(hongBaoV2CountService.geBonusByuid(uid, 1, type, 4).setScale(2, BigDecimal.ROUND_DOWN).toString()); - bonus.setYesterday(hongBaoV2CountService.geBonusByuid(uid, 2, type, 4).setScale(2, BigDecimal.ROUND_DOWN).toString()); - bonus.setThisMonth(hongBaoV2CountService.geBonusByuid(uid, 3, type, 4).setScale(2, BigDecimal.ROUND_DOWN).toString()); - bonus.setLastMonth(hongBaoV2CountService.geBonusByuid(uid, 4, type, 2).setScale(2, BigDecimal.ROUND_DOWN).toString()); - - - CurrentBonusVO subsidy = new CurrentBonusVO(); - subsidy.setToday(inviteOrderSubsidyServiceV2.sumValidMoneyByUidAndDate(uid,1,null).setScale(2, BigDecimal.ROUND_DOWN).toString()); - subsidy.setYesterday(inviteOrderSubsidyServiceV2.sumValidMoneyByUidAndDate(uid,2,null).setScale(2, BigDecimal.ROUND_DOWN).toString()); - subsidy.setThisMonth(inviteOrderSubsidyServiceV2.sumValidMoneyByUidAndDate(uid,3,null).setScale(2, BigDecimal.ROUND_DOWN).toString()); - subsidy.setLastMonth(inviteOrderSubsidyServiceV2.sumMoneyByUidAndDateAndState(uid,4,null,3).setScale(2, BigDecimal.ROUND_DOWN).toString()); - - // TODO 鍒嗙孩缁熻 - CurrentBonusVO dividend = new CurrentBonusVO(); - dividend.setThisMonth("0.00"); - dividend.setLastMonth("0.00"); - - BigDecimal totalBonus = hongBaoV2CountService.geBonusByuid(uid, null, type, 2); - BigDecimal totalubsidy = inviteOrderSubsidyServiceV2.sumRecievedMoneyByUid(uid,null); - BigDecimal totalDividend = new BigDecimal(0); - - BigDecimal total = totalDividend.add(totalBonus).add(totalubsidy); - - - data.put("bonus",bonus); - data.put("subsidy",subsidy); - data.put("dividend",dividend); - data.put("subsidy",subsidy); - data.put("total", total.setScale(2, BigDecimal.ROUND_DOWN).toString()); - data.put("totalBonus", totalBonus.setScale(2, BigDecimal.ROUND_DOWN).toString()); - data.put("totalubsidy", totalubsidy.setScale(2, BigDecimal.ROUND_DOWN).toString()); - data.put("totalDividend", totalDividend.setScale(2, BigDecimal.ROUND_DOWN).toString()); - } - - String key = null; - if (type == 1) { - key = ConfigKeyEnum.bonusCountLinkFanli.getKey(); - } else if (type == 2) { - key = ConfigKeyEnum.bonusCountLinkShare.getKey(); - } else { - key = ConfigKeyEnum.bonusCountLinkTeam.getKey(); - } - - data.put("link",configService.get(key)); - out.print(JsonUtil.loadTrueResult(data)); - } - } -- Gitblit v1.8.0