后台面板

This commit is contained in:
2025-06-09 12:34:52 +08:00
parent 89bade9232
commit 19c82817ba
375 changed files with 20628 additions and 11903 deletions

View File

@@ -4,8 +4,9 @@ package service
import (
"encoding/json"
"qnc-server/app/user/cmd/api/internal/config"
"qnc-server/app/user/cmd/api/internal/types"
"qnc-server/app/main/api/internal/config"
"qnc-server/app/main/api/internal/types"
"time"
"github.com/hibiken/asynq"
"github.com/zeromicro/go-zero/core/logx"
@@ -58,3 +59,43 @@ func (s *AsynqService) SendQueryTask(orderID int64) error {
logx.Infof("发送异步任务成功任务ID: %s, 队列: %s, 订单号: %d", info.ID, info.Queue, orderID)
return nil
}
// SendUnfreezeAgentBalanceTask 发送解冻代理金额的延迟任务
func (s *AsynqService) SendUnfreezeAgentBalanceTask(agentID, orderID int64, amount float64) error {
// 准备任务的 payload
payload := types.UnfreezeAgentBalancePayload{
AgentID: agentID,
OrderID: orderID,
Amount: amount,
FreezeTime: time.Now().Unix(),
}
payloadBytes, err := json.Marshal(payload)
if err != nil {
logx.Errorf("发送解冻代理金额任务失败 (无法编码 payload): %v, 代理ID: %d, 订单号: %d", err, agentID, orderID)
return err
}
// 设置任务选项
options := []asynq.Option{
asynq.MaxRetry(3), // 最大重试3次
asynq.ProcessIn(24 * time.Hour), // 24小时后执行
asynq.Timeout(5 * time.Minute), // 任务超时时间
asynq.Retention(24 * time.Hour), // 任务结果保留时间
asynq.Queue("agent_balance"), // 使用专门的队列
}
// 创建任务
task := asynq.NewTask(types.MsgDelayedTask, payloadBytes, options...)
// 将任务加入队列
info, err := s.client.Enqueue(task)
if err != nil {
logx.Errorf("发送解冻代理金额任务失败 (加入队列失败): %v, 代理ID: %d, 订单号: %d", err, agentID, orderID)
return err
}
logx.Infof("发送解冻代理金额任务成功任务ID: %s, 队列: %s, 代理ID: %d, 订单号: %d, 金额: %.2f",
info.ID, info.Queue, agentID, orderID, amount)
return nil
}