worker.go 2.6 KB

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