worker.go 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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. operate := tables.OperationTable{
  51. UserType: 0, UserId: manager.Id, OpType: 1, Level: 0, Describe: "修改系统运行参数",
  52. }
  53. _ = operate.Insert()
  54. }
  55. func informDevices() {
  56. pra, err := tables.ParamsListAll()
  57. if err != nil {
  58. return
  59. }
  60. for _, item := range utils.SellerDevices {
  61. if item.Online {
  62. _ = item.Conn.WriteJSON(utils.WsEvent("paramsUpdate", pra))
  63. }
  64. }
  65. }