From 27c1fd58461e2fd15be392b3c308b4343af8d973 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期三, 01 四月 2020 14:53:50 +0800
Subject: [PATCH] 发圈统计

---
 fanli/src/main/java/com/yeshi/fanli/controller/admin/CountChartsAdminController.java |   90 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 89 insertions(+), 1 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 64335e7..a16da09 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
@@ -21,9 +21,11 @@
 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.DailyCountMoments;
 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.DailyCountMomentsService;
 import com.yeshi.fanli.service.inter.count.DailyCountOrderService;
 import com.yeshi.fanli.service.inter.count.DailyCountUserService;
 import com.yeshi.fanli.service.inter.count.UserInfoCountService;
@@ -53,6 +55,9 @@
 	
 	@Resource
 	private DailyCountOrderService dailyCountOrderService;
+	
+	@Resource
+	private DailyCountMomentsService dailyCountMomentsService;
 	
 	
 	private void verifyQueryData(String callback, Integer dateType, String year, String startTime, 
@@ -898,7 +903,7 @@
 	
 	
 	/**
-	 * 鐢ㄦ埛鐩稿叧鍥捐〃鏁版嵁
+	 * 璁㈠崟鐩稿叧鍥捐〃鏁版嵁
 	 * @param callback
 	 * @param dateType
 	 * @param year
@@ -1027,4 +1032,87 @@
 		}
 		return list;
 	}
+	
+	
+	
+	@RequestMapping(value = "getMomentsCharts")
+	public void getMomentsCharts(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());
+			}
+			
+			if (typelList == null || typelList.size() == 0) {
+				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("浼犻�掔被鍨嬮敊璇�"));
+				return;
+			}
+			
+			
+			JSONArray line_list = new JSONArray();
+			for (String type: typelList) {
+				List<DailyCountMoments> listData = dailyCountMomentsService.getDailyCountList(type, beginDate, endDate);
+				// 澶勭悊鏁版嵁
+				List<Object> list = machineDailyCountMoments(dateList, dateType, listData);
+				
+				JSONObject innerList = new JSONObject();
+				innerList.put("name", dailyCountMomentsService.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> machineDailyCountMoments(List<String> dateList, Integer dateType, List<DailyCountMoments> listData) {
+		List<Object> list = new ArrayList<>();
+		for (String date: dateList) {
+			BigDecimal result = new BigDecimal(0);
+			
+			if (listData != null) {
+				for (DailyCountMoments history: listData) {
+					if (dateType == 1) {
+						String gernalTime = TimeUtil.getGernalTime(history.getDay().getTime());
+						if (gernalTime.equalsIgnoreCase(date)) {
+							result = MoneyBigDecimalUtil.add(result, history.getTotal());
+						}
+					} 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