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