39 lines
1.0 KiB
Go
39 lines
1.0 KiB
Go
package local_event
|
|
|
|
import (
|
|
"time"
|
|
|
|
"gorm.io/gorm"
|
|
|
|
adminModels "git.ilapage.cn/ila/yovision/Sense/server/app/admin/models"
|
|
)
|
|
|
|
const (
|
|
auditSuccess = "1"
|
|
auditFailure = "2"
|
|
)
|
|
|
|
type AccessAudit struct {
|
|
Action string
|
|
Status string
|
|
Username string
|
|
UserID int
|
|
ClientIP string
|
|
Route string
|
|
Remark string
|
|
At time.Time
|
|
}
|
|
|
|
// WriteAccessAudit persists a minimal, synchronous GoAdmin operation record.
|
|
// It deliberately excludes query values, response bodies and evidence data.
|
|
func WriteAccessAudit(db *gorm.DB, input AccessAudit) error {
|
|
model := adminModels.SysOperaLog{
|
|
Title: "本地事件", BusinessType: "query", Method: "local_event.API." + input.Action,
|
|
RequestMethod: "GET", OperatorType: "1", OperName: input.Username, OperUrl: input.Route,
|
|
OperIp: input.ClientIP, Status: input.Status, OperTime: input.At.UTC(), Remark: input.Remark,
|
|
CreatedAt: input.At.UTC(), UpdatedAt: input.At.UTC(),
|
|
}
|
|
model.CreateBy, model.UpdateBy = input.UserID, input.UserID
|
|
return db.Create(&model).Error
|
|
}
|