AdminController.java 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package cn.minbb.job.controller.web;
  2. import cn.minbb.job.data.Const;
  3. import cn.minbb.job.model.Job;
  4. import cn.minbb.job.model.User;
  5. import cn.minbb.job.model.WebLog;
  6. import cn.minbb.job.service.JobService;
  7. import cn.minbb.job.service.WebLogService;
  8. import cn.minbb.job.system.UserSession;
  9. import cn.minbb.job.util.DateUtil;
  10. import com.alibaba.fastjson.JSON;
  11. import lombok.extern.log4j.Log4j2;
  12. import org.springframework.format.annotation.DateTimeFormat;
  13. import org.springframework.stereotype.Controller;
  14. import org.springframework.web.bind.annotation.GetMapping;
  15. import org.springframework.web.bind.annotation.RequestMapping;
  16. import org.springframework.web.bind.annotation.RequestParam;
  17. import org.springframework.web.servlet.ModelAndView;
  18. import java.util.Date;
  19. import java.util.HashMap;
  20. import java.util.List;
  21. import java.util.Map;
  22. @Controller
  23. @Log4j2
  24. @RequestMapping("/admin")
  25. public class AdminController {
  26. private final JobService jobService;
  27. private final WebLogService webLogService;
  28. public AdminController(JobService jobService, WebLogService webLogService) {
  29. this.jobService = jobService;
  30. this.webLogService = webLogService;
  31. }
  32. /**
  33. * 博客概况
  34. */
  35. @GetMapping(value = {"", "/overview"})
  36. public ModelAndView overviewPage(ModelAndView modelAndView) {
  37. User user = UserSession.getUserAuthentication();
  38. log.error(JSON.toJSONString(user));
  39. Date now = new Date();
  40. Map<String, Object> data = new HashMap<>();
  41. data.put("countA", 25);
  42. data.put("countB", 12);
  43. data.put("countC", 8);
  44. data.put("countD", webLogService.countByDateBetween(DateUtil.getDateOnlyByDateTime(now), now));
  45. List<Job> jobList = jobService.findTop8();
  46. modelAndView.addObject("jobList", jobList);
  47. modelAndView.addObject(Const.Key.KEY_DATA, data);
  48. modelAndView.addObject(Const.Key.KEY_ACTIVE, Const.ViewName.VIEW_ADMIN_OVERVIEW);
  49. modelAndView.setViewName(Const.ViewName.VIEW_ADMIN_OVERVIEW);
  50. return modelAndView;
  51. }
  52. /**
  53. * 页面访问日志
  54. */
  55. @GetMapping(value = "/web/log")
  56. public ModelAndView webLogPage(
  57. @RequestParam(value = "startTime", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date startTime,
  58. @RequestParam(value = "endTime", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date endTime,
  59. @RequestParam(value = "method", required = false) String method,
  60. @RequestParam(value = "uri", required = false) String uri,
  61. @RequestParam(value = "ip", required = false) String ip,
  62. @RequestParam(value = "location", required = false) String location,
  63. @RequestParam(value = "remark", required = false) String remark,
  64. @RequestParam(value = "page", defaultValue = "1", required = false) Integer page,
  65. @RequestParam(value = "size", defaultValue = "12", required = false) Integer size,
  66. ModelAndView modelAndView
  67. ) {
  68. if (null == endTime) endTime = new Date();
  69. if (null == startTime) startTime = DateUtil.addOrMinusDays(endTime, -1);
  70. List<WebLog> webLogList = webLogService.findAllByParamsIn(startTime, endTime, uri, method, null, null, ip, location, remark);
  71. modelAndView.addObject(Const.Key.KEY_DATASET, webLogList);
  72. modelAndView.addObject(Const.Key.KEY_DATA, method);
  73. modelAndView.addObject(Const.Key.KEY_ACTIVE, Const.ViewName.VIEW_ADMIN_WEB_LOG);
  74. modelAndView.setViewName(Const.ViewName.VIEW_ADMIN_WEB_LOG);
  75. return modelAndView;
  76. }
  77. }