完善套餐与账单接口 & 完善支付数据保存,记录实付价格并关联优惠券

This commit is contained in:
2026-03-26 14:39:19 +08:00
parent 5ffa151f58
commit 75ad12efb3
23 changed files with 706 additions and 613 deletions

View File

@@ -6,29 +6,34 @@ import (
"fmt"
"log/slog"
"platform/web/events"
q "platform/web/queries"
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 {
func HandleCompleteTrade(_ context.Context, task *asynq.Task) error {
var event events.CloseTradeData
if err := json.Unmarshal(task.Payload(), &event); err != nil {
return fmt.Errorf("解析任务参数失败: %w", err)
}
data := &s.ModifyTradeData{
data := s.TradeRef{
TradeNo: event.TradeNo,
Method: event.Method,
}
err = s.Trade.CompleteTrade(data)
// 尝试完成交易
user, err := s.User.Get(q.Q, event.UserId)
if err != nil {
return fmt.Errorf("获取用户失败: %w", err)
}
if err := s.Trade.CompleteTrade(user, &data); err != nil {
slog.Debug("完成交易失败[异步结束订单]", "err", err)
err = s.Trade.CancelTrade(data, time.Now())
if err != nil {
// 交易无法完成,关闭交易
if err := s.Trade.CancelTrade(&data); err != nil {
return fmt.Errorf("取消交易失败[异步结束订单]: %w", err)
}
}