Browse Source

fix:分类权限

Roc 8 months ago
parent
commit
e594b0ca1f
1 changed files with 19 additions and 12 deletions
  1. 19 12
      controllers/classify.go

+ 19 - 12
controllers/classify.go

@@ -778,7 +778,7 @@ func (this *ClassifyController) ClassifyPermissionV2() {
 	resp := make([]*models.ChartPermissionItem, 0)
 
 	// 拥有的品种ID列表
-	permissionIdList := make([]int, 0)
+	permissionIdMap := make(map[int]bool)
 	{
 		//获取报告分类详情
 		classifyInfo, err := models.GetClassifyById(classifyId)
@@ -797,12 +797,12 @@ func (this *ClassifyController) ClassifyPermissionV2() {
 		}
 
 		for _, v := range list {
-			permissionIdList = append(permissionIdList, v.ChartPermissionId)
+			permissionIdMap[v.ChartPermissionId] = true
 		}
 	}
 
 	// 没有关联品种时,直接返回
-	num := len(permissionIdList)
+	num := len(permissionIdMap)
 	if num <= 0 {
 		br.Ret = 200
 		br.Success = true
@@ -810,10 +810,9 @@ func (this *ClassifyController) ClassifyPermissionV2() {
 		br.Data = resp
 		return
 	}
-
-	cond := ` and chart_permission_id in (` + utils.GetOrmInReplace(num) + `) `
+	cond := ` and product_id = ?`
 	pars := make([]interface{}, 0)
-	pars = append(pars, permissionIdList)
+	pars = append(pars, 1)
 	list, e := services.GetChartPermissionList(cond, pars)
 	if e != nil {
 		br.Msg = "获取失败"
@@ -824,6 +823,7 @@ func (this *ClassifyController) ClassifyPermissionV2() {
 	// 品种树
 	childMap := make(map[int][]*models.ChartPermissionItem)
 
+	tmpResp := make([]*models.ChartPermissionItem, 0)
 	for _, v := range list {
 		t := new(models.ChartPermissionItem)
 		t.PermissionId = v.ChartPermissionId
@@ -835,18 +835,25 @@ func (this *ClassifyController) ClassifyPermissionV2() {
 		t.CreateTime = v.CreatedTime.Format(utils.FormatDateTime)
 		t.Child = make([]*models.ChartPermissionItem, 0)
 		if v.ParentId == 0 {
-			resp = append(resp, t)
+			tmpResp = append(tmpResp, t)
 			continue
 		}
 		if v.ParentId > 0 {
-			if childMap[v.ParentId] == nil {
-				childMap[v.ParentId] = make([]*models.ChartPermissionItem, 0)
+			if _, ok := permissionIdMap[v.ChartPermissionId]; ok {
+				if childMap[v.ParentId] == nil {
+					childMap[v.ParentId] = make([]*models.ChartPermissionItem, 0)
+				}
+				childMap[v.ParentId] = append(childMap[v.ParentId], t)
 			}
-			childMap[v.ParentId] = append(childMap[v.ParentId], t)
 		}
 	}
-	for _, r := range resp {
-		r.Child = childMap[r.PermissionId]
+	for _, r := range tmpResp {
+		childList, ok := childMap[r.PermissionId]
+		if !ok {
+			continue
+		}
+		r.Child = childList
+		resp = append(resp, r)
 	}
 
 	br.Ret = 200