yujian
2020-05-13 3b9e1385a90ae84f97f2a4b8b7a35a6b13c01062
Merge remote-tracking branch 'origin/div' into div
5个文件已修改
171 ■■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/client/v1/HelpController.java 137 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/entity/money/TeamEincomeRecord.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderHongBaoMoneyComputeServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/order/OrderHongBaoMoneyComputeService.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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));
    }
}
fanli/src/main/java/com/yeshi/fanli/entity/money/TeamEincomeRecord.java
@@ -15,8 +15,8 @@
public class TeamEincomeRecord {
    public final static int TYPE_TEAM_REWARD = 1;// 团队奖金
    public final static int TYPE_TEAM_SUBSIDY = 2;// 团队补贴
    public final static int TYPE_TEAM_DIVIDENTS = 3;// 团队分红
    public final static int TYPE_TEAM_SUBSIDY = 2;// 团队补贴-二级外极差分红
    public final static int TYPE_TEAM_DIVIDENTS = 3;// 团队分红(团队奖励)-团队奖励=平级不断代分红
    public final static int STATE_RECIEVED = 2;// 已经领取
    public final static int STATE_NOT_RECIEVE = 1;// 未领取
fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java
@@ -2455,6 +2455,9 @@
     * 删除已过期时间
     */
    private void removeOverdue() {
        if(1>0)
            return;
        List<GoodsEvaluate> list = goodsEvaluateDao.queryOverdue();
        if (list == null || list.size() == 0) {
            return;
@@ -2479,6 +2482,8 @@
     * 删除商品已下架-单品
     */
    private void removeDownGoods() {
        if(1>0)
            return;
        try {
            List<GoodsEvaluate> list = goodsEvaluateDao.removeDownGoods();
            if (list == null || list.size() == 0) {
fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderHongBaoMoneyComputeServiceImpl.java
@@ -397,4 +397,11 @@
        return getShowComputeRate(platform, version, UserLevelEnum.daRen);
    }
    @Override
    public BigDecimal getFanliRate(UserLevelEnum userLevel, Date date) {
        BigDecimal rate = hongBaoManageService.getBaseFanliRate(date.getTime())
                .add(getOfficialSubsidyRate(date, getCommonUserLevel(date, userLevel), false));
        return rate;
    }
}
fanli/src/main/java/com/yeshi/fanli/service/inter/order/OrderHongBaoMoneyComputeService.java
@@ -16,11 +16,9 @@
 *
 */
public interface OrderHongBaoMoneyComputeService {
    public ConfigParamsDTO getShowComputeRate(String platform, String version, UserLevelEnum userLevel);
    public ConfigParamsDTO getShowComputeRate(String platform, String version);
    /**
@@ -70,6 +68,18 @@
    public BigDecimal computeShareMoney(CommonOrder order, UserLevelEnum userLevel);
    /**
     * 获取返利比例
     * @Title: getFanliRate
     * @Description:
     * @param userLevel
     * @param date
     * @return
     * BigDecimal 返回类型
     * @throws
     */
    public BigDecimal getFanliRate(UserLevelEnum userLevel, Date date);
    /**
     * 计算直接粉丝邀请奖金
     * @Title: computeFirstInviteMoney
     * @Description: