| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- package business
- import (
- "fmt"
- "net/http"
- "time"
- "github.com/gin-gonic/gin"
- "github.com/gin-gonic/gin/binding"
- //"device-manage/app/admin/models"
- "device-manage/app/admin/models/busmodels"
- "device-manage/common/log"
- mqtthandler "device-manage/common/mqttcli"
- "device-manage/tools"
- "device-manage/tools/app"
- "device-manage/tools/config"
- )
- func GetApplicationList(c *gin.Context) {
- var data busmodels.BusApplication
- var err error
- var params busmodels.QueryAppParams
- err = c.MustBindWith(¶ms, binding.JSON)
- pageSize := params.PageSize
- pageIndex := params.PageIndex
- gids := params.Gids
- data.AppName = params.AppName
- data.DestObject = params.DestObject
- result, count, err := data.GetPage(pageSize, pageIndex, gids)
- tools.HasError(err, "", -1)
- app.PageOK(c, result, count, pageIndex, pageSize, "")
- }
- func InsertApplication(c *gin.Context) {
- var appInfo busmodels.BusApplication
- err := c.MustBindWith(&appInfo, binding.JSON)
- tools.HasError(err, "非法数据格式", 500)
- user := tools.GetUserIdStr(c)
- appInfo.CreateBy = user
- appInfo.UpdateBy = user
- fmt.Println(user)
- times := time.Now()
- appInfo.CreatedAt = times
- appInfo.UpdatedAt = times
- id, err := appInfo.Insert()
- fmt.Println(id)
- tools.HasError(err, "添加失败", 500)
- app.OK(c, id, "添加成功")
- }
- func GetApplication(c *gin.Context) {
- var data busmodels.BusApplication
- data.AppId, _ = tools.StringToInt(c.Param("appId"))
- fmt.Println(data.AppId)
- result, err := data.Get()
- tools.HasError(err, "抱歉未找到相关信息", -1)
- var res app.Response
- res.Data = result
- c.JSON(http.StatusOK, res.ReturnOK())
- }
- //更新之前,应该先获取当前选项的数据, 得到 id以后才好i修改.
- func UpdateApplication(c *gin.Context) {
- var data busmodels.BusApplication
- err := c.Bind(&data)
- fmt.Println(data)
- tools.HasError(err, "数据解析失败", -1)
- data.UpdateBy = tools.GetUserIdStr(c)
- fmt.Println(data)
- result, err := data.Update(data.AppId)
- tools.HasError(err, "修改失败", 500)
- app.OK(c, result, "修改成功")
- }
- func DeleteApplication(c *gin.Context) {
- var data busmodels.BusApplication
- data.UpdateBy = tools.GetUserIdStr(c)
- IDS := tools.IdsStrToIdsIntGroup("appId", c)
- fmt.Println(IDS)
- result, err := data.BatchDelete(IDS)
- tools.HasError(err, "删除失败", 500)
- app.OK(c, result, "删除成功")
- }
- func PublishApp2Devices(c *gin.Context) {
- var applicatoin busmodels.BusApplication
- var upgradefile busmodels.BusUpgradeFile
- var record busmodels.BusUpgradeRecord
- var dev busmodels.BusDevice
- var devInfo busmodels.DeviceInfo
- var data busmodels.PublishAppDevice
- err := c.MustBindWith(&data, binding.JSON)
- tools.HasError(err, "非法数据格式", 500)
- fmt.Println(data.AppId)
- applicatoin.AppId = data.AppId
- upgradefile.AppId = data.AppId
- userId := tools.GetUserIdStr(c)
- appInfo, _ := applicatoin.Get()
- upgradefile, _ = upgradefile.GetFirstFile()
- // /api/v1/device/usual/upgradefile/download
- url := "http://" + tools.GetLocaHonst() + ":" + config.ApplicationConfig.Port + "/"
- fmt.Println(url)
- //todo publish app to devices
- for _, devid := range data.DeviceId {
- fmt.Println(devid)
- dev.DeviceId = devid
- if devInfo, err = dev.Get(); err != nil {
- continue
- }
- record.RecordId = 0
- record.DeviceSn = devInfo.DeviceSn
- record.Uid = upgradefile.Uid
- if record, err = record.GetUpgradeRecord(); err == nil {
- fmt.Println("app version is old.")
- continue
- }
- if devInfo.Status > 0 {
- if _, ok := mqtthandler.MqttClientList[devInfo.ServerIp]; ok {
- go func(devInfo busmodels.DeviceInfo) {
- mqtthandler.MqttClientList[devInfo.ServerIp].FileUpgrade(userId,
- devInfo.DeviceSn, appInfo.AppKey, url, upgradefile.Uid)
- }(devInfo)
- }
- } else {
- log.Info("[%v] publish app device offline", devInfo.DeviceSn)
- }
- }
- //result, err := data.BatchDelete(IDS)
- //tools.HasError(err, "删除失败", 500)
- app.OK(c, "", "发布成功")
- }
- func PublishApp2Groups(c *gin.Context) {
- var applicatoin busmodels.BusApplication
- var upgradefile busmodels.BusUpgradeFile
- var dev busmodels.BusDevice
- var devs []busmodels.DeviceInfo
- var data busmodels.PublishAppGroup
- err := c.MustBindWith(&data, binding.JSON)
- tools.HasError(err, "非法数据格式", 500)
- fmt.Println(data.AppId)
- userId := tools.GetUserIdStr(c)
- applicatoin.AppId = data.AppId
- appInfo, _ := applicatoin.Get()
- upgradefile, _ = upgradefile.GetFirstFile()
- // /api/v1/device/usual/upgradefile/download
- url := "http://" + tools.GetLocaHonst() + ":" + config.ApplicationConfig.Port + "/"
- fmt.Println(url)
- //todo publish app to groups
- for _, gid := range data.GroupId {
- fmt.Println("group id:", gid)
- dev.GroupId = gid
- if devs, err = dev.GetDevices(); err != nil {
- continue
- } else {
- for _, devInfo := range devs {
- dev.DeviceId = devInfo.DeviceId
- if devInfo, err = dev.Get(); err != nil {
- continue
- }
- if devInfo.Status > 0 {
- if _, ok := mqtthandler.MqttClientList[devInfo.ServerIp]; ok {
- go func(devInfo busmodels.DeviceInfo) {
- mqtthandler.MqttClientList[devInfo.ServerIp].FileUpgrade(userId,
- devInfo.DeviceSn, appInfo.AppKey, url, upgradefile.Uid)
- }(devInfo)
- }
- } else {
- log.Info("cmd publish app device offline [%s]", devInfo.DeviceSn)
- }
- }
- }
- }
- //result, err := data.BatchDelete(IDS)
- //tools.HasError(err, "删除失败", 500)
- app.OK(c, "", "发布成功")
- }
|