fix 修复排序bug
This commit is contained in:
parent
de9650b26b
commit
3695565f76
@ -13,7 +13,7 @@ type ArticleApi interface {
|
|||||||
Upsert(article v2.Article) error
|
Upsert(article v2.Article) error
|
||||||
Update(article v2.Article, selects ...string) error
|
Update(article v2.Article, selects ...string) error
|
||||||
Find(query *FindArticleQuery) (articles []v2.Article, err error)
|
Find(query *FindArticleQuery) (articles []v2.Article, err error)
|
||||||
List(query PageListQuery) (articles []v2.Article, total int64, err error)
|
List(query PageListQuery, scopes ...func(db *gorm.DB) *gorm.DB) (articles []v2.Article, total int64, err error)
|
||||||
Get(query *GetArticleQuery) (article v2.Article, err error)
|
Get(query *GetArticleQuery) (article v2.Article, err error)
|
||||||
AutoMigrate() error
|
AutoMigrate() error
|
||||||
}
|
}
|
||||||
@ -111,6 +111,10 @@ func (f *FindArticleQuery) Scope(db *gorm.DB) *gorm.DB {
|
|||||||
if f.Available != nil {
|
if f.Available != nil {
|
||||||
db = db.Where("available=?", *f.Available)
|
db = db.Where("available=?", *f.Available)
|
||||||
}
|
}
|
||||||
|
return db
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *FindArticleQuery) SortScope(db *gorm.DB) *gorm.DB {
|
||||||
if f.RateSort == "descend" {
|
if f.RateSort == "descend" {
|
||||||
db = db.Order("rate desc")
|
db = db.Order("rate desc")
|
||||||
} else if f.RateSort == "ascend" {
|
} else if f.RateSort == "ascend" {
|
||||||
@ -118,18 +122,17 @@ func (f *FindArticleQuery) Scope(db *gorm.DB) *gorm.DB {
|
|||||||
}
|
}
|
||||||
return db
|
return db
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *articleApi) Find(query *FindArticleQuery) (articles []v2.Article, err error) {
|
func (a *articleApi) Find(query *FindArticleQuery) (articles []v2.Article, err error) {
|
||||||
err = a.db.Scopes(query.Scope).Find(&articles).Error
|
err = a.db.Scopes(query.Scope).Find(&articles).Error
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *articleApi) List(query PageListQuery) (articles []v2.Article, total int64, err error) {
|
func (a *articleApi) List(query PageListQuery, scopes ...func(db *gorm.DB) *gorm.DB) (articles []v2.Article, total int64, err error) {
|
||||||
err = a.db.Scopes(query.Scoper.Scope).Model(&v2.Article{}).Count(&total).Error
|
err = a.db.Scopes(query.Scoper.Scope).Model(&v2.Article{}).Count(&total).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
err = a.db.Scopes(query.Scope).Order("id").Find(&articles).Error
|
err = a.db.Scopes(query.Scope).Scopes(scopes...).Order("id").Find(&articles).Error
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user