|
@@ -668,4 +668,100 @@ func ChartClassifyItemsMakeTree(sysUser *system.Admin, allNode []*sandbox.Sandbo
|
|
|
childrenArr := make([]*sandbox.SandboxClassifyItems, 0)
|
|
|
node.Children = childrenArr
|
|
|
}
|
|
|
+}
|
|
|
+
|
|
|
+// GetSandboxClassifyListForMe 获取我创建的沙盘
|
|
|
+func GetSandboxClassifyListForMe(adminInfo system.Admin, resp *sandbox.SandboxClassifyListResp) (errMsg string, err error) {
|
|
|
+ rootList, err := sandbox.GetSandboxClassifyByParentId(0)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ errMsg = "获取失败"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ classifyAll, err := sandbox.GetSandboxClassifyAll()
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ errMsg = "获取失败"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ allChartInfo, err := sandbox.GetSandboxInfoByAdminId(adminInfo.AdminId)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ errMsg = "获取失败"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ chartInfoMap := make(map[int][]*sandbox.SandboxClassifyItems)
|
|
|
+ for _, v := range allChartInfo {
|
|
|
+ chartInfoMap[v.SandboxClassifyId] = append(chartInfoMap[v.SandboxClassifyId], v)
|
|
|
+ }
|
|
|
+ rootChildMap := make(map[int][]*sandbox.SandboxClassifyItems)
|
|
|
+ for _, v := range classifyAll {
|
|
|
+ rootChildMap[v.ParentId] = append(rootChildMap[v.ParentId], v)
|
|
|
+ if existItems, ok := chartInfoMap[v.SandboxClassifyId]; ok {
|
|
|
+ v.Children = existItems
|
|
|
+ } else {
|
|
|
+ items := make([]*sandbox.SandboxClassifyItems, 0)
|
|
|
+ v.Children = items
|
|
|
+ }
|
|
|
+ }
|
|
|
+ nodeAll := make([]*sandbox.SandboxClassifyItems, 0)
|
|
|
+ for _, v := range rootList {
|
|
|
+ if existItems, ok := rootChildMap[v.SandboxClassifyId]; ok {
|
|
|
+ v.Children = existItems
|
|
|
+ } else {
|
|
|
+ items := make([]*sandbox.SandboxClassifyItems, 0)
|
|
|
+ v.Children = items
|
|
|
+ }
|
|
|
+ nodeAll = append(nodeAll, v)
|
|
|
+ }
|
|
|
+ resp.AllNodes = nodeAll
|
|
|
+
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// HandleNoPermissionSandbox 图表列表返回,将没有权限的图表移除
|
|
|
+func HandleNoPermissionSandbox(allNodes []*sandbox.SandboxClassifyItems, noPermissionChartIdMap map[int]bool) (newAllNodes []*sandbox.SandboxClassifyItems) {
|
|
|
+ // 移除没有权限的图表
|
|
|
+ newAllNodes = make([]*sandbox.SandboxClassifyItems, 0)
|
|
|
+ for _, node := range allNodes {
|
|
|
+ // 二级分类
|
|
|
+ tmpNodeInfo := *node
|
|
|
+ tmpNodeList := make([]*sandbox.SandboxClassifyItems, 0)
|
|
|
+ if node.Children != nil {
|
|
|
+ for _, chartList := range node.Children {
|
|
|
+ tmpInfo := *chartList
|
|
|
+ tmpList := make([]*sandbox.SandboxClassifyItems, 0)
|
|
|
+
|
|
|
+ if chartList.Children != nil {
|
|
|
+ for _, chartInfo := range chartList.Children {
|
|
|
+ thirdInfo := *chartInfo
|
|
|
+ thirdList := make([]*sandbox.SandboxClassifyItems, 0)
|
|
|
+ // 如果指标不可见,那么就不返回该指标
|
|
|
+ if _, ok := noPermissionChartIdMap[chartInfo.SandboxId]; ok {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ tmpList = append(tmpList, chartInfo)
|
|
|
+
|
|
|
+ if chartInfo.Children != nil {
|
|
|
+ for _, thirdChart := range chartInfo.Children {
|
|
|
+ // 如果指标不可见,那么就不返回该指标
|
|
|
+ if _, ok := noPermissionChartIdMap[chartInfo.SandboxId]; ok {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ thirdList = append(thirdList, thirdChart)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ thirdInfo.Children = thirdList
|
|
|
+ tmpList = append(tmpList, &thirdInfo)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ tmpInfo.Children = tmpList
|
|
|
+ tmpNodeList = append(tmpNodeList, &tmpInfo)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ tmpNodeInfo.Children = tmpNodeList
|
|
|
+ newAllNodes = append(newAllNodes, &tmpNodeInfo)
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
}
|