bugfix:支付

This commit is contained in:
2026-09-14 02:39:00 +08:00
parent d87f904e33
commit 714d8ff396
11 changed files with 699 additions and 42 deletions
+18
View File
@@ -73,6 +73,24 @@ func (d *OrderDao) OrderExpireByTime(ctx context.Context, now int64) (int64, err
return res.RowsAffected, nil
}
// OrderListVirtualUnconfirmed 查询需主动查单确认的虚拟支付订单:
// 支付渠道为虚拟支付(2)且状态为待支付(1)/已过期(4),创建时间落在 [since, until) 内。
// 用于「发货推送丢失」的兜底轮询(官方建议推送与轮询同时实现),按 id 升序限量返回。
func (d *OrderDao) OrderListVirtualUnconfirmed(ctx context.Context, since, until int64, limit int) ([]mysqlmodel.Order, error) {
ctx, span := global.Tracer.Start(ctx, "mysqldao.OrderListVirtualUnconfirmed")
defer span.End()
var list []mysqlmodel.Order
if err := d.db.WithContext(ctx).
Where("pay_channel = ? AND order_status IN ? AND created_at >= ? AND created_at < ?",
2, []int8{1, 4}, since, until).
Order("id ASC").Limit(limit).Find(&list).Error; err != nil {
span.RecordError(err)
return nil, err
}
return list, nil
}
// OrderGetByID 按主键 ID 查询订单
func (d *OrderDao) OrderGetByID(ctx context.Context, id int64) (*mysqlmodel.Order, error) {
ctx, span := global.Tracer.Start(ctx, "mysqldao.OrderGetByID")