From e96e3dc7771cebe623dd5e41a4581832608c1520 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=AD=90=E9=93=AD?= Date: Tue, 4 Mar 2025 16:04:50 +0800 Subject: [PATCH] cmb --- cmd/server/wire_gen.go | 4 ++-- internal/biz/cmb.go | 37 +++++++++++++++++++++++++++++++++++++ internal/biz/cmb/voucher.go | 19 ++----------------- internal/service/cmb.go | 2 +- internal/service/voucher.go | 4 ---- 5 files changed, 42 insertions(+), 24 deletions(-) create mode 100644 internal/biz/cmb.go diff --git a/cmd/server/wire_gen.go b/cmd/server/wire_gen.go index 8752948..e7d535a 100644 --- a/cmd/server/wire_gen.go +++ b/cmd/server/wire_gen.go @@ -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) diff --git a/internal/biz/cmb.go b/internal/biz/cmb.go new file mode 100644 index 0000000..c214b67 --- /dev/null +++ b/internal/biz/cmb.go @@ -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 +} diff --git a/internal/biz/cmb/voucher.go b/internal/biz/cmb/voucher.go index a5b997a..6191b82 100644 --- a/internal/biz/cmb/voucher.go +++ b/internal/biz/cmb/voucher.go @@ -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 } diff --git a/internal/service/cmb.go b/internal/service/cmb.go index 9b013cf..e257109 100644 --- a/internal/service/cmb.go +++ b/internal/service/cmb.go @@ -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 } diff --git a/internal/service/voucher.go b/internal/service/voucher.go index 24277d3..cf0bcc2 100644 --- a/internal/service/voucher.go +++ b/internal/service/voucher.go @@ -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, } }