瀏覽代碼

fix:只看我图库分类

zqbao 6 月之前
父節點
當前提交
7fee094222
共有 2 個文件被更改,包括 61 次插入1 次删除
  1. 7 1
      controllers/data_manage/chart_classify.go
  2. 54 0
      services/data/chart_classify.go

+ 7 - 1
controllers/data_manage/chart_classify.go

@@ -1115,6 +1115,12 @@ func (this *ChartClassifyController) ChartClassifyChartListV3() {
 		}
 		// 移除没有权限的图表
 		allNodes := data.HandleNoPermissionChart(allChartInfo, noPermissionChartIdMap, this.SysUser.AdminId)
+		allNodes, err = data.GetChartClassifyByIsMe(sysUser.AdminId, chartClassifyId, utils.CHART_SOURCE_DEFAULT, allNodes)
+		if err != nil {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取数据失败,Err:" + err.Error()
+			return
+		}
 		resp.AllNodes = allNodes
 
 		br.Ret = 200
@@ -1160,4 +1166,4 @@ func (this *ChartClassifyController) ChartClassifyChartListV3() {
 	br.Success = true
 	br.Msg = "获取成功"
 	br.Data = resp
-}
+}

+ 54 - 0
services/data/chart_classify.go

@@ -1127,3 +1127,57 @@ func GetChartClassifyChildrenRecursiveByParentIds(list []*data_manage.ChartClass
 	}
 	return res
 }
+
+func GetChartClassifyByIsMe(adminId, parentId, source int, classifyList []*data_manage.ChartClassifyItems) (list []*data_manage.ChartClassifyItems, err error) {
+	chartInfoList, err := data_manage.GetChartInfoByAdminId([]int{source}, adminId)
+	if err != nil {
+		return
+	}
+	classifyIdList := make([]int, 0)
+	for _, chartInfo := range chartInfoList {
+		if chartInfo.ChartClassifyId > 0 {
+			classifyIdList = append(classifyIdList, chartInfo.ChartClassifyId)
+		}
+	}
+	if parentId > 0 {
+		for _, v := range classifyList {
+			if v.ChartClassifyId > 0 && v.ChartInfoId == 0 {
+				classifyItems, er, _ := GetChildChartClassifyByClassifyId(v.ChartClassifyId)
+				if er != nil {
+					err = er
+					return
+				}
+				existClassifyMap := make(map[int]struct{})
+				for _, classify := range classifyItems {
+					existClassifyMap[classify.ChartClassifyId] = struct{}{}
+				}
+				for _, chart := range chartInfoList {
+					if _, ok := existClassifyMap[chart.ChartClassifyId]; ok {
+						list = append(list, v)
+						break
+					}
+				}
+			} else {
+				list = append(list, v)
+			}
+		}
+	} else {
+		chartClassifyList, er := data_manage.GetChartClassifyByIdList(classifyIdList)
+		if er != nil {
+			err = er
+			return
+		}
+
+		existClassifyIdMap := make(map[int]struct{})
+		for _, classify := range chartClassifyList {
+			existClassifyIdMap[classify.RootId] = struct{}{}
+		}
+
+		for _, classify := range classifyList {
+			if _, ok := existClassifyIdMap[classify.ChartClassifyId]; ok {
+				list = append(list, classify)
+			}
+		}
+	}
+	return
+}