github.com/yoogoc/kratos-scaffold@v0.0.0-20240402032722-a538b3c18955/generator/tmpl/data_proto_data.tmpl (about) 1 {{- /*gotype: github.com/yoogoc/kratos-scaffold/generator.Data*/ -}} 2 {{$modelName := .Name |ToLowerCamel}} 3 package data 4 5 import ( 6 "context" 7 "{{.CurrentPkgPath}}/biz" 8 "github.com/go-kratos/kratos/v2/log" 9 {{$modelName}}V1 "{{ .ProtoPkgPath }}" 10 ) 11 12 var _ biz.{{.Name | ToCamel}}Repo = (*{{$modelName}}Repo)(nil) 13 14 type {{$modelName}}Repo struct { 15 {{$modelName}} {{$modelName}}V1.{{.Name | ToCamel}}ServiceClient 16 log *log.Helper 17 } 18 19 func New{{.Name | ToCamel}}Repo(logger log.Logger, {{$modelName}} {{$modelName}}V1.{{.Name | ToCamel}}ServiceClient) biz.{{.Name | ToCamel}}Repo { 20 return &{{$modelName}}Repo{ 21 {{$modelName}}: {{$modelName}}, 22 log: log.NewHelper(log.With(logger, "module", "data/{{$modelName}}")), 23 } 24 } 25 26 func (r {{$modelName}}Repo) Create(ctx context.Context, {{$modelName}} *biz.{{.Name | ToCamel}}) (*biz.{{.Name | ToCamel}}, error) { 27 reply, err := r.{{$modelName}}.Create(ctx, &{{$modelName}}V1.Create{{.Name | ToCamel}}Request{ 28 {{- range $i, $f := .CreateFields }} 29 {{- if eq $f.FieldType.IsTime }} 30 {{ $f.Name | ToCamel }}: {{$modelName}}.{{ $f.Name | ToCamel }}.Format(time.DateTime), 31 {{- else }} 32 {{ $f.Name | ToCamel }}: {{$modelName}}.{{ $f.Name | ToCamel }}, 33 {{- end }} 34 {{- end }} 35 }) 36 if err != nil { 37 return nil, err 38 } 39 return {{$modelName}}Proto2Biz(reply.{{.Name | ToCamel}}), nil 40 41 } 42 43 func (r {{$modelName}}Repo) Update(ctx context.Context, {{$modelName}} *biz.{{.Name | ToCamel}}) (*biz.{{.Name | ToCamel}}, error) { 44 reply, err := r.{{$modelName}}.Update(ctx, &{{$modelName}}V1.Update{{.Name | ToCamel}}Request{ 45 {{- range $i, $f := .UpdateFields }} 46 {{- if eq $f.FieldType.IsTime }} 47 {{ $f.Name | ToCamel }}: {{$modelName}}.{{ $f.Name | ToCamel }}.Format(time.DateTime), 48 {{- else }} 49 {{ $f.Name | ToCamel }}: {{$modelName}}.{{ $f.Name | ToCamel }}, 50 {{- end }} 51 {{- end }} 52 }) 53 if err != nil { 54 return nil, err 55 } 56 return {{$modelName}}Proto2Biz(reply.{{.Name | ToCamel}}), nil 57 } 58 59 func (r {{$modelName}}Repo) DestroyBy(ctx context.Context, param *biz.{{.Name | ToCamel}}Param) (int, error) { 60 _, err := r.{{$modelName}}.DestroyBy(ctx, &{{$modelName}}V1.Destroy{{.Name | ToCamel}}ByRequest{ 61 Param: {{.Name | ToLowerCamel}}ParamBiz2Proto(param), 62 }) 63 return 0, err 64 } 65 66 func (r {{$modelName}}Repo) List(ctx context.Context, param *biz.{{.Name | ToCamel}}Param, page, size int) ([]*biz.{{.Name | ToCamel}}, int, error) { 67 reply, err := r.{{$modelName}}.List(ctx, &{{$modelName}}V1.List{{.Name | ToCamel}}Request{ 68 Param: {{.Name | ToLowerCamel}}ParamBiz2Proto(param), 69 Page: uint32(page), 70 PageSize: uint32(size), 71 }) 72 if err != nil { 73 return nil, 0, err 74 } 75 return bulk{{.Name | ToCamel}}Proto2Biz(reply.{{.Name | ToCamelPlural}}), int(reply.Count), nil 76 } 77 78 func (r {{$modelName}}Repo) FindBy(ctx context.Context, param *biz.{{.Name | ToCamel}}Param) (*biz.{{.Name | ToCamel}}, error) { 79 reply, err := r.{{$modelName}}.FindBy(ctx, &{{$modelName}}V1.Find{{.Name | ToCamel}}ByRequest{ 80 Param: {{.Name | ToLowerCamel}}ParamBiz2Proto(param), 81 }) 82 if err != nil { 83 return nil, err 84 } 85 return {{$modelName}}Proto2Biz(reply.{{ .Name | ToCamel }}), nil 86 }