From baacd1378b33c4a84ee7a4998fb08fd9979ee4e1 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 09 一月 2019 11:02:52 +0800
Subject: [PATCH] Merge branch 'dev-hongbao'

---
 fanli/src/main/java/com/yeshi/fanli/controller/admin/OrderAdminController.java |  505 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 491 insertions(+), 14 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/admin/OrderAdminController.java b/fanli/src/main/java/com/yeshi/fanli/controller/admin/OrderAdminController.java
index 13167df..96969f8 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/admin/OrderAdminController.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/admin/OrderAdminController.java
@@ -1,45 +1,522 @@
 package com.yeshi.fanli.controller.admin;
 
 import java.io.PrintWriter;
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 import javax.annotation.Resource;
+
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
 
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
+import org.yeshi.utils.JsonUtil;
 
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
 import com.yeshi.fanli.entity.admin.OrderAdmin;
+import com.yeshi.fanli.service.inter.count.HongBaoV2CountService;
 import com.yeshi.fanli.service.inter.hongbao.HongBaoService;
+import com.yeshi.fanli.service.inter.order.CommonOrderCountService;
 import com.yeshi.fanli.service.inter.order.OrderService;
 import com.yeshi.fanli.tag.PageEntity;
 import com.yeshi.fanli.util.Constant;
