worker.go 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package param
  2. import (
  3. "Wine-Server/utils"
  4. "Wine-Server/utils/tables"
  5. "github.com/gorilla/websocket"
  6. )
  7. func List(conn *websocket.Conn, manager *tables.ManagerTable, data any) {
  8. if !manager.Super {
  9. _ = conn.WriteJSON(utils.WsError("auth failed."))
  10. return
  11. }
  12. list, err := tables.ParamsListAllForSuper()
  13. if err != nil {
  14. _ = conn.WriteJSON(utils.WsEvent("superConfigParamListRes", utils.Fail("查询参数失败")))
  15. return
  16. }
  17. _ = conn.WriteJSON(utils.WsEvent("superConfigParamListRes", utils.Success(list)))
  18. }
  19. func Update(conn *websocket.Conn, manager *tables.ManagerTable, data any) {
  20. if !manager.Super {
  21. _ = conn.WriteJSON(utils.WsError("auth failed."))
  22. return
  23. }
  24. var params []updateParam
  25. err := utils.AnyTrans(data, &params)
  26. if err != nil {
  27. _ = conn.WriteJSON(utils.WsError("param error"))
  28. return
  29. }
  30. for _, param := range params {
  31. if param.Name == "" {
  32. _ = conn.WriteJSON(utils.WsEvent("superConfigParamUpdateRes", utils.Fail("参数名不可为空")))
  33. return
  34. }
  35. pra := tables.ParamsTable{Id: param.Id}
  36. err = pra.Get()
  37. if err != nil {
  38. _ = conn.WriteJSON(utils.WsEvent("superConfigParamUpdateRes", utils.Fail("no such param")))
  39. return
  40. }
  41. pra.Describe, pra.Value = param.Name, param.Value
  42. err = pra.UpdateSelf()
  43. if err != nil {
  44. _ = conn.WriteJSON(utils.WsEvent("superConfigParamUpdateRes", utils.Fail("更新失败")))
  45. return
  46. }
  47. }
  48. _ = conn.WriteJSON(utils.WsEvent("superConfigParamUpdateRes", utils.Success(nil)))
  49. go informDevices()
  50. }
  51. func informDevices() {
  52. pra, err := tables.ParamsListAll()
  53. if err != nil {
  54. return
  55. }
  56. for _, item := range utils.SellerDevices {
  57. if item.Online {
  58. _ = item.Conn.WriteJSON(utils.WsEvent("paramsUpdate", pra))
  59. }
  60. }
  61. }