package gen import ( "strings" "github.com/tal-tech/go-zero/tools/goctl/model/sql/parser" "github.com/tal-tech/go-zero/tools/goctl/model/sql/template" "github.com/tal-tech/go-zero/tools/goctl/util" "github.com/tal-tech/go-zero/tools/goctl/util/pathx" ) func genFields(fields []*parser.Field) (string, error) { var list []string for _, field := range fields { result, err := genField(field) if err != nil { return "", err } list = append(list, result) } return strings.Join(list, "\n"), nil } func genField(field *parser.Field) (string, error) { tag, err := genTag(field.NameOriginal) if err != nil { return "", err } text, err := pathx.LoadTemplate(category, fieldTemplateFile, template.Field) if err != nil { return "", err } output, err := util.With("types"). Parse(text). Execute(map[string]interface{}{ "name": field.Name.ToCamel(), "type": field.DataType, "tag": tag, "hasComment": field.Comment != "", "comment": field.Comment, }) if err != nil { return "", err } return output.String(), nil }