WebLog.java 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package cn.minbb.job.model;
  2. import lombok.Data;
  3. import lombok.NoArgsConstructor;
  4. import org.hibernate.annotations.CreationTimestamp;
  5. import javax.persistence.*;
  6. import java.util.Date;
  7. @Data
  8. @Entity
  9. @Table(name = "web_log",
  10. indexes = {
  11. @Index(name = "index_uri", columnList = "uri"),
  12. @Index(name = "index_protocol", columnList = "protocol"),
  13. @Index(name = "index_ip", columnList = "ip"),
  14. @Index(name = "index_created_at", columnList = "created_at"),
  15. }
  16. )
  17. @NoArgsConstructor
  18. public class WebLog {
  19. @Id
  20. @GeneratedValue(strategy = GenerationType.IDENTITY)
  21. @Column(name = "id", nullable = false, columnDefinition = "INTEGER COMMENT '访问日志'")
  22. private Integer id;
  23. @Column(name = "uri", nullable = false, columnDefinition = "VARCHAR(768) COMMENT 'URI'")
  24. private String uri;
  25. @Column(name = "method", nullable = false, columnDefinition = "VARCHAR(16) COMMENT '请求方法'")
  26. private String method;
  27. @Column(name = "protocol", columnDefinition = "VARCHAR(16) COMMENT '请求协议'")
  28. private String protocol;
  29. @Column(name = "user_agent", columnDefinition = "TEXT COMMENT '用户代理'")
  30. private String userAgent;
  31. @Column(name = "process_method", columnDefinition = "VARCHAR(255) COMMENT '处理方法'")
  32. private String processMethod;
  33. @Column(name = "process_time", columnDefinition = "INTEGER COMMENT '处理时长 (ms)'")
  34. private Integer processTime;
  35. @Column(name = "remark", columnDefinition = "VARCHAR(1000) COMMENT '备注'")
  36. private String remark;
  37. @Column(name = "ip", columnDefinition = "VARCHAR(16) COMMENT 'IP'")
  38. private String ip;
  39. @Column(name = "location", columnDefinition = "VARCHAR(255) COMMENT '位置'")
  40. private String location;
  41. @Column(name = "created_at", columnDefinition = "DATETIME COMMENT '创建时间'")
  42. @CreationTimestamp
  43. private Date createdAt;
  44. public WebLog(String uri, String method, String protocol, String userAgent, String processMethod, Integer processTime, String remark, String ip) {
  45. this.uri = uri;
  46. this.method = method;
  47. this.protocol = protocol;
  48. this.userAgent = userAgent;
  49. this.processMethod = processMethod;
  50. this.processTime = processTime;
  51. this.remark = remark;
  52. this.ip = ip;
  53. }
  54. }