operlog.go 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. package models
  2. import (
  3. "time"
  4. orm "device-manage/common/global"
  5. )
  6. //sys_operlog
  7. type SysOperLog struct {
  8. OperId int `json:"operId" gorm:"primary_key;AUTO_INCREMENT"` //日志编码
  9. Title string `json:"title" gorm:"size:255;"` //操作模块
  10. BusinessType string `json:"businessType" gorm:"size:128;"` //操作类型
  11. BusinessTypes string `json:"businessTypes" gorm:"size:128;"`
  12. Method string `json:"method" gorm:"size:128;"` //函数
  13. RequestMethod string `json:"requestMethod" gorm:"size:128;"` //请求方式
  14. OperatorType string `json:"operatorType" gorm:"size:128;"` //操作类型
  15. OperName string `json:"operName" gorm:"size:128;"` //操作者
  16. DeptName string `json:"deptName" gorm:"size:128;"` //部门名称
  17. OperUrl string `json:"operUrl" gorm:"size:255;"` //访问地址
  18. OperIp string `json:"operIp" gorm:"size:128;"` //客户端ip
  19. OperLocation string `json:"operLocation" gorm:"size:128;"` //访问位置
  20. OperParam string `json:"operParam" gorm:"size:255;"` //请求参数
  21. Status string `json:"status" gorm:"size:4;"` //操作状态
  22. OperTime time.Time `json:"operTime" gorm:"type:timestamp;"` //操作时间
  23. JsonResult string `json:"jsonResult" gorm:"size:255;"` //返回数据
  24. CreateBy string `json:"createBy" gorm:"size:128;"` //创建人
  25. UpdateBy string `json:"updateBy" gorm:"size:128;"` //更新者
  26. DataScope string `json:"dataScope" gorm:"-"` //数据
  27. Params string `json:"params" gorm:"-"` //参数
  28. Remark string `json:"remark" gorm:"size:255;"` //备注
  29. LatencyTime string `json:"latencyime" gorm:"size:128;"` //耗时
  30. UserAgent string `json:"userAgent" gorm:"size:255;"` //ua
  31. BaseModel
  32. }
  33. func (SysOperLog) TableName() string {
  34. return "sys_operlog"
  35. }
  36. func (e *SysOperLog) Get() (SysOperLog, error) {
  37. var doc SysOperLog
  38. table := orm.Eloquent.Table(e.TableName())
  39. if e.OperIp != "" {
  40. table = table.Where("oper_ip = ?", e.OperIp)
  41. }
  42. if e.OperId != 0 {
  43. table = table.Where("oper_id = ?", e.OperId)
  44. }
  45. if err := table.First(&doc).Error; err != nil {
  46. return doc, err
  47. }
  48. return doc, nil
  49. }
  50. func (e *SysOperLog) GetPage(pageSize int, pageIndex int) ([]SysOperLog, int, error) {
  51. var doc []SysOperLog
  52. table := orm.Eloquent.Table(e.TableName())
  53. if e.OperIp != "" {
  54. table = table.Where("oper_ip = ?", e.OperIp)
  55. }
  56. if e.Status != "" {
  57. table = table.Where("status = ?", e.Status)
  58. }
  59. if e.OperName != "" {
  60. table = table.Where("oper_name = ?", e.OperName)
  61. }
  62. if e.BusinessType != "" {
  63. table = table.Where("business_type = ?", e.BusinessType)
  64. }
  65. var count int64
  66. if err := table.Order("oper_id desc").Offset((pageIndex - 1) * pageSize).Limit(pageSize).Find(&doc).Offset(-1).Limit(-1).Count(&count).Error; err != nil {
  67. return nil, 0, err
  68. }
  69. //table.Where("`deleted_at` IS NULL").Count(&count)
  70. return doc, int(count), nil
  71. }
  72. func (e *SysOperLog) Create() (SysOperLog, error) {
  73. var doc SysOperLog
  74. e.CreateBy = "0"
  75. e.UpdateBy = "0"
  76. result := orm.Eloquent.Table(e.TableName()).Create(&e)
  77. if result.Error != nil {
  78. err := result.Error
  79. return doc, err
  80. }
  81. doc = *e
  82. return doc, nil
  83. }
  84. func (e *SysOperLog) Update(id int) (update SysOperLog, err error) {
  85. if err = orm.Eloquent.Table(e.TableName()).First(&update, id).Error; err != nil {
  86. return
  87. }
  88. //参数1:是要修改的数据
  89. //参数2:是修改的数据
  90. if err = orm.Eloquent.Table(e.TableName()).Model(&update).Updates(&e).Error; err != nil {
  91. return
  92. }
  93. return
  94. }
  95. func (e *SysOperLog) BatchDelete(id []int) (Result bool, err error) {
  96. if err = orm.Eloquent.Table(e.TableName()).Where(" oper_id in (?)", id).Delete(&SysOperLog{}).Error; err != nil {
  97. return
  98. }
  99. Result = true
  100. return
  101. }