yujian
2020-04-14 88e7382670bf6c88e5e550f92e36307643cb5d5a
资金统计
12个文件已修改
452 ■■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/aspect/AdminLoginAspect.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v1/ConfigController.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserMoneyController.java 205 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserAccountControllerV2.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserOrderControllerV2.java 161 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/money/UserMoneyDetailMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/entity/system/ConfigKeyEnum.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/mapping/money/UserMoneyDetailMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/money/UserMoneyDetailServiceImpl.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/money/UserMoneyDetailService.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/factory/msg/MsgMoneyDetailFactory.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/vo/money/UserMoneyStatisticVO.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/aspect/AdminLoginAspect.java
@@ -96,9 +96,9 @@
                    HttpServletResponse response = servletContainer.getResponse();
                    String callback = request.getParameter("callback");
                    if (StringUtil.isNullOrEmpty(callback)) {
                        response.getWriter().print(JsonUtil.loadFalseResult(1, "请先登录"));
                        response.getWriter().print(JsonUtil.loadFalseResult(10001, "请先登录"));
                    } else {
                        response.getWriter().print(callback + "(" + JsonUtil.loadFalseResult(1, "请先登录") + ")");
                        response.getWriter().print(callback + "(" + JsonUtil.loadFalseResult(10001, "请先登录") + ")");
                    }
                    return null;
