github.com/yoogoc/kratos-scaffold@v0.0.0-20240402032722-a538b3c18955/generator/tmpl/biz.tmpl (about)

     1  {{- /*gotype: github.com/yoogoc/kratos-scaffold/generator.Biz */ -}}
     2  package biz
     3  
     4  import (
     5  	"context"
     6  	"github.com/go-kratos/kratos/v2/log"
     7  	{{- range $i, $s := .MaybeGoPackages }}
     8  	"{{ $s }}"
     9  	{{- end }}
    10  )
    11  
    12  type {{.Name}} struct {
    13  	{{- range $i, $f := .Fields }}
    14  	{{ $f.Name | ToCamel }} {{ $f.FieldType.String }}
    15  	{{- end }}
    16  }
    17  
    18  type {{.Name}}Param struct {
    19  	{{- $strToPreMap := .StrToPreMap}}
    20  	{{- range $i, $f := .Fields.ParamFields }}
    21  	{{ $f.Name | ToCamel }} {{ if eq $f.Type $strToPreMap.in }}[]{{ $f.FieldType.String }}{{ else }}{{ $f.FieldType.StringParam }}{{- end }}
    22  	{{- end }}
    23  }
    24  
    25  type {{.Name}}Repo interface {
    26  	Create(ctx context.Context, {{.Name | ToLower}} *{{.Name}}) (*{{.Name}}, error)
    27  	Update(ctx context.Context, {{.Name | ToLower}} *{{.Name}}) (*{{.Name}}, error)
    28  	DestroyBy(ctx context.Context, param *{{.Name}}Param) (int, error)
    29  	List(ctx context.Context, param *{{.Name}}Param, page, size int) ([]*{{.Name}}, int, error)
    30  	FindBy(ctx context.Context, param *{{.Name}}Param) (*{{.Name}}, error)
    31  }
    32  
    33  type {{.Name}}Usecase struct {
    34  	repo {{.Name}}Repo
    35  	log  *log.Helper
    36  }
    37  
    38  func New{{.Name}}Usecase(repo {{.Name}}Repo, logger log.Logger) *{{.Name}}Usecase {
    39  	return &{{.Name}}Usecase{
    40  		repo: repo,
    41  		log:  log.NewHelper(log.With(logger, "module", "usecase/{{.Name | ToLower}}")),
    42  	}
    43  }
    44  
    45  func (uc *{{.Name}}Usecase) Create{{.Name}}(ctx context.Context, {{.Name | ToLower}} *{{.Name}}) (*{{.Name}}, error) {
    46  	return uc.repo.Create(ctx, {{.Name | ToLower}})
    47  }
    48  
    49  func (uc *{{.Name}}Usecase) Update{{.Name}}(ctx context.Context, {{.Name | ToLower}} *{{.Name}}) (*{{.Name}}, error) {
    50  	return uc.repo.Update(ctx, {{.Name | ToLower}})
    51  }
    52  
    53  func (uc *{{.Name}}Usecase) Destroy{{.Name}}By(ctx context.Context, param *{{.Name}}Param) (int, error) {
    54  	return uc.repo.DestroyBy(ctx, param)
    55  }
    56  
    57  func (uc *{{.Name}}Usecase) List{{.Name}}(ctx context.Context, param *{{.Name}}Param, page, size int) ([]*{{.Name}}, int, error) {
    58  	return uc.repo.List(ctx, param, page, size)
    59  }
    60  
    61  func (uc *{{.Name}}Usecase) Find{{.Name}}By(ctx context.Context, param *{{.Name}}Param) (*{{.Name}}, error) {
    62  	return uc.repo.FindBy(ctx, param)
    63  }