| | |
| | | dividend = new BigDecimal(0);
|
| | | // 总团队奖励
|
| | | teamMoney = bonus.add(subsidy).add(dividend);
|
| | | |
| | | JSONObject paramsFanli = new JSONObject();
|
| | | paramsFanli.put("type", "1");
|
| | | data.put("paramsFanli", paramsFanli);
|
| | | data.put("jumpFanli", jumpDetailV2Service.getByTypeCache("fanli_share_statistics",
|
| | | Constant.getPlatformCode(acceptData.getPlatform()), Integer.parseInt(acceptData.getVersion())));
|
| | | |
| | | JSONObject paramsShare = new JSONObject();
|
| | | paramsShare.put("type", "2");
|
| | | data.put("paramsShare", paramsShare);
|
| | | data.put("jumpShare", jumpDetailV2Service.getByTypeCache("fanli_share_statistics",
|
| | | Constant.getPlatformCode(acceptData.getPlatform()), Integer.parseInt(acceptData.getVersion())));
|
| | | |
| | | JSONObject paramsTeam = new JSONObject();
|
| | | paramsTeam.put("type", "3");
|
| | | data.put("paramsTeam", paramsTeam);
|
| | | data.put("jumpTeam", jumpDetailV2Service.getByTypeCache("team_statistics",
|
| | | Constant.getPlatformCode(acceptData.getPlatform()), Integer.parseInt(acceptData.getVersion())));
|
| | | }
|
| | | data.put("inviteMoney", teamMoney.setScale(2, BigDecimal.ROUND_DOWN).toString());
|
| | | out.print(JsonUtil.loadTrueResult(data));
|
| | |
| | | hongBao = MoneyBigDecimalUtil.sub(hongBao, weiQuanMoney);
|
| | | }
|
| | | }
|
| | | orderRebateVO.setFanLiDesc(predictDesc + typeName);
|
| | | orderRebateVO.setFanLi("¥" + hongBao.setScale(2, BigDecimal.ROUND_DOWN));
|
| | | |
| | |
|
| | | HongBaoV2 hongBaoV2 = hoList.get(0).getHongBaoV2();
|
| | | UserLevelEnum userLevel = UserLevelUtil.getByOrderRank(hongBaoV2.getUrank());
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | CommonOrder commonOrder = hoList.get(0).getCommonOrder();
|
| | | Date downTime = commonOrder.getThirdCreateTime();
|
| | | |
| | | // 团队补贴
|
| | | if (type == 3) {
|
| | | BigDecimal teamSubsidy = 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;
|
| | | if (hongBaoV2.getType() == HongBaoV2.TYPE_YIJI || hongBaoV2.getType() == HongBaoV2.TYPE_SHARE_YIJI) {
|
| | | direct = true;
|
| | | }
|
| | | |
| | | BigDecimal originRate = orderHongBaoMoneyComputeService.getTeamSubsidyRate(downTime,buyerUserLevel, userLevel, direct);
|
| | | |
| | | // 计算达人补贴
|
| | | if (userLevel != UserLevelEnum.daRen) {
|
| | | CommonOrder commonOrder = hoList.get(0).getCommonOrder();
|
| | | Integer urank = commonOrder.getUrank();
|
| | | UserLevelEnum buyerUserLevel = UserLevelUtil.getByOrderRank(urank);
|
| | | boolean direct = false;
|
| | | if (hongBaoV2.getType() == HongBaoV2.TYPE_YIJI || hongBaoV2.getType() == HongBaoV2.TYPE_SHARE_YIJI) {
|
| | | direct = true;
|
| | | }
|
| | | // 计算上一级补贴
|
| | | lowerSubsidy = getLowerSubsidy(inviteOrderSubsidy.getMoney(), commonOrder.getThirdCreateTime(), buyerUserLevel, userLevel, direct);
|
| | | BigDecimal daRenRate = orderHongBaoMoneyComputeService.getTeamSubsidyRate(downTime, buyerUserLevel, |
| | | UserLevelEnum.daRen, direct);
|
| | | lowerSubsidy = MoneyBigDecimalUtil.div(teamSubsidy.multiply(daRenRate), originRate);
|
| | | }
|
| | | |
| | | if (userLevel != UserLevelEnum.superVIP && userLevel != UserLevelEnum.superVIP) {
|
| | | 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);
|
| | |
| | | orderRebateVO.setSubsidyDesc("团队补贴");
|
| | | orderRebateVO.setSubsidy("¥" + teamSubsidy.setScale(2, BigDecimal.ROUND_DOWN) +"");
|
| | |
|
| | | upperTotalMoney = upperTotalMoney.add(teamSubsidy);
|
| | | 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);
|
| | | orderRebateVO.setUserLevel(userLevel.name());
|
| | | if (downTime.getTime() < Constant.NEW_ORDER_FANLI_RULE_TIME) {
|
| | | orderRebateVO.setUserLevel(UserLevelEnum.superVIP.name()); // 隐藏
|
| | | } else {
|
| | | orderRebateVO.setUserLevel(userLevel.name());
|
| | | }
|
| | |
|
| | | // 上级返利
|
| | | if (upperLevel != null) {
|
| | |
| | | freeState = state;
|
| | | break;
|
| | | }
|
| | | |
| | | }
|
| | | }
|
| | |
|
| | |
| | | JSONObject data = new JSONObject();
|
| | | data.put("result", orderRebateVO);
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
| | | }
|
| | | |
| | | |
| | | private BigDecimal getLowerSubsidy(BigDecimal money, Date downTime, UserLevelEnum buyerUserLevel, UserLevelEnum userLevel, boolean direct) {
|
| | | // 原始比例
|
| | | BigDecimal originRate = orderHongBaoMoneyComputeService.getTeamSubsidyRate(downTime,
|
| | | buyerUserLevel, userLevel, direct);
|
| | | |
| | | // 小一级比例
|
| | | BigDecimal darenRate = orderHongBaoMoneyComputeService.getTeamSubsidyRate(downTime, buyerUserLevel, UserLevelEnum.daRen, direct);
|
| | | |
| | | return MoneyBigDecimalUtil.mul(MoneyBigDecimalUtil.div(money,originRate), darenRate);
|
| | | }
|
| | |
|
| | |
|