admin_logs.go 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. package forms
  2. import (
  3. "errors"
  4. "time"
  5. )
  6. type AdminLogListReq struct {
  7. ListReq
  8. AdminId int64 `json:"admin_id" form:"admin_id"`
  9. Path string `json:"path" form:"path"`
  10. Ip string `json:"ip" form:"ip"`
  11. Method string `json:"method" form:"method"`
  12. CreatedAt []int64 `json:"created_at" form:"created_at[]"`
  13. Time []time.Time
  14. }
  15. func (req *AdminLogListReq) Check() error {
  16. if req.CreatedAt != nil && len(req.CreatedAt) != 2 {
  17. return errors.New("生成时间必须选择一个区间或者留空")
  18. }
  19. if len(req.CreatedAt) == 2 {
  20. if req.CreatedAt[0] > req.CreatedAt[1] {
  21. return errors.New("生成时间选择的区间值不合理")
  22. }
  23. // 默认是毫秒
  24. req.Time = append(req.Time, time.Unix(req.CreatedAt[0]/1000, 0))
  25. req.Time = append(req.Time, time.Unix(req.CreatedAt[1]/1000, 0))
  26. }
  27. return nil
  28. }
  29. type AdminLogListModel struct {
  30. ID int64 `gorm:"column:id;primaryKey;autoIncrement:true" json:"id"`
  31. Environment string `gorm:"column:environment;not null" json:"environment"` // 所在环境
  32. AdminID int64 `gorm:"column:admin_id" json:"admin_id"` // 管理员ID
  33. AdminName string ` json:"adminName"`
  34. AppID string `gorm:"column:app_id" json:"app_id"` // 所属应用
  35. UserAgent string `gorm:"column:user_agent;not null" json:"user_agent"` // 访问代理
  36. Method string `gorm:"column:method;not null" json:"method"` // 请求方式
  37. URL string `gorm:"column:url;not null" json:"url"` // 访问地址
  38. Host string `gorm:"column:host;not null" json:"host"` // 服务域
  39. Path string `gorm:"column:path;not null" json:"path"` // 访问路径
  40. GetData string `gorm:"column:get_data" json:"get_data"`
  41. PostData string `gorm:"column:post_data" json:"post_data"`
  42. HeaderData string `gorm:"column:header_data" json:"header_data"`
  43. AccessIP string `gorm:"column:access_ip;not null" json:"access_ip"` // 访问IP
  44. StatusCode int32 `gorm:"column:status_code;not null" json:"status_code"` // 响应状态码
  45. ErrorMessage string `gorm:"column:error_message" json:"error_message"` // 错误消息
  46. //Data string `gorm:"column:data;not null" json:"data"` // 响应数据
  47. Latency int32 `gorm:"column:latency" json:"latency"` // 耗时
  48. Timestamp time.Time `gorm:"column:timestamp;not null" json:"timestamp"` // 请求时间
  49. CreatedAt time.Time `gorm:"column:created_at;not null" json:"created_at"` // 创建时间
  50. Remark string `gorm:"column:remark;not null" json:"remark"`
  51. }
  52. type AdminLogViewReq struct {
  53. Id int64 `json:"id" form:"id"`
  54. }
  55. func (req *AdminLogViewReq) Check() error {
  56. if req.Id <= 0 {
  57. return errors.New("记录ID不能为空")
  58. }
  59. return nil
  60. }
  61. type AdminLogViewModel struct {
  62. ID int64 `gorm:"column:id;primaryKey;autoIncrement:true" json:"id"`
  63. Environment string `gorm:"column:environment;not null" json:"environment"` // 所在环境
  64. AdminID int64 `gorm:"column:admin_id" json:"admin_id"` // 管理员ID
  65. AdminName string ` json:"adminName"`
  66. AppID string `gorm:"column:app_id" json:"app_id"` // 所属应用
  67. UserAgent string `gorm:"column:user_agent;not null" json:"user_agent"` // 访问代理
  68. Method string `gorm:"column:method;not null" json:"method"` // 请求方式
  69. URL string `gorm:"column:url;not null" json:"url"` // 访问地址
  70. Host string `gorm:"column:host;not null" json:"host"` // 服务域
  71. Path string `gorm:"column:path;not null" json:"path"` // 访问路径
  72. GetData string `gorm:"column:get_data" json:"get_data"`
  73. PostData string `gorm:"column:post_data" json:"post_data"`
  74. HeaderData string `gorm:"column:header_data" json:"header_data"`
  75. AccessIP string `gorm:"column:access_ip;not null" json:"access_ip"` // 访问IP
  76. StatusCode int32 `gorm:"column:status_code;not null" json:"status_code"` // 响应状态码
  77. ErrorMessage string `gorm:"column:error_message" json:"error_message"` // 错误消息
  78. Data string `gorm:"column:data;not null" json:"data"` // 响应数据
  79. Latency int32 `gorm:"column:latency" json:"latency"` // 耗时
  80. Timestamp time.Time `gorm:"column:timestamp;not null" json:"timestamp"` // 请求时间
  81. CreatedAt time.Time `gorm:"column:created_at;not null" json:"created_at"` // 创建时间
  82. Remark string `gorm:"column:remark;not null" json:"remark"`
  83. }