ota.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package model
  2. import (
  3. "fmt"
  4. "sparrow/pkg/models"
  5. "github.com/jinzhu/gorm"
  6. )
  7. // Ota model
  8. type Ota struct {
  9. db *gorm.DB
  10. }
  11. // Init init Ota
  12. func (a *Ota) Init(db *gorm.DB) *Ota {
  13. a.db = db
  14. return a
  15. }
  16. // Query query all roles
  17. func (a *Ota) Query(pi, ps int, name, vendorId, version string) (datas []models.Ota, total int, err error) {
  18. tx := a.db.Where("1=1")
  19. if version != "" {
  20. tx = tx.Where("version like ?", "%"+version+"%")
  21. }
  22. if name != "" {
  23. tx = tx.Where("name like ?", "%"+name+"%")
  24. }
  25. if vendorId != "" {
  26. tx = tx.Where("vendor_id = ?", vendorId)
  27. }
  28. err = tx.Limit(ps).Offset((pi - 1) * ps).Find(&datas).Error
  29. err = tx.Model(&models.Ota{}).Count(&total).Error
  30. return
  31. }
  32. // Get 获取数据内容
  33. func (a *Ota) Get(vendorId string, recordId string) (data models.Ota, err error) {
  34. cache := getCache()
  35. key := fmt.Sprintf("OtaId:%s", recordId)
  36. if v, ok := cache.Get(key); ok {
  37. _d := v.(*models.Ota)
  38. data = *_d
  39. } else {
  40. err = a.db.Where("vendor_id = ? and record_id = ?", vendorId, recordId).First(&data).Error
  41. if err == nil {
  42. cache.Set(key, &data)
  43. }
  44. }
  45. return
  46. }
  47. // Create 创建
  48. func (a *Ota) Create(Ota *models.Ota) error {
  49. return a.db.Save(Ota).Error
  50. }
  51. // Delete delete
  52. func (a *Ota) Delete(Ota *models.Ota) error {
  53. cache := getCache()
  54. key := fmt.Sprintf("Ota:%d", Ota.ID)
  55. if _, ok := cache.Get(key); ok {
  56. cache.Delete(key)
  57. }
  58. return a.db.Delete(Ota).Error
  59. }
  60. // Update update
  61. func (a *Ota) Update(Ota *models.Ota) (data models.Ota, err error) {
  62. cache := getCache()
  63. key := fmt.Sprintf("Ota:%d", Ota.ID)
  64. if _, ok := cache.Get(key); ok {
  65. cache.Delete(key)
  66. }
  67. err = a.db.Model(&data).Update(Ota).Error
  68. return
  69. }