Files
platform/web/events/trade.go

32 lines
688 B
Go

package events
import (
"encoding/json"
"log/slog"
m "platform/web/models"
"github.com/hibiken/asynq"
)
const CloseTrade = "trade:update"
type CloseTradeData struct {
UserId int32 `json:"user_id" validate:"required"`
TradeNo string `json:"trade_no" validate:"required"`
Method m.TradeMethod `json:"method" validate:"required"`
}
func NewCloseTradeTask(uid int32, tradeNo string, method m.TradeMethod) *asynq.Task {
bytes, err := json.Marshal(CloseTradeData{
UserId: uid,
TradeNo: tradeNo,
Method: method,
})
if err != nil {
slog.Error("序列化更新交易任务失败", "error", err)
return nil
}
return asynq.NewTask(CloseTrade, bytes)
}