This commit is contained in:
李子铭 2025-03-04 16:04:50 +08:00
parent ce81f41693
commit e96e3dc777
5 changed files with 42 additions and 24 deletions

View File

@ -49,9 +49,9 @@ func wireApp(bootstrap *conf.Bootstrap, logger log.Logger, accessLogger *log2.Ac
return nil, nil, err
}
generateMixRepo := mixrepoimpl.NewGenerateMixRepoImpl(rdb)
cmbCmb := cmb.NewCmb(rdb, orderRepo, productRepo, mqSendMixRepo, wechatCpnRepo, generateMixRepo)
cmbCmb := cmb.NewCmb(bootstrap, rdb, orderRepo, productRepo, mqSendMixRepo, wechatCpnRepo, generateMixRepo)
voucherBiz := biz.NewVoucherBiz(rdb, cmbCmb, orderRepo)
voucherService := service.NewVoucherService(bootstrap, voucherBiz, cmbCmb)
voucherService := service.NewVoucherService(bootstrap, voucherBiz)
httpServer := server.NewHTTPServer(bootstrap, helper, accessLogger, voucherService)
consumer := server.NewConsumer(helper, bootstrap, voucherService)
app := newApp(logger, httpServer, consumer)

37
internal/biz/cmb.go Normal file
View File

@ -0,0 +1,37 @@
package biz
import (
"context"
"fmt"
"time"
"voucher/internal/biz/bo"
"voucher/internal/pkg/lock"
)
func (v *VoucherBiz) CmbOrder(ctx context.Context, req *bo.OrderCreateReqBo) (orderNo string, err error) {
err = lock.NewMutex(v.rdb.Rdb, time.Second*30).Lock(ctx, fmt.Sprintf("cmb_order_%s", req.OutBizNo), func(ctx context.Context) error {
if orderNo, err = v.Cmb.Order(ctx, req); err != nil {
return err
}
return nil
})
return
}
func (v *VoucherBiz) CmbProductQuery(ctx context.Context, productNo string) (reps *bo.OrderCreateRepBo, err error) {
err = lock.NewMutex(v.rdb.Rdb, time.Second*30).Lock(ctx, fmt.Sprintf("cmb_query_%s", productNo), func(ctx context.Context) error {
if reps, err = v.Cmb.Query(ctx, productNo); err != nil {
return err
}
return nil
})
return
}

View File

@ -2,26 +2,16 @@ package cmb
import (
"context"
"fmt"
"github.com/pkg/errors"
"gorm.io/gorm"
"time"
"voucher/internal/biz/bo"
"voucher/internal/biz/vo"
"voucher/internal/pkg/lock"
"voucher/internal/pkg/uid"
)
func (v *Cmb) Order(ctx context.Context, req *bo.OrderCreateReqBo) (orderNo string, err error) {
err = lock.NewMutex(v.rdb.Rdb, time.Second*30).Lock(ctx, fmt.Sprintf("cmb_order_%s", req.OutBizNo), func(ctx context.Context) error {
if orderNo, err = v.order(ctx, req); err != nil {
return err
}
return nil
})
orderNo, err = v.order(ctx, req)
return
}
@ -71,12 +61,7 @@ func (v *Cmb) order(ctx context.Context, req *bo.OrderCreateReqBo) (orderNo stri
return
}
func (v *Cmb) Query(ctx context.Context, req *bo.OrderCreateReqBo) (reps *bo.OrderCreateRepBo, err error) {
err = lock.NewMutex(v.rdb.Rdb, time.Second*30).Lock(ctx, fmt.Sprintf("cmb_order_%s", req.OutBizNo), func(ctx context.Context) error {
return nil
})
func (v *Cmb) Query(ctx context.Context, productNo string) (reps *bo.OrderCreateRepBo, err error) {
return
}

View File

@ -56,7 +56,7 @@ func (s *VoucherService) cmbOrder(ctx http.Context) (string, error) {
AccountType: vo.OrderAccountTypeOpenId,
}
orderNo, err := s.Cmb.Order(ctx, boReq)
orderNo, err := s.VoucherBiz.CmbOrder(ctx, boReq)
if err != nil {
return "", err
}

View File

@ -2,24 +2,20 @@ package service
import (
"voucher/internal/biz"
"voucher/internal/biz/cmb"
"voucher/internal/conf"
)
type VoucherService struct {
bc *conf.Bootstrap
VoucherBiz *biz.VoucherBiz
Cmb *cmb.Cmb
}
func NewVoucherService(
bc *conf.Bootstrap,
VoucherBiz *biz.VoucherBiz,
Cmb *cmb.Cmb,
) *VoucherService {
return &VoucherService{
bc: bc,
VoucherBiz: VoucherBiz,
Cmb: Cmb,
}
}