Browse Source

Merge branch 'feature/eta_1.4.0' into debug

hsun 1 year ago
parent
commit
be8a6e69d0
2 changed files with 36 additions and 10 deletions
  1. 28 9
      controllers/data_manage/my_chart.go
  2. 8 1
      models/data_manage/my_chart.go

+ 28 - 9
controllers/data_manage/my_chart.go

@@ -1667,15 +1667,14 @@ func (this *MyChartController) PublicClassifyList() {
 
 	resp := new(data_manage.PublicChartClassifyResp)
 	if list == nil || len(list) <= 0 || (err != nil && err.Error() == utils.ErrNoRow()) {
-		items := make([]data_manage.PublicChartClassifyItem, 0)
-		resp.List = items
+		resp.List = make([]data_manage.PublicChartClassifyList, 0)
 		br.Ret = 200
 		br.Success = true
 		br.Msg = "获取成功"
 		return
 	}
-	publicChartClassifyItemList := make([]data_manage.PublicChartClassifyItem, 0)
 
+	// 创建人姓名
 	adminIdStr := make([]string, 0)
 	for _, v := range list {
 		adminIdStr = append(adminIdStr, fmt.Sprint(v.AdminId))
@@ -1688,22 +1687,42 @@ func (this *MyChartController) PublicClassifyList() {
 		}
 	}
 
+	respList := make([]data_manage.PublicChartClassifyList, 0)
+	existMap := make(map[int]bool, 0)
+	itemsMap := make(map[int][]data_manage.PublicChartClassifyItem, 0)
 	for _, v := range list {
-		realName, ok := adminMap[v.AdminId]
-		if !ok {
-			realName = ``
+		realName := adminMap[v.AdminId]
+		if realName == "" {
+			// 忽略掉被删掉的用户
+			continue
+		}
+
+		if itemsMap[v.AdminId] == nil {
+			itemsMap[v.AdminId] = make([]data_manage.PublicChartClassifyItem, 0)
 		}
-		publicChartClassifyItem := data_manage.PublicChartClassifyItem{
+		itemsMap[v.AdminId] = append(itemsMap[v.AdminId], data_manage.PublicChartClassifyItem{
 			MyChartClassifyId:   v.MyChartClassifyId,
 			MyChartClassifyName: v.MyChartClassifyName,
 			AdminId:             v.AdminId,
 			RealName:            realName,
 			IsPublic:            v.IsPublic,
 			IsCompanyPublic:     v.IsCompanyPublic,
+		})
+
+		var menu data_manage.PublicChartClassifyList
+		if existMap[v.AdminId] {
+			continue
 		}
-		publicChartClassifyItemList = append(publicChartClassifyItemList, publicChartClassifyItem)
+		existMap[v.AdminId] = true
+		menu.MenuAdminId = v.AdminId
+		menu.MenuName = fmt.Sprintf("%s的图库", realName)
+		respList = append(respList, menu)
+	}
+
+	for k, v := range respList {
+		respList[k].Items = itemsMap[v.MenuAdminId]
 	}
-	resp.List = publicChartClassifyItemList
+	resp.List = respList
 
 	language := `CN`
 	// 指标显示的语言

+ 8 - 1
models/data_manage/my_chart.go

@@ -77,7 +77,7 @@ type MyChartClassifyResp struct {
 
 // PublicChartClassifyResp 公共分类返回数据结构体
 type PublicChartClassifyResp struct {
-	List     []PublicChartClassifyItem
+	List     []PublicChartClassifyList
 	Language string `description:"指标的展示语言,CN:中文,EN:英文"`
 }
 
@@ -91,6 +91,13 @@ type PublicChartClassifyItem struct {
 	IsCompanyPublic     int    `description:"是否为客户可见"`
 }
 
+// PublicChartClassifyList 公共分类结构体
+type PublicChartClassifyList struct {
+	MenuAdminId int                       `description:"目录创建人ID"`
+	MenuName    string                    `description:"目录名称"`
+	Items       []PublicChartClassifyItem `description:"分类数据"`
+}
+
 type MyChartClassifyAddReq struct {
 	MyChartClassifyName string `description:"分类名称"`
 }