446 Star 3.2K Fork 1.2K

GVP进击的皇虫/BookStack

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
label.go 2.06 KB
一键复制 编辑 原始数据 按行查看 历史
TruthHun 提交于 7年前 . 假装第一次提交
package models
import (
"strings"
"github.com/TruthHun/BookStack/conf"
"github.com/astaxie/beego/orm"
)
type Label struct {
LabelId int `orm:"column(label_id);pk;auto;unique;" json:"label_id"`
LabelName string `orm:"column(label_name);size(50);unique" json:"label_name"`
BookNumber int `orm:"column(book_number)" json:"book_number"`
}
// TableName 获取对应数据库表名.
func (m *Label) TableName() string {
return "label"
}
// TableEngine 获取数据使用的引擎.
func (m *Label) TableEngine() string {
return "INNODB"
}
func (m *Label) TableNameWithPrefix() string {
return conf.GetDatabasePrefix() + m.TableName()
}
func NewLabel() *Label {
return &Label{}
}
func (m *Label) FindFirst(field string, value interface{}) (*Label, error) {
o := orm.NewOrm()
err := o.QueryTable(m.TableNameWithPrefix()).Filter(field, value).One(m)
return m, err
}
//插入或更新标签.
func (m *Label) InsertOrUpdate(labelName string) error {
o := orm.NewOrm()
err := o.QueryTable(m.TableNameWithPrefix()).Filter("label_name", labelName).One(m)
if err != nil && err != orm.ErrNoRows {
return err
}
count, _ := o.QueryTable(NewBook().TableNameWithPrefix()).Filter("label__icontains", labelName).Count()
m.BookNumber = int(count)
m.LabelName = labelName
if err == orm.ErrNoRows {
err = nil
m.LabelName = labelName
_, err = o.Insert(m)
} else {
_, err = o.Update(m)
}
return err
}
//批量插入或更新标签.
func (m *Label) InsertOrUpdateMulti(labels string) {
if labels != "" {
labelArray := strings.Split(labels, ",")
for _, label := range labelArray {
if label != "" {
NewLabel().InsertOrUpdate(label)
}
}
}
}
//分页查找标签.
func (m *Label) FindToPager(pageIndex, pageSize int) (labels []*Label, totalCount int, err error) {
o := orm.NewOrm()
count, err := o.QueryTable(m.TableNameWithPrefix()).Count()
if err != nil {
return
}
totalCount = int(count)
offset := (pageIndex - 1) * pageSize
_, err = o.QueryTable(m.TableNameWithPrefix()).OrderBy("-book_number").Offset(offset).Limit(pageSize).All(&labels)
return
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/truthhun/BookStack.git
git@gitee.com:truthhun/BookStack.git
truthhun
BookStack
BookStack
v1.3.1

搜索帮助