Browse Source

fix:品种下分类列表

zqbao 7 months ago
parent
commit
f89f139baf
2 changed files with 72 additions and 53 deletions
  1. 64 52
      controllers/chart_permission.go
  2. 8 1
      models/classify.go

+ 64 - 52
controllers/chart_permission.go

@@ -304,76 +304,88 @@ func (this *ChartPermissionController) ClassifyTree() {
 		this.ServeJSON()
 	}()
 	chartPermissionId, _ := this.GetInt("ChartPermissionId")
-	if chartPermissionId <= 0 {
+	if chartPermissionId < 0 {
 		br.Msg = "品种权限错误"
 		return
 	}
-	chartPermission, err := models.GetChartPermissionById(chartPermissionId)
-	if err != nil {
-		if err.Error() == utils.ErrNoRow() {
-			br.Msg = "品种权限不存在"
+	var finalList []*models.ClassifyView
+	if chartPermissionId == 0 {
+		// 如果没有品种id那么返回所有分类
+		classifyList, err := models.GetClassifyEnabledList()
+		if err != nil {
+			br.Msg = "获取分类失败"
+			br.ErrMsg = "获取分类失败,系统错误,Err:" + err.Error()
 			return
 		}
-		br.Msg = "品种权限错误"
-		br.ErrMsg = "品种权限错误,系统错误,Err:" + err.Error()
-		return
-	}
-	var classifyIds []int
-	if chartPermission.ParentId == 0 {
-		// 传过来的是一级品种权限的id,那就获取子品种权限的id,通过子品种权限寻找分类id
-		childChartPermissionIdsList, err := models.GetChildChartPermissionIdsById(chartPermission.ChartPermissionId)
+		finalList = classifyList
+	} else {
+		chartPermission, err := models.GetChartPermissionById(chartPermissionId)
 		if err != nil {
-			br.Msg = "获取品种权限失败"
-			br.ErrMsg = "获取子品种权限失败,系统错误,Err:" + err.Error()
+			if err.Error() == utils.ErrNoRow() {
+				br.Msg = "品种权限不存在"
+				return
+			}
+			br.Msg = "品种权限错误"
+			br.ErrMsg = "品种权限错误,系统错误,Err:" + err.Error()
 			return
 		}
-		classifyIds, err = models.GetClassifyIdsListByIds(childChartPermissionIdsList)
+		var classifyIds []int
+		if chartPermission.ParentId == 0 {
+			// 传过来的是一级品种权限的id,那就获取子品种权限的id,通过子品种权限寻找分类id
+			childChartPermissionIdsList, err := models.GetChildChartPermissionIdsById(chartPermission.ChartPermissionId)
+			if err != nil {
+				br.Msg = "获取品种权限失败"
+				br.ErrMsg = "获取子品种权限失败,系统错误,Err:" + err.Error()
+				return
+			}
+			classifyIds, err = models.GetClassifyIdsListByIds(childChartPermissionIdsList)
+			if err != nil {
+				br.Msg = "获取分类失败"
+				br.ErrMsg = "获取类别失败,系统错误,Err:" + err.Error()
+				return
+			}
+		} else {
+			classifyIds, err = models.GetClassifyIdsListById(chartPermission.ChartPermissionId)
+			if err != nil {
+				br.Msg = "获取分类失败"
+				br.ErrMsg = "获取类别失败,系统错误,Err:" + err.Error()
+				return
+			}
+		}
+		classifyList, err := models.GetClassifyListByIds(classifyIds)
 		if err != nil {
 			br.Msg = "获取分类失败"
-			br.ErrMsg = "获取类别失败,系统错误,Err:" + err.Error()
+			br.ErrMsg = "获取类别信息失败,系统错误,Err:" + err.Error()
 			return
 		}
-	} else {
-		classifyIds, err = models.GetClassifyIdsListById(chartPermission.ChartPermissionId)
+		var parentClassifyIds []int
+		for _, v := range classifyList {
+			if v.ParentId != 0 {
+				parentClassifyIds = append(parentClassifyIds, v.ParentId)
+			}
+		}
+		parentClassifyList, err := models.GetClassifyListByIds(parentClassifyIds)
 		if err != nil {
 			br.Msg = "获取分类失败"
-			br.ErrMsg = "获取类别失败,系统错误,Err:" + err.Error()
+			br.ErrMsg = "获取类别信息失败,系统错误,Err:" + err.Error()
 			return
 		}
-	}
-	classifyList, err := models.GetClassifyListByIds(classifyIds)
-	if err != nil {
-		br.Msg = "获取分类失败"
-		br.ErrMsg = "获取类别信息失败,系统错误,Err:" + err.Error()
-		return
-	}
-	var parentClassifyIds []int
-	for _, v := range classifyList {
-		if v.ParentId != 0 {
-			parentClassifyIds = append(parentClassifyIds, v.ParentId)
-		}
-	}
-	parentClassifyList, err := models.GetClassifyListByIds(parentClassifyIds)
-	if err != nil {
-		br.Msg = "获取分类失败"
-		br.ErrMsg = "获取类别信息失败,系统错误,Err:" + err.Error()
-		return
-	}
 
-	var rootClassifyIds []int
-	for _, v := range parentClassifyList {
-		if v.ParentId != 0 {
-			rootClassifyIds = append(rootClassifyIds, v.ParentId)
+		var rootClassifyIds []int
+		for _, v := range parentClassifyList {
+			if v.ParentId != 0 {
+				rootClassifyIds = append(rootClassifyIds, v.ParentId)
+			}
+		}
+		classifyIds = append(classifyIds, parentClassifyIds...)
+		classifyIds = append(classifyIds, rootClassifyIds...)
+		classifyIds = utils.Unique(classifyIds)
+		finalList, err = models.GetClassifyListByIds(classifyIds)
+		if err != nil {
+			br.Msg = "获取分类失败"
+			br.ErrMsg = "获取类别信息失败,系统错误,Err:" + err.Error()
+			return
 		}
-	}
-	classifyIds = append(classifyIds, parentClassifyIds...)
-	classifyIds = append(classifyIds, rootClassifyIds...)
-	classifyIds = utils.Unique(classifyIds)
-	finalList, err := models.GetClassifyListByIds(classifyIds)
-	if err != nil {
-		br.Msg = "获取分类失败"
-		br.ErrMsg = "获取类别信息失败,系统错误,Err:" + err.Error()
-		return
 	}
 	finalList = services.GetClassifyTree(finalList, 0)
 

+ 8 - 1
models/classify.go

@@ -77,7 +77,14 @@ func GetClassifyById(id int) (item *ClassifyView, err error) {
 
 func GetClassifyList() (items []*ClassifyView, err error) {
 	o := orm.NewOrmUsingDB("rddp")
-	sql := `SELECT * FROM classify`
+	sql := `SELECT * FROM classify `
+	_, err = o.Raw(sql).QueryRows(&items)
+	return
+}
+
+func GetClassifyEnabledList() (items []*ClassifyView, err error) {
+	o := orm.NewOrmUsingDB("rddp")
+	sql := `SELECT * FROM classify WHERE enabled=1 `
 	_, err = o.Raw(sql).QueryRows(&items)
 	return
 }