zhangzengfei
2023-09-05 63645d248c765244488cd34dbc1bb6528ca6b7c7
system-service/service/collectDev.go
@@ -1,95 +1,95 @@
package service
import (
   "basic.com/valib/bhomeclient.git"
   "basic.com/valib/bhomedbapi.git"
   "basic.com/valib/logger.git"
   "context"
   "encoding/json"
   "time"
   "vamicro/system-service/models"
)
func CollectDeviceInfo(ctx context.Context, bk bhomeclient.Broker)  {
   tk := time.NewTicker(time.Second * 10)
   for {
      select {
      case <-ctx.Done():
         logger.Debug("ctx done")
         return
      case <-tk.C:
         collect(bk)
      default:
         time.Sleep(time.Second)
      }
   }
}
type DevCollect struct {
   DeviceList    []models.Device    `json:"deviceList"`
   Sdks       []SdkFill          `json:"sdks"`
   Apps       []AppFill          `json:"apps"`
}
type SdkFill struct {
   models.DeviceSdk
   SdkName       string       `json:"sdkName"`   //汇总展现到页面上,此进程无法获取app和sdks表信息
   IconBlob       string       `json:"iconBlob"`
   IconBlob2       string       `json:"iconBlob2"`
   Version       string       `json:"version"`
   Upgrade       bool       `json:"upgrade"`   //判断是否需要升级
}
type AppFill struct {
   models.DeviceApp
   AppName       string       `json:"appName"`   //汇总展现到页面上,此进程无法获取app和sdks表信息
   IconBlob       string       `json:"iconBlob"`
   IconBlob2       string       `json:"iconBlob2"`
   Version       string       `json:"version"`
   IsDefault       bool       `json:"isDefault"`
   Upgrade       bool       `json:"upgrade"`   //判断是否需要升级
}
func collect(bk bhomeclient.Broker)  {
   var dc DevCollect
   var d models.Device
   var ds models.DeviceSdk
   var da models.DeviceApp
   dc.DeviceList = d.FindAll()
   dsArr := ds.FindAll()
   daArr := da.FindAll()
   sdkApi := bhomedbapi.SdkApi{}
   appApi := bhomedbapi.AppApi{}
   sdkMap := sdkApi.FindAllMap()
   appMap := appApi.FindAppMap()
   for _, s := range dsArr {
      sf := SdkFill{}
      sf.DeviceSdk = s
      if v,ok := sdkMap[s.SdkId];ok {
         sf.SdkName = v.SdkName
         sf.IconBlob = v.IconBlob
         sf.IconBlob2 = v.IconBlob2
         sf.Version = v.Version
      }
      dc.Sdks = append(dc.Sdks, sf)
   }
   for _, a := range daArr {
      af := AppFill{}
      af.DeviceApp = a
      if v,ok := appMap[a.AppId];ok {
         af.AppName = v.Name
         af.IconBlob = v.IconBlob
         af.IconBlob2 = v.IconBlob2
         af.Version = v.Version
         af.IsDefault = v.IsDefault
      }
      dc.Apps = append(dc.Apps, af)
   }
   data, err := json.Marshal(dc)
   if err == nil {
      bk.Publish("collect-manage-device-info", data)
   } else {
      logger.Error("marshal err:", err)
   }
package service
import (
   "basic.com/valib/bhomeclient.git"
   "basic.com/valib/bhomedbapi.git"
   "basic.com/valib/logger.git"
   "context"
   "encoding/json"
   "time"
   "vamicro/system-service/models"
)
func CollectDeviceInfo(ctx context.Context, bk bhomeclient.Broker)  {
   tk := time.NewTicker(time.Second * 10)
   for {
      select {
      case <-ctx.Done():
         logger.Debug("ctx done")
         return
      case <-tk.C:
         collect(bk)
      default:
         time.Sleep(time.Second)
      }
   }
}
type DevCollect struct {
   DeviceList    []models.Device    `json:"deviceList"`
   Sdks       []SdkFill          `json:"sdks"`
   Apps       []AppFill          `json:"apps"`
}
type SdkFill struct {
   models.DeviceSdk
   SdkName       string       `json:"sdkName"`   //汇总展现到页面上,此进程无法获取app和sdks表信息
   IconBlob       string       `json:"iconBlob"`
   IconBlob2       string       `json:"iconBlob2"`
   Version       string       `json:"version"`
   Upgrade       bool       `json:"upgrade"`   //判断是否需要升级
}
type AppFill struct {
   models.DeviceApp
   AppName       string       `json:"appName"`   //汇总展现到页面上,此进程无法获取app和sdks表信息
   IconBlob       string       `json:"iconBlob"`
   IconBlob2       string       `json:"iconBlob2"`
   Version       string       `json:"version"`
   IsDefault       bool       `json:"isDefault"`
   Upgrade       bool       `json:"upgrade"`   //判断是否需要升级
}
func collect(bk bhomeclient.Broker)  {
   var dc DevCollect
   var d models.Device
   var ds models.DeviceSdk
   var da models.DeviceApp
   dc.DeviceList = d.FindAll()
   dsArr := ds.FindAll()
   daArr := da.FindAll()
   sdkApi := bhomedbapi.SdkApi{}
   appApi := bhomedbapi.AppApi{}
   sdkMap := sdkApi.FindAllMap()
   appMap := appApi.FindAppMap()
   for _, s := range dsArr {
      sf := SdkFill{}
      sf.DeviceSdk = s
      if v,ok := sdkMap[s.SdkId];ok {
         sf.SdkName = v.SdkName
         sf.IconBlob = v.IconBlob
         sf.IconBlob2 = v.IconBlob2
         sf.Version = v.Version
      }
      dc.Sdks = append(dc.Sdks, sf)
   }
   for _, a := range daArr {
      af := AppFill{}
      af.DeviceApp = a
      if v,ok := appMap[a.AppId];ok {
         af.AppName = v.Name
         af.IconBlob = v.IconBlob
         af.IconBlob2 = v.IconBlob2
         af.Version = v.Version
         af.IsDefault = v.IsDefault
      }
      dc.Apps = append(dc.Apps, af)
   }
   data, err := json.Marshal(dc)
   if err == nil {
      bk.Publish("collect-manage-device-info", data)
   } else {
      logger.Error("marshal err:", err)
   }
}