| @RequestMapping({"/getDataChart"}) @ResponseBody public Map<String, Object> getDataChart() { List<VisitorCounter> recentList = visitorCounterService.selectListDays(); List<VisitorCounter> list = visitorCounterService.selectAll(); Map<String, Integer> countMap = new HashMap<String, Integer>(); Map<String, Integer> countIpMap = new HashMap<String, Integer>(); Map<String, Integer> countMonthMap = new HashMap<String, Integer>(); recentList.stream().forEach(e -> { String dayNow = new SimpleDateFormat("MM-dd").format(e.getvDate()); countMap.put(dayNow, Tools.isEmpty(countMap.get(dayNow)) ? 1 : countMap.get(dayNow) + 1); }); list.stream().forEach(e -> { String MonthNow = new SimpleDateFormat("yyyy-MM").format(e.getvDate()); countIpMap.put(e.getIp(), Tools.isEmpty(countIpMap.get(e.getIp())) ? 1 : countIpMap.get(e.getIp()) + 1); countMonthMap.put(MonthNow, Tools.isEmpty(countMonthMap.get(MonthNow)) ? 1 : countMonthMap.get(MonthNow) + 1); }); Map<String, Object> map = new HashMap<String, Object>(); // 最近七日每天的访问数 Map<String, Integer> countViewMap = sortMapByKey(countMap, true); int chart1TotalCount = 0; List<String> chart1X = new ArrayList<String>(); List<Integer> chart1Y = new ArrayList<Integer>(); for (String key : countViewMap.keySet()) { chart1X.add(key); chart1Y.add(countViewMap.get(key)); chart1TotalCount += countViewMap.get(key); } map.put("chart1X", chart1X); map.put("chart1Y", chart1Y); map.put("chart1TotalCount", chart1TotalCount); // 历史访问前18位的ip和访问次数 Map<String, Integer> countIpViewMap = sortMapByValueInteger(countIpMap, false); List<String> chart2X = new ArrayList<String>(); List<Integer> chart2Y = new ArrayList<Integer>(); for (String key : countIpViewMap.keySet()) { chart2X.add(key); chart2Y.add(countIpViewMap.get(key)); } map.put("chart2X", chart2X); map.put("chart2Y", chart2Y); // 历史每月的访问量 Map<String, Integer> countMonthViewMap = sortMapByKey(countMonthMap, true); List<String> chart3X = new ArrayList<String>(); List<Integer> chart3Y = new ArrayList<Integer>(); for (String key : countMonthViewMap.keySet()) { chart3X.add(key); chart3Y.add(countMonthViewMap.get(key)); } map.put("chart3X", chart3X); map.put("chart3Y", chart3Y); System.out.println(map); return map; } @RequestMapping({"/getDataChartsByDate"}) public String getDataChartsByDate(Model model, String date, String type) throws ParseException { VisitorCounter vistorCounter = new VisitorCounter(); // Date now = new SimpleDateFormat("yyyy-MM-dd").parse(yearNow + "-" + date); String time = null; if ("y".equals(type)) { time = date; } else { String yearNow = new SimpleDateFormat("yyyy").format(new Date()); time = yearNow + "-" + date; } vistorCounter.setIp(time); List<VisitorCounter> recentList = visitorCounterService.selectListByDate(vistorCounter); model.addAttribute("list", recentList); model.addAttribute("time", time); model.addAttribute("count", recentList.size()); return "ht/showCount"; } |