12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- package models
- import (
- "encoding/json"
- "errors"
- "time"
- log "github.com/go-admin-team/go-admin-core/logger"
- "github.com/go-admin-team/go-admin-core/sdk"
- "github.com/go-admin-team/go-admin-core/storage"
- "go-admin/common/models"
- )
- type SysOperaLog struct {
- models.Model
- Title string `json:"title" gorm:"size:255;comment:操作模块"`
- BusinessType string `json:"businessType" gorm:"size:128;comment:操作类型"`
- BusinessTypes string `json:"businessTypes" gorm:"size:128;comment:BusinessTypes"`
- Method string `json:"method" gorm:"size:128;comment:函数"`
- RequestMethod string `json:"requestMethod" gorm:"size:128;comment:请求方式 GET POST PUT DELETE"`
- OperatorType string `json:"operatorType" gorm:"size:128;comment:操作类型"`
- OperName string `json:"operName" gorm:"size:128;comment:操作者"`
- DeptName string `json:"deptName" gorm:"size:128;comment:部门名称"`
- OperUrl string `json:"operUrl" gorm:"size:255;comment:访问地址"`
- OperIp string `json:"operIp" gorm:"size:128;comment:客户端ip"`
- OperLocation string `json:"operLocation" gorm:"size:128;comment:访问位置"`
- OperParam string `json:"operParam" gorm:"text;comment:请求参数"`
- Status string `json:"status" gorm:"size:4;comment:操作状态 1:正常 2:关闭"`
- OperTime time.Time `json:"operTime" gorm:"comment:操作时间"`
- JsonResult string `json:"jsonResult" gorm:"size:255;comment:返回数据"`
- Remark string `json:"remark" gorm:"size:255;comment:备注"`
- LatencyTime string `json:"latencyTime" gorm:"size:128;comment:耗时"`
- UserAgent string `json:"userAgent" gorm:"size:255;comment:ua"`
- CreatedAt time.Time `json:"createdAt" gorm:"comment:创建时间"`
- UpdatedAt time.Time `json:"updatedAt" gorm:"comment:最后更新时间"`
- models.ControlBy
- }
- func (SysOperaLog) TableName() string {
- return "sys_opera_log"
- }
- func (e *SysOperaLog) Generate() models.ActiveRecord {
- o := *e
- return &o
- }
- func (e *SysOperaLog) GetId() interface{} {
- return e.Id
- }
- // SaveOperaLog 从队列中获取操作日志
- func SaveOperaLog(message storage.Messager) (err error) {
- //准备db
- db := sdk.Runtime.GetDbByKey(message.GetPrefix())
- if db == nil {
- err = errors.New("db not exist")
- log.Errorf("host[%s]'s %s", message.GetPrefix(), err.Error())
- // Log writing to the database ignores error
- return nil
- }
- var rb []byte
- rb, err = json.Marshal(message.GetValues())
- if err != nil {
- log.Errorf("json Marshal error, %s", err.Error())
- // Log writing to the database ignores error
- return nil
- }
- var l SysOperaLog
- err = json.Unmarshal(rb, &l)
- if err != nil {
- log.Errorf("json Unmarshal error, %s", err.Error())
- // Log writing to the database ignores error
- return nil
- }
- // 超出100个字符返回值截断
- if len(l.JsonResult) > 100 {
- l.JsonResult = l.JsonResult[:100]
- }
- err = db.Create(&l).Error
- if err != nil {
- log.Errorf("db create error, %s", err.Error())
- // Log writing to the database ignores error
- return nil
- }
- return nil
- }
|