| | |
| | |
|
| | | 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;
|
| | |
|
| | |
| | |
|
| | | 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")
|
| | |
| | |
|
| | | @Resource
|
| | | private AppUpdateManager appUpdateManager;
|
| | |
|
| | | @Resource
|
| | | private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService;
|
| | |
|
| | | /**
|
| | | * 获取app页面的通知
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | @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, 1);
|
| | | 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 (teamRewardMap.get(uid) == null)
|
| | | st += "¥0";
|
| | | else
|
| | | st += "¥" + teamRewardMap.get(uid);
|
| | |
|
| | | st += "+";
|
| | |
|
| | | if (teamReward2Map.get(uid) == null)
|
| | | st += "¥0";
|
| | | else
|
| | | st += "¥" + teamReward2Map.get(uid);
|
| | |
|
| | | st += "+";
|
| | |
|
| | | if (teamDividentsMap.get(uid) == null)
|
| | | st += "¥0";
|
| | | else
|
| | | st += "¥" + teamDividentsMap.get(uid);
|
| | | resultList.add(st);
|
| | | }
|
| | |
|
| | | JSONObject data = new JSONObject();
|
| | | data.put("list", resultList);
|
| | |
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
| | | }
|
| | |
|
| | | }
|