package devices import ( "github.com/gin-gonic/gin" "go.uber.org/zap" "server/dao/devices" "server/global" promodel "server/model/common/devices" "server/model/common/request" "server/model/common/response" model "server/model/devices" "server/utils" ) type ScreensApi struct{} func (s *ScreensApi) QueryScreensParms(c *gin.Context) { list, err := ScreensService.QueryScreensParms() if err != nil { global.GVA_LOG.Error("获取屏参失败!", zap.Error(err)) response.FailWithMessage("获取失败", c) return } response.OkWithDetailed(list, "获取成功", c) } func (s *ScreensApi) ScreensList(c *gin.Context) { var pageInfo request.PageInfo err := c.ShouldBindJSON(&pageInfo) if err != nil { response.FailWithMessage(err.Error(), c) return } err = utils.Verify(pageInfo, utils.PageInfoVerify) if err != nil { response.FailWithMessage(err.Error(), c) return } list, total, err := ScreensService.GetScreensInfoList(pageInfo) if err != nil { global.GVA_LOG.Error("获取失败!", zap.Error(err)) response.FailWithMessage("获取失败", c) return } response.OkWithDetailed(response.PageResult{ List: list, Total: total, Page: pageInfo.Page, PageSize: pageInfo.PageSize, }, "获取成功", c) } func (s *ScreensApi) DelScreens(c *gin.Context) { var reqId request.GetBySn err := c.ShouldBindJSON(&reqId) if err != nil { response.FailWithMessage(err.Error(), c) return } err = utils.Verify(reqId, utils.IdVerify) if err != nil { response.FailWithMessage(err.Error(), c) return } err = ScreensService.DelScreens(reqId.Sn) if err != nil { global.GVA_LOG.Error("删除失败!", zap.Error(err)) response.FailWithMessage("删除失败", c) return } response.OkWithMessage("删除成功", c) } func (s *ScreensApi) AddScreens(c *gin.Context) { var sc model.ReqScreens err := c.ShouldBindJSON(&sc) if err != nil { response.FailWithMessage(err.Error(), c) return } screens := devices.Screens{ ScreensName: sc.ScreensName, ScreensCode: sc.ScreensCode, Sn: sc.Sn, Network: sc.Network, ScreensBrand: sc.ScreensBrand, ScreensModel: sc.ScreensModel, IPAddress: sc.IpAddress, GatewayId: sc.GatewayID, ResolutionId: sc.ResolutionId, ScreensSizeId: sc.ScreensSizeId, Shunt: sc.Shunt, ShuntDescribe: sc.ShuntDescribe, InstallTime: sc.InstallTime, SwitchSn: sc.SwitchSn, } err = ScreensService.AddScreens(screens) if err != nil { global.GVA_LOG.Error(err.Error(), zap.Error(err)) response.FailWithMessage(err.Error(), c) return } response.OkWithMessage("添加成功", c) } func (s *ScreensApi) UpdateScreens(c *gin.Context) { var sc model.ReqScreens err := c.ShouldBindJSON(&sc) if err != nil { response.FailWithMessage(err.Error(), c) return } err = utils.Verify(sc, utils.IdVerify) if err != nil { response.FailWithMessage(err.Error(), c) return } screens := devices.Screens{ ID: sc.ID, ScreensName: sc.ScreensName, ScreensCode: sc.ScreensCode, Sn: sc.Sn, Network: sc.Network, ScreensBrand: sc.ScreensBrand, ScreensModel: sc.ScreensModel, IPAddress: sc.IpAddress, GatewayId: sc.GatewayID, ResolutionId: sc.ResolutionId, ScreensSizeId: sc.ScreensSizeId, Shunt: sc.Shunt, ShuntDescribe: sc.ShuntDescribe, InstallTime: sc.InstallTime, SwitchSn: sc.SwitchSn, Status: sc.Status, LastOnlineTime: sc.LastOnlineTime, LastOfflineTime: sc.LastOfflineTime, } err = ScreensService.UpdateScreens(screens, sc.OldSn) if err != nil { global.GVA_LOG.Error("设置失败!", zap.Error(err)) response.FailWithMessage(err.Error(), c) return } response.OkWithMessage("设置成功", c) } // 熄屏-亮屏幕 func (s *ScreensApi) SwitchScreens(c *gin.Context) { var swch promodel.SwitchScreens err := c.ShouldBindJSON(&swch) if err != nil { response.FailWithMessage(err.Error(), c) return } err = ScreensService.SwitchScreens(swch) if err != nil { global.GVA_LOG.Error("操作失败!", zap.Error(err)) response.FailWithMessage("操作失败", c) return } response.OkWithMessage("操作成功", c) } // 发送内码文字 func (s *ScreensApi) SendInternalCode(c *gin.Context) { var ic model.ReqInCode err := c.ShouldBindJSON(&ic) if err != nil { response.FailWithMessage(err.Error(), c) return } var inCodeArr []promodel.InternalCodeContent for _, content := range ic.Content { inCode := promodel.InternalCodeContent{Text: content.Text, Color: 0x01, Size: 0x12} //默认红色,大小24号 if content.Color == "绿色" { inCode.Color = 0x02 } if content.Color == "黄色" { inCode.Color = 0x03 } inCodeArr = append(inCodeArr, inCode) } err = ScreensService.SendInternalCode(ic.Sn, inCodeArr) if err != nil { global.GVA_LOG.Error("操作失败!", zap.Error(err)) response.FailWithMessage("操作失败", c) return } response.OkWithMessage("操作成功", c) } // 远程喊话 func (s *ScreensApi) VoiceBroad(c *gin.Context) { var vb promodel.VoiceBroad err := c.ShouldBindJSON(&vb) if err != nil { response.FailWithMessage(err.Error(), c) return } err = ScreensService.VoiceBroad(vb.Sn, vb.BroadContent) if err != nil { global.GVA_LOG.Error("操作失败!", zap.Error(err)) response.FailWithMessage("操作失败", c) return } response.OkWithMessage("操作成功", c) } // 调节亮度 func (s *ScreensApi) SetBrightAudioLed(c *gin.Context) { var sb model.ReqBrightness err := c.ShouldBindJSON(&sb) if err != nil { response.FailWithMessage(err.Error(), c) return } err = ScreensService.SetBrightAudioLed(sb) if err != nil { global.GVA_LOG.Error("操作失败!", zap.Error(err)) response.FailWithMessage("操作失败", c) return } response.OkWithMessage("操作成功", c) }