From 3b9e1385a90ae84f97f2a4b8b7a35a6b13c01062 Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期三, 13 五月 2020 16:39:19 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/div' into div --- fanli/src/main/java/com/yeshi/fanli/controller/client/v1/HelpController.java | 137 +++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 137 insertions(+), 0 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/HelpController.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/HelpController.java index 82b2cfa..27f1667 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/HelpController.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/HelpController.java @@ -2,6 +2,13 @@ import java.io.PrintWriter; import java.io.UnsupportedEncodingException; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import javax.annotation.Resource; @@ -11,13 +18,20 @@ import com.google.gson.Gson; import com.google.gson.GsonBuilder; +import com.yeshi.fanli.dto.order.UserTeamLevel; +import com.yeshi.fanli.dto.order.UserTeamRate; import com.yeshi.fanli.entity.accept.AcceptData; import com.yeshi.fanli.entity.bus.help.AppPageNotification; +import com.yeshi.fanli.entity.bus.user.vip.UserLevelEnum; import com.yeshi.fanli.service.inter.help.AppPageNotificationService; +import com.yeshi.fanli.service.inter.order.OrderHongBaoMoneyComputeService; import com.yeshi.fanli.service.manger.AppUpdateManager; import com.yeshi.fanli.util.Constant; +import com.yeshi.fanli.util.MoneyBigDecimalUtil; import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.VersionUtil; + +import net.sf.json.JSONObject; @Controller @RequestMapping("api/v1/help") @@ -28,6 +42,9 @@ @Resource private AppUpdateManager appUpdateManager; + + @Resource + private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService; /** * 鑾峰彇app椤甸潰鐨勯�氱煡 @@ -84,4 +101,124 @@ } } + @RequestMapping(value = "computeCommission") + public void computeCommission(AcceptData acceptData, String list, String money, String callback, PrintWriter out) { + + money = money.replace("楼", "").trim(); + + BigDecimal moneyBigDecial = null; + + try { + moneyBigDecial = new BigDecimal(money); + } catch (Exception e) { + + } + + if (moneyBigDecial == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璧勯噾鏍煎紡涓嶅")); + return; + } + + moneyBigDecial = MoneyBigDecimalUtil.mul(moneyBigDecial, new BigDecimal("2.5")); + + List<UserLevelEnum> levelList = new ArrayList<UserLevelEnum>(); + net.sf.json.JSONArray array = net.sf.json.JSONArray.fromObject(list); + for (int i = 0; i < array.size(); i++) + levelList.add(UserLevelEnum.valueOf(array.optString(i))); + + Collections.reverse(levelList); + + List<UserTeamLevel> bossList = new ArrayList<>(); + if (levelList.size() > 1) + for (int i = 1; i < levelList.size(); i++) { + bossList.add(new UserTeamLevel(10000L + i, levelList.get(i))); + } + + Date date = new Date(); + + List<UserTeamRate> rateList = null; + + Map<Long, UserTeamRate> teamRewardMap = new HashMap<>(); + Map<Long, UserTeamRate> teamReward2Map = new HashMap<>(); + Map<Long, UserTeamRate> teamDividentsMap = new HashMap<>(); + + // 璁$畻浜岀骇澶栧垎绾� + List<UserTeamRate> moreThan2LevelList = orderHongBaoMoneyComputeService + .getTeamRewardMoreThan2LevelRates(levelList.get(0), bossList, date); + if (moreThan2LevelList != null) + for (UserTeamRate rate : moreThan2LevelList) { + teamReward2Map.put(rate.getUid(), rate); + } + + // 璁$畻涓�绾у閲� + if (bossList.size() >= 1) { + UserTeamRate rate = orderHongBaoMoneyComputeService.getTeamRewardRate(levelList.get(0), bossList, date, 1); + if (rate != null) + teamRewardMap.put(rate.getUid(), rate); + } + // 璁$畻浜岀骇濂栭噾 + if (bossList.size() >= 2) { + UserTeamRate rate = orderHongBaoMoneyComputeService.getTeamRewardRate(levelList.get(0), bossList, date, 2); + if (rate != null) + teamRewardMap.put(rate.getUid(), rate); + } + + // 璁$畻鍒嗙孩 + rateList = orderHongBaoMoneyComputeService.getTeamDividentsRates(levelList.get(0), bossList, date); + if (rateList != null) + for (UserTeamRate rate : rateList) { + teamDividentsMap.put(rate.getUid(), rate); + } + + BigDecimal fanliRate = orderHongBaoMoneyComputeService.getFanliRate(levelList.get(0), date); + + List<String> resultList = new ArrayList<>(); + + resultList.add( + "楼" + MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(moneyBigDecial, fanliRate), new BigDecimal(100))); + + for (int i = 0; i < bossList.size(); i++) { + // + String st = ""; + Long uid = bossList.get(i).getUid(); + + if (i < 2) { + if (teamRewardMap.get(uid) == null) + st += "楼0"; + else + st += "楼" + MoneyBigDecimalUtil.div( + MoneyBigDecimalUtil.mul(moneyBigDecial, teamRewardMap.get(uid).getRate()), + new BigDecimal(100)); + + st += "+"; + } + + if (i >= 2) { + + if (teamReward2Map.get(uid) == null) + st += "楼0"; + else + st += "楼" + MoneyBigDecimalUtil.div( + MoneyBigDecimalUtil.mul(moneyBigDecial, teamReward2Map.get(uid).getRate()), + new BigDecimal(100)); + st += "+"; + } + + if (teamDividentsMap.get(uid) == null) + st += "楼0"; + else + st += "楼" + MoneyBigDecimalUtil.div( + MoneyBigDecimalUtil.mul(moneyBigDecial, teamDividentsMap.get(uid).getRate()), + new BigDecimal(100)); + resultList.add(st); + } + + Collections.reverse(resultList); + + JSONObject data = new JSONObject(); + data.put("list", resultList); + + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); + } + } -- Gitblit v1.8.0