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  }