LogController.java 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. package com.genersoft.iot.vmp.vmanager.log;
  2. import com.genersoft.iot.vmp.conf.UserSetting;
  3. import com.genersoft.iot.vmp.conf.exception.ControllerException;
  4. import com.genersoft.iot.vmp.service.ILogService;
  5. import com.genersoft.iot.vmp.storager.dao.dto.LogDto;
  6. import com.genersoft.iot.vmp.utils.DateUtil;
  7. import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;
  8. import com.github.pagehelper.PageInfo;
  9. import io.swagger.v3.oas.annotations.Operation;
  10. import io.swagger.v3.oas.annotations.Parameter;
  11. import io.swagger.v3.oas.annotations.tags.Tag;
  12. import org.slf4j.Logger;
  13. import org.slf4j.LoggerFactory;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.util.ObjectUtils;
  16. import org.springframework.web.bind.annotation.*;
  17. @Tag(name = "日志管理")
  18. @RestController
  19. @RequestMapping("/api/log")
  20. public class LogController {
  21. private final static Logger logger = LoggerFactory.getLogger(LogController.class);
  22. @Autowired
  23. private ILogService logService;
  24. @Autowired
  25. private UserSetting userSetting;
  26. /**
  27. * 分页查询日志
  28. *
  29. * @param query 查询内容
  30. * @param page 当前页
  31. * @param count 每页查询数量
  32. * @param type 类型
  33. * @param startTime 开始时间
  34. * @param endTime 结束时间
  35. * @return
  36. */
  37. @GetMapping("/all")
  38. @Operation(summary = "分页查询日志")
  39. @Parameter(name = "query", description = "查询内容", required = true)
  40. @Parameter(name = "page", description = "当前页", required = true)
  41. @Parameter(name = "count", description = "每页查询数量", required = true)
  42. @Parameter(name = "type", description = "类型", required = true)
  43. @Parameter(name = "startTime", description = "开始时间", required = true)
  44. @Parameter(name = "endTime", description = "结束时间", required = true)
  45. public PageInfo<LogDto> getAll(
  46. @RequestParam int page,
  47. @RequestParam int count,
  48. @RequestParam(required = false) String query,
  49. @RequestParam(required = false) String type,
  50. @RequestParam(required = false) String startTime,
  51. @RequestParam(required = false) String endTime
  52. ) {
  53. if (ObjectUtils.isEmpty(query)) {
  54. query = null;
  55. }
  56. if (!userSetting.getLogInDatabase()) {
  57. logger.warn("自动记录日志功能已关闭,查询结果可能不完整。");
  58. }
  59. if (ObjectUtils.isEmpty(startTime)) {
  60. startTime = null;
  61. }else if (!DateUtil.verification(startTime, DateUtil.formatter) ){
  62. throw new ControllerException(ErrorCode.ERROR400.getCode(), "startTime格式为" + DateUtil.PATTERN);
  63. }
  64. if (ObjectUtils.isEmpty(endTime)) {
  65. endTime = null;
  66. }else if (!DateUtil.verification(endTime, DateUtil.formatter) ){
  67. throw new ControllerException(ErrorCode.ERROR400.getCode(), "endTime格式为" + DateUtil.PATTERN);
  68. }
  69. return logService.getAll(page, count, query, type, startTime, endTime);
  70. }
  71. /**
  72. * 清空日志
  73. *
  74. */
  75. @Operation(summary = "清空日志")
  76. @DeleteMapping("/clear")
  77. public void clear() {
  78. logService.clear();
  79. }
  80. }