vars.go 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package gen
  2. import (
  3. "fmt"
  4. "strings"
  5. "github.com/zeromicro/go-zero/core/collection"
  6. "github.com/zeromicro/go-zero/tools/goctl/model/sql/template"
  7. "github.com/zeromicro/go-zero/tools/goctl/util"
  8. "github.com/zeromicro/go-zero/tools/goctl/util/pathx"
  9. "github.com/zeromicro/go-zero/tools/goctl/util/stringx"
  10. )
  11. func genVars(table Table, withCache, postgreSql bool) (string, error) {
  12. keys := make([]string, 0)
  13. keys = append(keys, table.PrimaryCacheKey.VarExpression)
  14. for _, v := range table.UniqueCacheKey {
  15. keys = append(keys, v.VarExpression)
  16. }
  17. camel := table.Name.ToCamel()
  18. text, err := pathx.LoadTemplate(category, varTemplateFile, template.Vars)
  19. if err != nil {
  20. return "", err
  21. }
  22. output, err := util.With("var").Parse(text).
  23. GoFmt(true).Execute(map[string]interface{}{
  24. "lowerStartCamelObject": stringx.From(camel).Untitle(),
  25. "upperStartCamelObject": camel,
  26. "cacheKeys": strings.Join(keys, "\n"),
  27. "autoIncrement": table.PrimaryKey.AutoIncrement,
  28. "originalPrimaryKey": wrapWithRawString(table.PrimaryKey.Name.Source(), postgreSql),
  29. "withCache": withCache,
  30. "postgreSql": postgreSql,
  31. "data": table,
  32. "ignoreColumns": func() string {
  33. var set = collection.NewSet()
  34. for _, c := range table.ignoreColumns {
  35. if postgreSql {
  36. set.AddStr(fmt.Sprintf(`"%s"`, c))
  37. } else {
  38. set.AddStr(fmt.Sprintf("\"`%s`\"", c))
  39. }
  40. }
  41. return strings.Join(set.KeysStr(), ", ")
  42. }(),
  43. })
  44. if err != nil {
  45. return "", err
  46. }
  47. return output.String(), nil
  48. }