Non puoi selezionare più di 25 argomenti
Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
54 righe
1.0 KiB
54 righe
1.0 KiB
package service
|
|
|
|
import (
|
|
"github.com/astaxie/beego/orm"
|
|
"beeblog/models"
|
|
)
|
|
|
|
type BlogService struct {
|
|
}
|
|
|
|
func GetBlog(id int64) (*models.Blog, error) {
|
|
o := orm.NewOrm()
|
|
blog := &models.Blog{Id: id}
|
|
err := o.Read(blog)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return blog, nil
|
|
}
|
|
|
|
func FindBlogs() ([]*models.Blog, error) {
|
|
o := orm.NewOrm()
|
|
qs := o.QueryTable(&models.Blog{})
|
|
var blogs []*models.Blog
|
|
_, err := qs.Filter("Delflag", 0).All(&blogs)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return blogs, nil
|
|
}
|
|
|
|
func SaveBlog(blog *models.Blog, strs []string) error {
|
|
o := orm.NewOrm()
|
|
o.Begin()
|
|
id, eror := o.Insert(blog)
|
|
if eror != nil {
|
|
o.Rollback()
|
|
return eror
|
|
} else {
|
|
blog.Id = id
|
|
if strs != nil && len(strs) > 0 {
|
|
nlabels := make([]*models.NLabel, len(strs))
|
|
for i := 0; i < len(strs); i++ {
|
|
nlabels[i] = &models.NLabel{Title: strs[i], BlogId: id, UserId: blog.UserId}
|
|
}
|
|
if _, err := o.InsertMulti(len(nlabels), nlabels); err != nil {
|
|
o.Rollback()
|
|
return err
|
|
}
|
|
}
|
|
o.Commit()
|
|
}
|
|
return nil
|
|
}
|
|
|