From 92c681fabac989d1a9f16fa13202d7f5ccac52d9 Mon Sep 17 00:00:00 2001 From: yujian <yujian> Date: 星期一, 14 一月 2019 10:22:22 +0800 Subject: [PATCH] 订单优化 + 后台提现曲线图 --- fanli/src/main/java/com/yeshi/fanli/controller/admin/UserInfoAdminController.java | 316 ++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 293 insertions(+), 23 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/admin/UserInfoAdminController.java b/fanli/src/main/java/com/yeshi/fanli/controller/admin/UserInfoAdminController.java index a9db663..3fddce4 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/admin/UserInfoAdminController.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/admin/UserInfoAdminController.java @@ -4,6 +4,7 @@ import java.io.FileInputStream; import java.io.InputStream; import java.io.PrintWriter; +import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; @@ -32,6 +33,7 @@ import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; +import com.yeshi.fanli.controller.admin.utils.AdminUtils; import com.yeshi.fanli.entity.admin.UserInfoAdmin; import com.yeshi.fanli.entity.bus.user.AccountDetails; import com.yeshi.fanli.entity.bus.user.Extract; @@ -657,8 +659,6 @@ return; } - //double sumMoney = userInfoService.querySumMoney(key, userType, days, startTime, endTime); - long count = userInfoService.queryCount(key, userType, days, startTime, endTime); int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1); @@ -706,7 +706,7 @@ long countGold = userInfoCountService.countRank(3); // 缁熻鎵�鏈夋�婚噾棰� - double countTotalMoney = userInfoCountService.countAllMoney(null); + BigDecimal countTotalMoney = userInfoCountService.countAllMoney(null); // 缁熻鎵�鏈夊彲鎻愮幇閲戦 String minMoney = configService.get(Constant.EXTRACT_MIN_MONEY); @@ -714,7 +714,7 @@ minMoney = "20"; double min = Double.parseDouble(minMoney); - double countCanAssets = userInfoCountService.countAllMoney(min); + BigDecimal countCanAssets = userInfoCountService.countAllMoney(min); JSONObject data = new JSONObject(); data.put("countTotal", countTotal); @@ -1191,30 +1191,117 @@ @RequestMapping(value = "getSameDayUserByChannel") public void getSameDayUserByChannel(String callback, String channelArray, Integer dateType, String year, String startTime, String endTime, PrintWriter out) { - if (StringUtil.isNullOrEmpty(channelArray)) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇烽�夋嫨缁熻瀵瑰簲鍚嶇О")); + + + String validateMsg = AdminUtils.validateParams(dateType, startTime, endTime); + if (validateMsg != null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(validateMsg)); return; } - if (dateType == null) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇烽�夋嫨鎺掑垪鏂瑰紡")); - return; + if (dateType != 1 && (!StringUtil.isNullOrEmpty(startTime) || !StringUtil.isNullOrEmpty(endTime))) { + startTime = null; + endTime = null; } - if (dateType == 1 && (StringUtil.isNullOrEmpty(startTime) && StringUtil.isNullOrEmpty(endTime))) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇烽�夋嫨鏃堕棿鍖洪棿")); - return; + 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"); + } + + + 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; } - 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; + try { + + Gson gson = new Gson(); + Object objectDate = null; + List<String> dateList = AdminUtils.getDateList(dateType, startTime, endTime, year); + + JSONArray line_list = new JSONArray(); + for (String channel : channelList) { + + List<Map<String, Object>> list = userActiveLogService.countSameDayByChannel(channel, + dateType, year, startTime, endTime); + + if ("all".equalsIgnoreCase(channel)) { + channel = "鎬昏"; + } + + JSONObject innerList = new JSONObject(); + innerList.put("name", channel); + + if (dateType != 3) { + innerList.put("data", gson.toJson(AdminUtils.dayOrMonthDataFactory(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); + + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); + + } catch (Exception e) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔寮傚父")); + e.printStackTrace(); } + } + + + /** + * 鏍规嵁娓犻亾 缁熻褰撴棩鏂板鐢ㄦ埛鏁伴噺 + * @param channelArray 鍚嶅瓧鏁扮粍 + * @param dateType 绫诲瀷 1鏃� 2鏈� 3骞� + * @param year 2018 + * @param startTime 2018-12-01 + * @param endTime 2018-12-01 + * @param out + */ + @RequestMapping(value = "getBuyProportion") + public void getBuyProportion(String callback, String channelArray, Integer dateType, + String year, String startTime, String endTime, Integer orderNum, PrintWriter out) { if (dateType != 1 && (!StringUtil.isNullOrEmpty(startTime) || !StringUtil.isNullOrEmpty(endTime))) { startTime = null; @@ -1235,12 +1322,12 @@ for (String channel: list) { JSONObject channelData = new JSONObject(); - List<Object> resultList = userActiveLogService.countSameDayByChannel(channel, dateType, year, startTime, endTime); + List<Object> resultList = userActiveLogService.getBuyProportion(channel, dateType, year, startTime, endTime, orderNum); if (resultList == null) { resultList = new ArrayList<Object>(); } channelData.put("name", channel); - channelData.put("infos", resultList); + channelData.put("data_list", resultList); array.add(channelData); } @@ -1252,7 +1339,190 @@ JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔寮傚父")); e.printStackTrace(); } - - } + + + /** + * 褰撳懆浜х敓3鍗曠殑鏂板鐢ㄦ埛姒傜巼 + * @param callback + * @param channelArray 娓犻亾鍚嶇О + * @param startTime + * @param endTime + * @param orderNum 璁㈠崟鏁伴噺 + * @param out + */ + @RequestMapping(value = "getWeekProportion") + public void getWeekProportion(String callback, String channelArray, String startTime, String endTime, + Integer orderNum, PrintWriter out) { + + if (StringUtil.isNullOrEmpty(startTime) || StringUtil.isNullOrEmpty(endTime)) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇烽�夋嫨姝g‘鏃堕棿鍖洪棿")); + return; + } + + try { + + if (orderNum == null ) { + orderNum = 0; + } + + + 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 = userActiveLogService.countOneWeekUserInfo(channel, + startTime, endTime, orderNum); + + 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); + + } catch (Exception e) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔寮傚父")); + e.printStackTrace(); + } + } + + /** + * 鐢ㄦ埛缁熻 锛氭�荤敤鎴枫�佹祦澶辩敤鎴锋暟閲忋�佺疮璁℃湁璐拱鐢ㄦ埛鏁� + * @param callback + * @param out + */ + @RequestMapping(value = "countUser") + public void countUser(String callback, PrintWriter out) { + try { + // 鎬荤敤鎴� + long totalUser = userInfoCountService.countNewUser(null, null); + // 娴佸け鐢ㄦ埛鏁伴噺锛�180澶╂湭浣跨敤鐧诲綍骞朵笖鏃犱换浣曡祫閲戞祦鍔ㄧ殑璐﹀彿鏁伴噺锛� + long loseUser = userInfoCountService.countLoseUser(180); + // 绱鏈夎喘涔扮敤鎴锋暟 + long orderUser = userInfoCountService.countHasOrderUser(); + + JSONObject data = new JSONObject(); + data.put("totalUser", totalUser); + data.put("loseUser", loseUser); + data.put("orderUser", orderUser); + + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); + } catch (Exception e) { + e.printStackTrace(); + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("缁熻寮傚父")); + } + + } + + /** + * 缁熻鍘嗗彶鏂板鐢ㄦ埛 + * @param callback + * @param dateType 绫诲瀷 1鏃� 2鏈� 3骞� + * @param year 2018 + * @param startTime 2018-12-01 + * @param endTime 2018-12-01 + * @param out + */ + @RequestMapping(value = "getNewUserCharts") + public void getNewUserCharts(String callback, Integer dateType, String year, String startTime, + String endTime, PrintWriter out) { + + String validateMsg = AdminUtils.validateParams(dateType, startTime, endTime); + if (validateMsg != null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(validateMsg)); + 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 { + + 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 = userInfoCountService + .countNewUserByDate(dateType, year, startTime, endTime); + + JSONObject innerList = new JSONObject(); + innerList.put("name", "鎬昏"); + + if (dateType != 3) { + innerList.put("data", gson.toJson(AdminUtils.dayOrMonthDataFactory(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); + + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); + + } catch (Exception e) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔寮傚父")); + e.printStackTrace(); + } + } + } -- Gitblit v1.8.0