package cross_hedging import ( "eta/eta_api/controllers" "eta/eta_api/models" "eta/eta_api/models/data_manage" "eta/eta_api/services/data" "eta/eta_api/utils" ) // ClassifyController 分类 type ClassifyController struct { controllers.BaseAuthController } // List // @Title excel表格分类列表 // @Description excel表格分类列表接口 // @Param Source query int true "格来源,1:excel插件的表格,2:自定义表格,3:混合表格,默认:1" // @Param IsShowMe query bool true "是否只看我的,true、false" // @Success 200 {object} response.ExcelClassifyListResp // @router /excel_classify/list [get] func (c *ClassifyController) List() { br := new(models.BaseResponse).Init() defer func() { c.Data["json"] = br c.ServeJSON() }() resp := new(data_manage.ChartClassifyListResp) // 获取当前账号的不可见指标 noPermissionChartIdMap := make(map[int]bool) { obj := data_manage.EdbInfoNoPermissionAdmin{} confList, err := obj.GetAllChartListByAdminId(c.SysUser.AdminId) if err != nil && err.Error() != utils.ErrNoRow() { br.Msg = "获取失败" br.ErrMsg = "获取不可见指标配置数据失败,Err:" + err.Error() return } for _, v := range confList { noPermissionChartIdMap[v.ChartInfoId] = true } } isShowMe, _ := c.GetBool("IsShowMe") source, _ := c.GetInt("Source") if source <= 0 { source = utils.CHART_SOURCE_CROSS_HEDGING } rootList, err := data_manage.GetChartClassifyByParentId(0, utils.CHART_SOURCE_CROSS_HEDGING) if err != nil && err.Error() != utils.ErrNoRow() { br.Msg = "获取失败" br.ErrMsg = "获取数据失败,Err:" + err.Error() return } allChartInfo, err := data_manage.GetChartInfoAll([]int{source}) if err != nil && err.Error() != utils.ErrNoRow() { br.Msg = "获取失败" br.ErrMsg = "获取图表信息失败,Err:" + err.Error() return } chartInfoMap := make(map[int][]*data_manage.ChartClassifyItems) for _, v := range allChartInfo { if !isShowMe { chartInfoMap[v.ChartClassifyId] = append(chartInfoMap[v.ChartClassifyId], v) continue } if v.SysUserId != c.SysUser.AdminId { continue } chartInfoMap[v.ChartClassifyId] = append(chartInfoMap[v.ChartClassifyId], v) } rootChildMap := make(map[int][]*data_manage.ChartClassifyItems) // 移除没有图表的分类 allNodes := make([]*data_manage.ChartClassifyItems, 0) for _, v := range rootList { rootChildMap[v.ParentId] = append(rootChildMap[v.ParentId], v) if existItems, ok := chartInfoMap[v.ChartClassifyId]; ok { v.Children = existItems allNodes = append(allNodes, v) } } // 移除没有权限的图表 allNodes = data.HandleNoPermissionChart(allNodes, noPermissionChartIdMap) resp.AllNodes = allNodes br.Ret = 200 br.Success = true br.Msg = "获取成功" br.Data = resp }