| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 | package modelsimport (	"github.com/astaxie/beego/orm"	"github.com/lifei6671/mindoc/conf"	"strings")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}
 |