1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- 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
- }
|