完善套餐与账单接口 & 完善支付数据保存,记录实付价格并关联优惠券
This commit is contained in:
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user