OperationAuditLog.java 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. package com.xuekairui.user.entity;
  2. import com.baomidou.mybatisplus.annotation.*;
  3. import com.xuekairui.user.enums.AuditResult;
  4. import lombok.Data;
  5. import lombok.NoArgsConstructor;
  6. import lombok.AllArgsConstructor;
  7. import lombok.Builder;
  8. import java.time.LocalDateTime;
  9. /**
  10. * 操作审计日志实体
  11. *
  12. * 记录运营和用户的所有关键操作,用于审计、追溯和问题排查
  13. */
  14. @Data
  15. @NoArgsConstructor
  16. @AllArgsConstructor
  17. @Builder
  18. @TableName("t_operation_audit_log")
  19. public class OperationAuditLog {
  20. /** 主键ID */
  21. @TableId(type = IdType.ASSIGN_ID)
  22. private Long id;
  23. /** 操作人ID(用户ID或运营人员ID) */
  24. private Long operatorId;
  25. /** 操作人姓名/昵称 */
  26. private String operatorName;
  27. /** 操作人角色:USER-普通用户 ADMIN-运营人员 SUPER_ADMIN-超级管理员 */
  28. private String operatorRole;
  29. /** 操作时间 */
  30. @Builder.Default
  31. private LocalDateTime operationTime = LocalDateTime.now();
  32. /** 操作IP地址 */
  33. private String ipAddress;
  34. /** 操作设备信息(User-Agent) */
  35. private String userAgent;
  36. /** 操作模块:USER-用户管理 LEVEL-等级配置 PLATFORM-平台配置 LICENSE-入驻信息 INVITE-邀请系统 COUPON-优惠券 SYSTEM-系统管理 */
  37. private String module;
  38. /** 操作类型(见OperationType枚举) */
  39. private String operationType;
  40. /** 操作来源:ADMIN_CREATE-管理员新增 USER_SUBMIT-用户自主提交 EXTERNAL-外部系统(见 OperationSource 枚举) */
  41. private String operationSource;
  42. /** 操作描述(中文描述,便于阅读) */
  43. private String description;
  44. /** 目标对象类型:USER-用户 LEVEL_CONFIG-等级配置 PLATFORM-平台 ACCOUNT-账号 LICENSE-执照 */
  45. private String targetType;
  46. /** 目标对象ID */
  47. private Long targetId;
  48. /** 目标对象标识(如:用户名、版本号等) */
  49. private String targetIdentifier;
  50. /** 操作前的数据快照(JSON格式) */
  51. private String beforeData;
  52. /** 操作后的数据快照(JSON格式) */
  53. private String afterData;
  54. /** 操作结果:SUCCESS-成功 FAILED-失败 PARTIAL-部分成功(见 AuditResult 枚举) */
  55. @Builder.Default
  56. private String result = AuditResult.SUCCESS.getCode();
  57. /** 错误信息(操作失败时记录) */
  58. private String errorMessage;
  59. /** 请求URL */
  60. private String requestUrl;
  61. /** 请求方法:GET/POST/PUT/DELETE */
  62. private String requestMethod;
  63. /** 请求参数(JSON格式,敏感信息脱敏) */
  64. private String requestParams;
  65. /** 响应状态码 */
  66. private Integer responseCode;
  67. /** 耗时(毫秒) */
  68. private Long duration;
  69. /** 备注说明 */
  70. private String remark;
  71. /** 是否敏感操作(需要特别关注) */
  72. @Builder.Default
  73. private Boolean isSensitive = false;
  74. /** 创建时间 */
  75. @TableField(fill = FieldFill.INSERT)
  76. private LocalDateTime createTime;
  77. }