Sfoglia il codice sorgente

fix:继承父分类

zqbao 4 mesi fa
parent
commit
e8d1104053
2 ha cambiato i file con 58 aggiunte e 2 eliminazioni
  1. 38 1
      models/classify_visible.go
  2. 20 1
      services/classify.go

+ 38 - 1
models/classify_visible.go

@@ -1,6 +1,10 @@
 package models
 
-import "time"
+import (
+	"eta_gn/eta_api/global"
+	"eta_gn/eta_api/utils"
+	"time"
+)
 
 type ClassifyVisible struct {
 	ClassifyVisibleId int       `gorm:"column:classify_visible_id;primary_key"`
@@ -8,3 +12,36 @@ type ClassifyVisible struct {
 	AdminId           int       `gorm:"column:admin_id"`
 	CreateTime        time.Time `gorm:"column:create_time"`
 }
+
+func (ClassifyVisible) TableName() string {
+	return "classify_visible"
+}
+
+func UpdateClassifyVisible(parentId, classifyId int, adminIds []int) (err error) {
+	tx := global.DmSQL["rddp"].Begin()
+	defer func() {
+		if err != nil {
+			tx.Rollback()
+			return
+		}
+		tx.Commit()
+	}()
+	err = tx.Table(ClassifyVisible{}.TableName()).Where("classify_id =?", parentId).Delete(&ClassifyVisible{}).Error
+	insertList := make([]ClassifyVisible, 0, len(adminIds))
+	for _, adminId := range adminIds {
+		classifyVisible := ClassifyVisible{
+			ClassifyId: classifyId,
+			AdminId:    adminId,
+			CreateTime: time.Now(),
+		}
+		insertList = append(insertList, classifyVisible)
+	}
+	err = tx.CreateInBatches(insertList, utils.MultiAddNum).Error
+	return
+}
+
+func GetClassifyVisibleUserIdByClassifyId(classifyId int) (classifyVisibles []int, err error) {
+	db := global.DmSQL["rddp"]
+	err = db.Table(ClassifyVisible{}.TableName()).Where("classify_id =?", classifyId).Pluck("admin_id", &classifyVisibles).Error
+	return
+}

+ 20 - 1
services/classify.go

@@ -296,8 +296,12 @@ func AddReportClassify(classifyName string, parentId int, classifyType, isRemind
 
 			// 继承父级分类审批流
 			//go inheritReportApproveFlow(parentClassifyItem, classify)
-
 			moveReportByAddClassify(parentClassifyItem, classify)
+			err = inheritParentClassifyVisibleUser(parentId, classify.Id)
+			if err != nil {
+				errMsg = "继承父类失败"
+				return
+			}
 		}
 	}
 
@@ -316,6 +320,21 @@ func AddReportClassify(classifyName string, parentId int, classifyType, isRemind
 	return
 }
 
+// inheritParentClassifyVisibleUser 继承父类的可见用户
+func inheritParentClassifyVisibleUser(parentClassifyId, currClassifyId int) (err error) {
+	parentUserIds, err := models.GetClassifyVisibleUserIdByClassifyId(parentClassifyId)
+	if err != nil {
+		return
+	}
+	currUserIds, err := models.GetClassifyVisibleUserIdByClassifyId(currClassifyId)
+	if err != nil {
+		return
+	}
+	parentUserIds = append(parentUserIds, currUserIds...)
+	err = models.UpdateClassifyVisible(parentClassifyId, currClassifyId, parentUserIds)
+	return
+}
+
 // checkClassifyApprove
 // @Description: 判断分类是否存在待操作的审批单
 // @author: Roc