From de8028ab8aed98011ae282ffefafe6d6bb3e2d78 Mon Sep 17 00:00:00 2001
From: yujian <yujian>
Date: 星期五, 26 四月 2019 14:10:38 +0800
Subject: [PATCH] 动态查询优化-后台
---
fanli/src/main/java/com/yeshi/fanli/controller/admin/OrderAdminController.java | 466 +++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 316 insertions(+), 150 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 54bd45d..26bc9ed 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
@@ -6,22 +6,18 @@
import java.util.Map;
import javax.annotation.Resource;
-
-import net.sf.json.JSONArray;
-import net.sf.json.JSONObject;
+import javax.servlet.http.HttpServletRequest;
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.controller.admin.utils.AdminUtils;
-import com.yeshi.fanli.entity.admin.OrderAdmin;
import com.yeshi.fanli.exception.order.CommonOrderException;
import com.yeshi.fanli.service.inter.count.HongBaoV2CountService;
-import com.yeshi.fanli.service.inter.hongbao.HongBaoService;
+import com.yeshi.fanli.service.inter.count.TaoBaoOrderCountService;
import com.yeshi.fanli.service.inter.order.CommonOrderCountService;
import com.yeshi.fanli.service.inter.order.CommonOrderService;
import com.yeshi.fanli.service.inter.order.OrderService;
@@ -30,7 +26,9 @@
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.vo.order.CommonOrderVO;
-import com.yeshi.fanli.vo.order.TaoBaoOrderVO;
+
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
@Controller
@RequestMapping("admin/new/api/v1/order")
@@ -39,8 +37,6 @@
@Resource
private OrderService orderService;
- @Resource
- private HongBaoService hongBaoService;
@Resource
private HongBaoV2CountService hongBaoV2CountService;
@@ -53,24 +49,48 @@
@Resource
private TaoBaoOrderService taoBaoOrderService;
+
+ @Resource
+ private TaoBaoOrderCountService taoBaoOrderCountService;
+ /**
+ * 缁熻鍘嗗彶璁㈠崟-娣樺疂璁㈠崟
+ * @param callback
+ * @param request
+ * @param out
+ */
+ @RequestMapping(value = "countTaoBaoOrder")
+ public void countTaoBaoOrder(String callback, HttpServletRequest request, PrintWriter out) {
- @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);
- JSONObject data = new JSONObject();
- data.put("pe", pe);
- data.put("orderList", JsonUtil.getSimpleGsonWithDateAndSerialization().toJson(orderAdminList));
- out.print(JsonUtil.loadTrueResult(data));
+ try {
+ Map<String, Object> countByOdrerType = taoBaoOrderCountService.countByOdrerType();
+
+ JSONObject data = new JSONObject();
+ data.put("typeOrder", countByOdrerType);
+
+ // 缁熻浠婃棩 鏈け鏁堣鍗曟暟閲� 鐩稿悓璁㈠崟鍙峰悎骞朵负涓�鍗�
+ int todayOrder = taoBaoOrderCountService.countToday();
+ // 缁熻鏄ㄦ棩 鏈け鏁堣鍗曟暟閲� 鐩稿悓璁㈠崟鍙峰悎骞朵负涓�鍗�
+ int yesterdayOrder = taoBaoOrderCountService.countYesterday();
+
+ data.put("todayOrder", todayOrder);
+ data.put("yesterdayOrder", yesterdayOrder);
+
+ data.put("genzong", yesterdayOrder);
+ data.put("yesterdayOrder", yesterdayOrder);
+
+ JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+
+ } catch (Exception e) {
+ JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("缁熻澶辫触"));
+ e.printStackTrace();
+ }
}
/**
- * 娣樺疂璁㈠崟
+ * 鏌ヨ鎵�鏈夌敤鎴疯鍗曞垪琛�
* @param callback
* @param pageIndex
* @param pageSize
@@ -83,16 +103,25 @@
* @param endTime
* @param out
*/
- @RequestMapping(value = "getTBOrder")
- public void getTBOrder(String callback, Integer pageIndex, Integer keyType,
- String key, Integer state, String startTime, String endTime, PrintWriter out) {
+ @RequestMapping(value = "getUserOrderList")
+ public void getUserOrderList(String callback, Integer pageIndex, Integer pageSize, Integer keyType,
+ String key, Integer state, Integer type, Integer orderState, String startTime, String endTime,
+ PrintWriter out) {
+
if (pageIndex == null || pageIndex < 1) {
pageIndex = 1;
}
+ if (pageSize == null)
+ pageSize = Constant.PAGE_SIZE;
+
if (state != null && state == 0) {
state = null;// 鎵�鏈夌姸鎬�
+ }
+
+ if (type != null && type == 0) {
+ type = null; // 鎵�鏈夌被鍨嬭鍗�
}
if (endTime != null && endTime.trim().length() > 0) {
@@ -100,46 +129,24 @@
}
try {
-
long count = 0;
- int pageSize = Constant.PAGE_SIZE;
- List<TaoBaoOrderVO> listVO = null;
-
- if (key != null && key.trim().length() > 0 && keyType == 2) {
-
- // 鏌ヨ鍒楄〃
- List<CommonOrderVO> list = commonOrderService.listQueryByUid((pageIndex - 1) * pageSize, pageSize ,
- Long.parseLong(key), state, null, null, null, startTime, endTime, null);
-
- if (list == null || list.size() == 0) {
- JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏆傛棤鏁版嵁"));
- return;
- }
-
- // 缁熻鎬绘暟
- count = commonOrderService.countQueryByUid(Long.parseLong(key), state, null, null, null, startTime, endTime, null);
-
- } else {
-
- List<TaoBaoOrderVO> listQuery = taoBaoOrderService.listQuery((pageIndex - 1) * pageSize, pageSize, key, startTime, endTime, state);
-
- if (listQuery == null || listQuery.size() == 0) {
- JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏆傛棤鏁版嵁"));
- return;
- }
-
- count= taoBaoOrderService.countQuery(key, startTime, endTime, state);
-
- }
-
+ // 鏌ヨ鍒楄〃
+ List<CommonOrderVO> list = commonOrderService.listQuery((pageIndex - 1) * pageSize, pageSize,
+ keyType, key, state, type, orderState, startTime, endTime);
+
+
+ if (list != null && list.size() > 0) {
+ // 缁熻鎬绘暟
+ count = commonOrderService.countQuery(keyType, key, state, type, orderState, startTime, endTime);
+ }
int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage);
JSONObject data = new JSONObject();
data.put("pe", pe);
- data.put("result_list", listVO);
+ data.put("result_list", list);
JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
@@ -150,9 +157,23 @@
e.printStackTrace();
}
}
-
-
+
+
+ /**
+ * 鏌ヨ璁㈠崟鍒楄〃鐢ㄦ埛uid
+ * @param callback
+ * @param pageIndex
+ * @param pageSize
+ * @param uid
+ * @param state
+ * @param type
+ * @param orderState
+ * @param orderNo
+ * @param startTime
+ * @param endTime
+ * @param out
+ */
@RequestMapping(value = "getHistoryOrder")
public void getHistoryOrder(String callback, Integer pageIndex, Integer pageSize, Long uid, Integer state, Integer type,
Integer orderState, String orderNo, String startTime, String endTime, PrintWriter out) {
@@ -229,8 +250,8 @@
* 2018-12-01
* @param out
*/
- @RequestMapping(value = "getOderChannelCharts")
- public void getOderChannelCharts(String callback, String channelArray, Integer dateType, Integer type,
+ @RequestMapping(value = "get24HOderChannelCharts")
+ public void get24HOderChannelCharts(String callback, String channelArray, Integer dateType,
String year, String startTime, String endTime, PrintWriter out) {
String validateMsg = AdminUtils.validateParams(dateType, startTime, endTime);
@@ -284,14 +305,10 @@
List<String> dateList = AdminUtils.getDateList(dateType, startTime, endTime, year);
JSONArray line_list = new JSONArray();
+
for (String channel : channelList) {
- List<Map<String, Object>> list = null;
- if (type == 1) {
- list = hongBaoService.count24HOderByChannel(channel, dateType, year, startTime, endTime);
+ List<Map<String, Object>> list = hongBaoV2CountService.count24HOderByChannel(channel, dateType, year, startTime, endTime);
- } else if (type == 2) {
- list = hongBaoService.countHistoryOderByChannel(channel, dateType, year, startTime, endTime);
- }
if ("all".equalsIgnoreCase(channel)) {
channel = "鎬昏";
@@ -301,7 +318,7 @@
innerList.put("name", channel);
if (dateType != 3) {
- innerList.put("data", gson.toJson(AdminUtils.dayOrMonthDataFactory(dateList, list)));
+ innerList.put("data", gson.toJson(AdminUtils.dayOrMonthDataFactory(dateType, dateList, list)));
} else {
// 骞磋鍥�
Map<String, Object> map = AdminUtils.yearsDataFactory(list);
@@ -387,7 +404,7 @@
try {
- JSONObject data = countHistoryHongBao(channelArray, dateType, state, year, startTime, endTime, 1);
+ JSONObject data = countHistoryHongBao(channelArray, dateType, state, year, startTime, endTime, 2);
JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
} catch (Exception e) {
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("绯荤粺寮傚父"));
@@ -477,7 +494,7 @@
innerList.put("name", channel);
if (dateType != 3) {
- innerList.put("data", gson.toJson(AdminUtils.dayOrMonthDataFactory(dateList, list)));
+ innerList.put("data", gson.toJson(AdminUtils.dayOrMonthDataFactory(dateType, dateList, list)));
} else {
// 骞磋鍥�
Map<String, Object> map = AdminUtils.yearsDataFactory(list);
@@ -515,44 +532,101 @@
* @param endTime
* @param out
*/
- @RequestMapping(value = "getTypeRate")
- public void getTypeRate(String callback, Integer dateType, Integer type, String year,
+ @RequestMapping(value = "getTypeNumber")
+ public void getTypeNumber(String callback, Integer dateType, String typeArray, String year,
String startTime, String endTime, PrintWriter out) {
- if (StringUtil.isNullOrEmpty(startTime) || StringUtil.isNullOrEmpty(endTime)) {
- JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇烽�夋嫨姝g‘鏃堕棿鍖洪棿"));
+ String validateMsg = AdminUtils.validateParams(dateType, startTime, endTime);
+ if (validateMsg != null) {
+ JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(validateMsg));
return;
}
- if (type == null || dateType ==null) {
- JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("瑙嗗浘绫诲瀷銆佽鍗曠被鍨嬩笉鑳戒负绌�"));
+ if (dateType != 1 && (!StringUtil.isNullOrEmpty(startTime) || !StringUtil.isNullOrEmpty(endTime))) {
+ startTime = null;
+ endTime = null;
+ }
+
+
+ List<Integer> channelList = null;
+ if (typeArray != null && typeArray.trim().length() > 0) {
+ Gson gson = new Gson();
+ channelList = gson.fromJson(typeArray, new TypeToken<ArrayList<Integer>>() {}.getType());
+ }
+
+ if (channelList == null || channelList.size() == 0) {
+ JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璁㈠崟绫诲瀷涓嶈兘涓虹┖"));
return;
}
+
+
+ if (dateType == 1 && year != null) {
+ year = null; // 璁剧疆涓虹┖
+ } else if (dateType == 2) {
+ if (startTime != null)
+ startTime = null;
+
+ if (endTime != null)
+ endTime = null;
+
+ } else if (dateType == 3) {
+ if (year != null)
+ year = null;
+
+ if (startTime != null)
+ startTime = null;
+
+ if (endTime != null)
+ endTime = null;
+ }
+
+ Gson gson = new Gson();
+ Object objectDate = null;
+ List<String> dateList = AdminUtils.getDateList(dateType, startTime, endTime, year);
try {
- List<Map<String, Object>> resultList = hongBaoV2CountService.getProportionByType(dateType,
- type, year, startTime, endTime);
- if (resultList == null) {
- resultList = new ArrayList<Map<String, Object>>();
+ JSONArray line_list = new JSONArray();
+ for (Integer type : channelList) {
+
+ List<Map<String, Object>> list = hongBaoV2CountService.countHongBaoType(dateType,
+ type, year, startTime, endTime);
+
+
+ JSONObject innerList = new JSONObject();
+ if (type == 1) {
+ innerList.put("name", "杩斿埄璁㈠崟");
+ } else if (type == 2) {
+ innerList.put("name", "鍒嗕韩璁㈠崟");
+ } else if (type == 3) {
+ innerList.put("name", "閭�璇疯鍗�");
+ }
+
+ if (dateType != 3) {
+ innerList.put("data", gson.toJson(AdminUtils.dayOrMonthDataFactory(dateType, dateList, list)));
+ } else {
+ // 骞磋鍥�
+ Map<String, Object> map = AdminUtils.yearsDataFactory(list);
+
+ if (objectDate == null) {
+ objectDate = map.get("date");
+ }
+ innerList.put("data", gson.toJson(map.get("value")));
+ }
+
+ line_list.add(innerList);
}
- 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);
+ if (objectDate != null) {
+ data.put("xAxis_list", gson.toJson(objectDate));
+ } else {
+ data.put("xAxis_list", gson.toJson(dateList));
+ }
+
+ data.put("line_list", line_list);
JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
@@ -575,30 +649,69 @@
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;
+
+ if (dateType != 1 && (!StringUtil.isNullOrEmpty(startTime) || !StringUtil.isNullOrEmpty(endTime))) {
+ startTime = null;
+ endTime = null;
+ }
+
+ if (dateType == 1 && year != null) {
+ year = null; // 璁剧疆涓虹┖
+ } else if (dateType == 2) {
+ if (startTime != null)
+ startTime = null;
+
+ if (endTime != null)
+ endTime = null;
+
+ } else if (dateType == 3) {
+ if (year != null)
+ year = null;
+
+ if (startTime != null)
+ startTime = null;
+
+ if (endTime != null)
+ endTime = null;
}
try {
-
- List<Map<String, Object>> resultList = commonOrderCountService.getTrackAccuracyRate(dateType,
+
+ Gson gson = new Gson();
+ Object objectDate = null;
+ List<String> dateList = AdminUtils.getDateList(dateType, startTime, endTime, year);
+
+ JSONArray line_list = new JSONArray();
+
+ List<Map<String, Object>> list = commonOrderCountService.getTrackAccuracyRate(dateType,
year, startTime, endTime);
- if (resultList == null) {
- resultList = new ArrayList<Map<String, Object>>();
+ JSONObject innerList = new JSONObject();
+ innerList.put("name", "鎬昏");
+
+ if (dateType != 3) {
+ innerList.put("data", gson.toJson(AdminUtils.dayOrMonthDataFactory(dateType, dateList, list)));
+ } else {
+ // 骞磋鍥�
+ Map<String, Object> map = AdminUtils.yearsDataFactory(list);
+
+ if (objectDate == null) {
+ objectDate = map.get("date");
+ }
+ innerList.put("data", gson.toJson(map.get("value")));
}
- JSONObject innerList = new JSONObject();
- innerList.put("name", "鍑嗙‘鐜�");
- innerList.put("data_list", resultList);
-
- JSONArray outList = new JSONArray();
- outList.add(innerList);
-
+ line_list.add(innerList);
+
+
JSONObject data = new JSONObject();
- data.put("result_list", outList);
+ if (objectDate != null) {
+ data.put("xAxis_list", gson.toJson(objectDate));
+ } else {
+ data.put("xAxis_list", gson.toJson(dateList));
+ }
+ data.put("line_list", line_list);
JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
} catch (Exception e) {
@@ -646,33 +759,17 @@
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‘鏃堕棿鍖洪棿"));
+ String validateMsg = AdminUtils.validateParams(dateType, startTime, endTime);
+ if (validateMsg != null) {
+ JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(validateMsg));
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);
-
+ JSONObject data = countWeiQaunOrder(dateType, year, startTime, endTime, 1);
JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
-
} catch (Exception e) {
- JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔寮傚父"));
+ JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("绯荤粺寮傚父"));
e.printStackTrace();
}
}
@@ -691,34 +788,103 @@
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‘鏃堕棿鍖洪棿"));
+ String validateMsg = AdminUtils.validateParams(dateType, startTime, endTime);
+ if (validateMsg != null) {
+ JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(validateMsg));
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);
+ JSONObject data = countWeiQaunOrder(dateType, year, startTime, endTime, 2);
JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
-
} catch (Exception e) {
- JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔寮傚父"));
+ 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 countWeiQaunOrder(Integer dateType, String year, String startTime,
+ String endTime, int countType) throws Exception {
+
+ if (dateType != 1 && (!StringUtil.isNullOrEmpty(startTime) || !StringUtil.isNullOrEmpty(endTime))) {
+ startTime = null;
+ endTime = null;
+ }
+
+ if (dateType == 1 && year != null) {
+ year = null; // 璁剧疆涓虹┖
+ } else if (dateType == 2) {
+ if (startTime != null)
+ startTime = null;
+
+ if (endTime != null)
+ endTime = null;
+
+ } else if (dateType == 3) {
+ if (year != null)
+ year = null;
+
+ if (startTime != null)
+ startTime = null;
+
+ if (endTime != null)
+ endTime = null;
+ }
+
+ Gson gson = new Gson();
+ Object objectDate = null;
+ List<String> dateList = AdminUtils.getDateList(dateType, startTime, endTime, year);
+
+ JSONArray line_list = new JSONArray();
+ List<Map<String, Object>> list = null;
+ if (countType == 1 ) {
+ list = commonOrderCountService.countWeiQaunOrderNumber(dateType, year, startTime, endTime);
+ } else if (countType == 2) {
+ list = commonOrderCountService.countWeiQaunOrderMoney(dateType, year, startTime, endTime);
+ }
+
+
+ JSONObject innerList = new JSONObject();
+ innerList.put("name", "鎬昏");
+
+ if (dateType != 3) {
+ innerList.put("data", gson.toJson(AdminUtils.dayOrMonthDataFactory(dateType, dateList, list)));
+ } else {
+ // 骞磋鍥�
+ Map<String, Object> map = AdminUtils.yearsDataFactory(list);
+
+ if (objectDate == null) {
+ objectDate = map.get("date");
+ }
+ innerList.put("data", gson.toJson(map.get("value")));
+ }
+
+ line_list.add(innerList);
+
+
+ JSONObject data = new JSONObject();
+ if (objectDate != null) {
+ data.put("xAxis_list", gson.toJson(objectDate));
+ } else {
+ data.put("xAxis_list", gson.toJson(dateList));
+ }
+
+ data.put("line_list", line_list);
+
+ return data;
+ }
+
}
--
Gitblit v1.8.0