field.go 799 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package gen
  2. import (
  3. "bytes"
  4. "strings"
  5. "text/template"
  6. sqltemplate "zero/tools/goctl/model/sql/template"
  7. )
  8. func genFields(fields []*InnerField) (string, error) {
  9. list := make([]string, 0)
  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, "\r\n"), nil
  18. }
  19. func genField(field *InnerField) (string, error) {
  20. t, err := template.New("types").Parse(sqltemplate.Field)
  21. if err != nil {
  22. return "", nil
  23. }
  24. var typeBuffer = new(bytes.Buffer)
  25. err = t.Execute(typeBuffer, map[string]string{
  26. "name": field.UpperCamelCase,
  27. "type": field.DataType,
  28. "tag": field.Tag,
  29. "comment": field.Comment,
  30. })
  31. if err != nil {
  32. return "", err
  33. }
  34. return typeBuffer.String(), nil
  35. }