From 30d8e227e8d823b6c38c3b9c90ac2df03b63befe Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 25 二月 2025 16:41:22 +0800
Subject: [PATCH] 淘宝转链接口更新

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserMoneyControllerV2.java | 2086 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 1,043 insertions(+), 1,043 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserMoneyControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserMoneyControllerV2.java
index 9742ead..c5e5d76 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserMoneyControllerV2.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserMoneyControllerV2.java
@@ -1,1043 +1,1043 @@
-package com.yeshi.fanli.controller.client.v2;
-
-import java.io.PrintWriter;
-import java.lang.reflect.Type;
-import java.math.BigDecimal;
-import java.math.RoundingMode;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.List;
-
-import javax.annotation.Resource;
-
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.yeshi.utils.DateUtil;
-import org.yeshi.utils.JsonUtil;
-
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonPrimitive;
-import com.google.gson.JsonSerializationContext;
-import com.google.gson.JsonSerializer;
-import com.google.gson.reflect.TypeToken;
-import com.yeshi.fanli.entity.accept.AcceptData;
-import com.yeshi.fanli.entity.bus.user.Extract;
-import com.yeshi.fanli.entity.bus.user.PreviewInfo.PreviewEnum;
-import com.yeshi.fanli.entity.bus.user.UserInfo;
-import com.yeshi.fanli.entity.money.TeamEincomeRecord;
-import com.yeshi.fanli.entity.money.UserMoneyDetail.UserMoneyDetailTypeEnum;
-import com.yeshi.fanli.entity.order.OrderMoneyDailyCount;
-import com.yeshi.fanli.entity.order.SourceTypeEnum;
-import com.yeshi.fanli.entity.system.ConfigKeyEnum;
-import com.yeshi.fanli.log.LogHelper;
-import com.yeshi.fanli.service.inter.config.ConfigService;
-import com.yeshi.fanli.service.inter.count.HongBaoV2CountService;
-import com.yeshi.fanli.service.inter.money.TeamEincomeRecordService;
-import com.yeshi.fanli.service.inter.money.UserMoneyDetailService;
-import com.yeshi.fanli.service.inter.money.extract.ExtractService;
-import com.yeshi.fanli.service.inter.order.HongBaoV2Service;
-import com.yeshi.fanli.service.inter.order.OrderMoneyDailyCountService;
-import com.yeshi.fanli.service.inter.order.dividents.TeamDividentsSourceOrderUserMapService;
-import com.yeshi.fanli.service.inter.user.PreviewInfoService;
-import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
-import com.yeshi.fanli.service.inter.user.UserInfoService;
-import com.yeshi.fanli.util.Constant;
-import org.yeshi.utils.MoneyBigDecimalUtil;
-import com.yeshi.fanli.util.StringUtil;
-import org.yeshi.utils.TimeUtil;
-import com.yeshi.fanli.util.VersionUtil;
-import com.yeshi.fanli.util.account.UserUtil;
-import com.yeshi.fanli.vo.money.IncomeDetailVO;
-import com.yeshi.fanli.vo.money.MoneyPredictVO;
-import com.yeshi.fanli.vo.money.MoneyStatisticVO;
-import com.yeshi.fanli.vo.money.TeamPredictVO;
-import com.yeshi.fanli.vo.order.OrderRankingVO;
-import com.yeshi.fanli.vo.order.TeamDividentsVO;
-
-import net.sf.json.JSONArray;
-import net.sf.json.JSONObject;
-
-/**
- * 璐︽埛绯荤粺
- *
- * @author Administrator
- */
-@Controller
-@RequestMapping("api/v2/usermoney")
-public class UserMoneyControllerV2 {
-
-    @Resource
-    private UserMoneyDetailService userMoneyDetailService;
-
-    @Resource
-    private UserInfoService userInfoService;
-
-    @Resource
-    private HongBaoV2Service hongBaoV2Service;
-
-    @Resource
-    private ExtractService extractService;
-
-    @Resource
-    private UserInfoExtraService userInfoExtraService;
-
-    @Resource
-    private ConfigService configService;
-
-    @Resource
-    private HongBaoV2CountService hongBaoV2CountService;
-
-    @Resource
-    private OrderMoneyDailyCountService orderMoneyDailyCountService;
-
-    @Resource
-    private TeamEincomeRecordService teamEincomeRecordService;
-
-    @Resource
-    private PreviewInfoService previewInfoService;
-
-    @Resource
-    private TeamDividentsSourceOrderUserMapService teamDividentsSourceOrderUserMapService;
-
-    private Gson getGson() {
-        GsonBuilder builder = new GsonBuilder();
-        builder.registerTypeAdapter(BigDecimal.class, new JsonSerializer<BigDecimal>() {
-            @Override
-            public JsonElement serialize(BigDecimal value, Type theType, JsonSerializationContext context) {
-                if (value == null) {
-                    return new JsonPrimitive("");
-                } else {
-                    // 淇濈暀2浣嶅皬鏁�
-                    value = value.setScale(2, BigDecimal.ROUND_DOWN);
-                    return new JsonPrimitive(value.toString());
-                }
-            }
-        });
-        return builder.create();
-    }
-
-    /**
-     * 鐢ㄦ埛璧勯噾缁熻
-     *
-     * @param acceptData
-     * @param uid
-     * @param out
-     */
-    @RequestMapping(value = "getMoneyStatistic")
-    public void getMoneyStatistic(AcceptData acceptData, Long uid, PrintWriter out) {
-        if (uid == null || uid == 0) {
-            out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�"));
-            return;
-        }
-
-        // VIP鏁版嵁棰勮
-        MoneyStatisticVO vo = null;
-        String redisContent = previewInfoService.getRedisContent(uid, PreviewEnum.moneyInfo);
-        //鏁版嵁棰勮锛屽~鐨勫亣鏁版嵁
-        if (!StringUtil.isNullOrEmpty(redisContent)) {
-            vo = new Gson().fromJson(redisContent, MoneyStatisticVO.class);
-            if (vo != null) {
-                vo.setLink(configService.getValue(ConfigKeyEnum.autoExtractHelpUrl.getKey(), acceptData.getSystem()));
-                vo.setExtractDesc("鎻愮幇閲戦灏辨槸宸叉垚鍔熸彁鐜板埌鏀粯瀹濈殑璧勯噾");
-                if (VersionUtil.greaterThan_2_1_2(acceptData.getPlatform(), acceptData.getVersion())) {
-                    vo.setMoneyArrivalDesc("灏芥棭纭鏀惰揣鍙互淇冧娇璧勯噾灏芥棭鍒拌处");
-                } else {
-                    vo.setMoneyArrivalDesc("璁㈠崟宸插埌璐﹀悗鎻愮幇鏃堕棿鍜岄噾棰濆潎涓嶅彈闄愬埗");
-                }
-
-                if (vo.getLastMonthSettleMoney() == null) {
-                    vo.setLastMonthExtractMoney(BigDecimal.ZERO);
-                }
-
-                if (vo.getNotSettleMoney() == null) {
-                    vo.setNotSettleMoney(BigDecimal.ZERO);
-                }
-            }
-        }
-
-        if (vo == null) {
-            vo = getMoneyStatisticInfo(uid, acceptData);
-        }
-
-        Gson gson = getGson();
-        out.print(JsonUtil.loadTrueResult(gson.toJson(vo)));
-    }
-
-    private MoneyStatisticVO getMoneyStatisticInfo(Long uid, AcceptData acceptData) {
-        UserInfo user = userInfoService.getUserById(uid);
-
-        MoneyStatisticVO vo = new MoneyStatisticVO();
-        vo.setLink(configService.getValue(ConfigKeyEnum.autoExtractHelpUrl.getKey(), acceptData.getSystem()));
-        vo.setBalanceMoney(user.getMyHongBao());
-        vo.setExtractDesc("鎻愮幇閲戦灏辨槸宸叉垚鍔熸彁鐜板埌鏀粯瀹濈殑璧勯噾");
-
-        // 鑾峰彇鎻愮幇涓殑淇℃伅
-        BigDecimal extractingMoney = extractService.sumVerifyingMoney(uid);
-        if (extractingMoney.compareTo(new BigDecimal(0)) > 0)
-            vo.setExtractingMoneyInfo("鎻愮幇涓�:楼" + extractingMoney.setScale(2, RoundingMode.HALF_UP));
-
-        Date minDate = null;
-        Date maxDate = null;
-        long timeStamp = System.currentTimeMillis();
-        List<UserMoneyDetailTypeEnum> typeList = new ArrayList<>();
-
-        Calendar calendar = Calendar.getInstance();
-        calendar.setTimeInMillis(timeStamp);
-
-        typeList.clear();
-        typeList.add(UserMoneyDetailTypeEnum.extract);
-        typeList.add(UserMoneyDetailTypeEnum.extractNew);
-        typeList.add(UserMoneyDetailTypeEnum.extractVerify);
-        typeList.add(UserMoneyDetailTypeEnum.extractVerifyNew);
-        typeList.add(UserMoneyDetailTypeEnum.extractReject);
-        typeList.add(UserMoneyDetailTypeEnum.extractAutoWX);
-
-        // 鏈湀鎻愮幇
-        maxDate = new Date(timeStamp);
-        calendar = Calendar.getInstance();
-        minDate = new Date(TimeUtil
-                .convertToTimeTemp(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M"));
-        calendar.add(Calendar.MONTH, -1);
-        vo.setMonthExtractMoney(
-                userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate, 1).abs());
-
-        // 涓婃湀鎻愮幇
-        calendar = Calendar.getInstance();
-        maxDate = new Date(TimeUtil
-                .convertToTimeTemp(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M"));
-        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, 1).abs());
-
-        minDate = new Date(0L);
-        maxDate = new Date(timeStamp);
-        // 绱鎴愬姛鎻愮幇
-        vo.setTotalExtractMoney(
-                userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate, 1).abs());
-
-        // 绱鑷喘杩斿埄
-        typeList.clear();
-        typeList.add(UserMoneyDetailTypeEnum.fanli);
-        typeList.add(UserMoneyDetailTypeEnum.fanliNew);
-        typeList.add(UserMoneyDetailTypeEnum.fanliWeiQuan);
-        typeList.add(UserMoneyDetailTypeEnum.fanliWeiQuanNew);
-        typeList.add(UserMoneyDetailTypeEnum.orderReward);
-        typeList.add(UserMoneyDetailTypeEnum.orderRewardNew);
-        vo.setTotalFanLiMoney(
-                userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs());
-
-        // 绱鍒嗕韩璧�
-        typeList.clear();
-        typeList.add(UserMoneyDetailTypeEnum.share);
-        typeList.add(UserMoneyDetailTypeEnum.shareNew);
-        typeList.add(UserMoneyDetailTypeEnum.shareWeiQuan);
-        vo.setTotalShareMoney(
-                userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs());
-
-        // 绱閭�璇疯禋
-        typeList.clear();
-        typeList.add(UserMoneyDetailTypeEnum.invite);
-        typeList.add(UserMoneyDetailTypeEnum.inviteWeiQuan);
-        typeList.add(UserMoneyDetailTypeEnum.inviteAndShare);
-        typeList.add(UserMoneyDetailTypeEnum.subsidy);
-        typeList.add(UserMoneyDetailTypeEnum.teamReward);
-        vo.setTotalInviteMoney(
-                userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs());
-
-        //绱鎵�鏈�
-        typeList.clear();
-        typeList.add(UserMoneyDetailTypeEnum.fanli);
-        typeList.add(UserMoneyDetailTypeEnum.fanliNew);
-        typeList.add(UserMoneyDetailTypeEnum.fanliWeiQuan);
-        typeList.add(UserMoneyDetailTypeEnum.fanliWeiQuanNew);
-        typeList.add(UserMoneyDetailTypeEnum.orderReward);
-        typeList.add(UserMoneyDetailTypeEnum.orderRewardNew);
-        typeList.add(UserMoneyDetailTypeEnum.share);
-        typeList.add(UserMoneyDetailTypeEnum.shareNew);
-        typeList.add(UserMoneyDetailTypeEnum.shareWeiQuan);
-        vo.setTotalMoney(
-                userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs());
-
-
-        if (VersionUtil.greaterThan_2_1_2(acceptData.getPlatform(), acceptData.getVersion())) {
-            vo.setMoneyArrivalDesc("灏芥棭纭鏀惰揣鍙互淇冧娇璧勯噾灏芥棭鍒拌处");
-
-            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));
-        } else {
-            vo.setMoneyArrivalDesc("璁㈠崟宸插埌璐﹀悗鎻愮幇鏃堕棿鍜岄噾棰濆潎涓嶅彈闄愬埗");
-            // 鏈湀鏀惰揣
-            maxDate = new Date(timeStamp);
-            calendar = Calendar.getInstance();
-            minDate = new Date(TimeUtil
-                    .convertToTimeTemp(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M"));
-            calendar.add(Calendar.MONTH, -1);
-            vo.setMonthSettleMoney(hongBaoV2CountService.sumMoneyBySettleTimeAndUid(uid, minDate, maxDate));
-
-            // 涓婃湀鏀惰揣
-            maxDate = new Date(TimeUtil
-                    .convertToTimeTemp(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M"));
-            calendar.add(Calendar.MONTH, -1);
-            minDate = new Date(TimeUtil
-                    .convertToTimeTemp(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M"));
-            vo.setLastMonthSettleMoney(hongBaoV2CountService.sumMoneyBySettleTimeAndUid(uid, minDate, maxDate));
-        }
-
-        // 寰呯‘璁ゆ敹璐э紙180澶╁唴锛�
-        vo.setNotSettleMoney(hongBaoV2CountService.sumMoneyByANotSettleAndUid(uid));
-
-        // 浠婃棩棰勪及
-        calendar.add(Calendar.DAY_OF_YEAR, -1);
-        minDate = new Date(TimeUtil.convertDateToTemp(TimeUtil.getGernalTime(timeStamp)));
-        vo.setTodayPredict(cratePredictVO(orderMoneyDailyCountService.query(uid, minDate, null)));
-
-        // 鏈湀棰勪及
-        maxDate = new Date(timeStamp);
-        calendar = Calendar.getInstance();
-        minDate = new Date(TimeUtil
-                .convertToTimeTemp(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M"));
-        calendar.add(Calendar.MONTH, -1);
-        vo.setMonthPredict(cratePredictVO(orderMoneyDailyCountService.query(uid, minDate, maxDate)));
-        return vo;
-    }
-
-    @RequestMapping(value = "getUserMoneyInfo")
-    public void getUserMoneyInfo(AcceptData acceptData, Long uid, PrintWriter out) {
-        if (uid == null || uid == 0) {
-            out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�"));
-            return;
-        }
-        UserInfo user = userInfoService.getUserById(uid);
-
-        MoneyStatisticVO vo = new MoneyStatisticVO();
-        vo.setLink(configService.getValue(ConfigKeyEnum.autoExtractHelpUrl.getKey(), acceptData.getSystem()));
-        vo.setBalanceMoney(user.getMyHongBao());
-        // 鑾峰彇鎻愮幇涓殑淇℃伅
-        BigDecimal extractingMoney = extractService.sumVerifyingMoney(uid);
-        if (extractingMoney.compareTo(new BigDecimal(0)) > 0)
-            vo.setExtractingMoneyInfo("鎻愮幇涓�:楼" + extractingMoney.setScale(2, RoundingMode.HALF_UP));
-        Gson gson = getGson();
-        out.print(JsonUtil.loadTrueResult(gson.toJson(vo)));
-    }
-
-    private MoneyPredictVO cratePredictVO(List<OrderMoneyDailyCount> list) {
-        MoneyPredictVO predictVO = new MoneyPredictVO();
-        predictVO.setMineNum(0);
-        predictVO.setTeamNum(0);
-        predictVO.setTotalNum(0);
-        predictVO.setMineMoney(BigDecimal.valueOf(0));
-        predictVO.setTeamMoney(BigDecimal.valueOf(0));
-        BigDecimal hundred = BigDecimal.valueOf(100);
-        if (list != null && list.size() > 0) {
-            for (OrderMoneyDailyCount dailyCount : list) {
-                if (dailyCount.getOrderNum() != null)
-                    predictVO.setMineNum(predictVO.getMineNum() + dailyCount.getOrderNum());
-                if (dailyCount.getOrderNumTeam() != null)
-                    predictVO.setTeamNum(predictVO.getTeamNum() + dailyCount.getOrderNumTeam());
-
-                if (dailyCount.getTeamDividentsOrderNum() != null)
-                    predictVO.setTotalNum(predictVO.getTotalNum() + dailyCount.getTeamDividentsOrderNum());
-
-                if (dailyCount.getIncome() != null)
-                    predictVO.setMineMoney(predictVO.getMineMoney()
-                            .add(MoneyBigDecimalUtil.div(BigDecimal.valueOf(dailyCount.getIncome()), hundred)));
-                if (dailyCount.getIncomeTeam() != null)
-                    predictVO.setTeamMoney(predictVO.getTeamMoney()
-                            .add(MoneyBigDecimalUtil.div(BigDecimal.valueOf(dailyCount.getIncomeTeam()), hundred)));
-            }
-        }
-        predictVO.setTotalNum(predictVO.getTotalNum());
-        predictVO.setTotalMoney(predictVO.getMineMoney().add(predictVO.getTeamMoney()));
-        return predictVO;
-    }
-
-    /**
-     * 鎻愮幇鎴愬姛璁板綍
-     *
-     * @param acceptData
-     * @param page
-     * @param uid
-     * @param out
-     */
-    @RequestMapping(value = "getExtractRecord")
-    public void getExtractRecord(AcceptData acceptData, Integer page, Long uid, PrintWriter out) {
-        if (uid == null || uid == 0) {
-            out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�"));
-            return;
-        }
-
-        long count = 0;
-
-        List<Extract> list = null;
-        String redisContent = previewInfoService.getRedisContent(uid, PreviewEnum.extractRecord);
-        if (!StringUtil.isNullOrEmpty(redisContent)) {
-            Gson gson = new Gson();
-            list = gson.fromJson(redisContent, new TypeToken<ArrayList<Extract>>() {
-            }.getType());
-        }
-
-        if (list != null && list.size() > 0) {// 鏈夐瑙堟暟鎹�
-            count = list.size();
-        } else {// 鏃犻瑙堟暟鎹�
-            list = extractService.getExtractSucceedRecord(page, Constant.PAGE_SIZE, uid);
-            count = extractService.countExtractSucceedRecord(uid);
-        }
-
-        // 鏌ヨ鐪熷疄
-        if (list == null)
-            list = new ArrayList<>();
-
-        JSONArray JSONArray = new JSONArray();
-        for (Extract extract : list) {
-            Date receiveTime = extract.getReceiveTime();
-            if (receiveTime == null) {
-                receiveTime = new Date(extract.getExtractTime());
-            }
-            String account = "鏀粯瀹濓細" + UserUtil.filterAlipayAccount(extract.getAccount());
-            account = account + "-濮撳悕锛�" + UserUtil.filterAlipayName(extract.getName());
-
-            JSONObject object = new JSONObject();
-            object.put("title", "浣犱簬" + TimeUtil.formatDate(receiveTime) + "鎻愮幇鎴愬姛");
-            object.put("account", account);
-            object.put("money", "楼" + extract.getMoney().setScale(2).toString());
-            JSONArray.add(object);
-        }
-
-        JSONObject json = new JSONObject();
-        json.put("count", count);
-        json.put("list", JSONArray);
-        out.print(JsonUtil.loadTrueResult(json));
-    }
-
-    /**
-     * 鍘嗗彶璇︽儏
-     *
-     * @param acceptData
-     * @param uid
-     * @param datetype   1-澶� - 2鏈�
-     * @param out
-     */
-    @RequestMapping(value = "getHistoryDetail")
-    public void getHistoryDetail(AcceptData acceptData, Long uid, String date, Integer datetype, PrintWriter out) {
-        if (uid == null || uid == 0) {
-            out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�"));
-            return;
-        }
-
-        if (StringUtil.isNullOrEmpty(date) || datetype == null) {
-            out.print(JsonUtil.loadFalseResult(1, "鍙傛暟涓嶅畬鏁�"));
-            return;
-        }
-
-        try {
-            Date minDay = new Date();
-            Date maxDay = new Date();
-            BigDecimal zero = new BigDecimal(0);
-            List<OrderMoneyDailyCount> listDailyCount = null;
-            List<MoneyPredictVO> list = new ArrayList<>();
-            SimpleDateFormat formatMonth = new SimpleDateFormat("yyyy骞碝M鏈�");
-            SimpleDateFormat formatDay = new SimpleDateFormat("yyyy骞碝M鏈坉d鏃�");
-            if (datetype == 1) {
-                // 鍚庨��7涓湀
-                int countNum = 7;
-                Date day = TimeUtil.parseYYYYMMDD(date);
-                for (int i = 0; i < countNum; i++) {
-                    MoneyPredictVO predictVO = new MoneyPredictVO(zero, 0, zero, 0);
-                    if (i == 0) {
-                        predictVO.setCountDate(formatDay.format(day));
-                    } else {
-                        predictVO.setCountDate(formatDay.format(DateUtil.reduceDay(i, day)));
-                    }
-                    list.add(predictVO);
-
-                    if (i == countNum - 1) {
-                        minDay = DateUtil.reduceDay(i, day);
-                    }
-                }
-                maxDay = TimeUtil.parseYYYYMMDD_HHMMSS(date + " 23:59:59");
-                listDailyCount = orderMoneyDailyCountService.sumGroupByCountDay(uid, minDay, maxDay);
-            } else if (datetype == 2) {
-                // 鍚庨��3涓湀
-                int countNum = 3;
-                Date day = TimeUtil.parseYYYYMMDD(DateUtil.getFirstDayOfMonth(date));
-                for (int i = 0; i < countNum; i++) {
-                    MoneyPredictVO predictVO = new MoneyPredictVO(zero, 0, zero, 0);
-                    if (i == 0) {
-                        predictVO.setCountDate(formatMonth.format(day));
-                    } else {
-                        predictVO.setCountDate(formatMonth.format(DateUtil.reduceMonth(day, i)));
-                    }
-                    list.add(predictVO);
-
-                    if (i == countNum - 1) {
-                        minDay = DateUtil.reduceMonth(day, i);
-                    }
-                }
-                maxDay = TimeUtil.parseYYYYMMDD_HHMMSS(DateUtil.getLastDayOfMonth(date) + " 23:59:59");
-                listDailyCount = orderMoneyDailyCountService.sumGroupByYearMonth(uid, minDay, maxDay);
-            }
-
-            BigDecimal hundred = BigDecimal.valueOf(100);
-            for (MoneyPredictVO predictVO : list) {
-                String countDate = predictVO.getCountDate();
-
-                if (listDailyCount != null && listDailyCount.size() > 0) {
-                    for (OrderMoneyDailyCount dailyCount : listDailyCount) {
-                        Date countDay = dailyCount.getCountDay();
-                        if (datetype == 1 && countDay != null && countDate.equals(formatDay.format(countDay))) {
-                            predictVO.setMineNum(dailyCount.getOrderNum());
-                            predictVO.setMineMoney(
-                                    MoneyBigDecimalUtil.div(BigDecimal.valueOf(dailyCount.getIncome()), hundred));
-                            predictVO.setTeamNum(dailyCount.getOrderNumTeam());
-                            predictVO.setTeamMoney(
-                                    MoneyBigDecimalUtil.div(BigDecimal.valueOf(dailyCount.getIncomeTeam()), hundred));
-                            break;
-                        }
-
-                        String yearMonth = dailyCount.getYearMonth();
-                        if (datetype == 2 && !StringUtil.isNullOrEmpty(yearMonth) && countDate.equals(
-                                formatMonth.format(TimeUtil.parseYYYYMMDD(DateUtil.getFirstDayOfMonth(yearMonth))))) {
-                            predictVO.setMineNum(dailyCount.getOrderNum());
-                            predictVO.setMineMoney(
-                                    MoneyBigDecimalUtil.div(BigDecimal.valueOf(dailyCount.getIncome()), hundred));
-                            predictVO.setTeamNum(dailyCount.getOrderNumTeam());
-                            predictVO.setTeamMoney(
-                                    MoneyBigDecimalUtil.div(BigDecimal.valueOf(dailyCount.getIncomeTeam()), hundred));
-                            break;
-                        }
-                    }
-                }
-
-                predictVO.setTotalNum(predictVO.getTeamNum() + predictVO.getMineNum());
-                predictVO.setTotalMoney(predictVO.getMineMoney().add(predictVO.getTeamMoney()));
-            }
-
-            Gson gson = getGson();
-
-            JSONObject object = new JSONObject();
-            object.put("count", list.size());
-            object.put("list", gson.toJson(list));
-            out.print(JsonUtil.loadTrueResult(object));
-        } catch (ParseException e) {
-            out.print(JsonUtil.loadFalseResult(1, "鏌ヨ澶辫触"));
-            e.printStackTrace();
-            LogHelper.errorDetailInfo(e);
-        }
-    }
-
-    /**
-     * 鏀剁泭璇︽儏
-     *
-     * @param acceptData
-     * @param uid
-     * @param datetype
-     * @param type
-     * @param out
-     */
-    @RequestMapping(value = "getIncomeDetail")
-    public void getIncomeDetail(AcceptData acceptData, Long uid, String date, Integer datetype, Integer type,
-                                PrintWriter out) {
-        if (uid == null || uid == 0) {
-            out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�"));
-            return;
-        }
-
-        if (StringUtil.isNullOrEmpty(date) || datetype == null || type == null) {
-            out.print(JsonUtil.loadFalseResult(1, "鍙傛暟涓嶅畬鏁�"));
-            return;
-        }
-
-        Date minDay = new Date();
-        Date maxDay = new Date();
-        if (datetype == 1) {
-            minDay = TimeUtil.parseYYYYMMDD(date);
-            maxDay = TimeUtil.parseYYYYMMDD_HHMMSS(date + " 23:59:59");
-        } else if (datetype == 2) {
-            String firstDay = DateUtil.getFirstDayOfMonth(date);
-            String lastDay = DateUtil.getLastDayOfMonth(date);
-            minDay = TimeUtil.parseYYYYMMDD(firstDay);
-            maxDay = TimeUtil.parseYYYYMMDD_HHMMSS(lastDay + " 23:59:59");
-        }
-
-        List<OrderMoneyDailyCount> listDailyCount = null;
-        if (type == 1) {
-            listDailyCount = orderMoneyDailyCountService.sumGroupBySourceType(uid, minDay, maxDay);
-        } else if (type == 2) {
-            listDailyCount = orderMoneyDailyCountService.sumTeamGroupBySourceType(uid, minDay, maxDay);
-        }
-
-        BigDecimal zero = new BigDecimal(0);
-        List<IncomeDetailVO> list = new ArrayList<>();
-
-        BigDecimal hundred = BigDecimal.valueOf(100);
-        SourceTypeEnum[] arrayEnun = SourceTypeEnum.values();
-        for (int m = 0; m < arrayEnun.length; m++) {
-            SourceTypeEnum typeEnum = arrayEnun[m];
-            IncomeDetailVO detail = new IncomeDetailVO(typeEnum.getIcon(), 0, zero);
-            if (listDailyCount != null && listDailyCount.size() > 0) {
-                for (OrderMoneyDailyCount dailyCount : listDailyCount) {
-                    if (dailyCount.getSourceType() == typeEnum) {
-                        detail.setNum(detail.getNum() + dailyCount.getOrderNum());
-                        detail.setMoney(detail.getMoney()
-                                .add(MoneyBigDecimalUtil.div(BigDecimal.valueOf(dailyCount.getIncome()), hundred)));
-                    }
-                }
-            }
-            list.add(detail);
-        }
-
-        Gson gson = getGson();
-
-        JSONObject object = new JSONObject();
-        object.put("count", list.size());
-        object.put("list", gson.toJson(list));
-        out.print(JsonUtil.loadTrueResult(object));
-    }
-
-    /**
-     * 鍥㈤槦鍒嗙孩
-     *
-     * @param acceptData
-     * @param uid
-     * @param out
-     */
-    @RequestMapping(value = "getTeamDividendStatistic")
-    public void getTeamDividendStatistic(String callback, AcceptData acceptData, Long uid, PrintWriter out) {
-        if (uid == null || uid == 0) {
-            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
-            return;
-        }
-
-        Date minDate = null;
-        Date maxDate = null;
-        long timeStamp = System.currentTimeMillis();
-        Calendar calendar = Calendar.getInstance();
-        calendar.setTimeInMillis(timeStamp);
-        // 浠婃棩棰勪及
-        calendar.add(Calendar.DAY_OF_YEAR, -1);
-        minDate = new Date(TimeUtil.convertDateToTemp(TimeUtil.getGernalTime(timeStamp)));
-        TeamPredictVO todayVO = crateTeamPredictVO(orderMoneyDailyCountService.query(uid, minDate, null));
-
-        // 鏈湀棰勪及
-        maxDate = new Date(timeStamp);
-        calendar = Calendar.getInstance();
-        minDate = new Date(TimeUtil
-                .convertToTimeTemp(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M"));
-        calendar.add(Calendar.MONTH, -1);
-        TeamPredictVO monthVO = crateTeamPredictVO(orderMoneyDailyCountService.query(uid, minDate, maxDate));
-
-        // 缁熻宸插埌璐﹀垎绾€�佽ˉ璐�
-        BigDecimal subsidy = teamEincomeRecordService.sumRecieveByType(uid, TeamEincomeRecord.TYPE_TEAM_SUBSIDY);
-        BigDecimal reward = teamEincomeRecordService.sumRecieveByType(uid, TeamEincomeRecord.TYPE_TEAM_DIVIDENTS);
-
-        Gson gson = getGson();
-        JSONObject object = new JSONObject();
-        object.put("total", subsidy.add(reward).setScale(2).toString());
-        object.put("reward", reward.setScale(2).toString());
-        object.put("subsidy", subsidy.setScale(2).toString());
-        object.put("today", gson.toJson(todayVO));
-        object.put("month", gson.toJson(monthVO));
-        JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(object));
-    }
-
-    private TeamPredictVO crateTeamPredictVO(List<OrderMoneyDailyCount> list) {
-        TeamPredictVO predictVO = new TeamPredictVO(BigDecimal.ZERO, 0, BigDecimal.ZERO, 0, 0);
-        if (list != null && list.size() > 0) {
-            BigDecimal hundred = BigDecimal.valueOf(100);
-            for (OrderMoneyDailyCount dailyCount : list) {
-                if (dailyCount.getTeamRewardNum() != null)
-                    predictVO.setRewardNum(predictVO.getRewardNum() + dailyCount.getTeamRewardNum());
-                if (dailyCount.getTeamSubsidyNum() != null)
-                    predictVO.setSubsidyNum(predictVO.getSubsidyNum() + dailyCount.getTeamSubsidyNum());
-                if (dailyCount.getTeamReward() != null)
-                    predictVO.setReward(predictVO.getReward()
-                            .add(MoneyBigDecimalUtil.div(BigDecimal.valueOf(dailyCount.getTeamReward()), hundred)));
-                if (dailyCount.getTeamSubsidy() != null)
-                    predictVO.setSubsidy(predictVO.getSubsidy()
-                            .add(MoneyBigDecimalUtil.div(BigDecimal.valueOf(dailyCount.getTeamSubsidy()), hundred)));
-
-                if (dailyCount.getTeamDividentsOrderNum() != null)
-                    predictVO.setTotalNum(predictVO.getTotalNum() + dailyCount.getTeamDividentsOrderNum());
-
-            }
-        }
-        predictVO.setTotalNum(predictVO.getTotalNum());
-        predictVO.setTotalMoney(predictVO.getReward().add(predictVO.getSubsidy()));
-        return predictVO;
-    }
-
-    /**
-     * 鍘嗗彶璇︽儏
-     *
-     * @param acceptData
-     * @param uid
-     * @param datetype   1-澶� - 2鏈�
-     * @param out
-     */
-    @RequestMapping(value = "getTeamDividendHistory")
-    public void getTeamDividendHistory(String callback, AcceptData acceptData, Long uid, String date, Integer datetype,
-                                       PrintWriter out) {
-        if (uid == null || uid == 0) {
-            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
-            return;
-        }
-
-        if (StringUtil.isNullOrEmpty(date) || datetype == null) {
-            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍙傛暟涓嶅畬鏁�"));
-            return;
-        }
-
-        try {
-            Date minDay = new Date();
-            Date maxDay = new Date();
-            BigDecimal zero = new BigDecimal(0);
-            List<OrderMoneyDailyCount> listDailyCount = null;
-            List<TeamPredictVO> list = new ArrayList<>();
-            SimpleDateFormat formatMonth = new SimpleDateFormat("yyyy骞碝M鏈�");
-            SimpleDateFormat formatDay = new SimpleDateFormat("yyyy骞碝M鏈坉d鏃�");
-            if (datetype == 1) {
-                // 鍚庨��7涓湀
-                int countNum = 7;
-                Date day = TimeUtil.parseYYYYMMDD(date);
-                for (int i = 0; i < countNum; i++) {
-                    TeamPredictVO predictVO = new TeamPredictVO(zero, 0, zero, 0, 0);
-                    if (i == 0) {
-                        predictVO.setCountDate(formatDay.format(day));
-                    } else {
-                        predictVO.setCountDate(formatDay.format(DateUtil.reduceDay(i, day)));
-                    }
-                    list.add(predictVO);
-
-                    if (i == countNum - 1) {
-                        minDay = DateUtil.reduceDay(i, day);
-                    }
-                }
-                maxDay = TimeUtil.parseYYYYMMDD_HHMMSS(date + " 23:59:59");
-                listDailyCount = orderMoneyDailyCountService.sumTeamGroupByCountDay(uid, minDay, maxDay);
-            } else if (datetype == 2) {
-                // 鍚庨��3涓湀
-                int countNum = 3;
-                Date day = TimeUtil.parseYYYYMMDD(DateUtil.getFirstDayOfMonth(date));
-                for (int i = 0; i < countNum; i++) {
-                    TeamPredictVO predictVO = new TeamPredictVO(zero, 0, zero, 0, 0);
-                    if (i == 0) {
-                        predictVO.setCountDate(formatMonth.format(day));
-                    } else {
-                        predictVO.setCountDate(formatMonth.format(DateUtil.reduceMonth(day, i)));
-                    }
-                    list.add(predictVO);
-
-                    if (i == countNum - 1) {
-                        minDay = DateUtil.reduceMonth(day, i);
-                    }
-                }
-                maxDay = TimeUtil.parseYYYYMMDD_HHMMSS(DateUtil.getLastDayOfMonth(date) + " 23:59:59");
-                listDailyCount = orderMoneyDailyCountService.sumTeamGroupByYearMonth(uid, minDay, maxDay);
-            }
-
-            BigDecimal hundred = BigDecimal.valueOf(100);
-            for (TeamPredictVO predictVO : list) {
-                String countDate = predictVO.getCountDate();
-
-                if (listDailyCount != null && listDailyCount.size() > 0) {
-                    for (OrderMoneyDailyCount dailyCount : listDailyCount) {
-                        Date countDay = dailyCount.getCountDay();
-                        if (datetype == 1 && countDay != null && countDate.equals(formatDay.format(countDay))) {
-                            predictVO.setRewardNum(dailyCount.getTeamRewardNum());
-                            predictVO.setReward(
-                                    MoneyBigDecimalUtil.div(BigDecimal.valueOf(dailyCount.getTeamReward()), hundred));
-                            predictVO.setSubsidyNum(dailyCount.getTeamSubsidyNum());
-                            predictVO.setSubsidy(
-                                    MoneyBigDecimalUtil.div(BigDecimal.valueOf(dailyCount.getTeamSubsidy()), hundred));
-                            predictVO.setTotalNum(dailyCount.getTeamDividentsOrderNum());
-                            break;
-                        }
-
-                        String yearMonth = dailyCount.getYearMonth();
-                        if (datetype == 2 && !StringUtil.isNullOrEmpty(yearMonth) && countDate.equals(
-                                formatMonth.format(TimeUtil.parseYYYYMMDD(DateUtil.getFirstDayOfMonth(yearMonth))))) {
-                            predictVO.setRewardNum(dailyCount.getTeamRewardNum());
-                            predictVO.setReward(
-                                    MoneyBigDecimalUtil.div(BigDecimal.valueOf(dailyCount.getTeamReward()), hundred));
-                            predictVO.setSubsidyNum(dailyCount.getTeamSubsidyNum());
-                            predictVO.setSubsidy(
-                                    MoneyBigDecimalUtil.div(BigDecimal.valueOf(dailyCount.getTeamSubsidy()), hundred));
-
-                            predictVO.setTotalNum(dailyCount.getTeamDividentsOrderNum());
-                            break;
-                        }
-                    }
-                }
-
-                predictVO.setTotalNum(predictVO.getTotalNum());
-                predictVO.setTotalMoney(predictVO.getReward().add(predictVO.getSubsidy()));
-            }
-
-            Gson gson = getGson();
-
-            JSONObject object = new JSONObject();
-            object.put("count", list.size());
-            object.put("list", gson.toJson(list));
-            JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(object));
-        } catch (ParseException e) {
-            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("缁熻澶辫触"));
-            e.printStackTrace();
-            LogHelper.errorDetailInfo(e);
-        }
-    }
-
-    /**
-     * 鍒嗙孩璇︽儏
-     *
-     * @param acceptData
-     * @param uid
-     * @param datetype   1-澶� - 2鏈�
-     * @param out
-     */
-    @RequestMapping(value = "getTeamDividendDetail")
-    public void getTeamDividendDetail(String callback, AcceptData acceptData, Integer page, Long uid, String date,
-                                      Integer datetype, String key, PrintWriter out) {
-        if (uid == null || uid == 0) {
-            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
-            return;
-        }
-
-        if (StringUtil.isNullOrEmpty(date) || datetype == null) {
-            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍙傛暟涓嶅畬鏁�"));
-            return;
-        }
-
-        if (page == null)
-            page = 1;
-        int pageSize = Constant.PAGE_SIZE;
-
-        try {
-            Date minDay = new Date();
-            Date maxDay = new Date();
-            if (datetype == 1) {
-                minDay = TimeUtil.parseYYYYMMDD(date);
-                maxDay = TimeUtil.parseYYYYMMDD_HHMMSS(date + " 23:59:59");
-            } else if (datetype == 2) {
-                minDay = TimeUtil.parseYYYYMMDD(DateUtil.getFirstDayOfMonth(date));
-                maxDay = TimeUtil.parseYYYYMMDD_HHMMSS(DateUtil.getLastDayOfMonth(date) + " 23:59:59");
-            }
-            List<TeamDividentsVO> list = teamDividentsSourceOrderUserMapService
-                    .listByDateAndTargetUid((page - 1) * pageSize, pageSize, uid, minDay, maxDay, key);
-            if (list == null) {
-                list = new ArrayList<>();
-            }
-            long count = teamDividentsSourceOrderUserMapService.countByDateAndTargetUid(uid, minDay, maxDay, key);
-
-            GsonBuilder builder = new GsonBuilder();
-            builder.registerTypeAdapter(BigDecimal.class, new JsonSerializer<BigDecimal>() {
-                @Override
-                public JsonElement serialize(BigDecimal value, Type theType, JsonSerializationContext context) {
-                    if (value == null) {
-                        return new JsonPrimitive("0.00");
-                    } else {
-                        // 淇濈暀3浣嶅皬鏁�
-                        value = value.setScale(3, RoundingMode.DOWN);
-                        return new JsonPrimitive(value.toString());
-                    }
-                }
-            });
-
-            Gson gson = builder.create();
-            JSONObject object = new JSONObject();
-
-            if (page == 1) {
-                TeamDividentsVO teamDividentsVO = teamDividentsSourceOrderUserMapService.sumByDateAndTargetUid(uid,
-                        minDay, maxDay, key);
-                if (teamDividentsVO == null) {
-                    teamDividentsVO = new TeamDividentsVO();
-                    teamDividentsVO.setSubsidy(BigDecimal.ZERO);
-                    teamDividentsVO.setDividents(BigDecimal.ZERO);
-                }
-                object.put("subsidy", teamDividentsVO.getSubsidy().setScale(2, RoundingMode.DOWN).toString());
-                object.put("dividents", teamDividentsVO.getDividents().setScale(2, RoundingMode.DOWN).toString());
-            }
-
-            object.put("count", count);
-            object.put("list", gson.toJson(list));
-            JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(object));
-        } catch (Exception e) {
-            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏌ヨ澶辫触"));
-            e.printStackTrace();
-            LogHelper.errorDetailInfo(e);
-        }
-    }
-
-    /**
-     * 璁㈠崟缁熻-h5
-     *
-     * @param acceptData
-     * @param out
-     */
-    @RequestMapping(value = "countTeamOrderNum")
-    public void countTeamOrderNum(String callback, AcceptData acceptData, Long uid, PrintWriter out) {
-        try {
-
-            Date minDate = null;
-            Date maxDate = null;
-            long timeStamp = System.currentTimeMillis();
-
-            Calendar calendar = Calendar.getInstance();
-            calendar.setTimeInMillis(timeStamp);
-
-            // 浠婃棩棰勪及
-            calendar.add(Calendar.DAY_OF_YEAR, -1);
-            minDate = new Date(TimeUtil.convertDateToTemp(TimeUtil.getGernalTime(timeStamp)));
-            OrderMoneyDailyCount todayRecord = createVO(
-                    orderMoneyDailyCountService.sumTeamOrderNumGroupByCountDay(uid, minDate, null));
-
-            // 鏄ㄦ棩棰勪及
-            calendar.add(Calendar.DAY_OF_YEAR, -1);
-            maxDate = new Date(TimeUtil.convertDateToTemp(TimeUtil.getGernalTime(timeStamp)));
-            minDate = DateUtil.reduceDay(1, maxDate);
-            OrderMoneyDailyCount yesterdayRecord = createVO(
-                    orderMoneyDailyCountService.sumTeamOrderNumGroupByCountDay(uid, minDate, maxDate));
-
-            // 鏈湀棰勪及
-            maxDate = new Date(timeStamp);
-            calendar = Calendar.getInstance();
-            minDate = new Date(TimeUtil.convertToTimeTemp(
-                    calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M"));
-            calendar.add(Calendar.MONTH, -1);
-            OrderMoneyDailyCount monthRecord = createVO(
-                    orderMoneyDailyCountService.sumTeamOrderNumGroupByYearMonth(uid, minDate, maxDate));
-
-            // 绱
-            OrderMoneyDailyCount totalityRecord = createVO(
-                    orderMoneyDailyCountService.sumTeamOrderNumGroupByUid(uid, null, null));
-
-            JSONObject today = new JSONObject();
-            today.put("direct", todayRecord.getDirectOrderNum());
-            today.put("indirect", todayRecord.getInDirectOrderNum());
-            today.put("beyond", todayRecord.getBeyondOrderNum());
-
-            JSONObject yesterday = new JSONObject();
-            yesterday.put("direct", yesterdayRecord.getDirectOrderNum());
-            yesterday.put("indirect", yesterdayRecord.getInDirectOrderNum());
-            yesterday.put("beyond", yesterdayRecord.getBeyondOrderNum());
-
-            JSONObject month = new JSONObject();
-            month.put("direct", monthRecord.getDirectOrderNum());
-            month.put("indirect", monthRecord.getInDirectOrderNum());
-            month.put("beyond", monthRecord.getBeyondOrderNum());
-
-            JSONObject totality = new JSONObject();
-            totality.put("direct", totalityRecord.getDirectOrderNum());
-            totality.put("indirect", totalityRecord.getInDirectOrderNum());
-            totality.put("beyond", totalityRecord.getBeyondOrderNum());
-
-            JSONObject json = new JSONObject();
-            json.put("today", today);
-            json.put("yesterday", yesterday);
-            json.put("month", month);
-            json.put("totality", totality);
-            JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(json));
-        } catch (Exception e) {
-            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("缁熻澶辫触"));
-            e.printStackTrace();
-            LogHelper.errorDetailInfo(e);
-        }
-    }
-
-    private OrderMoneyDailyCount createVO(List<OrderMoneyDailyCount> list) {
-        OrderMoneyDailyCount totalityRecord = new OrderMoneyDailyCount(0, 0, 0);
-        if (list != null && list.size() > 0) {
-            for (OrderMoneyDailyCount record : list) {
-                totalityRecord.setDirectOrderNum(totalityRecord.getDirectOrderNum() + record.getDirectOrderNum());
-                totalityRecord.setInDirectOrderNum(totalityRecord.getInDirectOrderNum() + record.getInDirectOrderNum());
-                totalityRecord.setBeyondOrderNum(totalityRecord.getBeyondOrderNum() + record.getBeyondOrderNum());
-            }
-        }
-        return totalityRecord;
-    }
-
-    /**
-     * 璁㈠崟鎺掕姒�
-     *
-     * @param callback
-     * @param acceptData
-     * @param uid
-     * @param dateType
-     * @param out
-     */
-    @RequestMapping(value = "getRanking")
-    public void getRanking(String callback, AcceptData acceptData, Long uid, Integer dateType, PrintWriter out) {
-        if (uid == null || dateType == null) {
-            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍙傛暟缂哄け"));
-            return;
-        }
-
-        try {
-            Date minDate = null;
-            Date maxDate = null;
-            long timeStamp = System.currentTimeMillis();
-
-            Calendar calendar = Calendar.getInstance();
-            calendar.setTimeInMillis(timeStamp);
-
-            if (dateType == 1) {
-                // 浠婃棩
-                calendar.add(Calendar.DAY_OF_YEAR, -1);
-                minDate = new Date(TimeUtil.convertDateToTemp(TimeUtil.getGernalTime(timeStamp)));
-            } else if (dateType == 2) {
-                // 鏄ㄦ棩
-                calendar.add(Calendar.DAY_OF_YEAR, -1);
-                maxDate = new Date(TimeUtil.convertDateToTemp(TimeUtil.getGernalTime(timeStamp)));
-                minDate = DateUtil.reduceDay(1, maxDate);
-            } else {
-                // 鏈湀
-                maxDate = new Date(timeStamp);
-                calendar = Calendar.getInstance();
-                minDate = new Date(TimeUtil.convertToTimeTemp(
-                        calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M"));
-                calendar.add(Calendar.MONTH, -1);
-            }
-
-            List<OrderRankingVO> list = orderMoneyDailyCountService.getRankingByOrderNum(uid, minDate, maxDate);
-            if (list.size() > 0) {
-                for (int i = 0; i < list.size(); i++) {
-                    OrderRankingVO vo = list.get(i);
-                    UserInfo user = userInfoService.getUserByIdWithMybatis(vo.getUid());
-                    if (user == null) {
-                        list.remove(i);
-                        i--;
-                        continue;
-                    }
-                    vo.setNickName(user.getNickName());
-                    vo.setPortrait(user.getPortrait());
-                }
-            }
-
-            JSONObject json = new JSONObject();
-            json.put("list", list);
-            JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(json));
-        } catch (Exception e) {
-            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("缁熻澶辫触"));
-            e.printStackTrace();
-            LogHelper.errorDetailInfo(e);
-        }
-    }
-}
+package com.yeshi.fanli.controller.client.v2;
+
+import java.io.PrintWriter;
+import java.lang.reflect.Type;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.yeshi.utils.DateUtil;
+import org.yeshi.utils.JsonUtil;
+
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonPrimitive;
+import com.google.gson.JsonSerializationContext;
+import com.google.gson.JsonSerializer;
+import com.google.gson.reflect.TypeToken;
+import com.yeshi.fanli.entity.accept.AcceptData;
+import com.yeshi.fanli.entity.bus.user.Extract;
+import com.yeshi.fanli.entity.bus.user.PreviewInfo.PreviewEnum;
+import com.yeshi.fanli.entity.bus.user.UserInfo;
+import com.yeshi.fanli.entity.money.TeamEincomeRecord;
+import com.yeshi.fanli.entity.money.UserMoneyDetail.UserMoneyDetailTypeEnum;
+import com.yeshi.fanli.entity.order.OrderMoneyDailyCount;
+import com.yeshi.fanli.entity.order.SourceTypeEnum;
+import com.yeshi.fanli.entity.system.ConfigKeyEnum;
+import com.yeshi.fanli.log.LogHelper;
+import com.yeshi.fanli.service.inter.config.ConfigService;
+import com.yeshi.fanli.service.inter.count.HongBaoV2CountService;
+import com.yeshi.fanli.service.inter.money.TeamEincomeRecordService;
+import com.yeshi.fanli.service.inter.money.UserMoneyDetailService;
+import com.yeshi.fanli.service.inter.money.extract.ExtractService;
+import com.yeshi.fanli.service.inter.order.HongBaoV2Service;
+import com.yeshi.fanli.service.inter.order.OrderMoneyDailyCountService;
+import com.yeshi.fanli.service.inter.order.dividents.TeamDividentsSourceOrderUserMapService;
+import com.yeshi.fanli.service.inter.user.PreviewInfoService;
+import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
+import com.yeshi.fanli.service.inter.user.UserInfoService;
+import com.yeshi.fanli.util.Constant;
+import org.yeshi.utils.MoneyBigDecimalUtil;
+import com.yeshi.fanli.util.StringUtil;
+import org.yeshi.utils.TimeUtil;
+import com.yeshi.fanli.util.VersionUtil;
+import com.yeshi.fanli.util.account.UserUtil;
+import com.yeshi.fanli.vo.money.IncomeDetailVO;
+import com.yeshi.fanli.vo.money.MoneyPredictVO;
+import com.yeshi.fanli.vo.money.MoneyStatisticVO;
+import com.yeshi.fanli.vo.money.TeamPredictVO;
+import com.yeshi.fanli.vo.order.OrderRankingVO;
+import com.yeshi.fanli.vo.order.TeamDividentsVO;
+
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+
+/**
+ * 璐︽埛绯荤粺
+ *
+ * @author Administrator
+ */
+@Controller
+@RequestMapping("api/v2/usermoney")
+public class UserMoneyControllerV2 {
+
+    @Resource
+    private UserMoneyDetailService userMoneyDetailService;
+
+    @Resource
+    private UserInfoService userInfoService;
+
+    @Resource
+    private HongBaoV2Service hongBaoV2Service;
+
+    @Resource
+    private ExtractService extractService;
+
+    @Resource
+    private UserInfoExtraService userInfoExtraService;
+
+    @Resource
+    private ConfigService configService;
+
+    @Resource
+    private HongBaoV2CountService hongBaoV2CountService;
+
+    @Resource
+    private OrderMoneyDailyCountService orderMoneyDailyCountService;
+
+    @Resource
+    private TeamEincomeRecordService teamEincomeRecordService;
+
+    @Resource
+    private PreviewInfoService previewInfoService;
+
+    @Resource
+    private TeamDividentsSourceOrderUserMapService teamDividentsSourceOrderUserMapService;
+
+    private Gson getGson() {
+        GsonBuilder builder = new GsonBuilder();
+        builder.registerTypeAdapter(BigDecimal.class, new JsonSerializer<BigDecimal>() {
+            @Override
+            public JsonElement serialize(BigDecimal value, Type theType, JsonSerializationContext context) {
+                if (value == null) {
+                    return new JsonPrimitive("");
+                } else {
+                    // 淇濈暀2浣嶅皬鏁�
+                    value = value.setScale(2, BigDecimal.ROUND_DOWN);
+                    return new JsonPrimitive(value.toString());
+                }
+            }
+        });
+        return builder.create();
+    }
+
+    /**
+     * 鐢ㄦ埛璧勯噾缁熻
+     *
+     * @param acceptData
+     * @param uid
+     * @param out
+     */
+    @RequestMapping(value = "getMoneyStatistic")
+    public void getMoneyStatistic(AcceptData acceptData, Long uid, PrintWriter out) {
+        if (uid == null || uid == 0) {
+            out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�"));
+            return;
+        }
+
+        // VIP鏁版嵁棰勮
+        MoneyStatisticVO vo = null;
+        String redisContent = previewInfoService.getRedisContent(uid, PreviewEnum.moneyInfo);
+        //鏁版嵁棰勮锛屽~鐨勫亣鏁版嵁
+        if (!StringUtil.isNullOrEmpty(redisContent)) {
+            vo = new Gson().fromJson(redisContent, MoneyStatisticVO.class);
+            if (vo != null) {
+                vo.setLink(configService.getValue(ConfigKeyEnum.autoExtractHelpUrl.getKey(), acceptData.getSystem()));
+                vo.setExtractDesc("鎻愮幇閲戦灏辨槸宸叉垚鍔熸彁鐜板埌鏀粯瀹濈殑璧勯噾");
+                if (VersionUtil.greaterThan_2_1_2(acceptData.getPlatform(), acceptData.getVersion())) {
+                    vo.setMoneyArrivalDesc("灏芥棭纭鏀惰揣鍙互淇冧娇璧勯噾灏芥棭鍒拌处");
+                } else {
+                    vo.setMoneyArrivalDesc("璁㈠崟宸插埌璐﹀悗鎻愮幇鏃堕棿鍜岄噾棰濆潎涓嶅彈闄愬埗");
+                }
+
+                if (vo.getLastMonthSettleMoney() == null) {
+                    vo.setLastMonthExtractMoney(BigDecimal.ZERO);
+                }
+
+                if (vo.getNotSettleMoney() == null) {
+                    vo.setNotSettleMoney(BigDecimal.ZERO);
+                }
+            }
+        }
+
+        if (vo == null) {
+            vo = getMoneyStatisticInfo(uid, acceptData);
+        }
+
+        Gson gson = getGson();
+        out.print(JsonUtil.loadTrueResult(gson.toJson(vo)));
+    }
+
+    private MoneyStatisticVO getMoneyStatisticInfo(Long uid, AcceptData acceptData) {
+        UserInfo user = userInfoService.getUserById(uid);
+
+        MoneyStatisticVO vo = new MoneyStatisticVO();
+        vo.setLink(configService.getValue(ConfigKeyEnum.autoExtractHelpUrl.getKey(), acceptData.getSystem()));
+        vo.setBalanceMoney(user.getMyHongBao());
+        vo.setExtractDesc("鎻愮幇閲戦灏辨槸宸叉垚鍔熸彁鐜板埌鏀粯瀹濈殑璧勯噾");
+
+        // 鑾峰彇鎻愮幇涓殑淇℃伅
+        BigDecimal extractingMoney = extractService.sumVerifyingMoney(uid);
+        if (extractingMoney.compareTo(new BigDecimal(0)) > 0)
+            vo.setExtractingMoneyInfo("鎻愮幇涓�:楼" + extractingMoney.setScale(2, RoundingMode.HALF_UP));
+
+        Date minDate = null;
+        Date maxDate = null;
+        long timeStamp = System.currentTimeMillis();
+        List<UserMoneyDetailTypeEnum> typeList = new ArrayList<>();
+
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTimeInMillis(timeStamp);
+
+        typeList.clear();
+        typeList.add(UserMoneyDetailTypeEnum.extract);
+        typeList.add(UserMoneyDetailTypeEnum.extractNew);
+        typeList.add(UserMoneyDetailTypeEnum.extractVerify);
+        typeList.add(UserMoneyDetailTypeEnum.extractVerifyNew);
+        typeList.add(UserMoneyDetailTypeEnum.extractReject);
+        typeList.add(UserMoneyDetailTypeEnum.extractAutoWX);
+
+        // 鏈湀鎻愮幇
+        maxDate = new Date(timeStamp);
+        calendar = Calendar.getInstance();
+        minDate = new Date(TimeUtil
+                .convertToTimeTemp(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M"));
+        calendar.add(Calendar.MONTH, -1);
+        vo.setMonthExtractMoney(
+                userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate, 1).abs());
+
+        // 涓婃湀鎻愮幇
+        calendar = Calendar.getInstance();
+        maxDate = new Date(TimeUtil
+                .convertToTimeTemp(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M"));
+        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, 1).abs());
+
+        minDate = new Date(0L);
+        maxDate = new Date(timeStamp);
+        // 绱鎴愬姛鎻愮幇
+        vo.setTotalExtractMoney(
+                userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate, 1).abs());
+
+        // 绱鑷喘杩斿埄
+        typeList.clear();
+        typeList.add(UserMoneyDetailTypeEnum.fanli);
+        typeList.add(UserMoneyDetailTypeEnum.fanliNew);
+        typeList.add(UserMoneyDetailTypeEnum.fanliWeiQuan);
+        typeList.add(UserMoneyDetailTypeEnum.fanliWeiQuanNew);
+        typeList.add(UserMoneyDetailTypeEnum.orderReward);
+        typeList.add(UserMoneyDetailTypeEnum.orderRewardNew);
+        vo.setTotalFanLiMoney(
+                userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs());
+
+        // 绱鍒嗕韩璧�
+        typeList.clear();
+        typeList.add(UserMoneyDetailTypeEnum.share);
+        typeList.add(UserMoneyDetailTypeEnum.shareNew);
+        typeList.add(UserMoneyDetailTypeEnum.shareWeiQuan);
+        vo.setTotalShareMoney(
+                userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs());
+
+        // 绱閭�璇疯禋
+        typeList.clear();
+        typeList.add(UserMoneyDetailTypeEnum.invite);
+        typeList.add(UserMoneyDetailTypeEnum.inviteWeiQuan);
+        typeList.add(UserMoneyDetailTypeEnum.inviteAndShare);
+        typeList.add(UserMoneyDetailTypeEnum.subsidy);
+        typeList.add(UserMoneyDetailTypeEnum.teamReward);
+        vo.setTotalInviteMoney(
+                userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs());
+
+        //绱鎵�鏈�
+        typeList.clear();
+        typeList.add(UserMoneyDetailTypeEnum.fanli);
+        typeList.add(UserMoneyDetailTypeEnum.fanliNew);
+        typeList.add(UserMoneyDetailTypeEnum.fanliWeiQuan);
+        typeList.add(UserMoneyDetailTypeEnum.fanliWeiQuanNew);
+        typeList.add(UserMoneyDetailTypeEnum.orderReward);
+        typeList.add(UserMoneyDetailTypeEnum.orderRewardNew);
+        typeList.add(UserMoneyDetailTypeEnum.share);
+        typeList.add(UserMoneyDetailTypeEnum.shareNew);
+        typeList.add(UserMoneyDetailTypeEnum.shareWeiQuan);
+        vo.setTotalMoney(
+                userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs());
+
+
+        if (VersionUtil.greaterThan_2_1_2(acceptData.getPlatform(), acceptData.getVersion())) {
+            vo.setMoneyArrivalDesc("灏芥棭纭鏀惰揣鍙互淇冧娇璧勯噾灏芥棭鍒拌处");
+
+            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(timeStamp - 1000 * 60 * 60L * 24 * 365L);
+            maxDate = new Date(timeStamp);
+            vo.setTotalUnRecievedMoney(hongBaoV2Service.getUnRecievedMoneyWithCreateTime(uid, minDate, maxDate));
+        } else {
+            vo.setMoneyArrivalDesc("璁㈠崟宸插埌璐﹀悗鎻愮幇鏃堕棿鍜岄噾棰濆潎涓嶅彈闄愬埗");
+            // 鏈湀鏀惰揣
+            maxDate = new Date(timeStamp);
+            calendar = Calendar.getInstance();
+            minDate = new Date(TimeUtil
+                    .convertToTimeTemp(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M"));
+            calendar.add(Calendar.MONTH, -1);
+            vo.setMonthSettleMoney(hongBaoV2CountService.sumMoneyBySettleTimeAndUid(uid, minDate, maxDate));
+
+            // 涓婃湀鏀惰揣
+            maxDate = new Date(TimeUtil
+                    .convertToTimeTemp(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M"));
+            calendar.add(Calendar.MONTH, -1);
+            minDate = new Date(TimeUtil
+                    .convertToTimeTemp(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M"));
+            vo.setLastMonthSettleMoney(hongBaoV2CountService.sumMoneyBySettleTimeAndUid(uid, minDate, maxDate));
+        }
+
+        // 寰呯‘璁ゆ敹璐э紙180澶╁唴锛�
+        vo.setNotSettleMoney(hongBaoV2CountService.sumMoneyByANotSettleAndUid(uid));
+
+        // 浠婃棩棰勪及
+        calendar.add(Calendar.DAY_OF_YEAR, -1);
+        minDate = new Date(TimeUtil.convertDateToTemp(TimeUtil.getGernalTime(timeStamp)));
+        vo.setTodayPredict(cratePredictVO(orderMoneyDailyCountService.query(uid, minDate, null)));
+
+        // 鏈湀棰勪及
+        maxDate = new Date(timeStamp);
+        calendar = Calendar.getInstance();
+        minDate = new Date(TimeUtil
+                .convertToTimeTemp(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M"));
+        calendar.add(Calendar.MONTH, -1);
+        vo.setMonthPredict(cratePredictVO(orderMoneyDailyCountService.query(uid, minDate, maxDate)));
+        return vo;
+    }
+
+    @RequestMapping(value = "getUserMoneyInfo")
+    public void getUserMoneyInfo(AcceptData acceptData, Long uid, PrintWriter out) {
+        if (uid == null || uid == 0) {
+            out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�"));
+            return;
+        }
+        UserInfo user = userInfoService.getUserById(uid);
+
+        MoneyStatisticVO vo = new MoneyStatisticVO();
+        vo.setLink(configService.getValue(ConfigKeyEnum.autoExtractHelpUrl.getKey(), acceptData.getSystem()));
+        vo.setBalanceMoney(user.getMyHongBao());
+        // 鑾峰彇鎻愮幇涓殑淇℃伅
+        BigDecimal extractingMoney = extractService.sumVerifyingMoney(uid);
+        if (extractingMoney.compareTo(new BigDecimal(0)) > 0)
+            vo.setExtractingMoneyInfo("鎻愮幇涓�:楼" + extractingMoney.setScale(2, RoundingMode.HALF_UP));
+        Gson gson = getGson();
+        out.print(JsonUtil.loadTrueResult(gson.toJson(vo)));
+    }
+
+    private MoneyPredictVO cratePredictVO(List<OrderMoneyDailyCount> list) {
+        MoneyPredictVO predictVO = new MoneyPredictVO();
+        predictVO.setMineNum(0);
+        predictVO.setTeamNum(0);
+        predictVO.setTotalNum(0);
+        predictVO.setMineMoney(BigDecimal.valueOf(0));
+        predictVO.setTeamMoney(BigDecimal.valueOf(0));
+        BigDecimal hundred = BigDecimal.valueOf(100);
+        if (list != null && list.size() > 0) {
+            for (OrderMoneyDailyCount dailyCount : list) {
+                if (dailyCount.getOrderNum() != null)
+                    predictVO.setMineNum(predictVO.getMineNum() + dailyCount.getOrderNum());
+                if (dailyCount.getOrderNumTeam() != null)
+                    predictVO.setTeamNum(predictVO.getTeamNum() + dailyCount.getOrderNumTeam());
+
+                if (dailyCount.getTeamDividentsOrderNum() != null)
+                    predictVO.setTotalNum(predictVO.getTotalNum() + dailyCount.getTeamDividentsOrderNum());
+
+                if (dailyCount.getIncome() != null)
+                    predictVO.setMineMoney(predictVO.getMineMoney()
+                            .add(MoneyBigDecimalUtil.div(BigDecimal.valueOf(dailyCount.getIncome()), hundred)));
+                if (dailyCount.getIncomeTeam() != null)
+                    predictVO.setTeamMoney(predictVO.getTeamMoney()
+                            .add(MoneyBigDecimalUtil.div(BigDecimal.valueOf(dailyCount.getIncomeTeam()), hundred)));
+            }
+        }
+        predictVO.setTotalNum(predictVO.getTotalNum());
+        predictVO.setTotalMoney(predictVO.getMineMoney().add(predictVO.getTeamMoney()));
+        return predictVO;
+    }
+
+    /**
+     * 鎻愮幇鎴愬姛璁板綍
+     *
+     * @param acceptData
+     * @param page
+     * @param uid
+     * @param out
+     */
+    @RequestMapping(value = "getExtractRecord")
+    public void getExtractRecord(AcceptData acceptData, Integer page, Long uid, PrintWriter out) {
+        if (uid == null || uid == 0) {
+            out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�"));
+            return;
+        }
+
+        long count = 0;
+
+        List<Extract> list = null;
+        String redisContent = previewInfoService.getRedisContent(uid, PreviewEnum.extractRecord);
+        if (!StringUtil.isNullOrEmpty(redisContent)) {
+            Gson gson = new Gson();
+            list = gson.fromJson(redisContent, new TypeToken<ArrayList<Extract>>() {
+            }.getType());
+        }
+
+        if (list != null && list.size() > 0) {// 鏈夐瑙堟暟鎹�
+            count = list.size();
+        } else {// 鏃犻瑙堟暟鎹�
+            list = extractService.getExtractSucceedRecord(page, Constant.PAGE_SIZE, uid);
+            count = extractService.countExtractSucceedRecord(uid);
+        }
+
+        // 鏌ヨ鐪熷疄
+        if (list == null)
+            list = new ArrayList<>();
+
+        JSONArray JSONArray = new JSONArray();
+        for (Extract extract : list) {
+            Date receiveTime = extract.getReceiveTime();
+            if (receiveTime == null) {
+                receiveTime = new Date(extract.getExtractTime());
+            }
+            String account = "鏀粯瀹濓細" + UserUtil.filterAlipayAccount(extract.getAccount());
+            account = account + "-濮撳悕锛�" + UserUtil.filterAlipayName(extract.getName());
+
+            JSONObject object = new JSONObject();
+            object.put("title", "浣犱簬" + TimeUtil.formatDate(receiveTime) + "鎻愮幇鎴愬姛");
+            object.put("account", account);
+            object.put("money", "楼" + extract.getMoney().setScale(2).toString());
+            JSONArray.add(object);
+        }
+
+        JSONObject json = new JSONObject();
+        json.put("count", count);
+        json.put("list", JSONArray);
+        out.print(JsonUtil.loadTrueResult(json));
+    }
+
+    /**
+     * 鍘嗗彶璇︽儏
+     *
+     * @param acceptData
+     * @param uid
+     * @param datetype   1-澶� - 2鏈�
+     * @param out
+     */
+    @RequestMapping(value = "getHistoryDetail")
+    public void getHistoryDetail(AcceptData acceptData, Long uid, String date, Integer datetype, PrintWriter out) {
+        if (uid == null || uid == 0) {
+            out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�"));
+            return;
+        }
+
+        if (StringUtil.isNullOrEmpty(date) || datetype == null) {
+            out.print(JsonUtil.loadFalseResult(1, "鍙傛暟涓嶅畬鏁�"));
+            return;
+        }
+
+        try {
+            Date minDay = new Date();
+            Date maxDay = new Date();
+            BigDecimal zero = new BigDecimal(0);
+            List<OrderMoneyDailyCount> listDailyCount = null;
+            List<MoneyPredictVO> list = new ArrayList<>();
+            SimpleDateFormat formatMonth = new SimpleDateFormat("yyyy骞碝M鏈�");
+            SimpleDateFormat formatDay = new SimpleDateFormat("yyyy骞碝M鏈坉d鏃�");
+            if (datetype == 1) {
+                // 鍚庨��7涓湀
+                int countNum = 7;
+                Date day = TimeUtil.parseYYYYMMDD(date);
+                for (int i = 0; i < countNum; i++) {
+                    MoneyPredictVO predictVO = new MoneyPredictVO(zero, 0, zero, 0);
+                    if (i == 0) {
+                        predictVO.setCountDate(formatDay.format(day));
+                    } else {
+                        predictVO.setCountDate(formatDay.format(DateUtil.reduceDay(i, day)));
+                    }
+                    list.add(predictVO);
+
+                    if (i == countNum - 1) {
+                        minDay = DateUtil.reduceDay(i, day);
+                    }
+                }
+                maxDay = TimeUtil.parseYYYYMMDD_HHMMSS(date + " 23:59:59");
+                listDailyCount = orderMoneyDailyCountService.sumGroupByCountDay(uid, minDay, maxDay);
+            } else if (datetype == 2) {
+                // 鍚庨��3涓湀
+                int countNum = 3;
+                Date day = TimeUtil.parseYYYYMMDD(DateUtil.getFirstDayOfMonth(date));
+                for (int i = 0; i < countNum; i++) {
+                    MoneyPredictVO predictVO = new MoneyPredictVO(zero, 0, zero, 0);
+                    if (i == 0) {
+                        predictVO.setCountDate(formatMonth.format(day));
+                    } else {
+                        predictVO.setCountDate(formatMonth.format(DateUtil.reduceMonth(day, i)));
+                    }
+                    list.add(predictVO);
+
+                    if (i == countNum - 1) {
+                        minDay = DateUtil.reduceMonth(day, i);
+                    }
+                }
+                maxDay = TimeUtil.parseYYYYMMDD_HHMMSS(DateUtil.getLastDayOfMonth(date) + " 23:59:59");
+                listDailyCount = orderMoneyDailyCountService.sumGroupByYearMonth(uid, minDay, maxDay);
+            }
+
+            BigDecimal hundred = BigDecimal.valueOf(100);
+            for (MoneyPredictVO predictVO : list) {
+                String countDate = predictVO.getCountDate();
+
+                if (listDailyCount != null && listDailyCount.size() > 0) {
+                    for (OrderMoneyDailyCount dailyCount : listDailyCount) {
+                        Date countDay = dailyCount.getCountDay();
+                        if (datetype == 1 && countDay != null && countDate.equals(formatDay.format(countDay))) {
+                            predictVO.setMineNum(dailyCount.getOrderNum());
+                            predictVO.setMineMoney(
+                                    MoneyBigDecimalUtil.div(BigDecimal.valueOf(dailyCount.getIncome()), hundred));
+                            predictVO.setTeamNum(dailyCount.getOrderNumTeam());
+                            predictVO.setTeamMoney(
+                                    MoneyBigDecimalUtil.div(BigDecimal.valueOf(dailyCount.getIncomeTeam()), hundred));
+                            break;
+                        }
+
+                        String yearMonth = dailyCount.getYearMonth();
+                        if (datetype == 2 && !StringUtil.isNullOrEmpty(yearMonth) && countDate.equals(
+                                formatMonth.format(TimeUtil.parseYYYYMMDD(DateUtil.getFirstDayOfMonth(yearMonth))))) {
+                            predictVO.setMineNum(dailyCount.getOrderNum());
+                            predictVO.setMineMoney(
+                                    MoneyBigDecimalUtil.div(BigDecimal.valueOf(dailyCount.getIncome()), hundred));
+                            predictVO.setTeamNum(dailyCount.getOrderNumTeam());
+                            predictVO.setTeamMoney(
+                                    MoneyBigDecimalUtil.div(BigDecimal.valueOf(dailyCount.getIncomeTeam()), hundred));
+                            break;
+                        }
+                    }
+                }
+
+                predictVO.setTotalNum(predictVO.getTeamNum() + predictVO.getMineNum());
+                predictVO.setTotalMoney(predictVO.getMineMoney().add(predictVO.getTeamMoney()));
+            }
+
+            Gson gson = getGson();
+
+            JSONObject object = new JSONObject();
+            object.put("count", list.size());
+            object.put("list", gson.toJson(list));
+            out.print(JsonUtil.loadTrueResult(object));
+        } catch (ParseException e) {
+            out.print(JsonUtil.loadFalseResult(1, "鏌ヨ澶辫触"));
+            e.printStackTrace();
+            LogHelper.errorDetailInfo(e);
+        }
+    }
+
+    /**
+     * 鏀剁泭璇︽儏
+     *
+     * @param acceptData
+     * @param uid
+     * @param datetype
+     * @param type
+     * @param out
+     */
+    @RequestMapping(value = "getIncomeDetail")
+    public void getIncomeDetail(AcceptData acceptData, Long uid, String date, Integer datetype, Integer type,
+                                PrintWriter out) {
+        if (uid == null || uid == 0) {
+            out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�"));
+            return;
+        }
+
+        if (StringUtil.isNullOrEmpty(date) || datetype == null || type == null) {
+            out.print(JsonUtil.loadFalseResult(1, "鍙傛暟涓嶅畬鏁�"));
+            return;
+        }
+
+        Date minDay = new Date();
+        Date maxDay = new Date();
+        if (datetype == 1) {
+            minDay = TimeUtil.parseYYYYMMDD(date);
+            maxDay = TimeUtil.parseYYYYMMDD_HHMMSS(date + " 23:59:59");
+        } else if (datetype == 2) {
+            String firstDay = DateUtil.getFirstDayOfMonth(date);
+            String lastDay = DateUtil.getLastDayOfMonth(date);
+            minDay = TimeUtil.parseYYYYMMDD(firstDay);
+            maxDay = TimeUtil.parseYYYYMMDD_HHMMSS(lastDay + " 23:59:59");
+        }
+
+        List<OrderMoneyDailyCount> listDailyCount = null;
+        if (type == 1) {
+            listDailyCount = orderMoneyDailyCountService.sumGroupBySourceType(uid, minDay, maxDay);
+        } else if (type == 2) {
+            listDailyCount = orderMoneyDailyCountService.sumTeamGroupBySourceType(uid, minDay, maxDay);
+        }
+
+        BigDecimal zero = new BigDecimal(0);
+        List<IncomeDetailVO> list = new ArrayList<>();
+
+        BigDecimal hundred = BigDecimal.valueOf(100);
+        SourceTypeEnum[] arrayEnun = SourceTypeEnum.values();
+        for (int m = 0; m < arrayEnun.length; m++) {
+            SourceTypeEnum typeEnum = arrayEnun[m];
+            IncomeDetailVO detail = new IncomeDetailVO(typeEnum.getIcon(), 0, zero);
+            if (listDailyCount != null && listDailyCount.size() > 0) {
+                for (OrderMoneyDailyCount dailyCount : listDailyCount) {
+                    if (dailyCount.getSourceType() == typeEnum) {
+                        detail.setNum(detail.getNum() + dailyCount.getOrderNum());
+                        detail.setMoney(detail.getMoney()
+                                .add(MoneyBigDecimalUtil.div(BigDecimal.valueOf(dailyCount.getIncome()), hundred)));
+                    }
+                }
+            }
+            list.add(detail);
+        }
+
+        Gson gson = getGson();
+
+        JSONObject object = new JSONObject();
+        object.put("count", list.size());
+        object.put("list", gson.toJson(list));
+        out.print(JsonUtil.loadTrueResult(object));
+    }
+
+    /**
+     * 鍥㈤槦鍒嗙孩
+     *
+     * @param acceptData
+     * @param uid
+     * @param out
+     */
+    @RequestMapping(value = "getTeamDividendStatistic")
+    public void getTeamDividendStatistic(String callback, AcceptData acceptData, Long uid, PrintWriter out) {
+        if (uid == null || uid == 0) {
+            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
+            return;
+        }
+
+        Date minDate = null;
+        Date maxDate = null;
+        long timeStamp = System.currentTimeMillis();
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTimeInMillis(timeStamp);
+        // 浠婃棩棰勪及
+        calendar.add(Calendar.DAY_OF_YEAR, -1);
+        minDate = new Date(TimeUtil.convertDateToTemp(TimeUtil.getGernalTime(timeStamp)));
+        TeamPredictVO todayVO = crateTeamPredictVO(orderMoneyDailyCountService.query(uid, minDate, null));
+
+        // 鏈湀棰勪及
+        maxDate = new Date(timeStamp);
+        calendar = Calendar.getInstance();
+        minDate = new Date(TimeUtil
+                .convertToTimeTemp(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M"));
+        calendar.add(Calendar.MONTH, -1);
+        TeamPredictVO monthVO = crateTeamPredictVO(orderMoneyDailyCountService.query(uid, minDate, maxDate));
+
+        // 缁熻宸插埌璐﹀垎绾€�佽ˉ璐�
+        BigDecimal subsidy = teamEincomeRecordService.sumRecieveByType(uid, TeamEincomeRecord.TYPE_TEAM_SUBSIDY);
+        BigDecimal reward = teamEincomeRecordService.sumRecieveByType(uid, TeamEincomeRecord.TYPE_TEAM_DIVIDENTS);
+
+        Gson gson = getGson();
+        JSONObject object = new JSONObject();
+        object.put("total", subsidy.add(reward).setScale(2).toString());
+        object.put("reward", reward.setScale(2).toString());
+        object.put("subsidy", subsidy.setScale(2).toString());
+        object.put("today", gson.toJson(todayVO));
+        object.put("month", gson.toJson(monthVO));
+        JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(object));
+    }
+
+    private TeamPredictVO crateTeamPredictVO(List<OrderMoneyDailyCount> list) {
+        TeamPredictVO predictVO = new TeamPredictVO(BigDecimal.ZERO, 0, BigDecimal.ZERO, 0, 0);
+        if (list != null && list.size() > 0) {
+            BigDecimal hundred = BigDecimal.valueOf(100);
+            for (OrderMoneyDailyCount dailyCount : list) {
+                if (dailyCount.getTeamRewardNum() != null)
+                    predictVO.setRewardNum(predictVO.getRewardNum() + dailyCount.getTeamRewardNum());
+                if (dailyCount.getTeamSubsidyNum() != null)
+                    predictVO.setSubsidyNum(predictVO.getSubsidyNum() + dailyCount.getTeamSubsidyNum());
+                if (dailyCount.getTeamReward() != null)
+                    predictVO.setReward(predictVO.getReward()
+                            .add(MoneyBigDecimalUtil.div(BigDecimal.valueOf(dailyCount.getTeamReward()), hundred)));
+                if (dailyCount.getTeamSubsidy() != null)
+                    predictVO.setSubsidy(predictVO.getSubsidy()
+                            .add(MoneyBigDecimalUtil.div(BigDecimal.valueOf(dailyCount.getTeamSubsidy()), hundred)));
+
+                if (dailyCount.getTeamDividentsOrderNum() != null)
+                    predictVO.setTotalNum(predictVO.getTotalNum() + dailyCount.getTeamDividentsOrderNum());
+
+            }
+        }
+        predictVO.setTotalNum(predictVO.getTotalNum());
+        predictVO.setTotalMoney(predictVO.getReward().add(predictVO.getSubsidy()));
+        return predictVO;
+    }
+
+    /**
+     * 鍘嗗彶璇︽儏
+     *
+     * @param acceptData
+     * @param uid
+     * @param datetype   1-澶� - 2鏈�
+     * @param out
+     */
+    @RequestMapping(value = "getTeamDividendHistory")
+    public void getTeamDividendHistory(String callback, AcceptData acceptData, Long uid, String date, Integer datetype,
+                                       PrintWriter out) {
+        if (uid == null || uid == 0) {
+            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
+            return;
+        }
+
+        if (StringUtil.isNullOrEmpty(date) || datetype == null) {
+            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍙傛暟涓嶅畬鏁�"));
+            return;
+        }
+
+        try {
+            Date minDay = new Date();
+            Date maxDay = new Date();
+            BigDecimal zero = new BigDecimal(0);
+            List<OrderMoneyDailyCount> listDailyCount = null;
+            List<TeamPredictVO> list = new ArrayList<>();
+            SimpleDateFormat formatMonth = new SimpleDateFormat("yyyy骞碝M鏈�");
+            SimpleDateFormat formatDay = new SimpleDateFormat("yyyy骞碝M鏈坉d鏃�");
+            if (datetype == 1) {
+                // 鍚庨��7涓湀
+                int countNum = 7;
+                Date day = TimeUtil.parseYYYYMMDD(date);
+                for (int i = 0; i < countNum; i++) {
+                    TeamPredictVO predictVO = new TeamPredictVO(zero, 0, zero, 0, 0);
+                    if (i == 0) {
+                        predictVO.setCountDate(formatDay.format(day));
+                    } else {
+                        predictVO.setCountDate(formatDay.format(DateUtil.reduceDay(i, day)));
+                    }
+                    list.add(predictVO);
+
+                    if (i == countNum - 1) {
+                        minDay = DateUtil.reduceDay(i, day);
+                    }
+                }
+                maxDay = TimeUtil.parseYYYYMMDD_HHMMSS(date + " 23:59:59");
+                listDailyCount = orderMoneyDailyCountService.sumTeamGroupByCountDay(uid, minDay, maxDay);
+            } else if (datetype == 2) {
+                // 鍚庨��3涓湀
+                int countNum = 3;
+                Date day = TimeUtil.parseYYYYMMDD(DateUtil.getFirstDayOfMonth(date));
+                for (int i = 0; i < countNum; i++) {
+                    TeamPredictVO predictVO = new TeamPredictVO(zero, 0, zero, 0, 0);
+                    if (i == 0) {
+                        predictVO.setCountDate(formatMonth.format(day));
+                    } else {
+                        predictVO.setCountDate(formatMonth.format(DateUtil.reduceMonth(day, i)));
+                    }
+                    list.add(predictVO);
+
+                    if (i == countNum - 1) {
+                        minDay = DateUtil.reduceMonth(day, i);
+                    }
+                }
+                maxDay = TimeUtil.parseYYYYMMDD_HHMMSS(DateUtil.getLastDayOfMonth(date) + " 23:59:59");
+                listDailyCount = orderMoneyDailyCountService.sumTeamGroupByYearMonth(uid, minDay, maxDay);
+            }
+
+            BigDecimal hundred = BigDecimal.valueOf(100);
+            for (TeamPredictVO predictVO : list) {
+                String countDate = predictVO.getCountDate();
+
+                if (listDailyCount != null && listDailyCount.size() > 0) {
+                    for (OrderMoneyDailyCount dailyCount : listDailyCount) {
+                        Date countDay = dailyCount.getCountDay();
+                        if (datetype == 1 && countDay != null && countDate.equals(formatDay.format(countDay))) {
+                            predictVO.setRewardNum(dailyCount.getTeamRewardNum());
+                            predictVO.setReward(
+                                    MoneyBigDecimalUtil.div(BigDecimal.valueOf(dailyCount.getTeamReward()), hundred));
+                            predictVO.setSubsidyNum(dailyCount.getTeamSubsidyNum());
+                            predictVO.setSubsidy(
+                                    MoneyBigDecimalUtil.div(BigDecimal.valueOf(dailyCount.getTeamSubsidy()), hundred));
+                            predictVO.setTotalNum(dailyCount.getTeamDividentsOrderNum());
+                            break;
+                        }
+
+                        String yearMonth = dailyCount.getYearMonth();
+                        if (datetype == 2 && !StringUtil.isNullOrEmpty(yearMonth) && countDate.equals(
+                                formatMonth.format(TimeUtil.parseYYYYMMDD(DateUtil.getFirstDayOfMonth(yearMonth))))) {
+                            predictVO.setRewardNum(dailyCount.getTeamRewardNum());
+                            predictVO.setReward(
+                                    MoneyBigDecimalUtil.div(BigDecimal.valueOf(dailyCount.getTeamReward()), hundred));
+                            predictVO.setSubsidyNum(dailyCount.getTeamSubsidyNum());
+                            predictVO.setSubsidy(
+                                    MoneyBigDecimalUtil.div(BigDecimal.valueOf(dailyCount.getTeamSubsidy()), hundred));
+
+                            predictVO.setTotalNum(dailyCount.getTeamDividentsOrderNum());
+                            break;
+                        }
+                    }
+                }
+
+                predictVO.setTotalNum(predictVO.getTotalNum());
+                predictVO.setTotalMoney(predictVO.getReward().add(predictVO.getSubsidy()));
+            }
+
+            Gson gson = getGson();
+
+            JSONObject object = new JSONObject();
+            object.put("count", list.size());
+            object.put("list", gson.toJson(list));
+            JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(object));
+        } catch (ParseException e) {
+            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("缁熻澶辫触"));
+            e.printStackTrace();
+            LogHelper.errorDetailInfo(e);
+        }
+    }
+
+    /**
+     * 鍒嗙孩璇︽儏
+     *
+     * @param acceptData
+     * @param uid
+     * @param datetype   1-澶� - 2鏈�
+     * @param out
+     */
+    @RequestMapping(value = "getTeamDividendDetail")
+    public void getTeamDividendDetail(String callback, AcceptData acceptData, Integer page, Long uid, String date,
+                                      Integer datetype, String key, PrintWriter out) {
+        if (uid == null || uid == 0) {
+            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
+            return;
+        }
+
+        if (StringUtil.isNullOrEmpty(date) || datetype == null) {
+            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍙傛暟涓嶅畬鏁�"));
+            return;
+        }
+
+        if (page == null)
+            page = 1;
+        int pageSize = Constant.PAGE_SIZE;
+
+        try {
+            Date minDay = new Date();
+            Date maxDay = new Date();
+            if (datetype == 1) {
+                minDay = TimeUtil.parseYYYYMMDD(date);
+                maxDay = TimeUtil.parseYYYYMMDD_HHMMSS(date + " 23:59:59");
+            } else if (datetype == 2) {
+                minDay = TimeUtil.parseYYYYMMDD(DateUtil.getFirstDayOfMonth(date));
+                maxDay = TimeUtil.parseYYYYMMDD_HHMMSS(DateUtil.getLastDayOfMonth(date) + " 23:59:59");
+            }
+            List<TeamDividentsVO> list = teamDividentsSourceOrderUserMapService
+                    .listByDateAndTargetUid((page - 1) * pageSize, pageSize, uid, minDay, maxDay, key);
+            if (list == null) {
+                list = new ArrayList<>();
+            }
+            long count = teamDividentsSourceOrderUserMapService.countByDateAndTargetUid(uid, minDay, maxDay, key);
+
+            GsonBuilder builder = new GsonBuilder();
+            builder.registerTypeAdapter(BigDecimal.class, new JsonSerializer<BigDecimal>() {
+                @Override
+                public JsonElement serialize(BigDecimal value, Type theType, JsonSerializationContext context) {
+                    if (value == null) {
+                        return new JsonPrimitive("0.00");
+                    } else {
+                        // 淇濈暀3浣嶅皬鏁�
+                        value = value.setScale(3, RoundingMode.DOWN);
+                        return new JsonPrimitive(value.toString());
+                    }
+                }
+            });
+
+            Gson gson = builder.create();
+            JSONObject object = new JSONObject();
+
+            if (page == 1) {
+                TeamDividentsVO teamDividentsVO = teamDividentsSourceOrderUserMapService.sumByDateAndTargetUid(uid,
+                        minDay, maxDay, key);
+                if (teamDividentsVO == null) {
+                    teamDividentsVO = new TeamDividentsVO();
+                    teamDividentsVO.setSubsidy(BigDecimal.ZERO);
+                    teamDividentsVO.setDividents(BigDecimal.ZERO);
+                }
+                object.put("subsidy", teamDividentsVO.getSubsidy().setScale(2, RoundingMode.DOWN).toString());
+                object.put("dividents", teamDividentsVO.getDividents().setScale(2, RoundingMode.DOWN).toString());
+            }
+
+            object.put("count", count);
+            object.put("list", gson.toJson(list));
+            JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(object));
+        } catch (Exception e) {
+            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏌ヨ澶辫触"));
+            e.printStackTrace();
+            LogHelper.errorDetailInfo(e);
+        }
+    }
+
+    /**
+     * 璁㈠崟缁熻-h5
+     *
+     * @param acceptData
+     * @param out
+     */
+    @RequestMapping(value = "countTeamOrderNum")
+    public void countTeamOrderNum(String callback, AcceptData acceptData, Long uid, PrintWriter out) {
+        try {
+
+            Date minDate = null;
+            Date maxDate = null;
+            long timeStamp = System.currentTimeMillis();
+
+            Calendar calendar = Calendar.getInstance();
+            calendar.setTimeInMillis(timeStamp);
+
+            // 浠婃棩棰勪及
+            calendar.add(Calendar.DAY_OF_YEAR, -1);
+            minDate = new Date(TimeUtil.convertDateToTemp(TimeUtil.getGernalTime(timeStamp)));
+            OrderMoneyDailyCount todayRecord = createVO(
+                    orderMoneyDailyCountService.sumTeamOrderNumGroupByCountDay(uid, minDate, null));
+
+            // 鏄ㄦ棩棰勪及
+            calendar.add(Calendar.DAY_OF_YEAR, -1);
+            maxDate = new Date(TimeUtil.convertDateToTemp(TimeUtil.getGernalTime(timeStamp)));
+            minDate = DateUtil.reduceDay(1, maxDate);
+            OrderMoneyDailyCount yesterdayRecord = createVO(
+                    orderMoneyDailyCountService.sumTeamOrderNumGroupByCountDay(uid, minDate, maxDate));
+
+            // 鏈湀棰勪及
+            maxDate = new Date(timeStamp);
+            calendar = Calendar.getInstance();
+            minDate = new Date(TimeUtil.convertToTimeTemp(
+                    calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M"));
+            calendar.add(Calendar.MONTH, -1);
+            OrderMoneyDailyCount monthRecord = createVO(
+                    orderMoneyDailyCountService.sumTeamOrderNumGroupByYearMonth(uid, minDate, maxDate));
+
+            // 绱
+            OrderMoneyDailyCount totalityRecord = createVO(
+                    orderMoneyDailyCountService.sumTeamOrderNumGroupByUid(uid, null, null));
+
+            JSONObject today = new JSONObject();
+            today.put("direct", todayRecord.getDirectOrderNum());
+            today.put("indirect", todayRecord.getInDirectOrderNum());
+            today.put("beyond", todayRecord.getBeyondOrderNum());
+
+            JSONObject yesterday = new JSONObject();
+            yesterday.put("direct", yesterdayRecord.getDirectOrderNum());
+            yesterday.put("indirect", yesterdayRecord.getInDirectOrderNum());
+            yesterday.put("beyond", yesterdayRecord.getBeyondOrderNum());
+
+            JSONObject month = new JSONObject();
+            month.put("direct", monthRecord.getDirectOrderNum());
+            month.put("indirect", monthRecord.getInDirectOrderNum());
+            month.put("beyond", monthRecord.getBeyondOrderNum());
+
+            JSONObject totality = new JSONObject();
+            totality.put("direct", totalityRecord.getDirectOrderNum());
+            totality.put("indirect", totalityRecord.getInDirectOrderNum());
+            totality.put("beyond", totalityRecord.getBeyondOrderNum());
+
+            JSONObject json = new JSONObject();
+            json.put("today", today);
+            json.put("yesterday", yesterday);
+            json.put("month", month);
+            json.put("totality", totality);
+            JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(json));
+        } catch (Exception e) {
+            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("缁熻澶辫触"));
+            e.printStackTrace();
+            LogHelper.errorDetailInfo(e);
+        }
+    }
+
+    private OrderMoneyDailyCount createVO(List<OrderMoneyDailyCount> list) {
+        OrderMoneyDailyCount totalityRecord = new OrderMoneyDailyCount(0, 0, 0);
+        if (list != null && list.size() > 0) {
+            for (OrderMoneyDailyCount record : list) {
+                totalityRecord.setDirectOrderNum(totalityRecord.getDirectOrderNum() + record.getDirectOrderNum());
+                totalityRecord.setInDirectOrderNum(totalityRecord.getInDirectOrderNum() + record.getInDirectOrderNum());
+                totalityRecord.setBeyondOrderNum(totalityRecord.getBeyondOrderNum() + record.getBeyondOrderNum());
+            }
+        }
+        return totalityRecord;
+    }
+
+    /**
+     * 璁㈠崟鎺掕姒�
+     *
+     * @param callback
+     * @param acceptData
+     * @param uid
+     * @param dateType
+     * @param out
+     */
+    @RequestMapping(value = "getRanking")
+    public void getRanking(String callback, AcceptData acceptData, Long uid, Integer dateType, PrintWriter out) {
+        if (uid == null || dateType == null) {
+            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍙傛暟缂哄け"));
+            return;
+        }
+
+        try {
+            Date minDate = null;
+            Date maxDate = null;
+            long timeStamp = System.currentTimeMillis();
+
+            Calendar calendar = Calendar.getInstance();
+            calendar.setTimeInMillis(timeStamp);
+
+            if (dateType == 1) {
+                // 浠婃棩
+                calendar.add(Calendar.DAY_OF_YEAR, -1);
+                minDate = new Date(TimeUtil.convertDateToTemp(TimeUtil.getGernalTime(timeStamp)));
+            } else if (dateType == 2) {
+                // 鏄ㄦ棩
+                calendar.add(Calendar.DAY_OF_YEAR, -1);
+                maxDate = new Date(TimeUtil.convertDateToTemp(TimeUtil.getGernalTime(timeStamp)));
+                minDate = DateUtil.reduceDay(1, maxDate);
+            } else {
+                // 鏈湀
+                maxDate = new Date(timeStamp);
+                calendar = Calendar.getInstance();
+                minDate = new Date(TimeUtil.convertToTimeTemp(
+                        calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M"));
+                calendar.add(Calendar.MONTH, -1);
+            }
+
+            List<OrderRankingVO> list = orderMoneyDailyCountService.getRankingByOrderNum(uid, minDate, maxDate);
+            if (list.size() > 0) {
+                for (int i = 0; i < list.size(); i++) {
+                    OrderRankingVO vo = list.get(i);
+                    UserInfo user = userInfoService.getUserByIdWithMybatis(vo.getUid());
+                    if (user == null) {
+                        list.remove(i);
+                        i--;
+                        continue;
+                    }
+                    vo.setNickName(user.getNickName());
+                    vo.setPortrait(user.getPortrait());
+                }
+            }
+
+            JSONObject json = new JSONObject();
+            json.put("list", list);
+            JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(json));
+        } catch (Exception e) {
+            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("缁熻澶辫触"));
+            e.printStackTrace();
+            LogHelper.errorDetailInfo(e);
+        }
+    }
+}

--
Gitblit v1.8.0