Files
platform/web/tasks/task.go

47 lines
995 B
Go
Raw Normal View History

package tasks
import (
"context"
"encoding/json"
"fmt"
"log/slog"
"platform/web/events"
s "platform/web/services"
"time"
"github.com/hibiken/asynq"
)
func HandleCompleteTrade(_ context.Context, task *asynq.Task) (err error) {
event := new(events.CompleteTradeData)
err = json.Unmarshal(task.Payload(), event)
if err != nil {
return fmt.Errorf("解析任务参数失败: %w", err)
}
data := &s.ModifyTradeData{
TradeNo: event.TradeNo,
Method: event.Method,
}
err = s.Trade.CompleteTrade(data)
if err != nil {
slog.Debug("完成交易失败[异步结束订单]", "err", err)
err = s.Trade.CancelTrade(data, time.Now())
if err != nil {
return fmt.Errorf("取消交易失败[异步结束订单]: %w", err)
}
}
return nil
}
func HandleRemoveChannel(_ context.Context, task *asynq.Task) (err error) {
batch := string(task.Payload())
err = s.Channel.RemoveChannels(batch)
if err != nil {
return fmt.Errorf("删除通道失败: %w", err)
}
return nil
}