Pārlūkot izejas kodu

修复缓存的Bug

lijian 6 gadi atpakaļ
vecāks
revīzija
065f7cc626
2 mainītis faili ar 16 papildinājumiem un 9 dzēšanām
  1. 1 1
      services/knowoapi/model/alert.go
  2. 15 8
      services/knowoapi/model/product.go

+ 1 - 1
services/knowoapi/model/alert.go

@@ -48,7 +48,7 @@ func (a *Alert) Update(vendorid uint, alert *models.AlarmRule) (data models.Alar
 	}
 	err = a.db.Model(&data).Save(alert).Where("vendor_id = ?", vendorid).Error
 	if err == nil {
-		cache.Set(key, &data)
+		cache.Set(key, &alert)
 	}
 	return
 }

+ 15 - 8
services/knowoapi/model/product.go

@@ -22,8 +22,12 @@ func (a *Product) Init(_db *gorm.DB) *Product {
 func (a *Product) Create(product *models.Product) error {
 	cache := getCache()
 	key := fmt.Sprintf("Product:%s", product.ProductKey)
-	cache.Set(key, product)
-	return a.db.Save(product).Error
+
+	err := a.db.Save(product).Error
+	if err == nil {
+		cache.Set(key, product)
+	}
+	return err
 }
 
 // Delete 删除
@@ -38,13 +42,16 @@ func (a *Product) Delete(product *models.Product) error {
 
 // Update 更新
 func (a *Product) Update(product *models.Product) (pro models.Product, err error) {
-	cache := getCache()
-	key := fmt.Sprintf("Product:%s", product.ProductKey)
-	if _, ok := cache.Get(key); ok {
-		cache.Delete(key)
-	}
-	cache.Set(key, product)
+
 	err = a.db.Model(&pro).Save(product).Error
+	if err == nil {
+		cache := getCache()
+		key := fmt.Sprintf("Product:%s", product.ProductKey)
+		if _, ok := cache.Get(key); ok {
+			cache.Delete(key)
+		}
+		cache.Set(key, product)
+	}
 	return
 }