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 }