| | |
| | | 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)
|
| | | }
|
| | | } |