Bläddra i källkod

add:增加分类可见用户

zqbao 3 månader sedan
förälder
incheckning
1bd7d4e6b8
5 ändrade filer med 48 tillägg och 7 borttagningar
  1. 2 1
      .gitignore
  2. 1 1
      controllers/classify.go
  3. 33 2
      models/classify.go
  4. 10 0
      models/classify_visible.go
  5. 2 3
      services/classify.go

+ 2 - 1
.gitignore

@@ -19,4 +19,5 @@ eta_api.exe
 eta_api.exe~
 /static/tmpFile/*
 etalogs/
-/.vscode
+/.vscode
+test/

+ 1 - 1
controllers/classify.go

@@ -76,7 +76,7 @@ func (this *ClassifyController) Add() {
 	}
 
 	// 新增分类
-	err, errMsg, isSentEmail := services.AddReportClassify(req.ClassifyName, req.ParentId, req.ClassifyType, req.IsRemind, req.RemindTime)
+	err, errMsg, isSentEmail := services.AddReportClassify(req.ClassifyName, req.ParentId, req.ClassifyType, req.IsRemind, req.RemindTime, req.VisibleUserIds)
 	if err != nil {
 		br.Msg = "添加失败"
 		if errMsg != "" {

+ 33 - 2
models/classify.go

@@ -4,9 +4,10 @@ import (
 	"eta_gn/eta_api/global"
 	"eta_gn/eta_api/utils"
 	"fmt"
-	"github.com/rdlucklib/rdluck_tools/paging"
 	"strings"
 	"time"
+
+	"github.com/rdlucklib/rdluck_tools/paging"
 )
 
 type Classify struct {
@@ -56,6 +57,7 @@ type ClassifyAddReq struct {
 	ClassifyName          string `description:"分类名称"`
 	ParentId              int    `description:"父级分类id,没有父级分类传0"`
 	ChartPermissionIdList []int  `description:"权限id数组"`
+	VisibleUserIds        []int  `description:"可见用户id数组"`
 	ClassifyType          int    `description:"分类类型:1-研报;2-PPT"`
 	IsRemind              int    `description:"是否开启提醒:0-关闭;1-开启"`
 	RemindTime            string `description:"提醒时间:可选00:00-23:59"`
@@ -74,7 +76,36 @@ func GetClassifyById(classifyId int) (item *Classify, err error) {
 }
 
 // 添加分类
-func AddClassify(item *Classify) (err error) {
+func AddClassify(item *Classify, visibleUserIds []int) (err error) {
+	tx := global.DmSQL["rddp"].Begin()
+	defer func() {
+		if err != nil {
+			tx.Rollback()
+			return
+		}
+		tx.Commit()
+	}()
+	err = tx.Create(item).Error
+	if err != nil {
+		return
+	}
+	if len(visibleUserIds) > 0 {
+		addMappingList := make([]ClassifyVisible, 0)
+		now := time.Now()
+		for _, visibleUserId := range visibleUserIds {
+			addMapping := ClassifyVisible{
+				ClassifyId: item.Id,
+				AdminId:    visibleUserId,
+				CreateTime: now,
+			}
+			addMappingList = append(addMappingList, addMapping)
+		}
+		err = tx.CreateInBatches(addMappingList, utils.MultiAddNum).Error
+		if err != nil {
+			return
+		}
+	}
+
 	err = global.DmSQL["rddp"].Create(item).Error
 	return
 }

+ 10 - 0
models/classify_visible.go

@@ -0,0 +1,10 @@
+package models
+
+import "time"
+
+type ClassifyVisible struct {
+	ClassifyVisibleId int       `gorm:"column:classify_visible_id;primary_key"`
+	ClassifyId        int       `gorm:"column:classify_id"`
+	AdminId           int       `gorm:"column:admin_id"`
+	CreateTime        time.Time `gorm:"column:create_time"`
+}

+ 2 - 3
services/classify.go

@@ -193,7 +193,7 @@ func moveReportClassify(classifyInfo, prevClassify, nextClassify *models.Classif
 // @return err error
 // @return errMsg string
 // @return isSendEmail bool
-func AddReportClassify(classifyName string, parentId int, classifyType, isRemind int, remindTime string) (err error, errMsg string, isSendEmail bool) {
+func AddReportClassify(classifyName string, parentId int, classifyType, isRemind int, remindTime string, visibleUserIds []int) (err error, errMsg string, isSendEmail bool) {
 	isSendEmail = true
 	errMsg = `添加失败`
 	item, err := models.GetClassifyByName(classifyName, parentId)
@@ -276,8 +276,7 @@ func AddReportClassify(classifyName string, parentId int, classifyType, isRemind
 	classify.ClassifyType = classifyType
 	classify.IsRemind = isRemind
 	classify.RemindTime = remindTime
-
-	err = models.AddClassify(classify)
+	err = models.AddClassify(classify, visibleUserIds)
 	if err != nil {
 		return
 	}