mon_multiscreen.go 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. package monitor
  2. import (
  3. "server/dao/devices"
  4. "server/dao/system"
  5. "server/global"
  6. "server/model/monitor"
  7. "server/utils/logger"
  8. "strconv"
  9. "strings"
  10. )
  11. type MultiScreenService struct{}
  12. func (s MultiScreenService) MultiScreenList(id uint) ([]monitor.Placement, error) {
  13. user := system.SysUser{}
  14. err := user.GetUser(id)
  15. if err != nil {
  16. logger.Logger.Error("获取用户失败")
  17. return nil, err
  18. }
  19. idsSplit := strings.Split(user.SixScreen, ",")
  20. var list []monitor.Placement
  21. for i, id := range idsSplit {
  22. idInt, _ := strconv.Atoi(id)
  23. placement := monitor.Placement{}
  24. placement.ID = idInt
  25. placement.Slot = i + 1
  26. if idInt != -1 {
  27. ca := devices.Camera{}
  28. camera, err := ca.GetCamera(idInt)
  29. if err != nil {
  30. logger.Logger.Error("获取摄像头信息失败")
  31. continue
  32. }
  33. placement.Code = camera.CameraCode
  34. placement.Name = camera.CameraName
  35. placement.StreamId = camera.StreamId
  36. devAddress := camera.GateWay.Intersect.Address + "--" + camera.ShuntDescribe + "(主路)"
  37. if camera.Shunt == 2 {
  38. devAddress = camera.GateWay.Intersect.Address + "--" + camera.ShuntDescribe + "(支路)"
  39. }
  40. placement.DeviceAddress = devAddress
  41. placement.Url = global.GVA_CONFIG.Webrtc.Path + camera.StreamId
  42. }
  43. list = append(list, placement)
  44. }
  45. return list, nil
  46. }
  47. func (s MultiScreenService) EditMultiScreen(userid uint, site int, cameraId int) error {
  48. user := system.SysUser{}
  49. err := user.GetUser(userid)
  50. if err != nil {
  51. logger.Logger.Error("获取用户失败")
  52. return err
  53. }
  54. idsSplit := strings.Split(user.SixScreen, ",")
  55. idStr := ""
  56. for i := range idsSplit {
  57. if i+1 == site {
  58. idsSplit[site-1] = strconv.Itoa(cameraId)
  59. }
  60. idStr += idsSplit[i]
  61. if i < (len(idsSplit) - 1) {
  62. idStr += ","
  63. }
  64. }
  65. sysUser := system.SysUser{
  66. GVA_MODEL: global.GVA_MODEL{
  67. ID: userid,
  68. },
  69. SixScreen: idStr,
  70. }
  71. err = sysUser.SetUserInfoById()
  72. if err != nil {
  73. logger.Logger.Error("EditMultiScreen()... 修改用户信息失败")
  74. return err
  75. }
  76. return err
  77. }