package bannermodel import ( "sync" "time" "github.com/qit-team/snow-core/db" ) var ( once sync.Once m *bannerModel ) /** * Banner实体 */ type Banner struct { Id int64 `xorm:"pk autoincr"` //注:使用getOne 或者ID() 需要设置主键 Pid int Title string ImageUrl string `xorm:"'img_url'"` Url string Status string CreatedAt time.Time UpdatedAt time.Time DeletedAt time.Time `xorm:"deleted"` //此特性会激发软删除 } /** * 表名规则 * @wiki http://gobook.io/read/github.com/go-xorm/manual-zh-CN/chapter-02/3.tags.html */ func (m *Banner) TableName() string { return "banner" } /** * 私有化,防止被外部new */ type bannerModel struct { db.Model //组合基础Model,集成基础Model的属性和方法 } //单例模式 func GetInstance() *bannerModel { once.Do(func() { m = new(bannerModel) //m.DiName = "" //设置数据库实例连接,默认db.SingletonMain }) return m } func (m *bannerModel) GetListByPid(pid int, limits ...int) (banners []*Banner, err error) { banners = make([]*Banner, 0) err = m.GetList(&banners, "pid = ?", []interface{}{pid}, limits) return }