1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- package data
- import (
- "fmt"
- "hongze/hongze_chart_lib/models/data_manage"
- )
- func ChartClassifyListMakeTree(allNode []*data_manage.ChartClassifyItems, node *data_manage.ChartClassifyItems) {
- childs, _ := chartClassifyHaveChild(allNode, node) //判断节点是否有子节点并返回
- allChartInfo, _ := GetChartClassifyChartInfo()
- if len(childs) > 0 {
- node.Children = append(node.Children, childs[0:]...) //添加子节点
- for _, v := range childs { //查询子节点的子节点,并添加到子节点
- _, has := chartClassifyHaveChild(allNode, v)
- if has {
- ChartClassifyListMakeTree(allNode, v) //递归添加节点
- } else {
- fmt.Println(v.ChartClassifyId)
- edbInfoList := allChartInfo[v.ChartClassifyId]
- v.Children = edbInfoList
- if v.Children == nil {
- childrenArr := make([]*data_manage.ChartClassifyItems, 0)
- v.Children = childrenArr
- }
- }
- }
- } else {
- childrenArr := make([]*data_manage.ChartClassifyItems, 0)
- node.Children = childrenArr
- }
- }
- func chartClassifyHaveChild(allNode []*data_manage.ChartClassifyItems, node *data_manage.ChartClassifyItems) (childs []*data_manage.ChartClassifyItems, yes bool) {
- for _, v := range allNode {
- if v.ParentId == node.ChartClassifyId {
- childs = append(childs, v)
- }
- }
- if len(childs) > 0 {
- yes = true
- }
- return
- }
- func GetChartClassifyChartInfo() (result map[int][]*data_manage.ChartClassifyItems, err error) {
- cMap := make(map[int][]*data_manage.ChartClassifyItems)
- items, err := data_manage.GetChartInfoAll()
- if err != nil {
- return
- }
- for _, v := range items {
- childrenArr := make([]*data_manage.ChartClassifyItems, 0)
- v.Children = childrenArr
- if items, ok := cMap[v.ChartClassifyId]; ok {
- items = append(items, v)
- cMap[v.ChartClassifyId] = items
- } else {
- infoList := make([]*data_manage.ChartClassifyItems, 0)
- infoList = append(infoList, v)
- cMap[v.ChartClassifyId] = infoList
- }
- }
- result = cMap
- return
- }
- func ChartClassifyItemsMakeTree(allNode []*data_manage.ChartClassifyItems, node *data_manage.ChartClassifyItems) {
- childs, _ := chartClassifyHaveChild(allNode, node) //判断节点是否有子节点并返回
- if len(childs) > 0 {
- node.Children = append(node.Children, childs[0:]...) //添加子节点
- for _, v := range childs { //查询子节点的子节点,并添加到子节点
- _, has := chartClassifyHaveChild(allNode, v)
- if has {
- ChartClassifyItemsMakeTree(allNode, v) //递归添加节点
- } else {
- childrenArr := make([]*data_manage.ChartClassifyItems, 0)
- v.Children = childrenArr
- }
- }
- } else {
- childrenArr := make([]*data_manage.ChartClassifyItems, 0)
- node.Children = childrenArr
- }
- }
|