diff --git a/internal/biz/mixrepos/generate.go b/internal/biz/mixrepos/generate.go index c6d6a1f..6bcc5e6 100644 --- a/internal/biz/mixrepos/generate.go +++ b/internal/biz/mixrepos/generate.go @@ -4,6 +4,6 @@ import "context" // GenerateMixRepo interface type GenerateMixRepo interface { - GeneratorString(ctx context.Context, workId int) (string, error) - GeneratorNumber(ctx context.Context, workId int) (uint64, error) + GeneratorString(ctx context.Context) string + GeneratorNumber(ctx context.Context) int64 } diff --git a/internal/biz/order.go b/internal/biz/order.go index 6585a27..b04c472 100644 --- a/internal/biz/order.go +++ b/internal/biz/order.go @@ -9,7 +9,6 @@ import ( "voucher/internal/biz/bo" "voucher/internal/biz/vo" "voucher/internal/pkg/lock" - "voucher/internal/pkg/uid" ) func (v *VoucherBiz) order(ctx context.Context, req *bo.OrderCreateReqBo, product *bo.ProductBo) (*bo.OrderBo, error) { @@ -64,13 +63,8 @@ func (v *VoucherBiz) orderRetry(ctx context.Context, order *bo.OrderBo) error { func (v *VoucherBiz) create(ctx context.Context, req *bo.OrderCreateReqBo, product *bo.ProductBo) (*bo.OrderBo, error) { - orderNo, err := v.GenerateMixRepo.GeneratorString(ctx, uid.Order) - if err != nil { - return nil, err - } - return v.OrderRepo.Create(ctx, &bo.OrderBo{ - OrderNo: orderNo, + OrderNo: v.GenerateMixRepo.GeneratorString(ctx), OutBizNo: req.OutBizNo, ProductNo: req.ProductNo, Account: req.Account, diff --git a/internal/data/mixrepoimpl/generate.go b/internal/data/mixrepoimpl/generate.go index c4c0657..87e51ca 100644 --- a/internal/data/mixrepoimpl/generate.go +++ b/internal/data/mixrepoimpl/generate.go @@ -8,7 +8,6 @@ import ( "os" "voucher/internal/biz/mixrepos" "voucher/internal/data" - "voucher/internal/pkg/uid" ) type GenerateRepoImpl struct { @@ -25,6 +24,7 @@ func NewGenerateMixRepoImpl(rdb *data.Rdb) (mixrepos.GenerateMixRepo, error) { if err != nil { return nil, err } + serverId := g.hashMod(name) node, err := snowflake.NewNode(int64(serverId)) @@ -37,35 +37,6 @@ func NewGenerateMixRepoImpl(rdb *data.Rdb) (mixrepos.GenerateMixRepo, error) { return g, nil } -// GeneratorString 生成字符串 -func (s *GenerateRepoImpl) GeneratorString(_ context.Context, workId int) (string, error) { - - return s.node.Generate().String(), nil - - //serverIdStr := uid.GetAppId(ctx) - //serverId := s.hashMod(serverIdStr) - // - //number, err := uid.NewSignGenerator(s.rdb.Rdb).SetWorkerID(workId).SetServerID(serverId).GetNumber() - //if err != nil { - // return "", err - //} - // - //return strconv.FormatUint(number, 10), nil -} - -// GeneratorNumber 生成unit64 -func (s *GenerateRepoImpl) GeneratorNumber(ctx context.Context, workId int) (uint64, error) { - serverIdStr := uid.GetAppId(ctx) - serverId := s.hashMod(serverIdStr) - - number, err := uid.NewSignGenerator(s.rdb.Rdb).SetWorkerID(workId).SetServerID(serverId).GetNumber() - if err != nil { - return 0, err - } - - return number, nil -} - // hashMod hash mod func (s *GenerateRepoImpl) hashMod(hashStr string) int { hash := fnv.New32a() @@ -74,3 +45,13 @@ func (s *GenerateRepoImpl) hashMod(hashStr string) int { hashValue := hash.Sum32() return int(math.Mod(float64(hashValue), 32)) } + +// GeneratorString 生成字符串 +func (s *GenerateRepoImpl) GeneratorString(_ context.Context) string { + return s.node.Generate().String() +} + +// GeneratorNumber 生成 int64 +func (s *GenerateRepoImpl) GeneratorNumber(_ context.Context) int64 { + return s.node.Generate().Int64() +}