-import com.yeshi.fanli.util.GsonUtil;
-import org.yeshi.utils.JsonUtil;
-
-import net.sf.json.JSONObject;
+import com.yeshi.fanli.util.StringUtil;
 
 @Controller
 @RequestMapping("admin/new/api/v1/order")
 public class OrderAdminController {
-	
+
 	@Resource
 	private OrderService orderService;
-	
+
 	@Resource
 	private HongBaoService hongBaoService;
+
+	@Resource
+	private HongBaoV2CountService hongBaoV2CountService;
 	
-	@RequestMapping(value ="getOrderList",method=RequestMethod.POST)
-	public void getOrderList(int pageIndex,String key,PrintWriter out){
-		List<OrderAdmin> orderAdminList = hongBaoService.getOrderAdminList(pageIndex,key);
+	@Resource
+	private CommonOrderCountService commonOrderCountService;
+
+	@RequestMapping(value = "getOrderList", method = RequestMethod.POST)
+	public void getOrderList(int pageIndex, String key, PrintWriter out) {
+		List<OrderAdmin> orderAdminList = hongBaoService.getOrderAdminList(pageIndex, key);
 		int count = orderService.getCount(key);
-		int totalPage = count % Constant.PAGE_SIZE == 0 ? count
-				/ Constant.PAGE_SIZE : count / Constant.PAGE_SIZE + 1;
-		PageEntity pe = new PageEntity(pageIndex, Constant.PAGE_SIZE, count,
-				totalPage);
+		int totalPage = count % Constant.PAGE_SIZE == 0 ? count / Constant.PAGE_SIZE : count / Constant.PAGE_SIZE + 1;
+		PageEntity pe = new PageEntity(pageIndex, Constant.PAGE_SIZE, count, totalPage);
 		JSONObject data = new JSONObject();
 		data.put("pe", pe);
-		data.put("orderList",  JsonUtil.getSimpleGsonWithDateAndSerialization().toJson(orderAdminList));	
+		data.put("orderList", JsonUtil.getSimpleGsonWithDateAndSerialization().toJson(orderAdminList));
 		out.print(JsonUtil.loadTrueResult(data));
 	}
+
+	/**
+	 * 缁熻鍘嗗彶娓犻亾浜х敓璁㈠崟鐨勯噾棰�
+	 * 
+	 * @param callback
+	 * @param channelArray
+	 *            鍚嶅瓧鏁扮粍
+	 * @param type
+	 *            缁熻绫诲瀷 1-24灏忔椂 2-鎵�鏈�
+	 * @param dateType
+	 *            绫诲瀷 1鏃� 2鏈� 3骞�
+	 * @param year
+	 *            2018
+	 * @param startTime
+	 *            2018-12-01
+	 * @param endTime
+	 *            2018-12-01
+	 * @param out
+	 */
+	@RequestMapping(value = "getHistoryOderByChannel")
+	public void getHistoryOderByChannel(String callback, String channelArray, Integer dateType, Integer type,
+			String year, String startTime, String endTime, PrintWriter out) {
+
+		if (StringUtil.isNullOrEmpty(channelArray)) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇烽�夋嫨缁熻瀵瑰簲鍚嶇О"));
+			return;
+		}
+
+		if (dateType == null) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇烽�夋嫨鎺掑垪鏂瑰紡"));
+			return;
+		}
+
+		if (dateType == 1 && (StringUtil.isNullOrEmpty(startTime) && StringUtil.isNullOrEmpty(endTime))) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇烽�夋嫨鏃堕棿鍖洪棿"));
+			return;
+		}
+
+		if (!StringUtil.isNullOrEmpty(startTime) && StringUtil.isNullOrEmpty(endTime)) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇烽�夌粨鏉熸棩鏈�"));
+			return;
+		}
+
+		if (StringUtil.isNullOrEmpty(startTime) && !StringUtil.isNullOrEmpty(endTime)) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇烽�夎捣濮嬫棩鏈�"));
+			return;
+		}
+
+		if (dateType != 1 && (!StringUtil.isNullOrEmpty(startTime) || !StringUtil.isNullOrEmpty(endTime))) {
+			startTime = null;
+			endTime = null;
+		}
+
+		try {
+
+			Gson gson = new Gson();
+			List<String> list = gson.fromJson(channelArray, new TypeToken<ArrayList<String>>() {
+			}.getType());
+
+			if (list == null || list.size() == 0) {
+				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍙傛暟鏍煎紡涓嶆纭�"));
+				return;
+			}
+
+			JSONArray array = new JSONArray();
+
+			for (String channel : list) {
+				JSONObject channelData = new JSONObject();
+				List<Object> resultList = null;
+				if (type == 1) {
+					resultList = hongBaoService.count24HOderByChannel(channel, dateType, year, startTime, endTime);
+
+				} else if (type == 2) {
+					resultList = hongBaoService.countHistoryOderByChannel(channel, dateType, year, startTime, endTime);
+				}
+
+				if (resultList == null) {
+					resultList = new ArrayList<Object>();
+				}
+				channelData.put("name", channel);
+				channelData.put("data_list", resultList);
+				array.add(channelData);
+			}
+
+			JSONObject data = new JSONObject();
+			data.put("result_list", array);
+			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+
+		} catch (Exception e) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔寮傚父"));
+			e.printStackTrace();
+		}
+	}
+
+	/**
+	 * 楠岃瘉缁熻淇℃伅鍙傛暟
+	 * @param shwoType
+	 * @param startTime
+	 * @param endTime
+	 * @return
+	 */
+	public String validateParams(Integer shwoType, String startTime, String endTime) {
+
+		if (shwoType == null) {
+			return "璇烽�夋嫨瑙嗗浘绫诲瀷";
+		}
+
+		if (shwoType == 1 && (StringUtil.isNullOrEmpty(startTime) && StringUtil.isNullOrEmpty(endTime))) {
+			return "璇烽�夋嫨鏃堕棿鍖洪棿";
+		}
+
+		if (!StringUtil.isNullOrEmpty(startTime) && StringUtil.isNullOrEmpty(endTime)) {
+			return "璇烽�夌粨鏉熸棩鏈�";
+		}
+
+		if (StringUtil.isNullOrEmpty(startTime) && !StringUtil.isNullOrEmpty(endTime)) {
+			return "璇烽�夎捣濮嬫棩鏈�";
+		}
+
+		return null;
+	}
+	
+	
+	
+	/**
+	 * 缁熻鎻愮幇鐢宠鎬绘鏁�
+	 * @param callback
+	 * @param channelArray 娓犻亾鍚� 涓虹┖鏄粺璁℃墍鏈�
+	 * @param dateType     鏄剧ず瑙嗗浘锛氭棩-1 銆佹湀-2銆� 骞�-3
+	 * @param state 鐘舵�侊細  1-鏈埌璐� 2-宸插埌璐�  3-宸插け鏁�
+	 * @param year 
+	 * @param startTime
+	 * @param endTime
+	 * @param out
+	 */
+	@RequestMapping(value = "getHongBaoNum")
+	public void getHongBaoNum(String callback,String channelArray, Integer dateType, Integer state,
+			String year, String startTime, String endTime, PrintWriter out) {
+
+		String validateMsg = validateParams(dateType, startTime, endTime);
+		if (validateMsg != null) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(validateMsg));
+			return;
+		}
+
+		try {
+			JSONObject data = countHongBao(channelArray, dateType, state, year, startTime,  endTime, 1);
+			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+		} catch (Exception e) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("绯荤粺寮傚父"));
+			e.printStackTrace();
+		}
+	}
+
+	/**
+	 * 缁熻鎻愮幇鐢宠鎬婚噾棰�
+	 * @param callback
+	 * @param channelArray 娓犻亾鍚� 涓虹┖鏄粺璁℃墍鏈�
+	 * @param dateType     鏄剧ず瑙嗗浘锛氭棩-1 銆佹湀-2銆� 骞�-3
+	 * @param state 鐘舵�侊細  1-鏈埌璐� 2-宸插埌璐�  3-宸插け鏁�
+	 * @param year 
+	 * @param startTime
+	 * @param endTime
+	 * @param out
+	 */
+	@RequestMapping(value = "getHongBaoMoney")
+	public void getHongBaoMoney(String callback,String channelArray, Integer dateType, Integer state,
+			String year, String startTime, String endTime, PrintWriter out) {
+
+		String validateMsg = validateParams(dateType, startTime, endTime);
+		if (validateMsg != null) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(validateMsg));
+			return;
+		}
+
+		try {
+			JSONObject data = countHongBao( channelArray, dateType, state, year, startTime, endTime, 2);
+			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+		} catch (Exception e) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("绯荤粺寮傚父"));
+			e.printStackTrace();
+		}
+	}
+
+	
+
+	
+	/**
+	 * 缁熻绾㈠寘淇℃伅
+	 * @param channelArray
+	 * @param dateType
+	 * @param state
+	 * @param year
+	 * @param startTime
+	 * @param endTime
+	 * @return
+	 * @throws Exception
+	 */
+	public JSONObject countHongBao(String channelArray, Integer dateType, Integer state, String year, String startTime,
+			String endTime, int countType) throws Exception {
+
+		if (dateType != 1 && (!StringUtil.isNullOrEmpty(startTime) || !StringUtil.isNullOrEmpty(endTime))) {
+			startTime = null;
+			endTime = null;
+		}
+
+		List<String> channelList = null;
+		if (channelArray != null && channelArray.trim().length() > 0) {
+			Gson gson = new Gson();
+			channelList = gson.fromJson(channelArray, new TypeToken<ArrayList<String>>() {}.getType());
+		}
+
+		if (channelList == null || channelList.size() == 0) {
+			channelList = new ArrayList<String>();
+			channelList.add("all");
+		}
+
+		JSONArray array = new JSONArray();
+		for (String channel : channelList) {
+			JSONObject channelData = new JSONObject();
+
+			
+			List<Map<String, Object>> resultList = null;
+			if (countType == 1 ) {
+				resultList = hongBaoV2CountService.countHongBaoNum(channel, dateType, state, year, 
+						startTime, endTime);
+			} else if (countType == 2) {
+				resultList = hongBaoV2CountService.countHongBaoMoney(channel, dateType, state, year, 
+						startTime, endTime);
+			}
+
+			if (resultList == null) {
+				resultList = new ArrayList<Map<String, Object>>();
+			}
+
+			if ("all".equalsIgnoreCase(channel)) {
+				channel = "鎬昏";
+			}
+			channelData.put("name", channel);
+			channelData.put("data_list", resultList);
+			array.add(channelData);
+		}
+
+		JSONObject data = new JSONObject();
+		data.put("result_list", array);
+		
+		return data;
+	}
+
+	
+	/**
+	 * 鍒嗙被鍨嬭鍗曟暟涓庢瘮渚� 
+	 * @param callback
+	 * @param dateType 鏃� -1 鏈�-2 骞�-3
+	 * @param type     杩斿埄璁㈠崟-1  鍒嗕韩璁㈠崟-2  閭�璇疯鍗�-3 
+	 * @param year
+	 * @param startTime
+	 * @param endTime
+	 * @param out
+	 */
+	@RequestMapping(value = "getTypeRate")
+	public void getTypeRate(String callback, Integer dateType, Integer type, String year,
+			String startTime, String endTime, PrintWriter out) {
+		
+		if (StringUtil.isNullOrEmpty(startTime) || StringUtil.isNullOrEmpty(endTime)) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇烽�夋嫨姝g‘鏃堕棿鍖洪棿"));
+			return;
+		}
+		
+		if (type == null || dateType ==null) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("瑙嗗浘绫诲瀷銆佽鍗曠被鍨嬩笉鑳戒负绌�"));
+			return;
+		}
+		
+		try {
+
+			List<Map<String, Object>> resultList = hongBaoV2CountService.getProportionByType(dateType,
+					type, year, startTime, endTime);
+			
+			if (resultList == null) {
+				resultList = new ArrayList<Map<String, Object>>();
+			}
+
+			JSONObject innerList = new JSONObject();
+			if (type == 1) {
+				innerList.put("name", "杩斿埄璁㈠崟");
+			} else if (type == 2) {
+				innerList.put("name", "鍒嗕韩璁㈠崟");
+			} else if (type == 3) {
+				innerList.put("name", "閭�璇疯鍗�");
+			}
+			innerList.put("data_list", resultList);
+			
+			JSONArray outList = new JSONArray();
+			outList.add(innerList);
+			
+			JSONObject data = new JSONObject();
+			data.put("result_list", outList);
+			
+			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+
+		} catch (Exception e) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔寮傚父"));
+			e.printStackTrace();
+		}
+	}
+	
+	/**
+	 * 璁㈠崟璺熻釜鍑嗙‘鐜�(杩斿埄鍒哥敤鎴疯鍗�/娣樺疂鑱旂洘璁㈠崟)
+	 * @param callback
+	 * @param dateType
+	 * @param year
+	 * @param startTime
+	 * @param endTime
+	 * @param out
+	 */
+	@RequestMapping(value = "getTrackAccuracyRate")
+	public void getTrackAccuracyRate(String callback, Integer dateType, String year,
+			String startTime, String endTime, PrintWriter out) {
+		
+		if (StringUtil.isNullOrEmpty(startTime) || StringUtil.isNullOrEmpty(endTime)) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇烽�夋嫨姝g‘鏃堕棿鍖洪棿"));
+			return;
+		}
+		
+		try {
+
+			List<Map<String, Object>> resultList = commonOrderCountService.getTrackAccuracyRate(dateType,
+					 year, startTime, endTime);
+			
+			if (resultList == null) {
+				resultList = new ArrayList<Map<String, Object>>();
+			}
+			
+			JSONObject innerList = new JSONObject();
+			innerList.put("name", "鍑嗙‘鐜�");
+			innerList.put("data_list", resultList);
+			
+			JSONArray outList = new JSONArray();
+			outList.add(innerList);
+			
+			JSONObject data = new JSONObject();
+			data.put("result_list", outList);
+			
+			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+
+		} catch (Exception e) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔寮傚父"));
+			e.printStackTrace();
+		}
+	}
+	
+	
+	/**
+	 * 褰撳墠鏈敹璐ц鍗曟暟
+	 * @param callback
+	 * @param type 璁㈠崟鐘舵��-鏆傛湭浣跨敤
+	 * @param out
+	 */
+	@RequestMapping(value = "getHistoryUnreceived")
+	public void getHistoryUnreceived(String callback, Integer type, PrintWriter out) {
+		try {
+			
+			Long total = commonOrderCountService.countByState(1);
+			if (total == null) {
+				total = 0L;
+			}
+			JSONObject data = new JSONObject();
+			data.put("total", total);
+			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+		} catch (Exception e) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔寮傚父"));
+			e.printStackTrace();
+		}
+	}
+	
+	
+	
+	/**
+	 * 缁存潈璁㈠崟鏁�
+	 * @param callback
+	 * @param dateType
+	 * @param year
+	 * @param startTime
+	 * @param endTime
+	 * @param out
+	 */
+	@RequestMapping(value = "getWeiQaunOrderNumber")
+	public void getWeiQaunOrderNumber(String callback, Integer dateType, String year,
+			String startTime, String endTime, PrintWriter out) {
+		
+		if (StringUtil.isNullOrEmpty(startTime) || StringUtil.isNullOrEmpty(endTime)) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇烽�夋嫨姝g‘鏃堕棿鍖洪棿"));
+			return;
+		}
+		try {
+
+			List<Map<String, Object>> resultList = commonOrderCountService.countWeiQaunOrderNumber(dateType,
+					 year, startTime, endTime);
+			
+			if (resultList == null) {
+				resultList = new ArrayList<Map<String, Object>>();
+			}
+
+			JSONObject innerList = new JSONObject();
+			innerList.put("name", "鏁伴噺");
+			innerList.put("data_list", resultList);
+			
+			JSONArray outList = new JSONArray();
+			outList.add(innerList);
+			
+			JSONObject data = new JSONObject();
+			data.put("result_list", outList);
+			
+			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+
+		} catch (Exception e) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔寮傚父"));
+			e.printStackTrace();
+		}
+	}
+	
+	
+	/**
+	 * 缁存潈璁㈠崟閲戦
+	 * @param callback
+	 * @param dateType
+	 * @param year
+	 * @param startTime
+	 * @param endTime
+	 * @param out
+	 */
+	@RequestMapping(value = "getWeiQaunOrderMoney")
+	public void getWeiQaunOrderMoney(String callback, Integer dateType, String year,
+			String startTime, String endTime, PrintWriter out) {
+		
+		if (StringUtil.isNullOrEmpty(startTime) || StringUtil.isNullOrEmpty(endTime)) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇烽�夋嫨姝g‘鏃堕棿鍖洪棿"));
+			return;
+		}
+		try {
+
+			List<Map<String, Object>> resultList = commonOrderCountService.countWeiQaunOrderMoney(dateType,
+					 year, startTime, endTime);
+			
+			if (resultList == null) {
+				resultList = new ArrayList<Map<String, Object>>();
+			}
+
+			JSONObject innerList = new JSONObject();
+			innerList.put("name", "閲戦");
+			innerList.put("data_list", resultList);
+			
+			JSONArray outList = new JSONArray();
+			outList.add(innerList);
+			
+			JSONObject data = new JSONObject();
+			data.put("result_list", outList);
+			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+
+		} catch (Exception e) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔寮傚父"));
+			e.printStackTrace();
+		}
+	}
+	
 }

--
Gitblit v1.8.0