field.go 942 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package gen
  2. import (
  3. "strings"
  4. "github.com/tal-tech/go-zero/tools/goctl/model/sql/parser"
  5. "github.com/tal-tech/go-zero/tools/goctl/model/sql/template"
  6. "github.com/tal-tech/go-zero/tools/goctl/util/templatex"
  7. )
  8. func genFields(fields []parser.Field) (string, error) {
  9. var list []string
  10. for _, field := range fields {
  11. result, err := genField(field)
  12. if err != nil {
  13. return "", err
  14. }
  15. list = append(list, result)
  16. }
  17. return strings.Join(list, "\n"), nil
  18. }
  19. func genField(field parser.Field) (string, error) {
  20. tag, err := genTag(field.Name.Source())
  21. if err != nil {
  22. return "", err
  23. }
  24. output, err := templatex.With("types").
  25. Parse(template.Field).
  26. Execute(map[string]interface{}{
  27. "name": field.Name.Snake2Camel(),
  28. "type": field.DataType,
  29. "tag": tag,
  30. "hasComment": field.Comment != "",
  31. "comment": field.Comment,
  32. })
  33. if err != nil {
  34. return "", err
  35. }
  36. return output.String(), nil
  37. }