dev_screens.go 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. package devices
  2. import (
  3. "errors"
  4. "gorm.io/gorm"
  5. "server/dao/devices"
  6. "server/model/common/request"
  7. model "server/model/devices"
  8. "server/service/tcp"
  9. "server/utils/logger"
  10. )
  11. type ScreensService struct{}
  12. func (screensService *ScreensService) GetScreensInfoList(info request.PageInfo) (list interface{}, total int64, err error) {
  13. limit := info.PageSize
  14. offset := info.PageSize * (info.Page - 1)
  15. keyword := info.Keyword
  16. shunt := info.Shunt
  17. gatewayList, total, err := devices.QueryScreensInfoList(limit, offset, keyword, shunt)
  18. return gatewayList, total, err
  19. }
  20. func (screensService *ScreensService) QueryScreensParms() (list interface{}, err error) {
  21. resolution := devices.Resolution{}
  22. getResolution, err := resolution.GetResolution()
  23. screensSize := devices.ScreensSize{}
  24. getScreensSize, err := screensSize.GetScreensSize()
  25. way := devices.GateWay{}
  26. gatewayList, err := way.PublicGateway()
  27. params := model.RspParams{Resolution: getResolution, ScreensSize: getScreensSize, PubGateway: gatewayList}
  28. return params, err
  29. }
  30. func (screensService *ScreensService) DelScreens(id int) error {
  31. s := devices.Screens{}
  32. err := s.DelScreens(id)
  33. return err
  34. }
  35. func (screensService *ScreensService) AddScreens(screens devices.Screens) error {
  36. err := screens.IsExistedByCode()
  37. if !errors.Is(err, gorm.ErrRecordNotFound) {
  38. logger.Logger.Errorf("Create IsExistedByCode \n")
  39. return errors.New("设备编码已存在!")
  40. }
  41. err = screens.AddScreens()
  42. return err
  43. }
  44. func (screensService *ScreensService) UpdateScreens(screens devices.Screens) error {
  45. err := screens.UpdateScreens()
  46. return err
  47. }
  48. func (screensService *ScreensService) SwitchScreens(swatch model.SwitchScreens) error {
  49. //判断组网方式 0代表网关 1代表4G模块
  50. if swatch.Network == 1 {
  51. err := tcp.SwitchScreen(swatch.Sn, swatch.Flag)
  52. if err != nil {
  53. logger.Logger.Errorf("SwitchScreens faild \n")
  54. return errors.New("开关屏幕失败!")
  55. }
  56. } else {
  57. // TODO 通过mqtt发送指令开关屏
  58. return nil
  59. }
  60. return nil
  61. }