liteblog/models/note.go

42 lines
1.1 KiB
Go

package models
import (
"fmt"
"github.com/jinzhu/gorm"
)
type Note struct {
gorm.Model
Key string `gorm:"unique_index; not null"` // 文章唯一标识
UserId int
User User
Title string
Summary string `gorm:"type:text"`
Content string `gorm:"type:text"`
Visit int `gorm:"default:0"`
Praise int `gorm:"default:0"`
}
func QueryNoteByKeyAndUserId(key string, userId int) (note Note, err error) {
err = db.Model(&Note{}).First(&note, "`key` = ? AND `user_id` = ?", key, userId).Error
return note, err
}
func QueryNoteByPage(title string, page int, limit int) (notes []*Note, err error) {
err = db.Where("title like ?", fmt.Sprintf("%%%s%%", title)).Offset((page - 1) * limit).Limit(limit).Find(&notes).Error
return notes, err
}
func QueryNoteCount(title string) (count int, err error) {
err = db.Model(&Note{}).Where("title like ?", fmt.Sprintf("%%%s%%", title)).Count(&count).Error
return count, err
}
func QueryNoteByKey(key string) (note Note, err error) {
err = db.Model(&Note{}).First(&note, "`key` = ?", key).Error
return note, err
}
func SaveNote(n *Note) error {
return db.Save(n).Error
}