worker.go 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. package admin
  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. if !manager.Super {
  9. _ = conn.WriteJSON(utils.WsEvent("superRoleAdminQueryRes", utils.Fail("权限不足")))
  10. return
  11. }
  12. var param queryParam
  13. err := utils.AnyTrans(data, &param)
  14. if err != nil {
  15. utils.Logger.Println(err)
  16. _ = conn.WriteJSON(utils.WsEvent("superRoleAdminQueryRes", utils.Fail("参数错误")))
  17. return
  18. }
  19. total, men, err := tables.ManagerQueryForAdmin(param.Cond, param.Limit, param.Page)
  20. if err != nil {
  21. utils.Logger.Println(err)
  22. _ = conn.WriteJSON(utils.WsEvent("superRoleAdminQueryRes", utils.Fail("查询管理员失败")))
  23. return
  24. }
  25. _ = conn.WriteJSON(utils.WsEvent(
  26. "superRoleAdminQueryRes",
  27. utils.Success(utils.JsonType{"total": total, "list": men}),
  28. ))
  29. }
  30. func Update(conn *websocket.Conn, manager *tables.ManagerTable, data any) {
  31. if !manager.Super {
  32. _ = conn.WriteJSON(utils.WsEvent("superRoleAdminUpdateRes", utils.Fail("权限不足")))
  33. return
  34. }
  35. var param updateParam
  36. err := utils.AnyTrans(data, &param)
  37. if err != nil {
  38. _ = conn.WriteJSON(utils.WsEvent("superRoleAdminUpdateRes", utils.Fail("参数错误")))
  39. return
  40. }
  41. man := &tables.ManagerTable{Id: param.Id}
  42. err = man.Get()
  43. if err != nil {
  44. _ = conn.WriteJSON(utils.WsEvent("superRoleAdminUpdateRes", utils.Fail("管理员不存在")))
  45. return
  46. }
  47. if param.Password != "" {
  48. password, err := utils.Decrypt(param.Password)
  49. if err != nil {
  50. _ = conn.WriteJSON(utils.WsEvent("superRoleAdminUpdateRes", utils.Fail("解密失败")))
  51. return
  52. }
  53. man.Password = utils.HashPassword(password)
  54. }
  55. man.Name, man.Account = param.Name, param.Account
  56. err = man.UpdateSelf()
  57. if err != nil {
  58. _ = conn.WriteJSON(utils.WsEvent("superRoleAdminUpdateRes", utils.Fail("更新失败")))
  59. return
  60. }
  61. _ = conn.WriteJSON(utils.WsEvent("superRoleAdminUpdateRes", utils.Success(nil)))
  62. operate := tables.OperationTable{
  63. UserType: 0, UserId: manager.Id, OpType: 1, Level: 0, Describe: "更新管理员信息",
  64. }
  65. _ = operate.Insert()
  66. }
  67. func Delete(conn *websocket.Conn, manager *tables.ManagerTable, data any) {
  68. if !manager.Super {
  69. _ = conn.WriteJSON(utils.WsEvent("superRoleAdminDeleteRes", utils.Fail("权限不足")))
  70. return
  71. }
  72. var ids []string
  73. err := utils.AnyTrans(data, &ids)
  74. if err != nil {
  75. utils.Logger.Println(err)
  76. _ = conn.WriteJSON(utils.WsEvent("superRoleAdminDeleteRes", utils.Fail("参数错误")))
  77. return
  78. }
  79. err = tables.ManagersDelete(ids)
  80. if err != nil {
  81. utils.Logger.Println(err)
  82. _ = conn.WriteJSON(utils.WsEvent("superRoleAdminDeleteRes", utils.Fail("删除失败")))
  83. return
  84. }
  85. _ = conn.WriteJSON(utils.WsEvent("superRoleAdminDeleteRes", utils.Success(nil)))
  86. operate := tables.OperationTable{
  87. UserType: 0, UserId: manager.Id, OpType: 2, Level: 1, Describe: "删除管理员",
  88. }
  89. _ = operate.Insert()
  90. }
  91. func Add(conn *websocket.Conn, manager *tables.ManagerTable, data any) {
  92. if !manager.Super {
  93. _ = conn.WriteJSON(utils.WsEvent("superRoleAdminAddRes", utils.Fail("权限不足")))
  94. return
  95. }
  96. var param addParam
  97. err := utils.AnyTrans(data, &param)
  98. if err != nil {
  99. utils.Logger.Println(err)
  100. _ = conn.WriteJSON(utils.WsEvent("superRoleAdminAddRes", utils.Fail("参数错误")))
  101. return
  102. }
  103. if param.Name == "" || param.Account == "" || param.Password == "" {
  104. _ = conn.WriteJSON(utils.WsEvent("superRoleAdminAddRes", utils.Fail("数据不可为空")))
  105. return
  106. }
  107. var password string
  108. password, err = utils.Decrypt(param.Password)
  109. if err != nil {
  110. utils.Logger.Println(err)
  111. _ = conn.WriteJSON(utils.WsEvent("superRoleAdminAddRes", utils.Fail("解密失败")))
  112. return
  113. }
  114. id := utils.RandomString(16, utils.AlphaNumPatten)
  115. man := &tables.ManagerTable{Id: id, Name: param.Name, Account: param.Account, Password: utils.HashPassword(password)}
  116. err = man.Insert()
  117. if err != nil {
  118. utils.Logger.Println(err)
  119. _ = conn.WriteJSON(utils.WsEvent("superRoleAdminAddRes", utils.Fail("添加失败")))
  120. return
  121. }
  122. _ = conn.WriteJSON(utils.WsEvent("superRoleAdminAddRes", utils.Success(nil)))
  123. operate := tables.OperationTable{
  124. UserType: 0, UserId: manager.Id, OpType: 0, Level: 0, Describe: "新增管理员",
  125. }
  126. _ = operate.Insert()
  127. }