OperationLogController.java 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package com.zxyj.controller.admin;
  2. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  3. import com.zxyj.common.Result;
  4. import com.zxyj.entity.UserOperationLog;
  5. import com.zxyj.service.UserOperationLogService;
  6. import io.swagger.v3.oas.annotations.Operation;
  7. import io.swagger.v3.oas.annotations.tags.Tag;
  8. import org.springframework.format.annotation.DateTimeFormat;
  9. import javax.annotation.Resource;
  10. import org.springframework.web.bind.annotation.*;
  11. import java.util.Date;
  12. import java.util.List;
  13. import java.util.Map;
  14. @Tag(name = "日志管理", description = "操作日志查询接口")
  15. @RestController
  16. @RequestMapping("/api/admin/logs")
  17. public class OperationLogController {
  18. @Resource
  19. private UserOperationLogService logService;
  20. @Operation(summary = "分页查询操作日志")
  21. @PostMapping("/operations")
  22. public Result<Page<UserOperationLog>> queryLogs(
  23. @RequestAttribute("userId") Long adminId,
  24. @RequestBody Map<String, Object> params) {
  25. Long userId = params.get("userId") != null ? ((Number) params.get("userId")).longValue() : null;
  26. String operationType = (String) params.get("operationType");
  27. Integer page = params.get("page") != null ? (Integer) params.get("page") : 1;
  28. Integer size = params.get("size") != null ? (Integer) params.get("size") : 20;
  29. // 解析日期
  30. Date startDate = null;
  31. Date endDate = null;
  32. try {
  33. if (params.get("startDate") != null) {
  34. java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd");
  35. startDate = sdf.parse((String) params.get("startDate"));
  36. }
  37. if (params.get("endDate") != null) {
  38. java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd");
  39. endDate = sdf.parse((String) params.get("endDate"));
  40. }
  41. } catch (Exception e) {
  42. // 日期解析失败
  43. }
  44. Page<UserOperationLog> result = logService.queryLogs(
  45. userId, operationType, startDate, endDate, page, size);
  46. return Result.success(result);
  47. }
  48. @Operation(summary = "获取用户最近操作记录")
  49. @PostMapping("/recent")
  50. public Result<List<UserOperationLog>> getRecentLogs(
  51. @RequestAttribute("userId") Long adminId,
  52. @RequestBody Map<String, Object> params) {
  53. Long userId = ((Number) params.get("userId")).longValue();
  54. Integer limit = params.get("limit") != null ? (Integer) params.get("limit") : 10;
  55. List<UserOperationLog> logs = logService.getRecentLogs(userId, limit);
  56. return Result.success(logs);
  57. }
  58. }