github.com/yoogoc/kratos-scaffold@v0.0.0-20240402032722-a538b3c18955/project_generator/resources/biz.tx.go.example (about) 1 package biz 2 3 import ( 4 "context" 5 6 "github.com/go-kratos/kratos/v2/log" 7 ) 8 9 type TxRepo interface { 10 WithEntTx(context.Context, func(context.Context) error) error 11 } 12 13 type TxUsecase struct { 14 repo TxRepo 15 log *log.Helper 16 } 17 18 func NewTxUsecase(repo TxRepo, logger log.Logger) *TxUsecase { 19 return &TxUsecase{repo: repo, log: log.NewHelper(logger)} 20 } 21 22 func (uc *TxUsecase) WithEntTx(ctx context.Context, fn func(context.Context) error) error { 23 return uc.repo.WithEntTx(ctx, fn) 24 }