diff --git a/IDEA/src/main/java/com/example/api/model/entity/SystemLog.java b/IDEA/src/main/java/com/example/api/model/entity/SystemLog.java new file mode 100644 index 00000000..3cd3fb66 --- /dev/null +++ b/IDEA/src/main/java/com/example/api/model/entity/SystemLog.java @@ -0,0 +1,64 @@ +package com.example.api.model.entity; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.hibernate.annotations.GenericGenerator; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import java.time.LocalDateTime; + +/** + * 系统日志实体类,用于表示数据库中的系统操作日志信息表。 + */ +// @Entity注解标记这个类是一个JPA实体,可以被持久化到数据库 +@Entity +// @Data注解自动生成getter和setter方法,以及toString(), equals()和hashCode()方法 +@Data +// @NoArgsConstructor注解生成一个无参数的构造函数 +@NoArgsConstructor +public class SystemLog { + /** + * id字段,用于存储系统日志记录的唯一标识符。 + * 使用@Id注解标记为主键。 + * 使用@GeneratedValue注解和@GenericGenerator注解结合使用, + * 指定使用"uuid2"生成器,该生成器使用UUID作为主键的生成策略。 + */ + @Id + @GeneratedValue(generator = "uuid2") + @GenericGenerator(name = "uuid2", strategy = "org.hibernate.id.UUIDGenerator") + private String id; + + // 账号,用于存储执行操作的用户账号 + private String account; + + // 功能模块,用于存储用户操作的功能模块名称 + private String module; + + /** + * 操作类型字段,用于存储用户操作的类型。 + * 使用@Column注解定义列的属性,设置数据类型为varchar(30),默认值为'LTD',且字段不能为空。 + */ + @Column(columnDefinition = "varchar(30) default 'LTD' not null") + private String businessType; + + // 用户IP,用于存储用户操作的IP地址 + @Column(columnDefinition = "varchar(40) default 'LTD' not null") + private String ip; + + // 请求方法,用于存储用户操作的请求方法 + @Column(columnDefinition = "varchar(100) default 'LTD' not null") + private String method; + + /** + * 操作时间字段,用于存储用户操作的时间。 + * 使用@JsonFormat注解定义JSON序列化和反序列化时的格式, + * 格式为"yyyy-MM-dd HH:mm:ss",时区为"GMT+8"。 + */ + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime time; + +} \ No newline at end of file