2025-11-17 18:38:10 +08:00
|
|
|
package tasks
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"context"
|
|
|
|
|
"encoding/json"
|
|
|
|
|
"fmt"
|
|
|
|
|
"platform/web/events"
|
|
|
|
|
s "platform/web/services"
|
|
|
|
|
"time"
|
|
|
|
|
|
|
|
|
|
"github.com/hibiken/asynq"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func HandleCancelTrade(_ context.Context, task *asynq.Task) (err error) {
|
|
|
|
|
data := new(events.CancelTradeData)
|
|
|
|
|
err = json.Unmarshal(task.Payload(), data)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return fmt.Errorf("解析任务参数失败: %w", err)
|
|
|
|
|
}
|
|
|
|
|
|
2025-11-21 12:59:05 +08:00
|
|
|
err = s.Trade.CancelTrade(&s.ModifyTradeData{
|
|
|
|
|
TradeNo: data.TradeNo,
|
|
|
|
|
Method: data.Method,
|
|
|
|
|
}, time.Now())
|
2025-11-17 18:38:10 +08:00
|
|
|
if err != nil {
|
|
|
|
|
return fmt.Errorf("取消交易失败: %w", err)
|
|
|
|
|
}
|
|
|
|
|
return nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func HandleRemoveChannel(_ context.Context, task *asynq.Task) (err error) {
|
|
|
|
|
data := make([]int32, 0)
|
|
|
|
|
err = json.Unmarshal(task.Payload(), &data)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return fmt.Errorf("解析任务参数失败: %w", err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
err = s.Channel.RemoveChannels(data)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return fmt.Errorf("删除通道失败: %w", err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return nil
|
|
|
|
|
}
|