123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- package data
- import (
- "fmt"
- "hongze/hongze_chart_lib/models"
- "hongze/hongze_chart_lib/models/data_manage"
- )
- func EdbClassifyListMakeTree(allNode []*data_manage.EdbClassifyItems, node *data_manage.EdbClassifyItems) {
- childs, _ := edbClassifyHaveChild(allNode, node) //判断节点是否有子节点并返回
- allEdbInfo, _ := GetEdbClassifyEdbInfo()
- if len(childs) > 0 {
- node.Children = append(node.Children, childs[0:]...) //添加子节点
- for _, v := range childs { //查询子节点的子节点,并添加到子节点
- _, has := edbClassifyHaveChild(allNode, v)
- if has {
- EdbClassifyListMakeTree(allNode, v) //递归添加节点
- } else {
- edbInfoList := allEdbInfo[v.ClassifyId]
- v.Children = edbInfoList
- if v.Children == nil {
- childrenArr := make([]*data_manage.EdbClassifyItems, 0)
- v.Children = childrenArr
- }
- }
- }
- } else {
- childrenArr := make([]*data_manage.EdbClassifyItems, 0)
- node.Children = childrenArr
- }
- }
- func edbClassifyHaveChild(allNode []*data_manage.EdbClassifyItems, node *data_manage.EdbClassifyItems) (childs []*data_manage.EdbClassifyItems, yes bool) {
- for _, v := range allNode {
- if v.ParentId == node.ClassifyId {
- childs = append(childs, v)
- }
- }
- if len(childs) > 0 {
- yes = true
- }
- return
- }
- func GetEdbClassifyEdbInfo() (result map[int][]*data_manage.EdbClassifyItems, err error) {
- cMap := make(map[int][]*data_manage.EdbClassifyItems)
- items, err := data_manage.GetEdbInfoAll()
- if err != nil {
- return
- }
- for _, v := range items {
- childrenArr := make([]*data_manage.EdbClassifyItems, 0)
- v.Children = childrenArr
- if items, ok := cMap[v.ClassifyId]; ok {
- items = append(items, v)
- cMap[v.ClassifyId] = items
- } else {
- infoList := make([]*data_manage.EdbClassifyItems, 0)
- infoList = append(infoList, v)
- cMap[v.ClassifyId] = infoList
- }
- }
- result = cMap
- return
- }
- func EdbClassifyItemsMakeTree(allNode []*data_manage.EdbClassifyItems, node *data_manage.EdbClassifyItems) {
- childs, _ := edbClassifyHaveChild(allNode, node) //判断节点是否有子节点并返回
- if len(childs) > 0 {
- node.Children = append(node.Children, childs[0:]...) //添加子节点
- for _, v := range childs { //查询子节点的子节点,并添加到子节点
- _, has := edbClassifyHaveChild(allNode, v)
- if has {
- EdbClassifyItemsMakeTree(allNode, v) //递归添加节点
- } else {
- childrenArr := make([]*data_manage.EdbClassifyItems, 0)
- v.Children = childrenArr
- }
- }
- } else {
- childrenArr := make([]*data_manage.EdbClassifyItems, 0)
- node.Children = childrenArr
- }
- }
- // GetEdbClassifyListByAdminId 根据账户类型获取分类id集合
- func GetEdbClassifyListByAdminId(adminId int64) (classifyIdList []string, err error) {
- list, err := models.GetEdbdataClassify(adminId)
- if err != nil {
- return
- }
- for _, parent := range list {
- if parent.Child != nil {
- for _, classify := range parent.Child {
- classifyIdList = append(classifyIdList, fmt.Sprint(classify.ClassifyId))
- }
- }
- }
- return
- }
- // GetEdbClassifyNameListByAdminId 根据账户类型获取分类名称集合
- func GetEdbClassifyNameListByAdminId(adminId int64) (classifyNameList []string, edbDataClassifyMap map[string]*models.EdbdataClassify, err error) {
- list, err := models.GetEdbdataClassify(adminId)
- edbDataClassifyMap = make(map[string]*models.EdbdataClassify)
- if err != nil {
- return
- }
- for _, parent := range list {
- if parent.Child != nil {
- for _, classify := range parent.Child {
- classifyNameList = append(classifyNameList, classify.ClassifyName)
- edbDataClassifyMap[classify.ClassifyName] = classify
- }
- }
- }
- return
- }
|