package cn.minbb.job.model; import lombok.Data; import lombok.NoArgsConstructor; import org.hibernate.annotations.CreationTimestamp; import javax.persistence.*; import java.util.Date; @Data @Entity @Table(name = "web_log", indexes = { @Index(name = "index_uri", columnList = "uri"), @Index(name = "index_protocol", columnList = "protocol"), @Index(name = "index_ip", columnList = "ip"), @Index(name = "index_created_at", columnList = "created_at"), } ) @NoArgsConstructor public class WebLog { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id", nullable = false, columnDefinition = "INTEGER COMMENT '访问日志'") private Integer id; @Column(name = "uri", nullable = false, columnDefinition = "VARCHAR(768) COMMENT 'URI'") private String uri; @Column(name = "method", nullable = false, columnDefinition = "VARCHAR(16) COMMENT '请求方法'") private String method; @Column(name = "protocol", columnDefinition = "VARCHAR(16) COMMENT '请求协议'") private String protocol; @Column(name = "user_agent", columnDefinition = "TEXT COMMENT '用户代理'") private String userAgent; @Column(name = "process_method", columnDefinition = "VARCHAR(255) COMMENT '处理方法'") private String processMethod; @Column(name = "process_time", columnDefinition = "INTEGER COMMENT '处理时长 (ms)'") private Integer processTime; @Column(name = "remark", columnDefinition = "VARCHAR(1000) COMMENT '备注'") private String remark; @Column(name = "ip", columnDefinition = "VARCHAR(16) COMMENT 'IP'") private String ip; @Column(name = "location", columnDefinition = "VARCHAR(255) COMMENT '位置'") private String location; @Column(name = "created_at", columnDefinition = "DATETIME COMMENT '创建时间'") @CreationTimestamp private Date createdAt; public WebLog(String uri, String method, String protocol, String userAgent, String processMethod, Integer processTime, String remark, String ip) { this.uri = uri; this.method = method; this.protocol = protocol; this.userAgent = userAgent; this.processMethod = processMethod; this.processTime = processTime; this.remark = remark; this.ip = ip; } }