Browse Source

fix:过滤没有子类的分类

zqbao 3 months ago
parent
commit
c110fe8e08
2 changed files with 15 additions and 0 deletions
  1. 2 0
      controllers/classify.go
  2. 13 0
      services/classify.go

+ 2 - 0
controllers/classify.go

@@ -661,6 +661,8 @@ func (this *ClassifyController) ListClassify() {
 	services.SortClassifyListBySortAndCreateTime(list)
 	// 接着转换结构
 	list = services.GetClassifyListTreeRecursive(list, 0)
+	// 过滤掉没有子目录的分类
+	list = services.RecursiveFilterNoChildTreeClassify(list)
 
 	resp := new(models.ClassifyListResp)
 	resp.List = list

+ 13 - 0
services/classify.go

@@ -814,6 +814,19 @@ func GetClassifyListTreeRecursive(list []*models.ClassifyList, parentId int) []*
 	return res
 }
 
+// RecursiveFilterNoChildTreeClassify 递归过滤没有子分类的分类
+func RecursiveFilterNoChildTreeClassify(list []*models.ClassifyList) []*models.ClassifyList {
+	res := make([]*models.ClassifyList, 0)
+	for _, v := range list {
+		v.Child = RecursiveFilterNoChildTreeClassify(v.Child)
+		if len(v.Child) == 0 && v.HasChild == 1 {
+			continue
+		}
+		res = append(res, v)
+	}
+	return res
+}
+
 // BySortAndCreateTime 用来排序,先按Sort字段升序排序,若Sort相同,则按照CreateTime字段升序排序。
 type BySortAndCreateTime []*models.ClassifyList