liuxiulin hai 8 meses
pai
achega
e98f5eed5d
Modificáronse 2 ficheiros con 23 adicións e 3 borrados
  1. 17 0
      services/knowoapi/model/device.go
  2. 6 3
      services/knowoapi/services/device.go

+ 17 - 0
services/knowoapi/model/device.go

@@ -1,6 +1,7 @@
 package model
 
 import (
+	"fmt"
 	"sparrow/pkg/models"
 	"time"
 
@@ -144,6 +145,22 @@ func (a *Device) GetDevices(vendorid, proid string, pi, ps int, deviceid string)
 	return
 }
 
+// GetDevice 获取设备
+func (a *Device) GetDevice(vendorid string, alertid string) (data models.Device, err error) {
+	cache := getCache()
+	key := fmt.Sprintf("Alert:%d", alertid)
+	if v, ok := cache.Get(key); ok {
+		_d := v.(*models.Device)
+		data = *_d
+	} else {
+		err = a.db.Where("vendor_id = ? and record_id = ?", vendorid, alertid).First(&data).Error
+		if err == nil {
+			cache.Set(key, &data)
+		}
+	}
+	return
+}
+
 // GetDevicesByVenderId 获取用户设备
 func (a *Device) GetDevicesByVenderId(vendorid string) (datas []models.Device, err error) {
 	a.db.Where("vendor_id = ?", vendorid).Find(&datas)

+ 6 - 3
services/knowoapi/services/device.go

@@ -157,20 +157,23 @@ func (a deviceservice) GetDevicesCountByVenderId(vendorid string) (map[string]in
 }
 
 func (a deviceservice) Upgrade(param *models.UpgradeParams) error {
-
+	data, err := a.models.Device.GetDevice(param.VendorID, param.DeviceID)
+	if err != nil {
+		return err
+	}
 	var fileArgs rpcs.ArgsOtaFile
 	fileArgs.FileData = param.File
 	fileArgs.FileId = guid.S()
 	var reply rpcs.ReplyEmptyResult
 
-	err := server.RPCCallByName(nil, rpcs.DeviceManagerName, "DeviceManager.SavaFile", fileArgs, &reply)
+	err = server.RPCCallByName(nil, rpcs.DeviceManagerName, "DeviceManager.SavaFile", fileArgs, &reply)
 	if err != nil {
 		server.Log.Errorf("OTA升级文件保存失败:%v", err)
 		return err
 	}
 
 	var args rpcs.ArgsUpgrade4G
-	args.DeviceId = param.DeviceID
+	args.DeviceId = data.DeviceIdentifier
 	args.FileId = fileArgs.FileId
 	args.FileSize = param.FileSize