Browse Source

新增访问日志

xiexiaoyuan 2 years ago
parent
commit
6c0cc9ac6f

+ 1 - 1
middleware/token.go

@@ -70,7 +70,7 @@ func Token() gin.HandlerFunc {
 			c.Abort()
 			return
 		}
-
+		userInfo.LoginToken = token
 		c.Set("userInfo", userInfo)
 		c.Next()
 	}

+ 9 - 0
models/tables/user_access_record/create.go

@@ -0,0 +1,9 @@
+package user_access_record
+
+import "hongze/hongze_yb/global"
+
+//  Create 新增报告浏览记录
+func (ua *UserAccessRecord) Create() (err error) {
+	err = global.DEFAULT_MYSQL.Create(ua).Error
+	return
+}

+ 18 - 0
models/tables/user_access_record/user_access_record.go

@@ -0,0 +1,18 @@
+package user_access_record
+
+import "time"
+
+type UserAccessRecord struct {
+	Id              int `gorm:"column:id" db:"id" json:"id" form:"id"`
+	Uid             int `gorm:"column:uid" db:"uid" json:"uid" form:"uid"`
+	Token           string `gorm:"column:token" db:"token" json:"token" form:"token"`
+	ReportId        int `gorm:"column:report_id" db:"report_id" json:"report_id" form:"report_id"`
+	CreateTime      time.Time `gorm:"column:create_time" db:"create_time" json:"create_time" form:"create_time"`
+	Remark          string `gorm:"column:remark" db:"remark" json:"remark" form:"remark"`
+	ReportChapterId int `gorm:"column:report_chapter_id" db:"report_chapter_id" json:"report_chapter_id" form:"report_chapter_id"` //章节ID
+}
+
+// TableName get sql table name.获取数据库表名
+func (ua *UserAccessRecord) TableName() string {
+	return "user_access_record"
+}

+ 2 - 0
services/report/report.go

@@ -433,6 +433,8 @@ func GetReportDetail(userinfo user.UserInfo, reportId int) (reportDetail respons
 		reportItem.Content = html.UnescapeString(reportInfo.Content)
 		reportItem.VideoUrl = reportInfo.VideoUrl
 	}
+	//新增用户访问日志
+	task.Task(AddUserAccessRecord, userinfo, reportInfo.Id, reportInfo.ClassifyNameFirst, 0, authOk)
 	reportDetail.ReportInfo = reportItem
 	reportDetail.ReportChapterList = reportTypeList
 	reportDetail.PermissionCheck = &permissionCheckInfo

+ 1 - 0
services/report/report_chapter.go

@@ -262,6 +262,7 @@ func GetChapterDetail(user user.UserInfo, reportChapterId int) (reportChapterDet
 	}else{
 		reportChapterItem.ContentSub = html.UnescapeString(reportChapter.ContentSub)
 	}
+	task.Task(AddUserAccessRecord, user, reportInfo.Id, reportInfo.ClassifyNameFirst, reportChapterId, authOk)
 	reportChapterDetail = new(response.ReportChapterDetail)
 	reportChapterDetail.ReportChapterItem = reportChapterItem
 	reportChapterDetail.PermissionCheck = &permissionCheckInfo

+ 46 - 0
services/report/user_access_record.go

@@ -0,0 +1,46 @@
+package report
+
+import (
+	"errors"
+	"fmt"
+	"hongze/hongze_yb/global"
+	"hongze/hongze_yb/models/tables/user_access_record"
+	"hongze/hongze_yb/services/user"
+	"time"
+)
+
+// AddUserAccessRecord 新增报告浏览记录
+func AddUserAccessRecord(params ...interface{}){
+	var err error
+	userInter  := params[0]
+	userInfo, ok := (userInter).(user.UserInfo)
+	if !ok {
+		err = errors.New("格式换转失败")
+		return
+	}
+	defer func() {
+		if err != nil {
+			global.LOG.Critical(fmt.Sprintf("Task AddUserAccessRecord: userId=%d, err:%s", userInfo.UserID, err.Error()))
+		}
+	}()
+	reportId := params[1].(int)
+	if reportId > 0 {
+		classifyName := params[2]
+		reportChapterId := params[3].(int)
+		authOk := params[4].(bool)
+		record := new(user_access_record.UserAccessRecord)
+		record.Uid = int(userInfo.UserID)
+		record.Token = userInfo.LoginToken
+		record.CreateTime = time.Now()
+		record.Remark = "2" //	无权限
+		if authOk {
+			record.Remark = "0"
+		}
+		record.ReportId = reportId
+		if classifyName == "晨报" || classifyName == "周报" {
+			record.ReportChapterId = reportChapterId
+		}
+		err = record.Create()
+	}
+	return
+}

+ 1 - 0
services/user/user.go

@@ -21,6 +21,7 @@ var ERR_USER_NOT_BIND = errors.New("用户没有绑定")
 type UserInfo struct {
 	wx_user.WxUser
 	RecordInfo *user_record.UserRecord
+	LoginToken string
 }
 
 // GetWxUserItemByOpenId 通过openid获取用户信息