|
@@ -958,3 +958,49 @@ func ReplaceEdbInSandbox(oldEdbInfoId, newEdbInfoId int) (err error) {
|
|
|
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+func GetSandboxClassifyByIsShowMe(classifyList []*sandbox.SandboxClassifyItems, classifyId, adminId int) (list []*sandbox.SandboxClassifyItems, err error) {
|
|
|
+ sanboxList, err := sandbox.GetSandboxInfoByAdminId(adminId)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ existClassify := make(map[int]struct{})
|
|
|
+ for _, v := range sanboxList {
|
|
|
+ existClassify[v.SandboxClassifyId] = struct{}{}
|
|
|
+ }
|
|
|
+ classifyAll, err := sandbox.GetSandboxClassifyAllIncludeParent()
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ classifyTree := sandbodClassifyTree(classifyAll, classifyId)
|
|
|
+ list = GetClassifyListRemoveNoSandbox(classifyTree, existClassify)
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+func sandbodClassifyTree(classifyList []*sandbox.SandboxClassifyItems, classifyId int) (list []*sandbox.SandboxClassifyItems) {
|
|
|
+ for _, v := range classifyList {
|
|
|
+ if v.ParentId == classifyId {
|
|
|
+ list = append(list, v)
|
|
|
+ v.Children = sandbodClassifyTree(classifyList, v.SandboxClassifyId)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// GetClassifyListRemoveNoSandbox 去除没有表格的分类
|
|
|
+func GetClassifyListRemoveNoSandbox(classifyList []*sandbox.SandboxClassifyItems, sanboxExistClassifyId map[int]struct{}) []*sandbox.SandboxClassifyItems {
|
|
|
+ res := make([]*sandbox.SandboxClassifyItems, 0)
|
|
|
+ for _, classify := range classifyList {
|
|
|
+ if _, ok := sanboxExistClassifyId[classify.SandboxClassifyId]; ok {
|
|
|
+ classify.Children = []*sandbox.SandboxClassifyItems{}
|
|
|
+ res = append(res, classify)
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ classify.Children = append([]*sandbox.SandboxClassifyItems{}, GetClassifyListRemoveNoSandbox(classify.Children, sanboxExistClassifyId)...)
|
|
|
+ if len(classify.Children) > 0 {
|
|
|
+ classify.Children = []*sandbox.SandboxClassifyItems{}
|
|
|
+ res = append(res, classify)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return res
|
|
|
+}
|