|
@@ -669,50 +669,47 @@ func SandboxClassifyItemsMakeTree(sysUser *system.Admin, allNode []*sandbox.Sand
|
|
|
}
|
|
|
|
|
|
|
|
|
-func GetSandboxClassifyListForMe(adminInfo system.Admin, resp *sandbox.SandboxClassifyListResp) (errMsg string, err error) {
|
|
|
- rootList, err := sandbox.GetSandboxClassifyByParentId(0)
|
|
|
+func GetSandboxClassifyListForMe(adminInfo system.Admin, resp *sandbox.SandboxClassifyListResp, sandboxClassifyId int) (errMsg string, err error) {
|
|
|
+ rootList, err := sandbox.GetSandboxClassifyByParentId(sandboxClassifyId)
|
|
|
if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
errMsg = "获取失败"
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- classifyAll, err := sandbox.GetSandboxClassifyAll()
|
|
|
+ classifyAll, err := sandbox.GetSandboxClassifyByParentId(sandboxClassifyId)
|
|
|
if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
errMsg = "获取失败"
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- allChartInfo, err := sandbox.GetSandboxInfoByAdminId(adminInfo.AdminId)
|
|
|
+ sandboxAll, 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
|
|
|
+ sandListMap := make(map[int][]*sandbox.SandboxClassifyItems)
|
|
|
+ for _, v := range sandboxAll {
|
|
|
+ if _, ok := sandListMap[v.SandboxClassifyId]; !ok {
|
|
|
+ list := make([]*sandbox.SandboxClassifyItems, 0)
|
|
|
+ list = append(list, v)
|
|
|
+ sandListMap[v.SandboxClassifyId] = list
|
|
|
} else {
|
|
|
- items := make([]*sandbox.SandboxClassifyItems, 0)
|
|
|
- v.Children = items
|
|
|
+ sandListMap[v.SandboxClassifyId] = append(sandListMap[v.SandboxClassifyId], v)
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
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)
|
|
|
+ for k := range rootList {
|
|
|
+ rootNode := rootList[k]
|
|
|
+ SandboxClassifyItemsMakeTree(&adminInfo, classifyAll, rootNode)
|
|
|
+ nodeAll = append(nodeAll, rootNode)
|
|
|
}
|
|
|
- resp.AllNodes = nodeAll
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ newAll := SandboxItemsMakeTree(nodeAll, sandListMap, sandboxClassifyId)
|
|
|
+ resp.AllNodes = newAll
|
|
|
|
|
|
return
|
|
|
}
|
|
@@ -793,15 +790,21 @@ func AddSandboxV2(req request.AddAndEditSandboxV2, opUserId int, opUserName stri
|
|
|
}
|
|
|
|
|
|
|
|
|
-func SandboxItemsMakeTree(allNode []*sandbox.SandboxClassifyItems, node *sandbox.SandboxClassifyItems, sandListMap map[int][]*sandbox.SandboxClassifyItems) {
|
|
|
+func SandboxItemsMakeTree(allNode []*sandbox.SandboxClassifyItems, sandListMap map[int][]*sandbox.SandboxClassifyItems, sandboxClassifyId int) (nodeAll []*sandbox.SandboxClassifyItems){
|
|
|
for k := range allNode {
|
|
|
if len(allNode[k].Children) > 0 {
|
|
|
- SandboxItemsMakeTree(allNode[k].Children, allNode[k], sandListMap)
|
|
|
- allNode[k].Children = append(allNode[k].Children, sandListMap[allNode[k].SandboxClassifyId]...)
|
|
|
+ SandboxItemsMakeTree(allNode[k].Children, sandListMap, sandboxClassifyId)
|
|
|
+ allNode = append(allNode, sandListMap[allNode[k].ParentId]...)
|
|
|
+ nodeAll = allNode
|
|
|
} else {
|
|
|
- allNode[k].Children = append(allNode[k].Children, sandListMap[allNode[k].SandboxClassifyId]...)
|
|
|
+ allNode = append(allNode, sandListMap[allNode[k].ParentId]...)
|
|
|
+ nodeAll = allNode
|
|
|
}
|
|
|
}
|
|
|
+ if len(allNode) == 0 {
|
|
|
+ nodeAll = append(nodeAll, sandListMap[sandboxClassifyId]...)
|
|
|
+ }
|
|
|
+ return
|
|
|
}
|
|
|
|
|
|
func SandboxClassifyHaveChild(allNode []*sandbox.SandboxClassifyItems, node *sandbox.SandboxClassifyItems) (childs []*sandbox.SandboxClassifyItems, yes bool) {
|