|
|
@ -3,11 +3,26 @@ package service |
|
|
|
import ( |
|
|
|
"github.com/astaxie/beego/orm" |
|
|
|
"beeblog/models" |
|
|
|
"beeblog/utils" |
|
|
|
) |
|
|
|
|
|
|
|
type BlogService struct { |
|
|
|
} |
|
|
|
|
|
|
|
func count(num int, size int, cat int64) (*utils.Page, error) { |
|
|
|
o := orm.NewOrm() |
|
|
|
qs := o.QueryTable(&models.Blog{}) |
|
|
|
qs.Filter("Delflag", 0) |
|
|
|
if cat != -1 { |
|
|
|
qs = qs.Filter("CategoryId", cat) |
|
|
|
} |
|
|
|
totalCount, err := qs.Count() |
|
|
|
if err != nil { |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
return utils.PageUtil(totalCount, num, size), nil |
|
|
|
} |
|
|
|
|
|
|
|
func GetBlog(id int64) (*models.Blog, error) { |
|
|
|
o := orm.NewOrm() |
|
|
|
blog := &models.Blog{Id: id} |
|
|
@ -18,15 +33,31 @@ func GetBlog(id int64) (*models.Blog, error) { |
|
|
|
return blog, nil |
|
|
|
} |
|
|
|
|
|
|
|
func FindBlogs() ([]*models.Blog, error) { |
|
|
|
func FindBlogs(num int, size int, cat int64, flag int) (*utils.Page, error) { |
|
|
|
page, err := count(num, size, cat) |
|
|
|
if err != nil { |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
var blogs []*models.Blog |
|
|
|
o := orm.NewOrm() |
|
|
|
qs := o.QueryTable(&models.Blog{}) |
|
|
|
var blogs []*models.Blog |
|
|
|
_, err := qs.Filter("Delflag", 0).All(&blogs) |
|
|
|
qs = qs.Filter("Delflag", 0) |
|
|
|
if cat != -1 { |
|
|
|
qs = qs.Filter("CategoryId", cat) |
|
|
|
} |
|
|
|
if flag == 0 { |
|
|
|
qs = qs.OrderBy("-Ctime") |
|
|
|
} else { |
|
|
|
qs = qs.OrderBy("-Browses") |
|
|
|
} |
|
|
|
|
|
|
|
qs = qs.Limit(size,page.PageNo) |
|
|
|
_, err = qs.All(&blogs) |
|
|
|
if err != nil { |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
return blogs, nil |
|
|
|
page.List = blogs |
|
|
|
return page, nil |
|
|
|
} |
|
|
|
|
|
|
|
func SaveBlog(blog *models.Blog, strs []string) error { |
|
|
|