mirror of
https://github.com/ctwj/urldb.git
synced 2025-11-25 03:15:04 +08:00
51 lines
2.1 KiB
Go
51 lines
2.1 KiB
Go
package entity
|
|
|
|
import (
|
|
"time"
|
|
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
// APIAccessLog API访问日志模型
|
|
type APIAccessLog struct {
|
|
ID uint `json:"id" gorm:"primaryKey;autoIncrement"`
|
|
IP string `json:"ip" gorm:"size:45;not null;comment:客户端IP地址"`
|
|
UserAgent string `json:"user_agent" gorm:"size:500;comment:用户代理"`
|
|
Endpoint string `json:"endpoint" gorm:"size:255;not null;comment:访问的接口路径"`
|
|
Method string `json:"method" gorm:"size:10;not null;comment:HTTP方法"`
|
|
RequestParams string `json:"request_params" gorm:"type:text;comment:查询参数(JSON格式)"`
|
|
ResponseStatus int `json:"response_status" gorm:"default:200;comment:响应状态码"`
|
|
ResponseData string `json:"response_data" gorm:"type:text;comment:响应数据(JSON格式)"`
|
|
ProcessCount int `json:"process_count" gorm:"default:0;comment:处理数量(查询结果数或添加的数量)"`
|
|
ErrorMessage string `json:"error_message" gorm:"size:500;comment:错误消息"`
|
|
ProcessingTime int64 `json:"processing_time" gorm:"comment:处理时间(毫秒)"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
DeletedAt gorm.DeletedAt `json:"deleted_at" gorm:"index"`
|
|
}
|
|
|
|
// TableName 指定表名
|
|
func (APIAccessLog) TableName() string {
|
|
return "api_access_logs"
|
|
}
|
|
|
|
// APIAccessLogSummary API访问日志汇总统计
|
|
type APIAccessLogSummary struct {
|
|
TotalRequests int64 `json:"total_requests"`
|
|
TodayRequests int64 `json:"today_requests"`
|
|
WeekRequests int64 `json:"week_requests"`
|
|
MonthRequests int64 `json:"month_requests"`
|
|
ErrorRequests int64 `json:"error_requests"`
|
|
UniqueIPs int64 `json:"unique_ips"`
|
|
}
|
|
|
|
// APIAccessLogStats 按端点统计
|
|
type APIAccessLogStats struct {
|
|
Endpoint string `json:"endpoint"`
|
|
Method string `json:"method"`
|
|
RequestCount int64 `json:"request_count"`
|
|
ErrorCount int64 `json:"error_count"`
|
|
AvgProcessTime int64 `json:"avg_process_time"`
|
|
LastAccess time.Time `json:"last_access"`
|
|
}
|