model.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package template
  2. import (
  3. "fmt"
  4. "github.com/zeromicro/go-zero/tools/goctl/util"
  5. )
  6. // ModelCustom defines a template for extension
  7. const ModelCustom = `package {{.pkg}}
  8. {{if .withCache}}
  9. import (
  10. "github.com/zeromicro/go-zero/core/stores/cache"
  11. "github.com/zeromicro/go-zero/core/stores/sqlx"
  12. )
  13. {{else}}
  14. import "github.com/zeromicro/go-zero/core/stores/sqlx"
  15. {{end}}
  16. var _ {{.upperStartCamelObject}}Model = (*custom{{.upperStartCamelObject}}Model)(nil)
  17. type (
  18. // {{.upperStartCamelObject}}Model is an interface to be customized, add more methods here,
  19. // and implement the added methods in custom{{.upperStartCamelObject}}Model.
  20. {{.upperStartCamelObject}}Model interface {
  21. {{.lowerStartCamelObject}}Model
  22. }
  23. custom{{.upperStartCamelObject}}Model struct {
  24. *default{{.upperStartCamelObject}}Model
  25. }
  26. )
  27. // New{{.upperStartCamelObject}}Model returns a model for the database table.
  28. func New{{.upperStartCamelObject}}Model(conn sqlx.SqlConn{{if .withCache}}, c cache.CacheConf{{end}}) {{.upperStartCamelObject}}Model {
  29. return &custom{{.upperStartCamelObject}}Model{
  30. default{{.upperStartCamelObject}}Model: new{{.upperStartCamelObject}}Model(conn{{if .withCache}}, c{{end}}),
  31. }
  32. }
  33. `
  34. // ModelGen defines a template for model
  35. var ModelGen = fmt.Sprintf(`%s
  36. package {{.pkg}}
  37. {{.imports}}
  38. {{.vars}}
  39. {{.types}}
  40. {{.new}}
  41. {{.delete}}
  42. {{.find}}
  43. {{.insert}}
  44. {{.update}}
  45. {{.extraMethod}}
  46. {{.tableName}}
  47. `, util.DoNotEditHead)