find.go 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package template
  2. // 通过id查询
  3. var FindOne = `
  4. func (m *{{.upperStartCamelObject}}Model) FindOne({{.lowerStartCamelPrimaryKey}} {{.dataType}}) (*{{.upperStartCamelObject}}, error) {
  5. {{if .withCache}}{{.cacheKey}}
  6. var resp {{.upperStartCamelObject}}
  7. err := m.QueryRow(&resp, {{.cacheKeyVariable}}, func(conn sqlx.SqlConn, v interface{}) error {
  8. query := ` + "`" + `select ` + "`" + ` + {{.lowerStartCamelObject}}Rows + ` + "`" + ` from ` + "` + " + `m.table ` +
  9. " + `" + ` where {{.originalPrimaryKey}} = ? limit 1` + "`" + `
  10. return conn.QueryRow(v, query, {{.lowerStartCamelPrimaryKey}})
  11. })
  12. switch err {
  13. case nil:
  14. return &resp, nil
  15. case sqlc.ErrNotFound:
  16. return nil, ErrNotFound
  17. default:
  18. return nil, err
  19. }{{else}}query := ` + "`" + `select ` + "`" + ` + {{.lowerStartCamelObject}}Rows + ` + "`" + ` from ` + "` + " + `m.table ` + " + `" +
  20. ` where {{.originalPrimaryKey}} = ? limit 1` + "`" + `
  21. var resp {{.upperStartCamelObject}}
  22. err := m.conn.QueryRow(&resp, query, {{.lowerStartCamelPrimaryKey}})
  23. switch err {
  24. case nil:
  25. return &resp, nil
  26. case sqlc.ErrNotFound:
  27. return nil, ErrNotFound
  28. default:
  29. return nil, err
  30. }{{end}}
  31. }
  32. `
  33. // 通过指定字段查询
  34. var FindOneByField = `
  35. func (m *{{.upperStartCamelObject}}Model) FindOneBy{{.upperField}}({{.in}}) (*{{.upperStartCamelObject}}, error) {
  36. {{if .withCache}}{{.cacheKey}}
  37. var resp {{.upperStartCamelObject}}
  38. err := m.QueryRowIndex(&resp, {{.cacheKeyVariable}}, m.formatPrimary, func(conn sqlx.SqlConn, v interface{}) (i interface{}, e error) {
  39. query := ` + "`" + `select ` + "`" + ` + {{.lowerStartCamelObject}}Rows + ` + "`" + ` from ` + "` + " + `m.table ` + " + `" +
  40. ` where {{.originalField}} = ? limit 1` + "`" + `
  41. if err := conn.QueryRow(&resp, query, {{.lowerStartCamelField}}); err != nil {
  42. return nil, err
  43. }
  44. return resp.{{.upperStartCamelPrimaryKey}}, nil
  45. }, m.queryPrimary)
  46. switch err {
  47. case nil:
  48. return &resp, nil
  49. case sqlc.ErrNotFound:
  50. return nil, ErrNotFound
  51. default:
  52. return nil, err
  53. }
  54. }{{else}}var resp {{.upperStartCamelObject}}
  55. query := ` + "`" + `select ` + "`" + ` + {{.lowerStartCamelObject}}Rows + ` + "`" + ` from ` + "` + " + `m.table ` + " + `" +
  56. ` where {{.originalField}} = ? limit 1` + "`" + `
  57. err := m.conn.QueryRow(&resp, query, {{.lowerStartCamelField}})
  58. switch err {
  59. case nil:
  60. return &resp, nil
  61. case sqlc.ErrNotFound:
  62. return nil, ErrNotFound
  63. default:
  64. return nil, err
  65. }
  66. }{{end}}
  67. `
  68. var FindOneByFieldExtraMethod = `
  69. func (m *{{.upperStartCamelObject}}Model) formatPrimary(primary interface{}) string {
  70. return fmt.Sprintf("%s%v", {{.primaryKeyLeft}}, primary)
  71. }
  72. func (m *{{.upperStartCamelObject}}Model) queryPrimary(conn sqlx.SqlConn, v, primary interface{}) error {
  73. query := ` + "`" + `select ` + "`" + ` + {{.lowerStartCamelObject}}Rows + ` + "`" + ` from ` + "` + " + `m.table ` + " + `" +
  74. ` where {{.originalPrimaryField}} = ? limit 1` + "`" + `
  75. return conn.QueryRow(v, query, primary)
  76. }
  77. `