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

     1  {{- /*gotype: github.com/yoogoc/kratos-scaffold/generator.Data*/ -}}
     2  {{$modelName := .Name |ToLowerCamel}}
     3  package data
     4  
     5  import (
     6  	"{{.CurrentPkgPath}}/biz"
     7  	{{$modelName}}V1 "{{ .ProtoPkgPath }}"
     8  )
     9  
    10  func {{.Name | ToLowerCamel}}Biz2Proto(source *biz.{{.Name | ToCamel}}) *{{$modelName}}V1.{{.Name | ToCamel}} {
    11  	return &{{$modelName}}V1.{{.Name | ToCamel}}{
    12  		{{- range $i, $f := .Fields }}
    13  			{{- if eq $f.FieldType.IsTime }}
    14  				{{ $f.Name | ToCamel }}: timestamppb.New(source.{{ $f.Name | ToCamel }}),
    15  			{{- else }}
    16  				{{ $f.Name | ToCamel }}: source.{{ $f.Name | ToCamel }},
    17  			{{- end }}
    18  		{{- end }}
    19  	}
    20  }
    21  
    22  func bulk{{.Name | ToCamel}}Biz2Proto(source []*biz.{{.Name | ToCamel}}) []*{{$modelName}}V1.{{.Name | ToCamel}} {
    23  	var list []*{{$modelName}}V1.{{.Name | ToCamel}}
    24  	for _, item := range source {
    25  		list = append(list, {{.Name | ToLowerCamel}}Biz2Proto(item))
    26  	}
    27  	return list
    28  }
    29  
    30  func {{.Name | ToLowerCamel}}Proto2Biz(source *{{$modelName}}V1.{{.Name | ToCamel}}) *biz.{{.Name | ToCamel}} {
    31  	return &biz.{{.Name | ToCamel}}{
    32  		{{- range $i, $f := .Fields }}
    33  			{{- if eq $f.FieldType.IsTime }}
    34  				{{ $f.Name | ToCamel }}: source.{{ $f.Name | ToCamel }}.AsTime(),
    35  			{{- else }}
    36  				{{ $f.Name | ToCamel }}: source.{{ $f.Name | ToCamel }},
    37  			{{- end }}
    38  		{{- end }}
    39  	}
    40  }
    41  
    42  func bulk{{.Name | ToCamel}}Proto2Biz(source []*{{$modelName}}V1.{{.Name | ToCamel}}) []*biz.{{.Name | ToCamel}} {
    43  	var list []*biz.{{.Name | ToCamel}}
    44  	for _, item := range source {
    45  		list = append(list, {{.Name | ToLowerCamel}}Proto2Biz(item))
    46  	}
    47  	return list
    48  }
    49  
    50  func {{.Name | ToLowerCamel}}ParamBiz2Proto(param *biz.{{.Name | ToCamel}}Param) *{{$modelName}}V1.{{.Name | ToCamel}}Param {
    51  	{{- range $i, $f := .ParamFields }}
    52  		{{- if eq $f.FieldType.IsTime }}
    53  			{{- if eq $f.Type.IsIn }}
    54  				var {{ $f.Name }} []string
    55  				for _, item := range param.{{ $f.Name | ToCamel }} {
    56  	  				{{ $f.Name }} = append({{ $f.Name }}, item.Format(time.DateTime))
    57  				}
    58  			{{- end }}
    59  		{{- end }}
    60  	{{- end }}
    61  	return &{{$modelName}}V1.{{.Name | ToCamel}}Param{
    62  		{{- range $i, $f := .ParamFields }}
    63  			{{- if eq $f.FieldType.IsTime }}
    64  				{{- if eq $f.Type.IsIn }}
    65  					{{ $f.Name | ToCamel }}: {{ $f.Name }},
    66  				{{- else }}
    67  					{{ $f.Name | ToCamel }}: param.{{ $f.Name | ToCamel }}.Format(time.DateTime),
    68  				{{- end }}
    69  			{{- else }}
    70  				{{ $f.Name | ToCamel }}: param.{{ $f.Name | ToCamel }},
    71  			{{- end }}
    72  		{{- end }}
    73  	}
    74  }