upgraderecord.go 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. package busmodels
  2. import (
  3. "device-manage/app/admin/models"
  4. orm "device-manage/common/global"
  5. "strconv"
  6. )
  7. // 设备升级记录
  8. //1. 只记录成功的升级记录,失败的忽略
  9. //2. 设备升级先检查当前设备是否有当前推送应用的升级记录,决定是否继续推送
  10. //3. 记录的关键值在于 uid ,uid唯一, uid在升级文件中也是唯一的,以此来查询升级记录.
  11. type BusUpgradeRecord struct {
  12. RecordId int `json:"recordId" gorm:"primary_key;AUTO_INCREMENT"`
  13. DeviceSn string `json:"deviceSn" gorm:"size:128;"`
  14. FileName string `json:"fileName" gorm:"size:128;"`
  15. GroupId int `json:"groupId"`
  16. Uid string `json:"uid" gorm:"size:128;"`
  17. Size string `json:"size" gorm:"size:128;"`
  18. VersionName string `json:"versionName" gorm:"size:128;"`
  19. CreateBy string `json:"createBy" gorm:"size:128;"`
  20. UpdateBy string `json:"updateBy" gorm:"size:128;"`
  21. BaseModel
  22. }
  23. type QueryUpgradeRecordParams struct {
  24. FileName string `json:"fileName" gorm:"size:128;"`
  25. DeviceSn string `json:"deviceSn" gorm:"size:128;"`
  26. PageSize int `json:"pageSize"`
  27. PageIndex int `json:"pageIndex"`
  28. Gids []int `json:"gids"`
  29. }
  30. func (BusUpgradeRecord) TableName() string {
  31. return "bus_upgrade_record"
  32. }
  33. //根据uid 查询设备推送的唯一记录
  34. func (e *BusUpgradeRecord) GetUpgradeRecord() (record BusUpgradeRecord, err error) {
  35. table := orm.Eloquent.Table(e.TableName())
  36. if e.DeviceSn != "" {
  37. table = table.Where("device_sn = ?", e.DeviceSn)
  38. }
  39. if e.Uid != "" {
  40. table = table.Where("uid = ?", e.Uid)
  41. }
  42. if err = table.First(&record).Error; err != nil {
  43. return record, err
  44. }
  45. return record, nil
  46. }
  47. func (e *BusUpgradeRecord) GetPage(pageSize int, pageIndex int, gids []int) ([]BusUpgradeRecord, int, error) {
  48. var doc []BusUpgradeRecord
  49. table := orm.Eloquent.Table(e.TableName())
  50. if e.FileName != "" {
  51. table = table.Where("file_name like ?", "%"+e.FileName+"%")
  52. }
  53. if e.DeviceSn != "" {
  54. table = table.Where("device_sn like ?", "%"+e.DeviceSn+"%")
  55. }
  56. if len(gids) > 0 {
  57. table = table.Where("group_id in (?)", gids)
  58. }
  59. var count int64
  60. if err := table.Order("record_id desc").Offset((pageIndex - 1) * pageSize).Limit(pageSize).Find(&doc).Offset(-1).Limit(-1).Count(&count).Error; err != nil {
  61. return nil, 0, err
  62. }
  63. for k, v := range doc {
  64. user := models.SysUser{}
  65. id, _ := strconv.Atoi(v.CreateBy)
  66. if err := orm.Eloquent.Table("sys_user").Where("user_id = ?", id).Find(&user).Error; err == nil {
  67. doc[k].CreateBy = user.Username
  68. }
  69. id, _ = strconv.Atoi(v.UpdateBy)
  70. user2 := models.SysUser{}
  71. if err := orm.Eloquent.Table("sys_user").Where("user_id = ?", id).Find(&user2).Error; err == nil {
  72. doc[k].UpdateBy = user2.Username
  73. }
  74. }
  75. return doc, int(count), nil
  76. }
  77. func (e *BusUpgradeRecord) Insert() (id int, err error) {
  78. //添加数据
  79. var upgradeFile BusUpgradeFile
  80. var dev BusDevice
  81. upgradeFileTable := orm.Eloquent.Table("bus_upgrade_file")
  82. if e.Uid == "" {
  83. return
  84. }
  85. if err = upgradeFileTable.Where("uid = ?", e.Uid).Find(&upgradeFile).Error; err != nil {
  86. return
  87. }
  88. dev.DeviceSn = e.DeviceSn
  89. if dev, err = dev.GetDeviceByDeviceSn(); err != nil {
  90. return
  91. }
  92. e.Size = upgradeFile.Size
  93. e.FileName = upgradeFile.FileName
  94. e.GroupId = dev.GroupId
  95. e.VersionName = upgradeFile.VersionName
  96. if err = orm.Eloquent.Table(e.TableName()).Create(&e).Error; err != nil {
  97. return
  98. }
  99. id = e.RecordId
  100. return
  101. }
  102. //delelte log
  103. func (e *BusUpgradeRecord) Delete(id int) (success bool, err error) {
  104. if err = orm.Eloquent.Table(e.TableName()).Where("record_id = ?", id).Delete(&BusUpgradeRecord{}).Error; err != nil {
  105. success = false
  106. return
  107. }
  108. success = true
  109. return
  110. }
  111. func (e *BusUpgradeRecord) BatchDelete(id []int) (Result bool, err error) {
  112. if err = orm.Eloquent.Table(e.TableName()).Where("record_id in (?)", id).Delete(&BusUpgradeRecord{}).Error; err != nil {
  113. return
  114. }
  115. Result = true
  116. return
  117. }