worker.go 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. package trade
  2. import (
  3. "Wine-Server/utils"
  4. "Wine-Server/utils/tables"
  5. "github.com/gorilla/websocket"
  6. )
  7. // QueryUser @admin.trade.queryUser
  8. func QueryUser(conn *websocket.Conn, manager *tables.ManagerTable, data any) {
  9. if !manager.Super {
  10. _ = conn.WriteJSON(utils.WsEvent("superOrderTradeQueryUserRes", utils.Fail("权限不足")))
  11. return
  12. }
  13. var param queryUserParam
  14. err := utils.AnyTrans(data, &param)
  15. if err != nil {
  16. utils.Logger.Println(err)
  17. _ = conn.WriteJSON(utils.WsEvent("superOrderTradeQueryUserRes", utils.Fail("参数错误")))
  18. return
  19. }
  20. total, users, err := tables.UserQuery(param.Id, param.Vip, param.Limit, param.Page)
  21. if err != nil {
  22. utils.Logger.Println(err)
  23. _ = conn.WriteJSON(utils.WsEvent("superOrderTradeQueryUserRes", utils.Fail("查询用户失败")))
  24. return
  25. }
  26. _ = conn.WriteJSON(utils.WsEvent(
  27. "superOrderTradeQueryUserRes",
  28. utils.Success(utils.JsonType{"total": total, "list": users}),
  29. ))
  30. }
  31. // QueryTrade @admin.trade.queryTrade
  32. func QueryTrade(conn *websocket.Conn, manager *tables.ManagerTable, data any) {
  33. if !manager.Super {
  34. _ = conn.WriteJSON(utils.WsEvent("superOrderTradeQueryTradeRes", utils.Fail("权限不足")))
  35. return
  36. }
  37. var param queryTradeParam
  38. err := utils.AnyTrans(data, &param)
  39. if err != nil {
  40. utils.Logger.Println(err)
  41. _ = conn.WriteJSON(utils.WsEvent("superOrderTradeQueryTradeRes", utils.Fail("参数错误")))
  42. return
  43. }
  44. total, trades, err := tables.TradeQuery(param.Cond, param.Uid, param.Limit, param.Page)
  45. if err != nil {
  46. utils.Logger.Println(err)
  47. _ = conn.WriteJSON(utils.WsEvent("superOrderTradeQueryTradeRes", utils.Fail("查询订单失败")))
  48. return
  49. }
  50. _ = conn.WriteJSON(utils.WsEvent(
  51. "superOrderTradeQueryTradeRes",
  52. utils.Success(utils.JsonType{"total": total, "list": trades}),
  53. ))
  54. }
  55. // Refund @admin.trade.refund
  56. func Refund(conn *websocket.Conn, manager *tables.ManagerTable, data any) {
  57. if !manager.Super {
  58. _ = conn.WriteJSON(utils.WsEvent("superOrderTradeRefundRes", utils.Fail("权限不足")))
  59. return
  60. }
  61. var param refundParam
  62. err := utils.AnyTrans(data, &param)
  63. if err != nil {
  64. utils.Logger.Println(err)
  65. _ = conn.WriteJSON(utils.WsEvent("superOrderTradeRefundRes", utils.Fail("参数错误")))
  66. return
  67. }
  68. trade := tables.TradeTable{Id: param.Tid}
  69. err = trade.Get()
  70. if err != nil {
  71. utils.Logger.Println(err)
  72. _ = conn.WriteJSON(utils.WsEvent("superOrderTradeRefundRes", utils.Fail("订单查询失败")))
  73. return
  74. }
  75. if trade.Cash < param.Cash {
  76. utils.Logger.Println(err)
  77. _ = conn.WriteJSON(utils.WsEvent("superOrderTradeRefundRes", utils.Fail("超出原订单金额")))
  78. return
  79. }
  80. refund := tables.RefundTable{Tid: param.Tid, Manager: manager.Id, Cash: param.Cash, Reason: param.Reason}
  81. err = refund.Insert()
  82. if err != nil {
  83. err = refund.Get()
  84. refund.Manager, refund.Cash, refund.Reason = manager.Id, param.Cash, param.Reason
  85. err = refund.UpdateSelf()
  86. }
  87. _ = conn.WriteJSON(utils.WsEvent("superOrderTradeRefundRes", utils.Success(nil)))
  88. // update user table
  89. user := tables.UserTable{Id: trade.Payer}
  90. err = user.Get()
  91. if err != nil {
  92. utils.Logger.Println(err)
  93. }
  94. user.RefundCount++
  95. user.RefundCost += uint64(param.Cash)
  96. _ = user.UpdateSelf()
  97. }