增加文章阅读次数

This commit is contained in:
wangbin05
2021-03-31 19:32:18 +08:00
parent bae6826a97
commit 5b274ce836
5 changed files with 54 additions and 0 deletions

View File

@@ -0,0 +1,44 @@
package models
import (
"github.com/astaxie/beego/orm"
"github.com/mindoc-org/mindoc/conf"
)
type DocumentViewCount struct {
DocumentId int `orm:"pk;column(document_id);type(int)" json:"doc_id"`
ViewCount int `orm:"column(view_count);type(int)" json:"view_count"`
}
// TableName 获取对应数据库表名.
func (v *DocumentViewCount) TableName() string {
return "document_viewcount"
}
// TableEngine 获取数据使用的引擎.
func (v *DocumentViewCount) TableEngine() string {
return "INNODB"
}
func (v *DocumentViewCount) TableNameWithPrefix() string {
return conf.GetDatabasePrefix() + v.TableName()
}
func NewDocumentViewCount() *DocumentViewCount {
return &DocumentViewCount{}
}
func (v *DocumentViewCount) IncrViewCount(id int) int {
o := orm.NewOrm()
num, _ := o.QueryTable(v.TableNameWithPrefix()).Filter("document_id", id).Update(orm.Params{
"view_count": orm.ColValue(orm.ColAdd, 1),
})
if 0 == num {
v.DocumentId = id
v.ViewCount = 1
num, _ = o.Insert(v)
} else {
o.QueryTable(v.TableNameWithPrefix()).Filter("document_id", id).One(v)
}
return v.ViewCount
}