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 | 2061 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 1,043 insertions(+), 1,018 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 5c137c0..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,1018 +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 com.yeshi.fanli.util.MoneyBigDecimalUtil;
-import com.yeshi.fanli.util.StringUtil;
-import com.yeshi.fanli.util.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.get(ConfigKeyEnum.autoExtractHelpUrl.getKey()));
-				vo.setExtractDesc("鎻愮幇閲戦灏辨槸宸叉垚鍔熸彁鐜板埌鏀粯瀹濈殑璧勯噾");
-				if (VersionUtil.greaterThan_2_1_2(acceptData.getPlatform(), acceptData.getVersion())) {
-					vo.setMoneyArrivalDesc("灏芥棭纭鏀惰揣鍙互淇冧娇璧勯噾灏芥棭鍒拌处");
-				} else {
-					vo.setMoneyArrivalDesc("璁㈠崟宸插埌璐﹀悗鎻愮幇鏃堕棿鍜岄噾棰濆潎涓嶅彈闄愬埗");
-				}
-			}
-		}
-
-		if (vo == null) {
-			vo = createMoneyStatistic(uid, acceptData);
-		}
-
-		Gson gson = getGson();
-		out.print(JsonUtil.loadTrueResult(gson.toJson(vo)));
-	}
-
-	private MoneyStatisticVO createMoneyStatistic(Long uid, AcceptData acceptData) {
-		UserInfo user = userInfoService.getUserById(uid);
-
-		MoneyStatisticVO vo = new MoneyStatisticVO();
-		vo.setLink(configService.get(ConfigKeyEnum.autoExtractHelpUrl.getKey()));
-		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());
-
-		// 涓婃湀鎻愮幇
-		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());
-
-		
-		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.get(ConfigKeyEnum.autoExtractHelpUrl.getKey()));
-		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 id
-	 * @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