x
Build docker and publish / build (20.15.1) (push) Successful in 8m20s

This commit is contained in:
2026-03-28 09:06:24 -07:00
parent 2db2bc0860
commit 507ee16a30
4 changed files with 22 additions and 246 deletions
@@ -111,6 +111,26 @@ func (l *PurchaseLogic) Purchase(req *types.PurchaseOrderRequest) (resp *types.P
}
}
// 单订阅模式下,若已有同套餐 pending 订单,直接返回,防止重复创建
if l.svcCtx.Config.Subscribe.SingleModel && orderType == 1 {
var existPending order.Order
if e := l.svcCtx.DB.WithContext(l.ctx).
Model(&order.Order{}).
Where("user_id = ? AND subscribe_id = ? AND status = 1", u.Id, targetSubscribeID).
Order("id DESC").
First(&existPending).Error; e == nil && existPending.Id > 0 {
l.Infow("[Purchase] single mode pending order exists, returning existing",
logger.Field("user_id", u.Id),
logger.Field("order_no", existPending.OrderNo),
logger.Field("subscribe_id", targetSubscribeID),
)
return &types.PurchaseOrderResponse{
OrderNo: existPending.OrderNo,
AppAccountToken: existPending.AppAccountToken,
}, nil
}
}
// find subscribe plan
sub, err := l.svcCtx.SubscribeModel.FindOne(l.ctx, targetSubscribeID)