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