package biz import ( "context" "fmt" "time" "voucher/internal/pkg/lock" ) func (v *VoucherBiz) OrderConsume(ctx context.Context, orderNo string) (err error) { err = lock.NewMutex(v.rdb.Rdb, time.Second*30).Lock(ctx, fmt.Sprintf("order_consume_%s", orderNo), func(ctx context.Context) error { order, err := v.OrderRepo.GetByOrderNo(ctx, orderNo) if err != nil { return err } if order.Type.IsCmb() { return v.Cmb.OrderConsume(ctx, order) } return nil }) return } func (v *VoucherBiz) QueryConsume(ctx context.Context, orderNo string) (err error) { err = lock.NewMutex(v.rdb.Rdb, time.Second*30).Lock(ctx, fmt.Sprintf("query_consume_%s", orderNo), func(ctx context.Context) error { order, err := v.OrderRepo.GetByOrderNo(ctx, orderNo) if err != nil { return err } if order.Type.IsCmb() { return v.Cmb.QueryConsume(ctx, order) } return nil }) return } func (v *VoucherBiz) NotifyConsume(ctx context.Context, orderNo string) (err error) { err = lock.NewMutex(v.rdb.Rdb, time.Second*30).Lock(ctx, fmt.Sprintf("notify_consume_%s", orderNo), func(ctx context.Context) error { return nil }) return }