dev_screens.go 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  1. package devices
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "go.uber.org/zap"
  5. "server/dao/devices"
  6. "server/global"
  7. promodel "server/model/common/devices"
  8. "server/model/common/request"
  9. "server/model/common/response"
  10. model "server/model/devices"
  11. "server/utils"
  12. )
  13. type ScreensApi struct{}
  14. func (s *ScreensApi) QueryScreensParms(c *gin.Context) {
  15. list, err := ScreensService.QueryScreensParms()
  16. if err != nil {
  17. global.GVA_LOG.Error("获取屏参失败!", zap.Error(err))
  18. response.FailWithMessage("获取失败", c)
  19. return
  20. }
  21. response.OkWithDetailed(list, "获取成功", c)
  22. }
  23. func (s *ScreensApi) ScreensList(c *gin.Context) {
  24. var pageInfo request.PageInfo
  25. err := c.ShouldBindJSON(&pageInfo)
  26. if err != nil {
  27. response.FailWithMessage(err.Error(), c)
  28. return
  29. }
  30. err = utils.Verify(pageInfo, utils.PageInfoVerify)
  31. if err != nil {
  32. response.FailWithMessage(err.Error(), c)
  33. return
  34. }
  35. list, total, err := ScreensService.GetScreensInfoList(pageInfo)
  36. if err != nil {
  37. global.GVA_LOG.Error("获取失败!", zap.Error(err))
  38. response.FailWithMessage("获取失败", c)
  39. return
  40. }
  41. response.OkWithDetailed(response.PageResult{
  42. List: list,
  43. Total: total,
  44. Page: pageInfo.Page,
  45. PageSize: pageInfo.PageSize,
  46. }, "获取成功", c)
  47. }
  48. func (s *ScreensApi) DelScreens(c *gin.Context) {
  49. var reqId request.GetBySn
  50. err := c.ShouldBindJSON(&reqId)
  51. if err != nil {
  52. response.FailWithMessage(err.Error(), c)
  53. return
  54. }
  55. err = utils.Verify(reqId, utils.IdVerify)
  56. if err != nil {
  57. response.FailWithMessage(err.Error(), c)
  58. return
  59. }
  60. err = ScreensService.DelScreens(reqId.Sn)
  61. if err != nil {
  62. global.GVA_LOG.Error("删除失败!", zap.Error(err))
  63. response.FailWithMessage("删除失败", c)
  64. return
  65. }
  66. response.OkWithMessage("删除成功", c)
  67. }
  68. func (s *ScreensApi) AddScreens(c *gin.Context) {
  69. var sc model.ReqScreens
  70. err := c.ShouldBindJSON(&sc)
  71. if err != nil {
  72. response.FailWithMessage(err.Error(), c)
  73. return
  74. }
  75. screens := devices.Screens{
  76. ScreensName: sc.ScreensName,
  77. ScreensCode: sc.ScreensCode,
  78. Sn: sc.Sn,
  79. Network: sc.Network,
  80. ScreensBrand: sc.ScreensBrand,
  81. ScreensModel: sc.ScreensModel,
  82. IPAddress: sc.IpAddress,
  83. GatewayId: sc.GatewayID,
  84. ResolutionId: sc.ResolutionId,
  85. ScreensSizeId: sc.ScreensSizeId,
  86. Shunt: sc.Shunt,
  87. ShuntDescribe: sc.ShuntDescribe,
  88. InstallTime: sc.InstallTime,
  89. SwitchSn: sc.SwitchSn,
  90. }
  91. err = ScreensService.AddScreens(screens)
  92. if err != nil {
  93. global.GVA_LOG.Error(err.Error(), zap.Error(err))
  94. response.FailWithMessage(err.Error(), c)
  95. return
  96. }
  97. response.OkWithMessage("添加成功", c)
  98. }
  99. func (s *ScreensApi) UpdateScreens(c *gin.Context) {
  100. var sc model.ReqScreens
  101. err := c.ShouldBindJSON(&sc)
  102. if err != nil {
  103. response.FailWithMessage(err.Error(), c)
  104. return
  105. }
  106. err = utils.Verify(sc, utils.IdVerify)
  107. if err != nil {
  108. response.FailWithMessage(err.Error(), c)
  109. return
  110. }
  111. screens := devices.Screens{
  112. ID: sc.ID,
  113. ScreensName: sc.ScreensName,
  114. ScreensCode: sc.ScreensCode,
  115. Sn: sc.Sn,
  116. Network: sc.Network,
  117. ScreensBrand: sc.ScreensBrand,
  118. ScreensModel: sc.ScreensModel,
  119. IPAddress: sc.IpAddress,
  120. GatewayId: sc.GatewayID,
  121. ResolutionId: sc.ResolutionId,
  122. ScreensSizeId: sc.ScreensSizeId,
  123. Shunt: sc.Shunt,
  124. ShuntDescribe: sc.ShuntDescribe,
  125. InstallTime: sc.InstallTime,
  126. SwitchSn: sc.SwitchSn,
  127. Status: sc.Status,
  128. LastOnlineTime: sc.LastOnlineTime,
  129. LastOfflineTime: sc.LastOfflineTime,
  130. }
  131. err = ScreensService.UpdateScreens(screens, sc.OldSn)
  132. if err != nil {
  133. global.GVA_LOG.Error("设置失败!", zap.Error(err))
  134. response.FailWithMessage(err.Error(), c)
  135. return
  136. }
  137. response.OkWithMessage("设置成功", c)
  138. }
  139. // 熄屏-亮屏幕
  140. func (s *ScreensApi) SwitchScreens(c *gin.Context) {
  141. var swch promodel.SwitchScreens
  142. err := c.ShouldBindJSON(&swch)
  143. if err != nil {
  144. response.FailWithMessage(err.Error(), c)
  145. return
  146. }
  147. err = ScreensService.SwitchScreens(swch)
  148. if err != nil {
  149. global.GVA_LOG.Error("操作失败!", zap.Error(err))
  150. response.FailWithMessage("操作失败", c)
  151. return
  152. }
  153. response.OkWithMessage("操作成功", c)
  154. }
  155. // 发送内码文字
  156. func (s *ScreensApi) SendInternalCode(c *gin.Context) {
  157. var ic model.ReqInCode
  158. err := c.ShouldBindJSON(&ic)
  159. if err != nil {
  160. response.FailWithMessage(err.Error(), c)
  161. return
  162. }
  163. var inCodeArr []promodel.InternalCodeContent
  164. for _, content := range ic.Content {
  165. inCode := promodel.InternalCodeContent{Text: content.Text, Color: 0x01, Size: 0x12} //默认红色,大小24号
  166. if content.Color == "绿色" {
  167. inCode.Color = 0x02
  168. }
  169. if content.Color == "黄色" {
  170. inCode.Color = 0x03
  171. }
  172. inCodeArr = append(inCodeArr, inCode)
  173. }
  174. err = ScreensService.SendInternalCode(ic.Sn, inCodeArr)
  175. if err != nil {
  176. global.GVA_LOG.Error("操作失败!", zap.Error(err))
  177. response.FailWithMessage("操作失败", c)
  178. return
  179. }
  180. response.OkWithMessage("操作成功", c)
  181. }
  182. // 远程喊话
  183. func (s *ScreensApi) VoiceBroad(c *gin.Context) {
  184. var vb promodel.VoiceBroad
  185. err := c.ShouldBindJSON(&vb)
  186. if err != nil {
  187. response.FailWithMessage(err.Error(), c)
  188. return
  189. }
  190. err = ScreensService.VoiceBroad(vb.Sn, vb.BroadContent)
  191. if err != nil {
  192. global.GVA_LOG.Error("操作失败!", zap.Error(err))
  193. response.FailWithMessage("操作失败", c)
  194. return
  195. }
  196. response.OkWithMessage("操作成功", c)
  197. }
  198. // 调节亮度
  199. func (s *ScreensApi) SetBrightAudioLed(c *gin.Context) {
  200. var sb model.ReqBrightness
  201. err := c.ShouldBindJSON(&sb)
  202. if err != nil {
  203. response.FailWithMessage(err.Error(), c)
  204. return
  205. }
  206. err = ScreensService.SetBrightAudioLed(sb)
  207. if err != nil {
  208. global.GVA_LOG.Error("操作失败!", zap.Error(err))
  209. response.FailWithMessage("操作失败", c)
  210. return
  211. }
  212. response.OkWithMessage("操作成功", c)
  213. }