devicelog.go 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. package busmodels
  2. import (
  3. "device-manage/app/admin/models"
  4. orm "device-manage/common/global"
  5. "strconv"
  6. )
  7. // 外键关联群组groupId,群组删除,日志记录删除,但是日志文件还在,,目前不知如何处理,删除群组同时检查删除相应日志 ?但是这样处理感觉不太好.
  8. type BusDeviceLog struct {
  9. LogId int `json:"logId" gorm:"primary_key;AUTO_INCREMENT"`
  10. DeviceSn string `json:"deviceSn" gorm:"size:128;"`
  11. GroupId int `json:"groupId"`
  12. //BusGroup BusGroup `gorm:"constraint:OnUpdate:CASCADE,OnDelete:SET NULL;"`
  13. LogName string `json:"logName" gorm:"size:128;"`
  14. Uid string `json:"uid" gorm:"size:128;"`
  15. Size string `json:"size" gorm:"size:128;"`
  16. CreateBy string `json:"createBy" gorm:"size:128;"`
  17. UpdateBy string `json:"updateBy" gorm:"size:128;"`
  18. BaseModel
  19. //BusGroup BusGroup `gorm:"ForeignKey:GroupId;`
  20. }
  21. type QueryLogParams struct {
  22. LogName string `json:"logName" gorm:"size:128;"`
  23. DeviceSn string `json:"deviceSn" gorm:"size:128;"`
  24. PageSize int `json:"pageSize"`
  25. PageIndex int `json:"pageIndex"`
  26. Gids []int `json:"gids"`
  27. }
  28. func (BusDeviceLog) TableName() string {
  29. return "bus_device_log"
  30. }
  31. func (e *BusDeviceLog) Get() (BusDeviceLog, error) {
  32. var doc BusDeviceLog
  33. table := orm.Eloquent.Table(e.TableName())
  34. if e.DeviceSn != "" {
  35. table = table.Where("device_sn = ?", e.DeviceSn)
  36. }
  37. if err := table.First(&doc).Error; err != nil {
  38. return doc, err
  39. }
  40. return doc, nil
  41. }
  42. func (e *BusDeviceLog) GetPage(pageSize int, pageIndex int, gids []int) ([]BusDeviceLog, int, error) {
  43. var doc []BusDeviceLog
  44. table := orm.Eloquent.Table(e.TableName())
  45. if e.LogName != "" {
  46. table = table.Where("log_name like ?", "%"+e.LogName+"%")
  47. }
  48. if e.DeviceSn != "" {
  49. table = table.Where("device_sn like ?", "%"+e.DeviceSn+"%")
  50. }
  51. if len(gids) > 0 {
  52. table = table.Where("group_id in (?)", gids)
  53. }
  54. var count int64
  55. if err := table.Order("log_id desc").Offset((pageIndex - 1) * pageSize).Limit(pageSize).Find(&doc).Offset(-1).Limit(-1).Count(&count).Error; err != nil {
  56. return nil, 0, err
  57. }
  58. for k, v := range doc {
  59. user := models.SysUser{}
  60. id, _ := strconv.Atoi(v.CreateBy)
  61. if err := orm.Eloquent.Table("sys_user").Where("user_id = ?", id).Find(&user).Error; err == nil {
  62. doc[k].CreateBy = user.Username
  63. }
  64. id, _ = strconv.Atoi(v.UpdateBy)
  65. user2 := models.SysUser{}
  66. if err := orm.Eloquent.Table("sys_user").Where("user_id = ?", id).Find(&user2).Error; err == nil {
  67. doc[k].UpdateBy = user2.Username
  68. }
  69. }
  70. return doc, int(count), nil
  71. }
  72. func (e *BusDeviceLog) GetSingleDevicePage(pageSize int, pageIndex int) ([]BusDeviceLog, int, error) {
  73. var doc []BusDeviceLog
  74. table := orm.Eloquent.Table(e.TableName())
  75. if e.DeviceSn != "" {
  76. table = table.Where("device_sn like ?", "%"+e.DeviceSn+"%")
  77. }
  78. var count int64
  79. if err := table.Order("log_id desc").Offset((pageIndex - 1) * pageSize).Limit(pageSize).Find(&doc).Offset(-1).Limit(-1).Count(&count).Error; err != nil {
  80. return nil, 0, err
  81. }
  82. for k, v := range doc {
  83. user := models.SysUser{}
  84. id, _ := strconv.Atoi(v.CreateBy)
  85. if err := orm.Eloquent.Table("sys_user").Where("user_id = ?", id).Find(&user).Error; err == nil {
  86. doc[k].CreateBy = user.Username
  87. }
  88. id, _ = strconv.Atoi(v.UpdateBy)
  89. user2 := models.SysUser{}
  90. if err := orm.Eloquent.Table("sys_user").Where("user_id = ?", id).Find(&user2).Error; err == nil {
  91. doc[k].UpdateBy = user2.Username
  92. }
  93. }
  94. return doc, int(count), nil
  95. }
  96. func (e *BusDeviceLog) Insert() (id int, err error) {
  97. //添加数据
  98. if err = orm.Eloquent.Table(e.TableName()).Create(&e).Error; err != nil {
  99. return
  100. }
  101. id = e.LogId
  102. return
  103. }
  104. //delelte log
  105. func (e *BusDeviceLog) Delete(id int) (success bool, err error) {
  106. if err = orm.Eloquent.Table(e.TableName()).Where("log_id = ?", id).Delete(&BusDeviceLog{}).Error; err != nil {
  107. success = false
  108. return
  109. }
  110. success = true
  111. return
  112. }
  113. func (e *BusDeviceLog) BatchDelete(id []int) (Result bool, err error) {
  114. if err = orm.Eloquent.Table(e.TableName()).Where("log_id in (?)", id).Delete(&BusDeviceLog{}).Error; err != nil {
  115. return
  116. }
  117. Result = true
  118. return
  119. }
  120. func (e *BusDeviceLog) GetLogInfo() (busDeviceLog BusDeviceLog, err error) {
  121. if err = orm.Eloquent.Table(e.TableName()).Where("uid in (?)", e.Uid).Find(&busDeviceLog).Error; err != nil {
  122. return busDeviceLog, err
  123. }
  124. return
  125. }