12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- package viewdb
- import (
- "github.com/tangs-drm/go-tool/util"
- "gopkg.in/mgo.v2/bson"
- "github.com/tangs-drm/go-tool/log"
- "github.com/tangs-drm/go-tool/dbm"
- "fmt"
- )
- func Record_Mongo(article_id int, ip string) error {
- info, err := C(VIEW_TIMES).Upsert(bson.M{
- "article": article_id,
- "ip": ip,
- }, bson.M{
- "$setOnInsert": bson.M{
- "_id": bson.NewObjectId().Hex(),
- "time": util.Now(),
- "attrs": util.Map{},
- },
- "$set": bson.M{
- "lastTime": util.Now(),
- },
- "$inc": bson.M{
- "count": 1,
- },
- })
- if err != nil {
- log.Error("[Record] record with id(%v), time(%v) error ->(%v)", article_id, util.Now(), err)
- return err
- }
- log.Debug("[Record] record with id(%v), time(%v) success with info(%v)", article_id, util.Now(), util.S2Json(info))
- return nil
- }
- // FindArticleId 根据文章名字查出文章的id
- func FindArticleId(name string) (util.Map, error) {
- var sqlString = fmt.Sprintf("SELECT ID FROM POSTS WHERE SLUG = '%v'", name)
- rows, err := dbm.D().Query(sqlString)
- if err != nil {
- log.Error("[FindArticleId] find article id with name(%v) error ->(%v)", name, err)
- return nil, err
- }
- if !rows.Next() {
- log.Error("[FindArticleId] find article id with name(%v) not found", name)
- return util.Map{}, util.Error("name is not found")
- }
- var id int
- err = rows.Scan(&id)
- if err != nil {
- log.Error("[FindArticleId] find article id with name(%v) scan id error ->(%v)", name, err)
- return nil, err
- }
- var result = util.Map{
- "id": id,
- }
- return result, nil
- }
- // Record 根据文章id加浏览加1
- func Record(article_id int) error {
- var err error
- var sqlString = "UPDATE PAGE_VIEW SET LAST_VIEW = ? AND TIMES = TIMES + 1 WHERE POST_ID = ?;"
- _, err = dbm.D().Exec(sqlString, util.Now10(), article_id)
- if err != nil {
- log.Error("[Record] exec record with article id (%v) with sqlString(%v) error ->(%v)", article_id, sqlString, err)
- return err
- }
- log.Debug("[Record] exec record with article id(%v) success", article_id)
- return nil
- }
|