Browse Source

禁止目录跨层级移动

xyxie 5 days ago
parent
commit
323779dacd
2 changed files with 13 additions and 2 deletions
  1. 9 1
      controllers/data_manage/chart_classify.go
  2. 4 1
      services/data/chart_classify.go

+ 9 - 1
controllers/data_manage/chart_classify.go

@@ -914,11 +914,19 @@ func (this *ChartClassifyController) ChartClassifyMove() {
 	}
 	//判断上级id是否一致,如果不一致的话,那么需要移动该分类层级
 	if chartClassifyInfo.ParentId != req.ParentClassifyId && req.ParentClassifyId != 0 {
-		
+		if chartClassifyInfo.Level != parentChartClassifyInfo.Level+1 { //禁止层级调整
+			br.Msg = "移动失败"
+			br.ErrMsg = "不支持目录层级变更"
+			return
+		}
 		chartClassifyInfo.ParentId = parentChartClassifyInfo.ChartClassifyId
 		chartClassifyInfo.Level = parentChartClassifyInfo.Level + 1
 		chartClassifyInfo.ModifyTime = time.Now()
 		updateCol = append(updateCol, "ParentId", "Level", "ModifyTime")
+	}else if chartClassifyInfo.ParentId != req.ParentClassifyId && req.ParentClassifyId == 0 {
+		br.Msg = "移动失败"
+		br.ErrMsg = "不支持目录层级变更"
+		return
 	}
 
 	//如果有传入 上一个兄弟节点分类id

+ 4 - 1
services/data/chart_classify.go

@@ -946,7 +946,10 @@ func moveChartClassify(parentChartClassifyInfo, chartClassifyInfo, prevClassify,
 
 // 新增内部函数
 func UpdateChartClassifyLevelPathWithChildren(chartClassifyInfo *data_manage.ChartClassify, parentChartClassifyInfo *data_manage.ChartClassify, oldParentId int, oldLevelPath string) error {
-	levelPath := fmt.Sprintf("%s%d,", parentChartClassifyInfo.LevelPath, chartClassifyInfo.ChartClassifyId)
+	levelPath := fmt.Sprintf("%d,", chartClassifyInfo.ChartClassifyId)
+	if parentChartClassifyInfo != nil {
+		levelPath = fmt.Sprintf("%s%d,", parentChartClassifyInfo.LevelPath, chartClassifyInfo.ChartClassifyId)
+	}
 	chartClassifyInfo.LevelPath = levelPath
 	if err := chartClassifyInfo.Update([]string{"LevelPath"}); err != nil {
 		return fmt.Errorf("修改失败,Err:" + err.Error())