From fb885c8bff26484f2bb21e697f182cc35bc4fa63 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期二, 12 五月 2020 15:27:08 +0800
Subject: [PATCH] 2.1.1 新需求

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserMoneyControllerV2.java |  353 +++++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 223 insertions(+), 130 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 d4d3e00..a4a0377 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
@@ -4,6 +4,8 @@
 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;
@@ -13,6 +15,7 @@
 
 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.GsonBuilder;
@@ -25,6 +28,7 @@
 import com.yeshi.fanli.entity.bus.user.UserInfo;
 import com.yeshi.fanli.entity.money.UserMoneyDetail.UserMoneyDetailTypeEnum;
 import com.yeshi.fanli.entity.order.OrderMoneyDailyCount;
+import com.yeshi.fanli.entity.order.OrderMoneyDailyCount.SourceTypeEnum;
 import com.yeshi.fanli.entity.system.ConfigKeyEnum;
 import com.yeshi.fanli.service.inter.config.ConfigService;
 import com.yeshi.fanli.service.inter.count.HongBaoV2CountService;
@@ -35,6 +39,7 @@
 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.StringUtil;
 import com.yeshi.fanli.util.TimeUtil;
 import com.yeshi.fanli.util.account.UserUtil;
 import com.yeshi.fanli.vo.money.IncomeDetailVO;
@@ -74,12 +79,10 @@
 
 	@Resource
 	private HongBaoV2CountService hongBaoV2CountService;
-	
+
 	@Resource
 	private OrderMoneyDailyCountService orderMoneyDailyCountService;
-	
 
-	 
 	/**
 	 * 鐢ㄦ埛璧勯噾缁熻
 	 * 
@@ -94,27 +97,26 @@
 			return;
 		}
 		UserInfo user = userInfoService.getUserById(uid);
-		
+
 		MoneyStatisticVO vo = new MoneyStatisticVO();
 		vo.setLink(configService.get(ConfigKeyEnum.autoExtractHelpUrl.getKey()));
 		vo.setBalanceMoney(user.getMyHongBao());
 		vo.setExtractDesc("鎻愮幇閲戦灏辨槸宸叉垚鍔熻浆璐﹀埌鎻愮幇鏀粯瀹濈殑璧勯噾銆�");
 		vo.setMoneyArrivalDesc("璧勯噾宸插埌璐﹀悗鎻愮幇鏃堕棿涓嶅彈闄愬埗銆侀噾棰濆彈闄愬埗銆�");
-		
+
 		// 鑾峰彇鎻愮幇涓殑淇℃伅
 		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);
@@ -122,27 +124,31 @@
 		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"));
+		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());
+		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"));
+		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(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);
@@ -159,7 +165,8 @@
 		typeList.add(UserMoneyDetailTypeEnum.share);
 		typeList.add(UserMoneyDetailTypeEnum.shareNew);
 		typeList.add(UserMoneyDetailTypeEnum.shareWeiQuan);
-		vo.setTotalShareMoney(userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs());
+		vo.setTotalShareMoney(
+				userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs());
 
 		// 绱閭�璇疯禋
 		typeList.clear();
@@ -168,39 +175,41 @@
 		typeList.add(UserMoneyDetailTypeEnum.inviteAndShare);
 		typeList.add(UserMoneyDetailTypeEnum.subsidy);
 		typeList.add(UserMoneyDetailTypeEnum.teamReward);
-		vo.setTotalInviteMoney(userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs());
+		vo.setTotalInviteMoney(
+				userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs());
 
-		
 		// 鏈湀鏀惰揣
 		maxDate = new Date(timeStamp);
 		calendar = Calendar.getInstance();
-		minDate = new Date(TimeUtil.convertToTimeTemp(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M"));
+		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"));
+		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"));
+		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"));
+		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)));
-		
-		
+
 		GsonBuilder builder = new GsonBuilder();
 		builder.registerTypeAdapter(BigDecimal.class, new JsonSerializer<BigDecimal>() {
 			@Override
@@ -217,136 +226,224 @@
 		out.print(JsonUtil.loadTrueResult(builder.create().toJson(vo)));
 	}
 
-	
 	private MoneyPredictVO cratePredictVO(List<OrderMoneyDailyCount> list) {
 		MoneyPredictVO predictVO = new MoneyPredictVO();
 		predictVO.setMineNum(0);
 		predictVO.setTeamNum(0);
 		predictVO.setMineMoney(BigDecimal.valueOf(0));
 		predictVO.setTeamMoney(BigDecimal.valueOf(0));
-		
+
 		if (list != null && list.size() > 0) {
-			for (OrderMoneyDailyCount dailyCount: list) {
+			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.getIncome() != null) {
 					predictVO.setMineMoney(predictVO.getMineMoney().add(dailyCount.getIncome()));
 				}
-				
+
 				if (dailyCount.getIncomeTeam() != null) {
 					predictVO.setTeamMoney(predictVO.getTeamMoney().add(dailyCount.getIncomeTeam()));
 				}
 			}
 		}
-		
+
 		predictVO.setTotalNum(predictVO.getTeamNum() + predictVO.getMineNum());
 		predictVO.setTotalMoney(predictVO.getMineMoney().add(predictVO.getTeamMoney()));
 		return predictVO;
 	}
-	
-	
-	 /**
-	  * 鍘嗗彶璇︽儏
-	  * @param acceptData
-	  * @param uid
-	  * @param datetype 1-澶� - 2鏈�
-	  * @param out
-	  */
+
+	/**
+	 * 鍘嗗彶璇︽儏
+	 * 
+	 * @param acceptData
+	 * @param uid
+	 * @param datetype   1-澶� - 2鏈�
+	 * @param out
+	 */
 	@RequestMapping(value = "getHistoryDetail")
