github.com/yoogoc/kratos-scaffold@v0.0.0-20240402032722-a538b3c18955/generator/tmpl/service.tmpl (about) 1 {{- /*gotype: github.com/yoogoc/kratos-scaffold/generator.Service*/ -}} 2 package service 3 4 import ( 5 "context" 6 "github.com/go-kratos/kratos/v2/log" 7 v1 "{{.ApiPath}}" 8 "{{.CurrentPkgPath}}/biz" 9 {{- range $i, $s := .MaybeGoPackages }} 10 "{{ $s }}" 11 {{- end }} 12 ) 13 14 type {{.Name}}Service struct { 15 v1.Unimplemented{{.Name}}ServiceServer 16 uc *biz.{{.Name}}Usecase 17 log *log.Helper 18 } 19 20 func New{{.Name}}Service(uc *biz.{{.Name}}Usecase, logger log.Logger) *{{.Name}}Service { 21 return &{{.Name}}Service{ 22 log: log.NewHelper(log.With(logger, "module", "service/{{.Name | ToSnake}}")), 23 uc: uc, 24 } 25 } 26 27 func (s *{{.Name}}Service) Create(ctx context.Context, req *v1.Create{{.Name}}Request) (*v1.Create{{.Name}}Reply, error) { 28 item, err := s.uc.Create{{.Name}}(ctx, create{{.Name}}Req2Biz(req)) 29 if err != nil { 30 return nil, err 31 } 32 return &v1.Create{{.Name}}Reply{ 33 {{.Name}}: {{.Name | ToLowCamel }}Biz2Proto(item), 34 }, nil 35 } 36 37 func (s *{{.Name}}Service) Update(ctx context.Context, req *v1.Update{{.Name}}Request) (*v1.Update{{.Name}}Reply, error) { 38 item, err := s.uc.Update{{.Name}}(ctx, update{{.Name}}Req2Biz(req)) 39 if err != nil { 40 return nil, err 41 } 42 return &v1.Update{{.Name}}Reply{ 43 {{.Name}}: {{.Name | ToLowCamel }}Biz2Proto(item), 44 }, nil 45 } 46 {{- if .GenHttp }} 47 func (s *{{.Name}}Service) Destroy(ctx context.Context, req *v1.Destroy{{.Name}}Request) (*v1.Destroy{{.Name}}Reply, error) { 48 _, err := s.uc.Destroy{{.Name}}By(ctx, &biz.{{.Name}}Param{ 49 {{.PrimaryKey | ToCamel }}Eq: wrapperspb.Int64(req.{{.PrimaryKey | ToCamel}}), 50 }) 51 if err != nil { 52 return nil, err 53 } 54 return &v1.Destroy{{.Name}}Reply{}, nil 55 } 56 57 func (s *{{.Name}}Service) Get(ctx context.Context, req *v1.Get{{.Name}}Request) (*v1.Get{{.Name}}Reply, error) { 58 item, err := s.uc.Find{{.Name}}By(ctx, &biz.{{.Name}}Param{ 59 {{.PrimaryKey | ToCamel }}Eq: wrapperspb.Int64(req.{{.PrimaryKey | ToCamel}}), 60 }) 61 if err != nil { 62 return nil, err 63 } 64 return &v1.Get{{.Name}}Reply{ 65 {{.Name}}: {{.Name | ToLowCamel }}Biz2Proto(item), 66 }, nil 67 } 68 69 {{- else }} 70 func (s *{{.Name}}Service) DestroyBy(ctx context.Context, req *v1.Destroy{{.Name}}ByRequest) (*v1.Destroy{{.Name}}ByReply, error) { 71 count, err := s.uc.Destroy{{.Name}}By(ctx, param{{.Name}}Proto2Biz(req.Param)) 72 if err != nil { 73 return nil, err 74 } 75 return &v1.Destroy{{.Name}}ByReply{ 76 Count: int32(count), 77 }, nil 78 } 79 80 func (s *{{.Name}}Service) FindBy(ctx context.Context, req *v1.Find{{.Name}}ByRequest) (*v1.Find{{.Name}}ByReply, error) { 81 item, err := s.uc.Find{{.Name}}By(ctx, param{{.Name}}Proto2Biz(req.Param)) 82 if err != nil { 83 return nil, err 84 } 85 return &v1.Find{{.Name}}ByReply{ 86 {{.Name}}: {{.Name | ToLowCamel }}Biz2Proto(item), 87 }, nil 88 } 89 {{- end }} 90 91 func (s *{{.Name}}Service) List(ctx context.Context, req *v1.List{{.Name}}Request) (*v1.List{{.Name}}Reply, error) { 92 list, count, err := s.uc.List{{.Name}}(ctx, param{{.Name}}Proto2Biz(req.Param), int(req.Page), int(req.PageSize)) 93 if err != nil { 94 return nil, err 95 } 96 return &v1.List{{.Name}}Reply{ 97 {{.Name| ToCamel | ToPlural}}: bulk{{.Name}}Biz2Proto(list), 98 Count: uint32(count), 99 }, nil 100 }