worker.go 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. package change
  2. import (
  3. "Wine-Server/utils"
  4. "Wine-Server/utils/tables"
  5. "github.com/gorilla/websocket"
  6. )
  7. func Query(conn *websocket.Conn, manager *tables.ManagerTable, data any) {
  8. var param queryParam
  9. err := utils.AnyTrans(data, &param)
  10. if err != nil {
  11. utils.Logger.Println(err)
  12. _ = conn.WriteJSON(utils.WsEvent("adminWineChangeQueryRes", utils.Fail("参数错误")))
  13. return
  14. }
  15. total, warns, err := tables.WarnQuery(manager.Id, param.Cond, param.Deal, param.Limit, param.Page)
  16. if err != nil {
  17. utils.Logger.Println(err)
  18. _ = conn.WriteJSON(utils.WsEvent("adminWineChangeQueryRes", utils.Fail("查询信息失败")))
  19. return
  20. }
  21. _ = conn.WriteJSON(utils.WsEvent(
  22. "adminWineChangeQueryRes",
  23. utils.Success(utils.JsonType{"total": total, "list": warns}),
  24. ))
  25. }
  26. func QueryWine(conn *websocket.Conn, data any) {
  27. cond, ok := data.(string)
  28. if !ok {
  29. _ = conn.WriteJSON(utils.WsEvent("adminWineChangeQueryWineRes", utils.Fail("参数错误")))
  30. return
  31. }
  32. wines, err := tables.WinesQueryByIdOrName(cond)
  33. if err != nil {
  34. utils.Logger.Println(err)
  35. _ = conn.WriteJSON(utils.WsEvent("adminWineChangeQueryWineRes", utils.Fail("查询酒品失败")))
  36. return
  37. }
  38. _ = conn.WriteJSON(utils.WsEvent(
  39. "adminWineChangeQueryWineRes",
  40. utils.Success(wines),
  41. ))
  42. }
  43. func QueryWorker(conn *websocket.Conn, manager *tables.ManagerTable, data any) {
  44. cond, ok := data.(string)
  45. if !ok {
  46. _ = conn.WriteJSON(utils.WsEvent("adminWineChangeQueryWorkerRes", utils.Fail("参数错误")))
  47. return
  48. }
  49. workers, err := tables.WorkersQueryByPhoneOrName(manager.Id, cond)
  50. if err != nil {
  51. utils.Logger.Println(err)
  52. _ = conn.WriteJSON(utils.WsEvent("adminWineChangeQueryWorkerRes", utils.Fail("查询酒品失败")))
  53. return
  54. }
  55. _ = conn.WriteJSON(utils.WsEvent(
  56. "adminWineChangeQueryWorkerRes",
  57. utils.Success(workers),
  58. ))
  59. }
  60. func Assign(conn *websocket.Conn, manager *tables.ManagerTable, data any) {
  61. var param assignParam
  62. err := utils.AnyTrans(data, &param)
  63. if err != nil {
  64. utils.Logger.Println(err)
  65. _ = conn.WriteJSON(utils.WsEvent("adminWineChangeAssignRes", utils.Fail("参数错误")))
  66. return
  67. }
  68. if param.Worker == "" {
  69. utils.Logger.Println(err)
  70. _ = conn.WriteJSON(utils.WsEvent("adminWineChangeAssignRes", utils.Fail("请选择上酒工")))
  71. return
  72. }
  73. worker := tables.WorkerTable{Id: param.Worker}
  74. err = worker.Get()
  75. if err != nil {
  76. utils.Logger.Println(err)
  77. _ = conn.WriteJSON(utils.WsEvent("adminWineChangeAssignRes", utils.Fail("上酒工不存在")))
  78. return
  79. }
  80. warn := tables.WarnTable{Id: param.Id}
  81. err = warn.Get()
  82. if err != nil {
  83. utils.Logger.Println(err)
  84. _ = conn.WriteJSON(utils.WsEvent("adminWineChangeAssignRes", utils.Fail("报警不存在")))
  85. return
  86. }
  87. change := tables.ChangeTable{
  88. Wid: warn.Id, Device: warn.Device, Manager: warn.Manager,
  89. Worker: param.Worker, Code: utils.RandomString(6, utils.NumberPatten),
  90. }
  91. change.Old, change.New = param.Old, param.New
  92. err = change.Insert()
  93. if err != nil {
  94. utils.Logger.Println(err)
  95. _ = conn.WriteJSON(utils.WsEvent("adminWineChangeAssignRes", utils.Fail("安排失败 01")))
  96. return
  97. }
  98. warn.Deal = true
  99. err = warn.UpdateSelf()
  100. if err != nil {
  101. utils.Logger.Println(err)
  102. _ = conn.WriteJSON(utils.WsEvent("adminWineChangeAssignRes", utils.Fail("安排失败 02")))
  103. return
  104. }
  105. worker.Todo++
  106. err = worker.UpdateSelf()
  107. if err != nil {
  108. utils.Logger.Println(err)
  109. _ = conn.WriteJSON(utils.WsEvent("adminWineChangeAssignRes", utils.Fail("安排失败 03")))
  110. return
  111. }
  112. _ = conn.WriteJSON(utils.WsEvent("adminWineChangeAssignRes", utils.Success(nil)))
  113. operate := tables.OperationTable{
  114. UserType: 0, UserId: manager.Id, OpType: 0, Level: 0,
  115. Describe: utils.Format("管理员[%s]安排上酒工[%s]为设备[%s]换酒", manager.Name, worker.Name, warn.Device),
  116. }
  117. _ = operate.Insert()
  118. }
  119. func DeviceFix(conn *websocket.Conn, manager *tables.ManagerTable, data any) {
  120. did, ok := data.(string)
  121. if !ok {
  122. _ = conn.WriteJSON(utils.WsEvent("adminWineDeviceFixRes", utils.Fail("参数错误")))
  123. return
  124. }
  125. if device, din := utils.SellerDevices[did]; din && device.Online {
  126. key := utils.Format("Fix_%s_%s", did, manager.Id)
  127. code, err := utils.Redis.Get(utils.WxPayCli, key).Result()
  128. if err != nil {
  129. code = utils.RandomString(6, utils.NumberPatten)
  130. utils.Redis.Set(utils.WxPayCli, key, code, utils.Duration(300))
  131. } else {
  132. utils.Redis.Expire(utils.WxPayCli, key, utils.Duration(300))
  133. }
  134. _ = device.Conn.WriteJSON(utils.WsEvent("openGate", utils.JsonType{
  135. "type": "Fixing", "user_type": "manager", "user_id": manager.Id,
  136. }))
  137. _ = conn.WriteJSON(utils.WsEvent("adminWineDeviceFixRes", utils.Success(code)))
  138. operate := tables.OperationTable{
  139. UserType: 0, UserId: manager.Id, OpType: 0, Level: 1,
  140. Describe: utils.Format("管理员[%s]请求维修设备[%s]", manager.Name, did),
  141. }
  142. _ = operate.Insert()
  143. return
  144. }
  145. _ = conn.WriteJSON(utils.WsEvent("adminWineDeviceFixRes", utils.Fail("设备离线")))
  146. }