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  }