Files

51 lines
1.3 KiB
Go
Raw Normal View History

2022-01-20 17:22:05 +08:00
package event
2022-01-20 18:25:31 +08:00
import (
"SciencesServer/app/common/model"
"SciencesServer/serve/logger"
"gorm.io/gorm"
"time"
)
2022-01-20 17:22:05 +08:00
// Visit 浏览事件数据处理
type Visit struct{}
// Handle 操作处理
2022-01-20 18:25:31 +08:00
// @params: uid,kind,object
2022-01-20 17:22:05 +08:00
func (this *Visit) Handle(arg ...interface{}) {
2022-01-20 18:25:31 +08:00
uid := arg[0].(uint64)
kind := arg[1].(model.UserVisitKind)
objectID := arg[2].(uint64)
mUserVisit := model.NewUserVisit()
isExist, err := model.FirstField(mUserVisit, []string{"id", "uid", "created_at"}, model.NewWhere("uid", uid),
model.NewWhere("kind", kind), model.NewWhere("object_id", objectID))
if err != nil {
logger.ErrorF("Event 查询用户访问记录【%d - %d - %d】错误%v", err, uid, kind, objectID)
return
}
if isExist {
if err = model.Updates(mUserVisit, map[string]interface{}{
"count": gorm.Expr("visits + ?", 1), "date": time.Now(),
}); err != nil {
logger.ErrorF("Event 更新用户访问记录【%d - %d - %d】错误%v", err, uid, kind, objectID)
}
return
}
mUserVisit.UID = uid
mUserVisit.Kind = kind
mUserVisit.ObjectID = objectID
mUserVisit.Count = 1
mUserVisit.Date = time.Now()
if err = model.Create(mUserVisit); err != nil {
logger.ErrorF("Event 保存用户访问记录【%d - %d - %d】错误%v", err, uid, kind, objectID)
}
return
2022-01-20 17:22:05 +08:00
}
func NewVisit() *Visit {
return &Visit{}
}