worker.go 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. package worker
  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("adminWorkerQueryRes", utils.Fail("参数错误")))
  13. return
  14. }
  15. total, workers, err := tables.WorkerQueryForAdmin(manager.Id, param.Cond, param.Limit, param.Page)
  16. if err != nil {
  17. utils.Logger.Println(err)
  18. _ = conn.WriteJSON(utils.WsEvent("adminWorkerQueryRes", utils.Fail("查询上酒工失败")))
  19. return
  20. }
  21. _ = conn.WriteJSON(utils.WsEvent(
  22. "adminWorkerQueryRes",
  23. utils.Success(utils.JsonType{"total": total, "list": workers}),
  24. ))
  25. }
  26. func update(conn *websocket.Conn, manager *tables.ManagerTable, data any) {
  27. var param updateParam
  28. err := utils.AnyTrans(data, &param)
  29. if err != nil {
  30. utils.Logger.Println(err)
  31. _ = conn.WriteJSON(utils.WsEvent("adminWorkerUpdateRes", utils.Fail("参数错误")))
  32. return
  33. }
  34. if param.Phone == "" {
  35. _ = conn.WriteJSON(utils.WsEvent("adminWorkerUpdateRes", utils.Fail("联系电话不可为空")))
  36. return
  37. }
  38. worker := tables.WorkerTable{Id: param.Id}
  39. err = worker.Get()
  40. if err != nil {
  41. utils.Logger.Println(err)
  42. _ = conn.WriteJSON(utils.WsEvent("adminWorkerUpdateRes", utils.Fail("更新失败 01")))
  43. return
  44. }
  45. if param.Password != "" {
  46. password, err := utils.Decrypt(param.Password)
  47. if err != nil {
  48. utils.Logger.Println(err)
  49. _ = conn.WriteJSON(utils.WsEvent("adminWorkerUpdateRes", utils.Fail("解密失败")))
  50. return
  51. }
  52. worker.Password = utils.HashPassword(password)
  53. }
  54. worker.Name, worker.Phone = param.Name, param.Phone
  55. err = worker.UpdateSelf()
  56. if err != nil {
  57. _ = conn.WriteJSON(utils.WsEvent("adminWorkerUpdateRes", utils.Fail("更新失败 02")))
  58. return
  59. }
  60. _ = conn.WriteJSON(utils.WsEvent("adminWorkerUpdateRes", utils.Success(nil)))
  61. operate := tables.OperationTable{
  62. UserType: 0, UserId: manager.Id, OpType: 1, Level: 0, Describe: "修改上酒工信息",
  63. }
  64. _ = operate.Insert()
  65. }
  66. func remove(conn *websocket.Conn, manager *tables.ManagerTable, data any) {
  67. var ids []string
  68. err := utils.AnyTrans(data, &ids)
  69. if err != nil {
  70. utils.Logger.Println(err)
  71. _ = conn.WriteJSON(utils.WsEvent("adminWorkerDeleteRes", utils.Fail("参数错误")))
  72. return
  73. }
  74. err = tables.WorkersDelete(ids)
  75. if err != nil {
  76. utils.Logger.Println(err)
  77. _ = conn.WriteJSON(utils.WsEvent("adminWorkerDeleteRes", utils.Fail("删除失败")))
  78. return
  79. }
  80. _ = conn.WriteJSON(utils.WsEvent("adminWorkerDeleteRes", utils.Success(nil)))
  81. operate := tables.OperationTable{
  82. UserType: 0, UserId: manager.Id, OpType: 2, Level: 1, Describe: "删除上酒工",
  83. }
  84. _ = operate.Insert()
  85. }
  86. func add(conn *websocket.Conn, manager *tables.ManagerTable, data any) {
  87. var param addParam
  88. err := utils.AnyTrans(data, &param)
  89. if err != nil {
  90. utils.Logger.Println(err)
  91. _ = conn.WriteJSON(utils.WsEvent("adminWorkerAddRes", utils.Fail("参数错误")))
  92. return
  93. }
  94. if param.Name == "" || param.Phone == "" || param.Password == "" {
  95. _ = conn.WriteJSON(utils.WsEvent("adminWorkerAddRes", utils.Fail("数据不可为空")))
  96. return
  97. }
  98. var password string
  99. password, err = utils.Decrypt(param.Password)
  100. if err != nil {
  101. utils.Logger.Println(err)
  102. _ = conn.WriteJSON(utils.WsEvent("adminWorkerAddRes", utils.Fail("解密失败")))
  103. return
  104. }
  105. id := utils.RandomString(16, utils.AlphaNumPatten)
  106. worker := &tables.WorkerTable{
  107. Id: id, Name: param.Name, Phone: param.Phone,
  108. Password: utils.HashPassword(password), Manager: manager.Id,
  109. }
  110. err = worker.Insert()
  111. if err != nil {
  112. utils.Logger.Println(err)
  113. _ = conn.WriteJSON(utils.WsEvent("adminWorkerAddRes", utils.Fail("添加失败")))
  114. return
  115. }
  116. _ = conn.WriteJSON(utils.WsEvent("adminWorkerAddRes", utils.Success(nil)))
  117. operate := tables.OperationTable{
  118. UserType: 0, UserId: manager.Id, OpType: 0, Level: 0, Describe: "新增上酒工",
  119. }
  120. _ = operate.Insert()
  121. }