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) }