From fd1dce3121a7773419263c495f92e160cc1e7124 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期二, 24 三月 2020 11:36:36 +0800
Subject: [PATCH] 2.1 +后台编辑

---
 fanli/src/main/java/com/yeshi/fanli/controller/admin/CountChartsAdminController.java |  394 +++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 329 insertions(+), 65 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/admin/CountChartsAdminController.java b/fanli/src/main/java/com/yeshi/fanli/controller/admin/CountChartsAdminController.java
index 46b033c..e2f2fd1 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/admin/CountChartsAdminController.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/admin/CountChartsAdminController.java
@@ -20,6 +20,12 @@
 import com.yeshi.fanli.entity.admin.count.CountOrderInfo;
 import com.yeshi.fanli.entity.admin.count.CountOrderTrackRate;
 import com.yeshi.fanli.entity.admin.count.CountUserInfo;
+import com.yeshi.fanli.entity.admin.count.DailyCountCoupon;
+import com.yeshi.fanli.entity.admin.count.DailyCountOrder;
+import com.yeshi.fanli.entity.admin.count.DailyCountUser;
+import com.yeshi.fanli.service.inter.count.DailyCountCouponService;
+import com.yeshi.fanli.service.inter.count.DailyCountOrderService;
+import com.yeshi.fanli.service.inter.count.DailyCountUserService;
 import com.yeshi.fanli.service.inter.count.UserInfoCountService;
 import com.yeshi.fanli.service.inter.order.CommonOrderCountService;
 import com.yeshi.fanli.util.MoneyBigDecimalUtil;
@@ -39,6 +45,14 @@
 	@Resource
 	private CommonOrderCountService commonOrderCountService;
 	
+	@Resource
+	private DailyCountCouponService dailyCountCouponService;
+	
+	@Resource
+	private DailyCountUserService dailyCountUserService;
+	
+	@Resource
+	private DailyCountOrderService dailyCountOrderService;
 	
 	
 	private void verifyQueryData(String callback, Integer dateType, String year, String startTime, 
@@ -410,71 +424,6 @@
 	}
 
 	
