worker.go 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. package device
  2. import (
  3. "Wine-Server/utils"
  4. "Wine-Server/utils/tables"
  5. "github.com/gorilla/websocket"
  6. )
  7. func QueryManager(conn *websocket.Conn, manager *tables.ManagerTable, data any) {
  8. if !manager.Super {
  9. _ = conn.WriteJSON(utils.WsError("auth failed."))
  10. return
  11. }
  12. name, _ := data.(string)
  13. res, err := tables.ManagerQuery(name)
  14. if err != nil {
  15. utils.Logger.Println(err)
  16. _ = conn.WriteJSON(utils.WsError("query manager failed"))
  17. return
  18. }
  19. _ = conn.WriteJSON(utils.WsEvent("superConfigDeviceQueryManagerRes", res))
  20. }
  21. func Query(conn *websocket.Conn, manager *tables.ManagerTable, data any) {
  22. if !manager.Super {
  23. _ = conn.WriteJSON(utils.WsError("auth failed."))
  24. return
  25. }
  26. var param queryParam
  27. err := utils.AnyTrans(data, &param)
  28. if err != nil {
  29. _ = conn.WriteJSON(utils.WsError("param error"))
  30. return
  31. }
  32. total, devices, err := tables.DevicesQuery(param.Manager, param.Cond, param.Limit, param.Page)
  33. if err != nil {
  34. utils.Logger.Println(err)
  35. _ = conn.WriteJSON(utils.WsError("query devices failed"))
  36. return
  37. }
  38. _ = conn.WriteJSON(
  39. utils.WsEvent("superConfigDeviceQueryRes", utils.JsonType{"total": total, "devices": devices}),
  40. )
  41. }
  42. func Update(conn *websocket.Conn, manager *tables.ManagerTable, data any) {
  43. if !manager.Super {
  44. _ = conn.WriteJSON(utils.WsError("auth failed."))
  45. return
  46. }
  47. var param updateParam
  48. err := utils.AnyTrans(data, &param)
  49. if err != nil {
  50. _ = conn.WriteJSON(utils.WsError("param error"))
  51. return
  52. }
  53. device := tables.DeviceTable{Id: param.Did}
  54. err = device.Get()
  55. if err != nil {
  56. _ = conn.WriteJSON(utils.WsEvent("superConfigDeviceUpdateRes", utils.Fail("no such device")))
  57. return
  58. }
  59. device.Manager, device.Addr, device.Mark = param.Mid, param.Addr, param.Mark
  60. err = device.UpdateSelf()
  61. if err != nil {
  62. utils.Logger.Println(err)
  63. _ = conn.WriteJSON(utils.WsEvent("superConfigDeviceUpdateRes", utils.Fail("更新失败")))
  64. return
  65. }
  66. _ = conn.WriteJSON(utils.WsEvent("superConfigDeviceUpdateRes", utils.Success(nil)))
  67. }
  68. func Assign(conn *websocket.Conn, manager *tables.ManagerTable, data any) {
  69. if !manager.Super {
  70. _ = conn.WriteJSON(utils.WsError("auth failed."))
  71. return
  72. }
  73. var param assignParam
  74. err := utils.AnyTrans(data, &param)
  75. if err != nil {
  76. _ = conn.WriteJSON(utils.WsError("param error"))
  77. return
  78. }
  79. err = tables.DevicesAssignManager(param.Devices, param.Manager)
  80. if err != nil {
  81. utils.Logger.Println(err)
  82. _ = conn.WriteJSON(utils.WsEvent("superConfigDeviceAssignRes", utils.Fail("分配失败")))
  83. return
  84. }
  85. _ = conn.WriteJSON(utils.WsEvent("superConfigDeviceAssignRes", utils.Success(nil)))
  86. }