Browse Source

不包含图表的分类列表

xyxie 10 months ago
parent
commit
31063618ae
3 changed files with 84 additions and 0 deletions
  1. 63 0
      controllers/chart_classify.go
  2. 9 0
      routers/commentsRouter.go
  3. 12 0
      services/chart_classify.go

+ 63 - 0
controllers/chart_classify.go

@@ -1046,3 +1046,66 @@ func (this *ChartClassifyController) ModifyChartClassify() {
 	br.Success = true
 	br.Msg = "操作成功"
 }
+
+// ClassifyTree
+// @Title 多层分类列表树
+// @Description 多层分类列表树
+// @Success 200 {object} data_manage.EdbClassifyListResp
+// @router /classify/tree [get]
+func (this *ChartClassifyController) ClassifyTree() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+
+	allList, err := models.GetChartClassify()
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取数据失败,Err:" + err.Error()
+		return
+	}
+	nodeAll := make([]*models.ChartClassifyItems, 0)
+	list := make([]*models.ChartClassifyItems, 0)
+	var sortList models.ChartClassifyItemList
+
+	if len(allList) > 0 {
+		nodeAll = services.GetClassifyTreeRecursive(allList, 0)
+		//根据sort值排序
+		sortList = nodeAll
+		sort.Sort(sortList)
+	}
+
+	language := `CN`
+	// 指标显示的语言
+	{
+		configDetail, _ := system.GetConfigDetailByCode(this.SysUser.AdminId, system.EdbLanguageVar)
+		if configDetail != nil {
+			language = configDetail.ConfigValue
+		} else {
+			configDetail, _ = system.GetDefaultConfigDetailByCode(system.EdbLanguageVar)
+			if configDetail != nil {
+				language = configDetail.ConfigValue
+			}
+		}
+	}
+
+	initClassify := &models.ChartClassifyItems{
+		ChartClassifyId:     0,
+		ChartInfoId:         0,
+		ChartClassifyName:   "未分类",
+		ChartClassifyNameEn: "",
+		ParentId:            0,
+		Level:               1,
+		Sort:                0,
+	}
+	list = append(list, initClassify)
+	list = append(list, sortList...)
+	resp := new(models.ChartClassifyListResp)
+	resp.AllNodes = list
+	resp.Language = language
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = resp
+}

+ 9 - 0
routers/commentsRouter.go

@@ -97,6 +97,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_forum_admin/controllers:ChartClassifyController"] = append(beego.GlobalControllerRouter["eta/eta_forum_admin/controllers:ChartClassifyController"],
+        beego.ControllerComments{
+            Method: "ClassifyTree",
+            Router: `/classify/tree`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_forum_admin/controllers:ChartClassifyController"] = append(beego.GlobalControllerRouter["eta/eta_forum_admin/controllers:ChartClassifyController"],
         beego.ControllerComments{
             Method: "ChartList",

+ 12 - 0
services/chart_classify.go

@@ -785,3 +785,15 @@ func GetChartClassifyListByAdmins(adminIdsSlice []int) (hasClassifyMap map[int]b
 
 	return
 }
+
+// GetClassifyTreeRecursive 递归获取分类树形结构
+func GetClassifyTreeRecursive(list []*models.ChartClassifyItems, parentId int) []*models.ChartClassifyItems {
+	res := make([]*models.ChartClassifyItems, 0)
+	for _, v := range list {
+		if v.ParentId == parentId {
+			v.Children = GetClassifyTreeRecursive(list, v.ChartClassifyId)
+			res = append(res, v)
+		}
+	}
+	return res
+}