model.tpl 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. package {{.pkg}}
  2. {{if .withCache}}
  3. import (
  4. "github.com/zeromicro/go-zero/core/stores/cache"
  5. "github.com/zeromicro/go-zero/core/stores/sqlx"
  6. )
  7. {{else}}
  8. import "github.com/zeromicro/go-zero/core/stores/sqlx"
  9. {{end}}
  10. var _ {{.upperStartCamelObject}}Model = (*custom{{.upperStartCamelObject}}Model)(nil)
  11. type (
  12. // {{.upperStartCamelObject}}Model is an interface to be customized, add more methods here,
  13. // and implement the added methods in custom{{.upperStartCamelObject}}Model.
  14. {{.upperStartCamelObject}}Model interface {
  15. {{.lowerStartCamelObject}}Model
  16. {{if not .withCache}}withSession(session sqlx.Session) {{.upperStartCamelObject}}Model{{end}}
  17. }
  18. custom{{.upperStartCamelObject}}Model struct {
  19. *default{{.upperStartCamelObject}}Model
  20. }
  21. )
  22. // New{{.upperStartCamelObject}}Model returns a model for the database table.
  23. func New{{.upperStartCamelObject}}Model(conn sqlx.SqlConn{{if .withCache}}, c cache.CacheConf, cachePrefix string, opts ...cache.Option{{end}}) {{.upperStartCamelObject}}Model {
  24. return &custom{{.upperStartCamelObject}}Model{
  25. default{{.upperStartCamelObject}}Model: new{{.upperStartCamelObject}}Model(conn{{if .withCache}}, c, cachePrefix, opts...{{end}}),
  26. }
  27. }
  28. {{if not .withCache}}
  29. func (m *custom{{.upperStartCamelObject}}Model) withSession(session sqlx.Session) {{.upperStartCamelObject}}Model {
  30. return New{{.upperStartCamelObject}}Model(sqlx.NewSqlConnFromSession(session))
  31. }
  32. {{end}}