worker.go 2.6 KB

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