-	public void getHistoryDetail(AcceptData acceptData, Long uid, Integer datetype, PrintWriter out) {
+	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 (datetype == null) {
-			datetype = 1;
+
+		if (StringUtil.isNullOrEmpty(date) || datetype == null) {
+			out.print(JsonUtil.loadFalseResult(1, "鍙傛暟涓嶅畬鏁�"));
+			return;
 		}
-		
-		
-		MoneyPredictVO predictVO = new MoneyPredictVO();
-		predictVO.setMineNum(0);
-		predictVO.setTeamNum(0);
-		predictVO.setMineMoney(BigDecimal.valueOf(0));
-		predictVO.setTeamMoney(BigDecimal.valueOf(0));
-		predictVO.setTotalNum(predictVO.getTeamNum() + predictVO.getMineNum());
-		predictVO.setTotalMoney(predictVO.getMineMoney().add(predictVO.getTeamMoney()));
-		predictVO.setCountDate("2020骞�05鏈�09鏃�");
-		
-		MoneyPredictVO predictVO2 = new MoneyPredictVO();
-		predictVO2.setMineNum(0);
-		predictVO2.setTeamNum(0);
-		predictVO2.setMineMoney(BigDecimal.valueOf(0));
-		predictVO2.setTeamMoney(BigDecimal.valueOf(0));
-		predictVO2.setTotalNum(predictVO.getTeamNum() + predictVO.getMineNum());
-		predictVO2.setTotalMoney(predictVO.getMineMoney().add(predictVO.getTeamMoney()));
-		predictVO2.setCountDate("2020骞�05鏈�08鏃�");
-		
-		List<MoneyPredictVO> list = new ArrayList<>();
-		list.add(predictVO);
-		list.add(predictVO2);
-		
-		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);
-					return new JsonPrimitive(value.toString());
+
+		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);
 			}
-		});
-		
-		JSONObject object = new JSONObject();
-		object.put("count", list.size());
-		object.put("list", builder.create().toJson(list));
-		out.print(JsonUtil.loadTrueResult(object));
+
+			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(dailyCount.getIncome());
+							predictVO.setTeamNum(dailyCount.getOrderNumTeam());
+							predictVO.setTeamMoney(dailyCount.getIncomeTeam());
+							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(dailyCount.getIncome());
+							predictVO.setTeamNum(dailyCount.getOrderNumTeam());
+							predictVO.setTeamMoney(dailyCount.getIncomeTeam());
+							break;
+						}
+					}
+				}
+
+				predictVO.setTotalNum(predictVO.getTeamNum() + predictVO.getMineNum());
+				predictVO.setTotalMoney(predictVO.getMineMoney().add(predictVO.getTeamMoney()));
+			}
+
+			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 {
+						// 淇濈暀2浣嶅皬鏁�
+						value = value.setScale(2);
+						return new JsonPrimitive(value.toString());
+					}
+				}
+			});
+
+			JSONObject object = new JSONObject();
+			object.put("count", list.size());
+			object.put("list", builder.create().toJson(list));
+			out.print(JsonUtil.loadTrueResult(object));
+		} catch (ParseException e) {
+			e.printStackTrace();
+		}
 	}
 
-	 
-	 /**
-	  * 鏀剁泭璇︽儏
-	  * @param acceptData
-	  * @param uid
-	  * @param datetype
-	  * @param type
-	  * @param out
-	  */
+	/**
+	 * 鏀剁泭璇︽儏
+	 * 
+	 * @param acceptData
+	 * @param uid
+	 * @param datetype
+	 * @param type
+	 * @param out
+	 */
 	@RequestMapping(value = "getIncomeDetail")
-	public void getIncomeDetail(AcceptData acceptData, Long uid, Integer datetype, int type, PrintWriter out) {
+	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;
 		}
