소스 검색

查询指标库的单层分类

xyxie 1 년 전
부모
커밋
00a12a21e4
3개의 변경된 파일127개의 추가작업 그리고 42개의 파일을 삭제
  1. 103 41
      controllers/data_manage/edb_classify.go
  2. 15 1
      models/data_manage/edb_classify.go
  3. 9 0
      routers/commentsRouter.go

+ 103 - 41
controllers/data_manage/edb_classify.go

@@ -8,6 +8,7 @@ import (
 	"eta/eta_api/models/system"
 	"eta/eta_api/services/data"
 	"eta/eta_api/utils"
+	"sort"
 )
 
 // EdbClassifyController 数据管理-分类模块
@@ -15,47 +16,6 @@ type EdbClassifyController struct {
 	controllers.BaseAuthController
 }
 
-//
-//// @Title 分类列表
-//// @Description 分类列表接口
-//// @Success 200 {object} data_manage.EdbClassifyListResp
-//// @router /classify/list [get]
-//func (this *EdbClassifyController) List() {
-//	br := new(models.BaseResponse).Init()
-//	defer func() {
-//		this.Data["json"] = br
-//		this.ServeJSON()
-//	}()
-//	rootList, err := data_manage.GetEdbClassifyByParentId(0)
-//	if err != nil {
-//		br.Msg = "获取失败"
-//		br.ErrMsg = "获取数据失败,Err:" + err.Error()
-//		return
-//	}
-//
-//	classifyAll, err := data_manage.GetEdbClassifyAll()
-//	if err != nil {
-//		br.Msg = "获取失败"
-//		br.ErrMsg = "获取数据失败,Err:" + err.Error()
-//		return
-//	}
-//
-//	fmt.Println("start:", time.Now())
-//	nodeAll := make([]*data_manage.EdbClassifyItems, 0)
-//	for k := range rootList {
-//		rootNode := rootList[k]
-//		data.EdbClassifyListMakeTree(classifyAll, rootNode)
-//		nodeAll = append(nodeAll, rootNode)
-//	}
-//	fmt.Println("end:", time.Now())
-//	resp := new(data_manage.EdbClassifyListResp)
-//	resp.AllNodes = nodeAll
-//	br.Ret = 200
-//	br.Success = true
-//	br.Msg = "获取成功"
-//	br.Data = resp
-//}
-
 // ListV2
 // @Title 分类列表
 // @Description 分类列表接口
@@ -897,6 +857,108 @@ func (this *EdbClassifyController) ItemsV3() {
 	br.Data = resp
 }
 
+// SimpleList
+// @Title 单层分类列表
+// @Description 单层分类列表
+// @Success 200 {object} data_manage.EdbClassifyListResp
+// @router /classify/simple [get]
+func (this *EdbClassifyController) SimpleList() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	// 默认查一级分类和一级分类下的指标信息,
+	// 如果是 子级分类,查询该子级分类的下一级分类和指标信息
+	// 增加标识判断是文件夹还是指标列表
+	parentId, _ := this.GetInt("ParentId")
+
+	rootList, err := data_manage.GetEdbClassifyByParentId(parentId, 0)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取数据失败,Err:" + err.Error()
+		return
+	}
+	nodeAll := make([]*data_manage.EdbClassifyItems, 0)
+
+	var sortList data_manage.EdbClassifyItemList
+	if parentId > 0 {
+		// 查询挂在当前分类上的指标列表
+		// 获取当前账号的不可见指标
+		obj := data_manage.EdbInfoNoPermissionAdmin{}
+		confList, err := obj.GetAllListByAdminId(this.SysUser.AdminId)
+		if err != nil && err.Error() != utils.ErrNoRow() {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取不可见指标配置数据失败,Err:" + err.Error()
+			return
+		}
+		noPermissionEdbInfoIdMap := make(map[int]bool)
+		for _, v := range confList {
+			noPermissionEdbInfoIdMap[v.EdbInfoId] = true
+		}
+		allEdbInfo, err := data_manage.GetEdbInfoByClassifyId(parentId, 0)
+		if err != nil {
+			br.Msg = "获取指标数据失败"
+			br.ErrMsg = "获取指标数据失败,Err:" + err.Error()
+			return
+		}
+
+		for _, v := range allEdbInfo {
+			// 如果指标不可见,那么就不返回该指标
+			if _, ok := noPermissionEdbInfoIdMap[v.EdbInfoId]; ok {
+				continue
+			}
+			button := data.GetEdbOpButton(this.SysUser, v.SysUserId, v.EdbType, utils.EDB_INFO_TYPE)
+			button.AddButton = false //不管有没有权限,指标都是没有添加按钮的
+			v.Button = button
+			v.Children = make([]*data_manage.EdbClassifyItems, 0)
+			v.ParentId = parentId
+			nodeAll = append(nodeAll, v)
+		}
+	}
+	if len(rootList) > 0 {
+		for _, v := range rootList {
+			button := data.GetEdbClassifyOpButton(this.SysUser, v.SysUserId)
+			v.Button = button
+			v.Children = make([]*data_manage.EdbClassifyItems, 0)
+			nodeAll = append(nodeAll, v)
+		}
+
+		//根据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
+			}
+		}
+	}
+
+	// 是否允许添加一级分类
+	canOpClassify := true
+	button := data.GetEdbClassifyOpButton(this.SysUser, 0)
+	if !button.AddButton {
+		canOpClassify = false
+	}
+
+	resp := new(data_manage.EdbClassifyListResp)
+	resp.AllNodes = sortList
+	resp.Language = language
+	resp.CanOpClassify = canOpClassify
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = resp
+}
+
 // EdbClassifyMoveV2
 // @Title 分类移动接口v2
 // @Description 分类移动接口v2

+ 15 - 1
models/data_manage/edb_classify.go

@@ -153,6 +153,20 @@ type EdbClassifyItems struct {
 	Button          EdbClassifyItemsButton `description:"操作权限"`
 }
 
+type EdbClassifyItemList []*EdbClassifyItems
+
+func (m EdbClassifyItemList) Len() int {
+	return len(m)
+}
+
+func (m EdbClassifyItemList) Less(i, j int) bool {
+	return m[i].Sort < m[j].Sort
+}
+
+func (m EdbClassifyItemList) Swap(i, j int) {
+	m[i], m[j] = m[j], m[i]
+}
+
 // EdbClassifyItemsButton 操作按钮
 type EdbClassifyItemsButton struct {
 	AddButton           bool `description:"是否可添加"`
@@ -165,7 +179,7 @@ type EdbClassifyItemsButton struct {
 }
 
 type EdbClassifyListResp struct {
-	AllNodes      []*EdbClassifyItems
+	AllNodes      EdbClassifyItemList
 	CanOpClassify bool   `description:"是否允许操作分类"`
 	Language      string `description:"指标的展示语言,CN:中文,EN:英文"`
 }

+ 9 - 0
routers/commentsRouter.go

@@ -1618,6 +1618,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:EdbClassifyController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:EdbClassifyController"],
+        beego.ControllerComments{
+            Method: "SimpleList",
+            Router: `/classify/simple`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:EdbClassifyController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:EdbClassifyController"],
         beego.ControllerComments{
             Method: "EdbClassifyMove",