Browse Source

fix:修改阅读记录逻辑

zqbao 9 months ago
parent
commit
f9b6a1cb1d
4 changed files with 70 additions and 14 deletions
  1. 37 8
      controllers/user.go
  2. 2 0
      models/db.go
  3. 25 0
      models/user_read_permission.go
  4. 6 6
      models/user_read_record.go

+ 37 - 8
controllers/user.go

@@ -8,7 +8,6 @@ import (
 	"eta/eta_mini_api/services"
 	"eta/eta_mini_api/utils"
 	"fmt"
-	"strconv"
 	"strings"
 	"time"
 )
@@ -272,13 +271,13 @@ func (this *UserAuthController) AddReportRecord() {
 	var insertId int64
 	if req.RecordId == 0 {
 		// 如果不存在就新增一条记录
-		permission1Ids := make([]string, 0)
-		permission2Ids := make([]string, 0)
+		permission1Ids := make([]int, 0)
+		permission2Ids := make([]int, 0)
 		permissionNames := make([]string, 0)
 		for _, item := range items {
 			curPermission := chartMap[item.ChartPermissionId]
-			permission1Ids = append(permission1Ids, strconv.Itoa(curPermission.ParentId))
-			permission2Ids = append(permission2Ids, strconv.Itoa(curPermission.ChartPermissionId))
+			permission1Ids = append(permission1Ids, curPermission.ParentId)
+			permission2Ids = append(permission2Ids, curPermission.ChartPermissionId)
 			permissionNames = append(permissionNames, curPermission.PermissionName)
 		}
 		permission1Ids = utils.Unique(permission1Ids)
@@ -288,8 +287,6 @@ func (this *UserAuthController) AddReportRecord() {
 			UserId:              user.UserId,
 			ReportId:            req.ReportId,
 			ReportTitle:         req.ReportTitle,
-			ChartPermissionId1:  strings.Join(permission1Ids, ","),
-			ChartPermissionId2:  strings.Join(permission2Ids, ","),
 			ChartPermissionName: strings.Join(permissionNames, ","),
 			ClassifyId1:         req.ClassifyIdFirst,
 			ClassifyName1:       req.ClassifyNameFirst,
@@ -299,7 +296,39 @@ func (this *UserAuthController) AddReportRecord() {
 			CreateTime:          curTime,
 			CreateDate:          curTime.Format(utils.FormatDate),
 		}
-		insertId, _ = userReadRecord.Insert()
+		insertId, err = userReadRecord.Insert()
+		if err != nil {
+			br.Msg = "添加阅读记录失败"
+			br.ErrMsg = "添加阅读记录失败,Err:" + err.Error()
+			return
+		}
+
+		userReadPermission1 := make([]*models.UserReadPermission1, 0)
+		for _, id := range permission1Ids {
+			userReadPermission1 = append(userReadPermission1, &models.UserReadPermission1{
+				UserReadRecordId:  int(insertId),
+				ChartPermissionId: id,
+			})
+		}
+		err = models.UserReadPermission1MultiInsert(userReadPermission1)
+		if err != nil {
+			br.Msg = "添加阅读记录失败"
+			br.ErrMsg = "添加阅读记录失败,Err:" + err.Error()
+			return
+		}
+		userReadPermission2 := make([]*models.UserReadPermission2, 0)
+		for _, id := range permission2Ids {
+			userReadPermission2 = append(userReadPermission2, &models.UserReadPermission2{
+				UserReadRecordId:  int(insertId),
+				ChartPermissionId: id,
+			})
+		}
+		err = models.UserReadPermission2MultiInsert(userReadPermission2)
+		if err != nil {
+			br.Msg = "添加阅读记录失败"
+			br.ErrMsg = "添加阅读记录失败,Err:" + err.Error()
+			return
+		}
 	} else {
 		// 如果存在就计算停留时间
 		userRecord, err := models.GetUserReadRecordListById(req.RecordId)

+ 2 - 0
models/db.go

@@ -42,6 +42,8 @@ func init() {
 		new(Banner),
 		new(UserTemplateRecord),
 		new(UserReadRecord),
+		new(UserReadPermission1),
+		new(UserReadPermission2),
 	)
 
 }

+ 25 - 0
models/user_read_permission.go

@@ -0,0 +1,25 @@
+package models
+
+import "github.com/beego/beego/v2/client/orm"
+
+type UserReadPermission1 struct {
+	UserReadPermissionId int `orm:"pk" description:"用户阅读记录品种映射id"`
+	UserReadRecordId     int `description:"用户阅读记录id"`
+	ChartPermissionId    int `description:"品种id"`
+}
+type UserReadPermission2 struct {
+	UserReadPermissionId int `orm:"pk" description:"用户阅读记录品种映射id"`
+	UserReadRecordId     int `description:"用户阅读记录id"`
+	ChartPermissionId    int `description:"品种id"`
+}
+
+func UserReadPermission1MultiInsert(items []*UserReadPermission1) (err error) {
+	o := orm.NewOrm()
+	_, err = o.InsertMulti(100, items)
+	return
+}
+func UserReadPermission2MultiInsert(items []*UserReadPermission2) (err error) {
+	o := orm.NewOrm()
+	_, err = o.InsertMulti(100, items)
+	return
+}

+ 6 - 6
models/user_read_record.go

@@ -8,12 +8,12 @@ import (
 )
 
 type UserReadRecord struct {
-	UserReadRecordId    int       `orm:"pk" description:"id"`
-	UserId              int       `description:"用户id"`
-	ReportId            int       `description:"报告id"`
-	ReportTitle         string    `description:"报告标题"`
-	ChartPermissionId1  string    `description:"一级品种id"`
-	ChartPermissionId2  string    `description:"二级品种id"`
+	UserReadRecordId int    `orm:"pk" description:"id"`
+	UserId           int    `description:"用户id"`
+	ReportId         int    `description:"报告id"`
+	ReportTitle      string `description:"报告标题"`
+	// ChartPermissionId1  string    `description:"一级品种id"`
+	// ChartPermissionId2  string    `description:"二级品种id"`
 	ChartPermissionName string    `description:"二级品种名称"`
 	ClassifyId1         int       `description:"一级级分类id"`
 	ClassifyName1       string    `description:"一级分类名称"`