fanli/src/main/java/com/yeshi/fanli/controller/client/v1/ConfigController.java
@@ -45,6 +45,7 @@
import com.yeshi.fanli.service.inter.user.vip.UserLevelUpgradedNotifyService;
import com.yeshi.fanli.service.inter.user.vip.UserVIPInfoService;
import com.yeshi.fanli.service.inter.user.vip.UserVIPPreInfoService;
import com.yeshi.fanli.service.inter.user.vip.UserVipConfigService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.ThreadUtil;
@@ -114,6 +115,10 @@
    @Resource
    private ThreeSaleSerivce threeSaleSerivce;
    @Resource
    private UserVipConfigService userVipConfigService;
    /**
     * s 首页配置信息
@@ -372,15 +377,14 @@
                // TODO 验证是否是导师
                
                JSONObject inner = new JSONObject();
                inner.put("link", "https://www.baidu.com/");
                inner.put("link", userVipConfigService.getByKey("vip_link"));
                inner.put("ion", "http://img.flqapp.com/resource/vip/icon_vip.png");
                inner.put("title", "免费升级 享会员权益");
                inner.put("btnName", "升级会员");
                if (uid != null) {
                    // 是否导师 TODO
                    if (userVIPInfoService.isVIP(uid)) {
                        inner.put("link", "https://www.baidu.com/");
                        inner.put("link", userVipConfigService.getByKey("vip_link"));
                        inner.put("ion", "http://img.flqapp.com/resource/vip/icon_tearcher.png");
                        inner.put("title", "拿五险与津贴 享导师权益");
                        inner.put("btnName", "升级会员");
fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserMoneyController.java
@@ -188,10 +188,9 @@
        // 上月提现
        typeList.clear();
        typeList.add(UserMoneyDetailTypeEnum.extract);
        typeList.add(UserMoneyDetailTypeEnum.extractReject);
        typeList.add(UserMoneyDetailTypeEnum.extractVerify);
        typeList.add(UserMoneyDetailTypeEnum.extractReject);
        long timeStamp = System.currentTimeMillis();
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(timeStamp);
@@ -200,30 +199,9 @@
        calendar.add(Calendar.MONTH, -1);
        minDate = new Date(TimeUtil
                .convertToTimeTemp(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M"));
        vo.setLastMonthExtractMoney(
                userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs());
        // 上月收入
        typeList.clear();
        typeList.add(UserMoneyDetailTypeEnum.fanli);
        typeList.add(UserMoneyDetailTypeEnum.fanliWeiQuan);
        typeList.add(UserMoneyDetailTypeEnum.share);
        typeList.add(UserMoneyDetailTypeEnum.shareWeiQuan);
        typeList.add(UserMoneyDetailTypeEnum.invite);
        typeList.add(UserMoneyDetailTypeEnum.inviteWeiQuan);
        typeList.add(UserMoneyDetailTypeEnum.inviteAndShare);
        typeList.add(UserMoneyDetailTypeEnum.weiQuan);
        typeList.add(UserMoneyDetailTypeEnum.hongbao);
        typeList.add(UserMoneyDetailTypeEnum.hongbaoDeduct);
        vo.setLastMonthRecievedMoney(
                userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs());
        // 最近三个月收入
        maxDate = new Date(timeStamp);
        minDate = new Date(timeStamp - 1000 * 60 * 60 * 24 * 90L);
        vo.setLatestThreeMonthRecievedMoney(
                userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs());
                userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate, 1).abs());
        // 本月提现
        maxDate = new Date(timeStamp);
        calendar = Calendar.getInstance();
@@ -232,75 +210,127 @@
        calendar.add(Calendar.MONTH, -1);
        typeList.clear();
        typeList.add(UserMoneyDetailTypeEnum.extract);
        typeList.add(UserMoneyDetailTypeEnum.extractReject);
        typeList.add(UserMoneyDetailTypeEnum.extractVerify);
        typeList.add(UserMoneyDetailTypeEnum.extractReject);
        vo.setMonthExtractMoney(
                userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs());
        // 本月到账
                userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate, 1).abs());
        if (!VersionUtil.greaterThan_2_1(acceptData.getPlatform(), acceptData.getVersion())) {
            // 上月收入
            typeList.clear();
            typeList.add(UserMoneyDetailTypeEnum.fanli);
            typeList.add(UserMoneyDetailTypeEnum.fanliWeiQuan);
            typeList.add(UserMoneyDetailTypeEnum.share);
            typeList.add(UserMoneyDetailTypeEnum.shareWeiQuan);
            typeList.add(UserMoneyDetailTypeEnum.invite);
            typeList.add(UserMoneyDetailTypeEnum.inviteWeiQuan);
            typeList.add(UserMoneyDetailTypeEnum.inviteAndShare);
            typeList.add(UserMoneyDetailTypeEnum.weiQuan);
            typeList.add(UserMoneyDetailTypeEnum.hongbao);
            typeList.add(UserMoneyDetailTypeEnum.hongbaoDeduct);
            vo.setLastMonthRecievedMoney(
                    userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs());
            // 最近三个月收入
            maxDate = new Date(timeStamp);
            minDate = new Date(timeStamp - 1000 * 60 * 60 * 24 * 90L);
            vo.setLatestThreeMonthRecievedMoney(
                    userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs());
            // 本月到账
            typeList.clear();
            typeList.add(UserMoneyDetailTypeEnum.fanli);
            typeList.add(UserMoneyDetailTypeEnum.fanliWeiQuan);
            typeList.add(UserMoneyDetailTypeEnum.share);
            typeList.add(UserMoneyDetailTypeEnum.shareWeiQuan);
            typeList.add(UserMoneyDetailTypeEnum.invite);
            typeList.add(UserMoneyDetailTypeEnum.inviteWeiQuan);
            typeList.add(UserMoneyDetailTypeEnum.inviteAndShare);
            typeList.add(UserMoneyDetailTypeEnum.weiQuan);
            typeList.add(UserMoneyDetailTypeEnum.hongbao);
            typeList.add(UserMoneyDetailTypeEnum.hongbaoDeduct);
            vo.setMonthRecievedMoney(
                    userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs());
            minDate = new Date(TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(timeStamp, "yyyy-MM"), "yyyy-MM"));
            Calendar ca = Calendar.getInstance();
            ca.setTime(new Date(timeStamp));
            ca.add(Calendar.MONTH, 1);
            maxDate = new Date(
                    TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(ca.getTimeInMillis(), "yyyy-MM"), "yyyy-MM"));
            // 本月未到账
            BigDecimal monthUnRecievedMoney = hongBaoV2Service.getUnRecievedMoneyWithPreGetTime(uid, minDate, maxDate);
            vo.setMonthUnRecievedMoney(monthUnRecievedMoney);
            // 全部未到账
            minDate = new Date(0);
            maxDate = new Date(timeStamp);
            vo.setTotalUnRecievedMoney(hongBaoV2Service.getUnRecievedMoneyWithCreateTime(uid, minDate, maxDate));
            // 总的到账
            typeList.clear();
            typeList.add(UserMoneyDetailTypeEnum.fanli);
            typeList.add(UserMoneyDetailTypeEnum.fanliWeiQuan);
            typeList.add(UserMoneyDetailTypeEnum.orderReward);
            typeList.add(UserMoneyDetailTypeEnum.share);
            typeList.add(UserMoneyDetailTypeEnum.shareWeiQuan);
            typeList.add(UserMoneyDetailTypeEnum.invite);
            typeList.add(UserMoneyDetailTypeEnum.inviteWeiQuan);
            typeList.add(UserMoneyDetailTypeEnum.inviteAndShare);
            typeList.add(UserMoneyDetailTypeEnum.weiQuan);
            typeList.add(UserMoneyDetailTypeEnum.hongbao);
            typeList.add(UserMoneyDetailTypeEnum.hongbaoDeduct);
            typeList.add(UserMoneyDetailTypeEnum.subsidy);
            typeList.add(UserMoneyDetailTypeEnum.orderTeamDividents);
            vo.setTotalRecievedMoney(
                    userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs());
        }
        minDate = new Date(0L);
        maxDate = new Date(timeStamp);
        if (VersionUtil.greaterThan_2_1(acceptData.getPlatform(), acceptData.getVersion())) {
            // 总的自购返利
            typeList.clear();
            typeList.add(UserMoneyDetailTypeEnum.fanli);
            typeList.add(UserMoneyDetailTypeEnum.fanliWeiQuan);
            typeList.add(UserMoneyDetailTypeEnum.orderReward);
            vo.setTotalFanLiMoney(
                    userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs());
            // 累计成功提现
            typeList.clear();
            typeList.add(UserMoneyDetailTypeEnum.extract);
            typeList.add(UserMoneyDetailTypeEnum.extractVerify);
            typeList.add(UserMoneyDetailTypeEnum.extractAutoWX);
            typeList.add(UserMoneyDetailTypeEnum.extractReject);
            vo.setTotalExtractMoney(
                    userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate, 1).abs());
        }
        // 总的分享赚
        typeList.clear();
        typeList.add(UserMoneyDetailTypeEnum.fanli);
        typeList.add(UserMoneyDetailTypeEnum.fanliWeiQuan);
        typeList.add(UserMoneyDetailTypeEnum.share);
        typeList.add(UserMoneyDetailTypeEnum.shareWeiQuan);
        typeList.add(UserMoneyDetailTypeEnum.invite);
        typeList.add(UserMoneyDetailTypeEnum.inviteWeiQuan);
        typeList.add(UserMoneyDetailTypeEnum.inviteAndShare);
        typeList.add(UserMoneyDetailTypeEnum.weiQuan);
        typeList.add(UserMoneyDetailTypeEnum.hongbao);
        typeList.add(UserMoneyDetailTypeEnum.hongbaoDeduct);
        vo.setMonthRecievedMoney(
        vo.setTotalShareMoney(
                userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs());
        // 总的邀请赚
        typeList.clear();
        typeList.add(UserMoneyDetailTypeEnum.invite);
        typeList.add(UserMoneyDetailTypeEnum.inviteWeiQuan);
        typeList.add(UserMoneyDetailTypeEnum.inviteAndShare);
        minDate = new Date(0L);
        maxDate = new Date(timeStamp);
        if (VersionUtil.greaterThan_2_1(acceptData.getPlatform(), acceptData.getVersion())) {
            typeList.add(UserMoneyDetailTypeEnum.subsidy);
            typeList.add(UserMoneyDetailTypeEnum.orderTeamDividents);
        }
        vo.setTotalInviteMoney(
                userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs());
        // 总的到账
        typeList.clear();
        typeList.add(UserMoneyDetailTypeEnum.fanli);
        typeList.add(UserMoneyDetailTypeEnum.fanliWeiQuan);
        typeList.add(UserMoneyDetailTypeEnum.share);
        typeList.add(UserMoneyDetailTypeEnum.shareWeiQuan);
        typeList.add(UserMoneyDetailTypeEnum.invite);
        typeList.add(UserMoneyDetailTypeEnum.inviteWeiQuan);
        typeList.add(UserMoneyDetailTypeEnum.inviteAndShare);
        typeList.add(UserMoneyDetailTypeEnum.weiQuan);
        typeList.add(UserMoneyDetailTypeEnum.hongbao);
        typeList.add(UserMoneyDetailTypeEnum.hongbaoDeduct);
        vo.setTotalRecievedMoney(
                userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs());
        // 总的分享赚
        typeList.clear();
        typeList.add(UserMoneyDetailTypeEnum.share);
        typeList.add(UserMoneyDetailTypeEnum.shareWeiQuan);
        vo.setTotalShareMoney(
                userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs());
        minDate = new Date(TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(timeStamp, "yyyy-MM"), "yyyy-MM"));
        Calendar ca = Calendar.getInstance();
        ca.setTime(new Date(timeStamp));
        ca.add(Calendar.MONTH, 1);
        maxDate = new Date(
                TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(ca.getTimeInMillis(), "yyyy-MM"), "yyyy-MM"));
        // 本月未到账
        BigDecimal monthUnRecievedMoney = hongBaoV2Service.getUnRecievedMoneyWithPreGetTime(uid, minDate, maxDate);
        vo.setMonthUnRecievedMoney(monthUnRecievedMoney);
        // 全部未到账
        minDate = new Date(0);
        maxDate = new Date(timeStamp);
        vo.setTotalUnRecievedMoney(hongBaoV2Service.getUnRecievedMoneyWithCreateTime(uid, minDate, maxDate));
        GsonBuilder builder = new GsonBuilder();
        builder.registerTypeAdapter(BigDecimal.class, new JsonSerializer<BigDecimal>() {
            @Override
@@ -314,12 +344,13 @@
                }
            }
        });
        if (VersionUtil.greaterThan_2_0(acceptData.getPlatform(), acceptData.getVersion())) {
            // 获取提现中的信息
            BigDecimal extractingMoney = extractService.sumVerifyingMoney(uid);
            if (extractingMoney.compareTo(new BigDecimal(0)) > 0)
                vo.setExtractingMoneyInfo("提现中:¥" + extractingMoney.setScale(2, RoundingMode.HALF_UP));
        // 获取提现中的信息
        BigDecimal extractingMoney = extractService.sumVerifyingMoney(uid);
        if (extractingMoney.compareTo(new BigDecimal(0)) > 0)
            vo.setExtractingMoneyInfo("提现中:¥" + extractingMoney.setScale(2, RoundingMode.HALF_UP));
        if (VersionUtil.greaterThan_2_0(acceptData.getPlatform(), acceptData.getVersion()) && !VersionUtil.greaterThan_2_1(acceptData.getPlatform(), acceptData.getVersion())) {
            // 获取是否绑定了微信
            if (!StringUtil.isNullOrEmpty(user.getWxUnionId())) {
                vo.setBindingWX(true);
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserAccountControllerV2.java
@@ -688,7 +688,7 @@
        
        String shareRate = "可享佣金的<label style=\"color:#E5005C;\">%s</label>";
        String fansRate = "最高佣金的<label style=\"color:#E5005C;\">%s</label>";
        String fansIndirect = "团队分红池<label style=\"color:#E5005C;\">%s</label>";
        String fansIndirect = "最高佣金的<label style=\"color:#E5005C;\">%s</label>";
        String teamBonus = "团队分红池<label style=\"color:#E5005C;\">%s</label>";
        // 达人版
        JSONObject jsonrRed1 = new JSONObject();
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserOrderControllerV2.java
@@ -58,14 +58,12 @@
import com.yeshi.fanli.util.VersionUtil;
import com.yeshi.fanli.util.account.UserUtil;
import com.yeshi.fanli.util.user.UserLevelUtil;
import com.yeshi.fanli.vo.msg.ClientTextStyleVO;
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.order.TeamBonusVO;
import com.yeshi.fanli.vo.user.UserInfoExtraVO;
import com.yeshi.fanli.vo.user.UserSettingsVO;
@@ -299,7 +297,6 @@
            data.put("count", count);
            data.put("result_list", JsonUtil.getApiCommonGson().toJson(list));
            data.put("helpUrl", configService.get(ConfigKeyEnum.orderListHelp.getKey()));
            data.put("bonusLink", configService.get(ConfigKeyEnum.orderBonusLink.getKey()));
            data.put("validMoney", "¥ " + validMoney);
            data.put("invalidMoney", "¥ " + invalidMoney);
            data.put("findOrderHelpUrl", orderFindUrl);
@@ -506,153 +503,6 @@
        out.print(JsonUtil.loadTrueResult(data));
    }
    /**
     * 团队收益统计  统计已到账未到账 : 累计只统计已到账
     * @param acceptData
     * @param uid
     * @param type 1-团队补贴   2-团队奖励 3-导师津贴
     */
    @RequestMapping(value = "getTeamBonus", method = RequestMethod.POST)
    public void getTeamBonus(AcceptData acceptData, Long uid, Integer type, PrintWriter out) {
        if (uid == null) {
            out.print(JsonUtil.loadFalseResult(1, "用户未登录"));
            return;
        }
        UserInfo user = userInfoService.selectByPKey(uid);
        if (user == null) {
            out.print(JsonUtil.loadFalseResult(1, "用户不存在"));
            return;
        }
        if (type == null || type < 1 || type > 3) {
            type = 1;
        }
        if (type == 1) {
            // 补贴
            sumTeamSubsidy(out, user);
        } else if (type == 2) {
            // 奖励
            //TODO 团队奖励已经删除
        } else {
            // 导师津贴
            JSONObject data = new JSONObject();
            data.put("exist", false);
            data.put("link", configService.get(ConfigKeyEnum.tutorSubsidyLink.getKey()));
            out.print(JsonUtil.loadTrueResult(data));
        }
    }
    /**
     * 统计补贴
     * @param out
     * @param user
     */
    private void sumTeamSubsidy(PrintWriter out, UserInfo user) {
        Long uid = user.getId();
        // 是否VIP
        boolean vip = userVIPInfoService.isVIP(uid);
        JSONObject data = new JSONObject();
        data.put("link", configService.get(ConfigKeyEnum.orderTeamSubsidyLink.getKey()));
        if (!vip) {
            data.put("exist", false);
            out.print(JsonUtil.loadTrueResult(data));
            return;
        }
        data.put("exist", true);
        data.put("portrait", user.getPortrait());
        // 今日统计
        BigDecimal todayDirect = inviteOrderSubsidyServiceV2.sumValidMoneyByUidAndDate(uid, 1,
                InviteOrderSubsidy.LEVEL_ONE);
        if (todayDirect == null) {
            todayDirect = new BigDecimal(0);
        }
        BigDecimal todayIndirect = inviteOrderSubsidyServiceV2.sumValidMoneyByUidAndDate(uid, 1,
                InviteOrderSubsidy.LEVEL_TWO);
        if (todayIndirect == null) {
            todayIndirect = new BigDecimal(0);
        }
        TeamBonusVO today = new TeamBonusVO();
        today.setDirect(todayDirect.setScale(2, BigDecimal.ROUND_DOWN).toString());
        today.setIndirect(todayIndirect.setScale(2, BigDecimal.ROUND_DOWN).toString());
        today.setTotal(
                MoneyBigDecimalUtil.add(todayDirect, todayIndirect).setScale(2, BigDecimal.ROUND_DOWN).toString());
        // 昨日统计
        BigDecimal yesterdayDirect = inviteOrderSubsidyServiceV2.sumValidMoneyByUidAndDate(uid, 2,
                InviteOrderSubsidy.LEVEL_ONE);
        if (yesterdayDirect == null) {
            yesterdayDirect = new BigDecimal(0);
        }
        BigDecimal yesterdayIndirect = inviteOrderSubsidyServiceV2.sumValidMoneyByUidAndDate(uid, 2,
                InviteOrderSubsidy.LEVEL_TWO);
        if (yesterdayIndirect == null) {
            yesterdayIndirect = new BigDecimal(0);
        }
        TeamBonusVO yesterday = new TeamBonusVO();
        yesterday.setDirect(yesterdayDirect.setScale(2, BigDecimal.ROUND_DOWN).toString());
        yesterday.setIndirect(yesterdayIndirect.setScale(2, BigDecimal.ROUND_DOWN).toString());
        yesterday.setTotal(MoneyBigDecimalUtil.add(yesterdayDirect, yesterdayIndirect)
                .setScale(2, BigDecimal.ROUND_DOWN).toString());
        // 本月统计
        BigDecimal thisMonthDirect = inviteOrderSubsidyServiceV2.sumValidMoneyByUidAndDate(uid, 3,
                InviteOrderSubsidy.LEVEL_ONE);
        if (thisMonthDirect == null) {
            thisMonthDirect = new BigDecimal(0);
        }
        BigDecimal thisMonthIndirect = inviteOrderSubsidyServiceV2.sumValidMoneyByUidAndDate(uid, 3,
                InviteOrderSubsidy.LEVEL_TWO);
        if (thisMonthIndirect == null) {
            thisMonthIndirect = new BigDecimal(0);
        }
        TeamBonusVO thisMonth = new TeamBonusVO();
        thisMonth.setDirect(thisMonthDirect.setScale(2, BigDecimal.ROUND_DOWN).toString());
        thisMonth.setIndirect(thisMonthIndirect.setScale(2, BigDecimal.ROUND_DOWN).toString());
        thisMonth.setTotal(MoneyBigDecimalUtil.add(thisMonthDirect, thisMonthIndirect)
                .setScale(2, BigDecimal.ROUND_DOWN).toString());
        // 本月统计
        BigDecimal lastMonthDirect = inviteOrderSubsidyServiceV2.sumValidMoneyByUidAndDate(uid, 4,
                InviteOrderSubsidy.LEVEL_ONE);
        if (lastMonthDirect == null) {
            lastMonthDirect = new BigDecimal(0);
        }
        BigDecimal lastMonthIndirect = inviteOrderSubsidyServiceV2.sumValidMoneyByUidAndDate(uid, 4,
                InviteOrderSubsidy.LEVEL_TWO);
        if (lastMonthIndirect == null) {
            lastMonthIndirect = new BigDecimal(0);
        }
        TeamBonusVO lastMonth = new TeamBonusVO();
        lastMonth.setDirect(lastMonthDirect.setScale(2, BigDecimal.ROUND_DOWN).toString());
        lastMonth.setIndirect(lastMonthIndirect.setScale(2, BigDecimal.ROUND_DOWN).toString());
        lastMonth.setTotal(MoneyBigDecimalUtil.add(lastMonthDirect, lastMonthIndirect)
                .setScale(2, BigDecimal.ROUND_DOWN).toString());
        BigDecimal direct = inviteOrderSubsidyServiceV2.sumRecievedMoneyByUid(uid, InviteOrderSubsidy.LEVEL_ONE);
        if (direct == null) {
            direct = new BigDecimal(0);
        }
        BigDecimal indirect = inviteOrderSubsidyServiceV2.sumRecievedMoneyByUid(uid, InviteOrderSubsidy.LEVEL_TWO);
        if (indirect == null) {
            indirect = new BigDecimal(0);
        }
        BigDecimal total = MoneyBigDecimalUtil.add(direct, indirect);
        data.put("today", today);
        data.put("yesterday", yesterday);
        data.put("thisMonth", thisMonth);
        data.put("lastMonth", lastMonth);
        data.put("total", total.setScale(2, BigDecimal.ROUND_DOWN).toString());
        data.put("direct", direct.setScale(2, BigDecimal.ROUND_DOWN).toString());
        data.put("indirect", indirect.setScale(2, BigDecimal.ROUND_DOWN).toString());
        out.print(JsonUtil.loadTrueResult(data));
    }
    
    /**
     * 返利说明
@@ -790,8 +640,12 @@
            }
            
            voList.add(goodsVO);
            upperTotalMoney = upperTotalMoney.add(orderHongBaoMoneyComputeService.computeFanliMoney(commonOrder, upperLevel));
            if (type == 1 ) {
                upperTotalMoney = upperTotalMoney.add(orderHongBaoMoneyComputeService.computeFanliMoney(commonOrder, upperLevel));
            } else if (type == 2) {
                upperTotalMoney = upperTotalMoney.add(orderHongBaoMoneyComputeService.computeShareMoney(commonOrder, upperLevel));
            }
        }
            
        // 团队补贴
@@ -822,6 +676,8 @@
            }
            orderRebateVO.setSubsidyDesc("团队补贴");
            orderRebateVO.setSubsidy("¥" + teamSubsidy.setScale(2, BigDecimal.ROUND_DOWN) +"");
            upperTotalMoney = upperTotalMoney.add(teamSubsidy);
        }
        
        orderRebateVO.setType(type);
@@ -831,6 +687,7 @@
        
        // 上级返利
        if (upperLevel != null) {
            upperTotalMoney = upperTotalMoney.add(hongBao);
            orderRebateVO.setUpperFanLi("¥" + upperTotalMoney);
            orderRebateVO.setJumpLink(upperLevel.getDetailLink());
        }
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/money/UserMoneyDetailMapper.java
@@ -92,7 +92,7 @@
     * @return
     */
    BigDecimal getTotalMoneyByTypeAndUidWithDate(@Param("uid") Long uid, @Param("typeList") List<String> typeList,
            @Param("minDate") Date minDate, @Param("maxDate") Date maxDate);
            @Param("minDate") Date minDate, @Param("maxDate") Date maxDate, @Param("show")Integer show);
    /**
     * 根据类型,用户ID,唯一标识查询
fanli/src/main/java/com/yeshi/fanli/entity/system/ConfigKeyEnum.java
@@ -102,7 +102,6 @@
    taobaoOrderParseJS("taobao_order_parse_js", "淘宝订单解析脚本"),
    autoFindTaobaoOrder("auto_find_taobao_order", "是否开启淘宝自动找单"),
    orderListHelp("order_list_help", "订单列表帮助链接"),
    orderBonusLink("order_bonus_link", "奖金跳转订单筛选列表帮助链接"),
    lostOrderHelpWhat("lost_order_help_what", "订单找回-订单找回是什么"),
    lostOrderHelpReason("lost_order_help_reason", "订单找回-找回失败原因"),
    orderFindNotifyUrl("order_find_notify_url", "订单列表-订单找回帮助链接"),
@@ -184,11 +183,10 @@
    evaluateEmojis("evaluate_emojis", "发圈评论Emojis"),
    evaluateText("evaluate_text", "发圈评论文本"),
    
    orderRebateDescLink("order_rebate_desc_link", "订单返利计算说明链接"),
    orderTeamSubsidyLink("order_team_subsidy_link", "订单补贴帮助链接"),
    orderTeamRewardLink("order_team_reward_link", "订单奖励帮助链接"),
    tutorSubsidyLink("tutor_subsidy_link", "导师津贴帮助链接"),
    vipUpgradeLink("vip_upgrade_link", "我的界面-会员升级链接"),
    
    orderRebateDescLink("order_rebate_desc_link", "订单返利计算说明链接"),
    bonusCountLinkFanli("bonus_count_link_fanli", "自购返利统计页面问号"),
    bonusCountLinkShare("bonus_count_link_share", "分享奖金统计页面问号"),
    bonusCountLinkTeam("bonus_count_link_team", "团队奖励统计页面问号"),
fanli/src/main/java/com/yeshi/fanli/mapping/money/UserMoneyDetailMapper.xml
@@ -124,6 +124,7 @@
        d.`umd_uid`=#{uid} AND d.umd_type='extract' )) a</select>
    <select id="getTotalMoneyByTypeAndUidWithDate" resultType="java.math.BigDecimal">select
        sum(umd_money) from yeshi_ec_user_money_detail where umd_uid=#{uid}
        <if test="show != null"> AND umd_show = #{show}</if>
        and umd_createtime&gt;=#{minDate} and umd_createtime<![CDATA[<]]>#{maxDate}
        <foreach collection="typeList" item="item" open=" and ("
            separator=" or " close=")">umd_type=#{item}</foreach>
fanli/src/main/java/com/yeshi/fanli/service/impl/money/UserMoneyDetailServiceImpl.java
@@ -229,11 +229,23 @@
            for (UserMoneyDetailTypeEnum type : typeList) {
                list.add(type.name());
            }
        BigDecimal money = userMoneyDetailMapper.getTotalMoneyByTypeAndUidWithDate(uid, list, minDate, maxDate);
        BigDecimal money = userMoneyDetailMapper.getTotalMoneyByTypeAndUidWithDate(uid, list, minDate, maxDate, null);
        return money == null ? new BigDecimal(0) : money;
    }
    @Override
    public BigDecimal statisticUserTypeMoneyWithDate(Long uid, List<UserMoneyDetailTypeEnum> typeList, Date minDate,
            Date maxDate, Integer show) {
        List<String> list = new ArrayList<>();
        if (typeList != null)
            for (UserMoneyDetailTypeEnum type : typeList) {
                list.add(type.name());
            }
        BigDecimal money = userMoneyDetailMapper.getTotalMoneyByTypeAndUidWithDate(uid, list, minDate, maxDate, show);
        return money == null ? new BigDecimal(0) : money;
    }
    @Override
    public UserMoneyDetail selectByTypeAndUidAndIdentifyCode(UserMoneyDetailTypeEnum type, Long uid,
            Long sourceIdentifyId) {
        return userMoneyDetailMapper.selectByTypeAndUidAndIdentifyCode(type, uid, sourceIdentifyId);
fanli/src/main/java/com/yeshi/fanli/service/inter/money/UserMoneyDetailService.java
@@ -77,6 +77,18 @@
            Date maxDate);
    /**
     * 分类型与时间统计用户的资金总和
     *
     * @param uid
     * @param typeList
     * @param minDate
     * @param maxDate
     * @return
     */
    public BigDecimal statisticUserTypeMoneyWithDate(Long uid, List<UserMoneyDetailTypeEnum> typeList, Date minDate,
            Date maxDate, Integer show);
    /**
     * 根据类型,用户ID与唯一标识符查询
     * 
     * @param type
fanli/src/main/java/com/yeshi/fanli/util/factory/msg/MsgMoneyDetailFactory.java
@@ -98,9 +98,14 @@
        listMsg.add(CommonMsgItemVOFactory.createMsgItemVO(new ClientTextStyleVO("提现账号", ClientTextStyleVO.COLOR_TITLE),
                new ClientTextStyleVO(String.format("支付宝:%s-姓名:%s",account, name), ClientTextStyleVO.COLOR_CONTENT)));
        listMsg.add(CommonMsgItemVOFactory.createMsgItemVO(new ClientTextStyleVO("打款金额", ClientTextStyleVO.COLOR_TITLE),
                new ClientTextStyleVO(money.setScale(2, BigDecimal.ROUND_DOWN) + "", ClientTextStyleVO.COLOR_HIGHLIGHT_CONTENT)));
        listMsg.add(CommonMsgItemVOFactory.createMsgItemVO(new ClientTextStyleVO("提现账号", ClientTextStyleVO.COLOR_TITLE),
                new ClientTextStyleVO(String.format("提现账号收到一笔,来自%s的转账,即绑定成功", appName), ClientTextStyleVO.COLOR_CONTENT)));
                new ClientTextStyleVO("¥" + money.setScale(2, BigDecimal.ROUND_DOWN), ClientTextStyleVO.COLOR_HIGHLIGHT_CONTENT)));
        List<ClientTextStyleVO> contentList2 = new ArrayList<>();
        contentList2.add(new ClientTextStyleVO("提现账号收到一笔,来自", ClientTextStyleVO.COLOR_CONTENT));
        contentList2.add(new ClientTextStyleVO(appName, ClientTextStyleVO.COLOR_HIGHLIGHT_CONTENT));
        contentList2.add(new ClientTextStyleVO("的转账,即绑定成功", ClientTextStyleVO.COLOR_CONTENT));
        listMsg.add(CommonMsgItemVOFactory.createMsgItemVO(new ClientTextStyleVO("说明", ClientTextStyleVO.COLOR_TITLE),contentList2));
        List<ClientTextStyleVO> contentList = new ArrayList<>();
        contentList.add(new ClientTextStyleVO(String.format("成功%s的提现账号", changeWay), ClientTextStyleVO.COLOR_CONTENT));
        contentList.add(new ClientTextStyleVO( limitDay+"", ClientTextStyleVO.COLOR_HIGHLIGHT_CONTENT));
@@ -207,7 +212,7 @@
        listMsg.add(CommonMsgItemVOFactory.createMsgItemVO(new ClientTextStyleVO("到账详情", ClientTextStyleVO.COLOR_TITLE),
                new ClientTextStyleVO(sourceName, ClientTextStyleVO.COLOR_CONTENT)));
        listMsg.add(CommonMsgItemVOFactory.createMsgItemVO(new ClientTextStyleVO("订单号", ClientTextStyleVO.COLOR_TITLE),
                new ClientTextStyleVO(orderId, ClientTextStyleVO.COLOR_CONTENT), true));
                new ClientTextStyleVO(orderId, ClientTextStyleVO.COLOR_CONTENT)));
        List<ClientTextStyleVO> contentList = new ArrayList<>();
        contentList.add(new ClientTextStyleVO("下单时间:" + TimeUtil.formatDate(downTime), ClientTextStyleVO.COLOR_CONTENT));
@@ -275,7 +280,7 @@
        listMsg.add(CommonMsgItemVOFactory.createMsgItemVO(new ClientTextStyleVO("退回详情", ClientTextStyleVO.COLOR_TITLE),
                new ClientTextStyleVO(sourceName, ClientTextStyleVO.COLOR_CONTENT)));
        listMsg.add(CommonMsgItemVOFactory.createMsgItemVO(new ClientTextStyleVO("订单号", ClientTextStyleVO.COLOR_TITLE),
                new ClientTextStyleVO(orderId, ClientTextStyleVO.COLOR_CONTENT), true));
                new ClientTextStyleVO(orderId, ClientTextStyleVO.COLOR_CONTENT)));
        List<ClientTextStyleVO> contentList = new ArrayList<>();
        contentList.add(new ClientTextStyleVO("下单时间:" + TimeUtil.formatDate(downTime), ClientTextStyleVO.COLOR_CONTENT));
fanli/src/main/java/com/yeshi/fanli/vo/money/UserMoneyStatisticVO.java
@@ -9,7 +9,9 @@
    private BigDecimal lastMonthRecievedMoney;// 上月到账
    private BigDecimal lastMonthExtractMoney;// 上月提现
    private BigDecimal latestThreeMonthRecievedMoney;// 近三月到账
    private BigDecimal totalExtractMoney;// 累计提现
    private BigDecimal totalRecievedMoney;// 累计到账
    private BigDecimal totalFanLiMoney;// 累计自购返利
    private BigDecimal totalShareMoney;// 累计分享奖金
    private BigDecimal totalInviteMoney;// 累计邀请奖金
    private BigDecimal monthUnRecievedMoney;// 本月未到账
@@ -156,4 +158,20 @@
    public void setTotalInviteMoney(BigDecimal totalInviteMoney) {
        this.totalInviteMoney = totalInviteMoney;
    }
    public BigDecimal getTotalFanLiMoney() {
        return totalFanLiMoney;
    }
    public void setTotalFanLiMoney(BigDecimal totalFanLiMoney) {
        this.totalFanLiMoney = totalFanLiMoney;
    }
    public BigDecimal getTotalExtractMoney() {
        return totalExtractMoney;
    }
    public void setTotalExtractMoney(BigDecimal totalExtractMoney) {
        this.totalExtractMoney = totalExtractMoney;
    }
}