LogController.java 3.4 KB

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