-	/**
-	 * 缁熻璁㈠崟浣i噾
-	 * @param callback
-	 * @param channelArray
-	 * @param dateType
-	 * @param year
-	 * @param startTime
-	 * @param endTime
-	 * @param out
-	 */
-	@RequestMapping(value = "getOrderTypeNum")
-	public void getOrderTypeNum(String callback, String typeArray, Integer dateType, String year,
-			String startTime, String endTime, Integer countType, PrintWriter out) {
-		try {
-			// 鏁版嵁楠岃瘉澶勭悊
-			verifyQueryData(callback, dateType, year, startTime, endTime, out);
-			
-			Date beginDate = getBeginDate(dateType, year, startTime);
-			Date endDate = getEndDate(dateType, year, endTime);
-			
-			Gson gson = new Gson();
-			List<String> dateList = AdminUtils.getDateList(dateType, startTime, endTime, year);
-			// 娓犻亾
-			List<Integer> typeList = null;
-			if (typeArray != null && typeArray.trim().length() > 4) {
-				typeList = gson.fromJson(typeArray, new TypeToken<ArrayList<Integer>>() {}.getType());
-			}
-			
-			JSONArray line_list = new JSONArray();
-			if (typeList != null && typeList.size() > 0) {
-				for (Integer type : typeList) {
-					List<CountOrderInfo> listData = userInfoCountService.countOrderType(type, beginDate, endDate);
-					List<Object> list = machineOrderResultMoney(dateList, dateType, listData);
-					JSONObject innerList = new JSONObject();
-					
-					String name = "";
-					if (type == 1) {
-						name = "鑷喘璁㈠崟";
-					} else if (type == 2) {
-						name = "鍒嗕韩璁㈠崟";
-					} else if (type == 3) {
-						name = "閭�璇疯鍗�";
-					}
-					innerList.put("name", name);
-					innerList.put("data", gson.toJson(list));
-					line_list.add(innerList);
-				}
-			} else {
-				List<CountOrderInfo> listData = userInfoCountService.countOrderType(null, beginDate, endDate);
-				List<Object> list = machineOrderResultMoney(dateList, dateType, listData);
-				JSONObject innerList = new JSONObject();
-				innerList.put("name", "鍏ㄩ儴");
-				innerList.put("data", gson.toJson(list));
-				line_list.add(innerList);
-			}
-
-			JSONObject data = new JSONObject();
-			data.put("line_list", line_list);
-			data.put("xAxis_list", gson.toJson(dateList));
-			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
-		} catch (Exception e) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("绯荤粺寮傚父"));
-			e.printStackTrace();
-		}
-	}
 
 	
 	/**
@@ -725,4 +674,319 @@
 			e.printStackTrace();
 		}
 	}
+	
+	
+	
+	/**
+	 * 鍒哥浉鍏冲浘琛ㄦ暟鎹�
+	 * @param callback
+	 * @param dateType
+	 * @param year
+	 * @param startTime
+	 * @param endTime
+	 * @param type 鏌ヨ绫诲瀷
+	 * @param out
+	 */
+	@RequestMapping(value = "getCouponCharts")
+	public void getCouponCharts(String callback, Integer dateType, String year, String startTime, String endTime, 
+			String typeArray, PrintWriter out) {
+		try {
+			// 鏁版嵁楠岃瘉澶勭悊
+			verifyQueryData(callback, dateType, year, startTime, endTime, out);
+			
+			Date beginDate = getBeginDate(dateType, year, startTime);
+			Date endDate = getEndDate(dateType, year, endTime);
+			
+			Gson gson = new Gson();
+			List<String> dateList = AdminUtils.getDateList(dateType, startTime, endTime, year);
+			
+			// 娓犻亾
+			List<String> typelList = null;
+			if (typeArray != null && typeArray.trim().length() > 4) {
+				typelList = gson.fromJson(typeArray, new TypeToken<ArrayList<String>>() {}.getType());
+			}
+			
+			JSONArray line_list = new JSONArray();
+			
+			if (typelList != null && typelList.size() > 0) {
+				for (String type: typelList) {
+					List<DailyCountCoupon> listData = dailyCountCouponService.getDailyCountList(type, beginDate, endDate);
+					// 澶勭悊鏁版嵁
+					List<Object> list = machineDailyCountCoupon(dateList, dateType, listData);
+					
+					JSONObject innerList = new JSONObject();
+					innerList.put("name", dailyCountCouponService.getTypeEnumDesc(type));
+					innerList.put("data", gson.toJson(list));
+					line_list.add(innerList);
+				}
+			}
+			
+			JSONObject data = new JSONObject();
+			data.put("line_list", line_list);
+			data.put("xAxis_list", gson.toJson(dateList));
+			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+		} catch (Exception e) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("绯荤粺寮傚父"));
+			e.printStackTrace();
+		}
+	}
+	
+	
+	private List<Object> machineDailyCountCoupon(List<String> dateList, Integer dateType, List<DailyCountCoupon> listData) {
+		List<Object> list = new ArrayList<>();
+		for (String date: dateList) {
+			BigDecimal result = new BigDecimal(0);
+			
+			if (listData != null) {
+				for (DailyCountCoupon history: listData) {
+					if (dateType == 1) {
+						String gernalTime = TimeUtil.getGernalTime(history.getDay().getTime());
+						if (gernalTime.equalsIgnoreCase(date)) {
+							result = MoneyBigDecimalUtil.add(result, history.getTotal());
+							continue;
+						}
+					} else if (dateType == 2){
+						String gernalTime = TimeUtil.getMonthOnlyMM(history.getDay());
+						if(gernalTime.startsWith("0")) {
+							gernalTime = gernalTime.substring(1, 2);
+						}
+						if (gernalTime.equalsIgnoreCase(date)) {
+							result = MoneyBigDecimalUtil.add(result, history.getTotal());
+						}
+					} else if (dateType == 3) {
+						String gernalTime = TimeUtil.getYearOnlyYYYY(history.getDay());
+						if (gernalTime.equalsIgnoreCase(date)) {
+							result = MoneyBigDecimalUtil.add(result, history.getTotal());
+						}
+					}
+				}
+			}
+			list.add(result);
+		}
+		return list;
+	}
+	
+
+	/**
+	 * 鐢ㄦ埛鐩稿叧鍥捐〃鏁版嵁
+	 * @param callback
+	 * @param dateType
+	 * @param year
+	 * @param startTime
+	 * @param endTime
+	 * @param type 鏌ヨ绫诲瀷
+	 * @param out
+	 */
+	@RequestMapping(value = "getUserCharts")
+	public void getUserCharts(String callback, Integer dateType, String year, String startTime, String endTime, 
+			String typeArray, String channelArray, PrintWriter out) {
+		try {
+			// 鏁版嵁楠岃瘉澶勭悊
+			verifyQueryData(callback, dateType, year, startTime, endTime, out);
+			
+			Date beginDate = getBeginDate(dateType, year, startTime);
+			Date endDate = getEndDate(dateType, year, endTime);
+			
+			Gson gson = new Gson();
+			List<String> dateList = AdminUtils.getDateList(dateType, startTime, endTime, year);
+			
+			List<String> typelList = null;
+			if (typeArray != null && typeArray.trim().length() > 4) {
+				typelList = gson.fromJson(typeArray, new TypeToken<ArrayList<String>>() {}.getType());
+			}
+			if (typelList == null || typelList.size() == 0) {
+				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("浼犻�掔被鍨嬮敊璇�"));
+				return;
+			}
+			
+			// 娓犻亾
+			List<String> channelList = null;
+			if (channelArray != null && channelArray.trim().length() > 4) {
+				channelList = gson.fromJson(channelArray, new TypeToken<ArrayList<String>>() {}.getType());
+			}
+			
+			JSONArray line_list = new JSONArray();
+			
+			if (channelList != null && channelList.size() > 0) {
+				String type = typelList.get(0);
+				for (String channel: channelList) {
+					List<DailyCountUser> listData = dailyCountUserService.getDailyCountList(type, beginDate, endDate, channel);
+					// 澶勭悊鏁版嵁
+					List<Object> list = machineDailyCountUser(dateList, dateType, listData);
+					
+					JSONObject innerList = new JSONObject();
+					innerList.put("name", channel);
+					innerList.put("data", gson.toJson(list));
+					line_list.add(innerList);
+				}
+			} else {
+				for (String type: typelList) {
+					List<DailyCountUser> listData = dailyCountUserService.getDailyCountList(type, beginDate, endDate, null);
+					// 澶勭悊鏁版嵁
+					List<Object> list = machineDailyCountUser(dateList, dateType, listData);
+					
+					JSONObject innerList = new JSONObject();
+					innerList.put("name", dailyCountUserService.getTypeEnumDesc(type));
+					innerList.put("data", gson.toJson(list));
+					line_list.add(innerList);
+				}
+			}
+			
+			JSONObject data = new JSONObject();
+			data.put("line_list", line_list);
+			data.put("xAxis_list", gson.toJson(dateList));
+			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+		} catch (Exception e) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("绯荤粺寮傚父"));
+			e.printStackTrace();
+		}
+	}
+	
+	
+	private List<Object> machineDailyCountUser(List<String> dateList, Integer dateType, List<DailyCountUser> listData) {
+		List<Object> list = new ArrayList<>();
+		for (String date: dateList) {
+			BigDecimal result = new BigDecimal(0);
+			
+			if (listData != null) {
+				for (DailyCountUser history: listData) {
+					if (dateType == 1) {
+						String gernalTime = TimeUtil.getGernalTime(history.getDay().getTime());
+						if (gernalTime.equalsIgnoreCase(date)) {
+							result = MoneyBigDecimalUtil.add(result, history.getTotal());
+							continue;
+						}
+					} else if (dateType == 2){
+						String gernalTime = TimeUtil.getMonthOnlyMM(history.getDay());
+						if(gernalTime.startsWith("0")) {
+							gernalTime = gernalTime.substring(1, 2);
+						}
+						if (gernalTime.equalsIgnoreCase(date)) {
+							result = MoneyBigDecimalUtil.add(result, history.getTotal());
+						}
+					} else if (dateType == 3) {
+						String gernalTime = TimeUtil.getYearOnlyYYYY(history.getDay());
+						if (gernalTime.equalsIgnoreCase(date)) {
+							result = MoneyBigDecimalUtil.add(result, history.getTotal());
+						}
+					}
+				}
+			}
+			list.add(result);
+		}
+		return list;
+	}
+	
+	
+	/**
+	 * 鐢ㄦ埛鐩稿叧鍥捐〃鏁版嵁
+	 * @param callback
+	 * @param dateType
+	 * @param year
+	 * @param startTime
+	 * @param endTime
+	 * @param type 鏌ヨ绫诲瀷
+	 * @param out
+	 */
+	@RequestMapping(value = "getOrderCharts")
+	public void getOrderCharts(String callback, Integer dateType, String year, String startTime, String endTime, 
+			String typeArray, String channelArray, PrintWriter out) {
+		try {
+			// 鏁版嵁楠岃瘉澶勭悊
+			verifyQueryData(callback, dateType, year, startTime, endTime, out);
+			
+			Date beginDate = getBeginDate(dateType, year, startTime);
+			Date endDate = getEndDate(dateType, year, endTime);
+			
+			Gson gson = new Gson();
+			List<String> dateList = AdminUtils.getDateList(dateType, startTime, endTime, year);
+			
+			// 娓犻亾
+			List<String> typelList = null;
+			if (typeArray != null && typeArray.trim().length() > 4) {
+				typelList = gson.fromJson(typeArray, new TypeToken<ArrayList<String>>() {}.getType());
+			}
+			
+			if (typelList == null || typelList.size() == 0) {
+				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("浼犻�掔被鍨嬮敊璇�"));
+				return;
+			}
+			
+			// 娓犻亾
+			List<String> channelList = null;
+			if (channelArray != null && channelArray.trim().length() > 4) {
+				channelList = gson.fromJson(channelArray, new TypeToken<ArrayList<String>>() {}.getType());
+			}
+						
+			
+			JSONArray line_list = new JSONArray();
+			if (channelList != null && channelList.size() > 0) {
+				String type = typelList.get(0);
+				for (String channel: channelList) {
+					List<DailyCountOrder> listData = dailyCountOrderService.getDailyCountList(type, beginDate, endDate, channel);
+					// 澶勭悊鏁版嵁
+					List<Object> list = machineDailyCountOrder(dateList, dateType, listData);
+					
+					JSONObject innerList = new JSONObject();
+					innerList.put("name", channel);
+					innerList.put("data", gson.toJson(list));
+					line_list.add(innerList);
+				}
+			} else {
+				for (String type: typelList) {
+					List<DailyCountOrder> listData = dailyCountOrderService.getDailyCountList(type, beginDate, endDate, null);
+					// 澶勭悊鏁版嵁
+					List<Object> list = machineDailyCountOrder(dateList, dateType, listData);
+					
+					JSONObject innerList = new JSONObject();
+					innerList.put("name", dailyCountOrderService.getTypeEnumDesc(type));
+					innerList.put("data", gson.toJson(list));
+					line_list.add(innerList);
+				}
+			}
+			
+			JSONObject data = new JSONObject();
+			data.put("line_list", line_list);
+			data.put("xAxis_list", gson.toJson(dateList));
+			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+		} catch (Exception e) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("绯荤粺寮傚父"));
+			e.printStackTrace();
+		}
+	}
+	
+	
+	private List<Object> machineDailyCountOrder(List<String> dateList, Integer dateType, List<DailyCountOrder> listData) {
+		List<Object> list = new ArrayList<>();
+		for (String date: dateList) {
+			BigDecimal result = new BigDecimal(0);
+			
+			if (listData != null) {
+				for (DailyCountOrder history: listData) {
+					if (dateType == 1) {
+						String gernalTime = TimeUtil.getGernalTime(history.getDay().getTime());
+						if (gernalTime.equalsIgnoreCase(date)) {
+							result = MoneyBigDecimalUtil.add(result, history.getTotal());
+							continue;
+						}
+					} else if (dateType == 2){
+						String gernalTime = TimeUtil.getMonthOnlyMM(history.getDay());
+						if(gernalTime.startsWith("0")) {
+							gernalTime = gernalTime.substring(1, 2);
+						}
+						if (gernalTime.equalsIgnoreCase(date)) {
+							result = MoneyBigDecimalUtil.add(result, history.getTotal());
+						}
+					} else if (dateType == 3) {
+						String gernalTime = TimeUtil.getYearOnlyYYYY(history.getDay());
+						if (gernalTime.equalsIgnoreCase(date)) {
+							result = MoneyBigDecimalUtil.add(result, history.getTotal());
+						}
+					}
+				}
+			}
+			list.add(result);
+		}
+		return list;
+	}
 }

--
Gitblit v1.8.0