findone.go 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package gen
  2. import (
  3. "github.com/tal-tech/go-zero/tools/goctl/model/sql/template"
  4. "github.com/tal-tech/go-zero/tools/goctl/util"
  5. "github.com/tal-tech/go-zero/tools/goctl/util/stringx"
  6. )
  7. func genFindOne(table Table, withCache, postgreSql bool) (string, string, error) {
  8. camel := table.Name.ToCamel()
  9. text, err := util.LoadTemplate(category, findOneTemplateFile, template.FindOne)
  10. if err != nil {
  11. return "", "", err
  12. }
  13. output, err := util.With("findOne").
  14. Parse(text).
  15. Execute(map[string]interface{}{
  16. "withCache": withCache,
  17. "upperStartCamelObject": camel,
  18. "lowerStartCamelObject": stringx.From(camel).Untitle(),
  19. "originalPrimaryKey": wrapWithRawString(table.PrimaryKey.Name.Source(), postgreSql),
  20. "lowerStartCamelPrimaryKey": stringx.From(table.PrimaryKey.Name.ToCamel()).Untitle(),
  21. "dataType": table.PrimaryKey.DataType,
  22. "cacheKey": table.PrimaryCacheKey.KeyExpression,
  23. "cacheKeyVariable": table.PrimaryCacheKey.KeyLeft,
  24. "postgreSql": postgreSql,
  25. })
  26. if err != nil {
  27. return "", "", err
  28. }
  29. text, err = util.LoadTemplate(category, findOneMethodTemplateFile, template.FindOneMethod)
  30. if err != nil {
  31. return "", "", err
  32. }
  33. findOneMethod, err := util.With("findOneMethod").
  34. Parse(text).
  35. Execute(map[string]interface{}{
  36. "upperStartCamelObject": camel,
  37. "lowerStartCamelPrimaryKey": stringx.From(table.PrimaryKey.Name.ToCamel()).Untitle(),
  38. "dataType": table.PrimaryKey.DataType,
  39. })
  40. if err != nil {
  41. return "", "", err
  42. }
  43. return output.String(), findOneMethod.String(), nil
  44. }