Files
zmkgC/internal/app/system/controller/manage_device.go
2025-07-07 20:11:59 +08:00

126 lines
4.5 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// ==========================================================================
// 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
}