log.go 851 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package model
  2. import (
  3. "time"
  4. "gorm.io/datatypes"
  5. )
  6. type Log struct {
  7. Id int `gorm:"primary"`
  8. TraceId string
  9. Uid int64
  10. RequestIp string
  11. Api string
  12. UserAgent string
  13. StatusCode int
  14. Message string
  15. ExtraData datatypes.JSON `gorm:"type:json"`
  16. CreatedAt time.Time
  17. UpdatedAt time.Time
  18. // 分表相关字段
  19. tableName string `gorm:"-"` // 动态表名,不存储到数据库
  20. }
  21. func (m *Log) TableName() string {
  22. if m.tableName != "" {
  23. return m.tableName
  24. }
  25. return "log"
  26. }
  27. // SetTableName 设置动态表名(用于分表)
  28. func (m *Log) SetTableName(tableName string) {
  29. m.tableName = tableName
  30. }
  31. // GetBaseTableName 实现TableModel接口
  32. func (m *Log) GetBaseTableName() string {
  33. return "log"
  34. }
  35. // GetCreatedAt 实现TableModel接口
  36. func (m *Log) GetCreatedAt() time.Time {
  37. return m.CreatedAt
  38. }