-		
-		IncomeDetailVO detailVO = new IncomeDetailVO();
-		detailVO.setIcon("https://image.baidu.com/search/detail?ct=503316480&z=0&ipn=d&word=%E5%9B%BE%E6%A0%87&hs=2&pn=4&spn=0&di=140910&pi=0&rn=1&tn=baiduimagedetail&is=0%2C0&ie=utf-8&oe=utf-8&cl=2&lm=-1&cs=1127089551%2C1776911506&os=1048215048%2C2112739689&simid=3430760525%2C458613076&adpicid=0&lpn=0&ln=30&fr=ala&fm=&sme=&cg=&bdtype=0&oriquery=%E5%9B%BE%E6%A0%87&objurl=http%3A%2F%2Fbpic.588ku.com%2Felement_origin_min_pic%2F16%2F08%2F20%2F2357b8781a8b798.jpg!%2Ffwfh%2F804x804%2Fquality%2F90%2Funsharp%2Ftrue%2Fcompress%2Ftrue&fromurl=ippr_z2C%24qAzdH3FAzdH3Flafij3t_z%26e3Bv54AzdH3Ff7vwtAzdH3F8clm90md_z%26e3Bip4s&gsm=5&islist=&querylist=");
-		detailVO.setNum(0);
-		detailVO.setMoney(BigDecimal.valueOf(0));
-		
-		IncomeDetailVO detailVO2 = new IncomeDetailVO();
-		detailVO2.setIcon("https://image.baidu.com/search/detail?ct=503316480&z=0&ipn=d&word=%E5%9B%BE%E6%A0%87&hs=2&pn=5&spn=0&di=63690&pi=0&rn=1&tn=baiduimagedetail&is=0%2C0&ie=utf-8&oe=utf-8&cl=2&lm=-1&cs=2705540191%2C3386342097&os=1154083183%2C368350028&simid=3434290922%2C367349849&adpicid=0&lpn=0&ln=30&fr=ala&fm=&sme=&cg=&bdtype=0&oriquery=%E5%9B%BE%E6%A0%87&objurl=http%3A%2F%2Fhbimg.b0.upaiyun.com%2Ffe2a5be541f3c011972f74d3b50b96578116a92c2f63-tK5HwY_fw658&fromurl=ippr_z2C%24qAzdH3FAzdH3Fi7wkwg_z%26e3Bv54AzdH3FrtgfAzdH3F8ca0l0acmdAzdH3F&gsm=5&islist=&querylist=");
-		detailVO2.setNum(0);
-		detailVO2.setMoney(BigDecimal.valueOf(0));
+
+		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 == 1) {
+			listDailyCount = orderMoneyDailyCountService.sumTeamGroupBySourceType(uid, minDay, maxDay);
+		}
+
+		BigDecimal zero = new BigDecimal(0);
 		List<IncomeDetailVO> list = new ArrayList<>();
-		list.add(detailVO);
-		list.add(detailVO2);
-		
+
+		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(dailyCount.getIncome()));
+					}
+				}
+			}
+			list.add(detail);
+		}
+
 		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("");
+					return new JsonPrimitive("0.00");
 				} else {
 					// 淇濈暀2浣嶅皬鏁�
 					value = value.setScale(2);
@@ -354,49 +451,45 @@
 				}
 			}
 		});
-		
+
 		JSONObject object = new JSONObject();
 		object.put("count", list.size());
 		object.put("list", builder.create().toJson(list));
 		out.print(JsonUtil.loadTrueResult(object));
 	}
 
-	
-	
 	@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;
 		}
-		
+
 		List<Extract> list = extractService.getExtractSucceedRecord(page, Constant.PAGE_SIZE, uid);
 		if (list == null) {
 			list = new ArrayList<>();
 		}
-		
+
 		JSONArray JSONArray = new JSONArray();
-		for (Extract extract: list) {
+		for (Extract extract : list) {
 			Date receiveTime = extract.getReceiveTime();
 			if (receiveTime == null) {
-				receiveTime =  new Date(extract.getExtractTime());
+				receiveTime = new Date(extract.getExtractTime());
 			}
-			String account = "鏀粯瀹濓細" +  UserUtil.filterAlipayAccount(extract.getAccount());
-			account = account + "-濮撳悕锛�"+ UserUtil.filterAlipayName(extract.getName());
-			
+			String account = "鏀粯瀹濓細" + UserUtil.filterAlipayAccount(extract.getAccount());
+			account = account + "-濮撳悕锛�" + UserUtil.filterAlipayName(extract.getName());
+
 			JSONObject object = new JSONObject();
-			object.put("title", "浣犱簬"+ TimeUtil.formatDate(receiveTime) +"鎻愮幇鎴愬姛");
+			object.put("title", "浣犱簬" + TimeUtil.formatDate(receiveTime) + "鎻愮幇鎴愬姛");
 			object.put("account", account);
-			object.put("money","楼" + extract.getMoney().setScale(2).toString());
+			object.put("money", "楼" + extract.getMoney().setScale(2).toString());
 			JSONArray.add(object);
 		}
-		
+
 		JSONObject json = new JSONObject();
 		json.put("count", extractService.countExtractSucceedRecord(uid));
 		json.put("list", JSONArray);
 		out.print(JsonUtil.loadTrueResult(json));
 	}
 
-	
-	
 }

--
Gitblit v1.8.0