2025-11-17 18:38:10 +08:00
|
|
|
package events
|
2025-06-03 09:53:50 +08:00
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"encoding/json"
|
|
|
|
|
"log/slog"
|
2025-11-24 18:44:06 +08:00
|
|
|
|
|
|
|
|
m "platform/web/models"
|
2025-11-17 18:38:10 +08:00
|
|
|
|
|
|
|
|
"github.com/hibiken/asynq"
|
2025-06-03 09:53:50 +08:00
|
|
|
)
|
|
|
|
|
|
2026-03-26 14:39:19 +08:00
|
|
|
const CloseTrade = "trade:update"
|
2025-06-03 09:53:50 +08:00
|
|
|
|
2026-03-26 14:39:19 +08:00
|
|
|
type CloseTradeData struct {
|
|
|
|
|
UserId int32 `json:"user_id" validate:"required"`
|
2025-06-23 18:32:20 +08:00
|
|
|
TradeNo string `json:"trade_no" validate:"required"`
|
2025-11-24 18:44:06 +08:00
|
|
|
Method m.TradeMethod `json:"method" validate:"required"`
|
2025-06-23 18:32:20 +08:00
|
|
|
}
|
|
|
|
|
|
2026-03-26 14:39:19 +08:00
|
|
|
func NewCloseTradeTask(uid int32, tradeNo string, method m.TradeMethod) *asynq.Task {
|
|
|
|
|
bytes, err := json.Marshal(CloseTradeData{
|
|
|
|
|
UserId: uid,
|
|
|
|
|
TradeNo: tradeNo,
|
|
|
|
|
Method: method,
|
|
|
|
|
})
|
2025-06-03 09:53:50 +08:00
|
|
|
if err != nil {
|
|
|
|
|
slog.Error("序列化更新交易任务失败", "error", err)
|
|
|
|
|
return nil
|
|
|
|
|
}
|
2026-03-26 14:39:19 +08:00
|
|
|
return asynq.NewTask(CloseTrade, bytes)
|
2025-06-03 09:53:50 +08:00
|
|
|
}
|