126 lines
4.5 KiB
Go
126 lines
4.5 KiB
Go
|
// ==========================================================================
|
|||
|
// GFast自动生成controller操作代码。
|
|||
|
// 生成日期:2023-11-14 10:53:21
|
|||
|
// 生成路径: internal/app/system/controller/manage_device.go
|
|||
|
// 生成人:gfast
|
|||
|
// desc:设备信息
|
|||
|
// company:云南奇讯科技有限公司
|
|||
|
// ==========================================================================
|
|||
|
|
|||
|
package controller
|
|||
|
|
|||
|
import (
|
|||
|
"context"
|
|||
|
"errors"
|
|||
|
"github.com/gogf/gf/v2/frame/g"
|
|||
|
"github.com/tiger1103/gfast/v3/api/v1/system"
|
|||
|
"github.com/tiger1103/gfast/v3/internal/app/system/dao"
|
|||
|
"github.com/tiger1103/gfast/v3/internal/app/system/model"
|
|||
|
"github.com/tiger1103/gfast/v3/internal/app/system/service"
|
|||
|
"github.com/tiger1103/gfast/v3/library/liberr"
|
|||
|
"github.com/tiger1103/gfast/v3/third/plane/mqtt"
|
|||
|
)
|
|||
|
|
|||
|
type manageDeviceController struct {
|
|||
|
BaseController
|
|||
|
}
|
|||
|
|
|||
|
var ManageDevice = new(manageDeviceController)
|
|||
|
|
|||
|
// List 列表
|
|||
|
func (c *manageDeviceController) List(ctx context.Context, req *system.ManageDeviceSearchReq) (res *system.ManageDeviceSearchRes, err error) {
|
|||
|
res, err = service.ManageDevice().List(ctx, req)
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
// NoPageList 不分页列表
|
|||
|
func (c *manageDeviceController) NoPageList(ctx context.Context, req *system.NoPageListSearchReq) (res *system.NoPageListSearchRes, err error) {
|
|||
|
res, err = service.ManageDevice().NoPageList(ctx, req)
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
// Get 获取设备信息
|
|||
|
func (c *manageDeviceController) Get(ctx context.Context, req *system.ManageDeviceGetReq) (res *system.ManageDeviceGetRes, err error) {
|
|||
|
res = new(system.ManageDeviceGetRes)
|
|||
|
res.ManageDeviceInfoRes, err = service.ManageDevice().GetById(ctx, req.Id)
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
// Add 添加设备信息
|
|||
|
func (c *manageDeviceController) Add(ctx context.Context, req *system.ManageDeviceAddReq) (res *system.ManageDeviceAddRes, err error) {
|
|||
|
err = service.ManageDevice().Add(ctx, req)
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
// Edit 修改设备信息
|
|||
|
func (c *manageDeviceController) Edit(ctx context.Context, req *system.ManageDeviceEditReq) (res *system.ManageDeviceEditRes, err error) {
|
|||
|
err = service.ManageDevice().Edit(ctx, req)
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
// Delete 删除设备信息
|
|||
|
func (c *manageDeviceController) Delete(ctx context.Context, req *system.ManageDeviceDeleteReq) (res *system.ManageDeviceDeleteRes, err error) {
|
|||
|
err = service.ManageDevice().Delete(ctx, req.Ids)
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
// ProductEnumerationFunc 设备产品枚举(固定的东西),目前
|
|||
|
func (c *manageDeviceController) ProductEnumerationFunc(ctx context.Context, req *system.ProductEnumerationFuncReq) (res *system.ProductEnumerationFuncRes, err error) {
|
|||
|
err = g.Try(ctx, func(ctx context.Context) {
|
|||
|
res = new(system.ProductEnumerationFuncRes)
|
|||
|
var mdi []*model.ManageDeviceDictionaryInfo
|
|||
|
err = g.DB().Model("manage_device_dictionary").Ctx(ctx).Where("id", 2).Scan(&mdi)
|
|||
|
res.List = mdi
|
|||
|
liberr.ErrIsNil(ctx, err, "获取失败")
|
|||
|
})
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
// CameraPhotoTakeFunc 无人机抓拍
|
|||
|
func (c *manageDeviceController) CameraPhotoTakeFunc(ctx context.Context, req *system.CameraPhotoTakeFuncReq) (res *system.CameraPhotoTakeFuncRes, err error) {
|
|||
|
//0、根据航迹ID获取到当前正在执行任务的状态(是手动飞行还是自动飞行?只有手动才能拍照,因为涉及到大图合并)
|
|||
|
count, err := dao.ManageTaskRecord.Ctx(ctx).Where("track_id", req.TrackId).Where("is_voluntarily = 1").Count()
|
|||
|
if err != nil {
|
|||
|
return
|
|||
|
}
|
|||
|
if count == 0 {
|
|||
|
err = errors.New("当前任务为定时任务,无法执行手动拍照功能!")
|
|||
|
return nil, err
|
|||
|
}
|
|||
|
//1、组装数据
|
|||
|
err, d := mqtt.Camera_photo_take(ctx, req.GatewaySn, req.PayloadIndex)
|
|||
|
if err != nil {
|
|||
|
return nil, err
|
|||
|
}
|
|||
|
if d.Data.Result > 0 {
|
|||
|
err = mqtt.Geterror(d.Data.Result)
|
|||
|
}
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
// LiveSetQualityFunc 设置直播清晰度
|
|||
|
func (c *manageDeviceController) LiveSetQualityFunc(ctx context.Context, req *system.LiveSetQualityReq) (res *system.LiveSetQualityRes, err error) {
|
|||
|
//1、组装数据
|
|||
|
err, d := mqtt.Live_set_quality(ctx, req.GatewaySn, req.Two, req.PayloadIndex, req.Enum)
|
|||
|
if err != nil {
|
|||
|
return nil, err
|
|||
|
}
|
|||
|
if d.Data.Result > 0 {
|
|||
|
err = mqtt.Geterror(d.Data.Result)
|
|||
|
}
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
// ButtonStateFunc 调试模式按钮状态
|
|||
|
func (c *manageDeviceController) ButtonStateFunc(ctx context.Context, req *system.ButtonStateReq) (res *system.ButtonStateRes, err error) {
|
|||
|
res = new(system.ButtonStateRes)
|
|||
|
var be *model.ButtonEntity
|
|||
|
err = g.DB().Model("manage_button_state").Where("mq_client_id", req.MqClientId).Scan(&be)
|
|||
|
if err != nil {
|
|||
|
err = errors.New("获取调试模式按钮状态失败!")
|
|||
|
} else {
|
|||
|
res.ButtonEntity = be
|
|||
|
}
|
|||
|
return
|
|||
|
}
|