chart_classify.go 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package data
  2. import (
  3. "hongze/hz_eta_api/models/data_manage"
  4. "hongze/hz_eta_api/utils"
  5. "strconv"
  6. "time"
  7. )
  8. func chartClassifyHaveChild(allNode []*data_manage.ChartClassifyItems, node *data_manage.ChartClassifyItems) (childs []*data_manage.ChartClassifyItems, yes bool) {
  9. for _, v := range allNode {
  10. if v.ParentId == node.ChartClassifyId {
  11. childs = append(childs, v)
  12. }
  13. }
  14. if len(childs) > 0 {
  15. yes = true
  16. }
  17. return
  18. }
  19. func ChartClassifyItemsMakeTree(allNode []*data_manage.ChartClassifyItems, node *data_manage.ChartClassifyItems) {
  20. childs, _ := chartClassifyHaveChild(allNode, node) //判断节点是否有子节点并返回
  21. if len(childs) > 0 {
  22. node.Children = append(node.Children, childs[0:]...) //添加子节点
  23. for _, v := range childs { //查询子节点的子节点,并添加到子节点
  24. _, has := chartClassifyHaveChild(allNode, v)
  25. if has {
  26. ChartClassifyItemsMakeTree(allNode, v) //递归添加节点
  27. } else {
  28. childrenArr := make([]*data_manage.ChartClassifyItems, 0)
  29. v.Children = childrenArr
  30. }
  31. }
  32. } else {
  33. childrenArr := make([]*data_manage.ChartClassifyItems, 0)
  34. node.Children = childrenArr
  35. }
  36. }
  37. func FixChartClassify() {
  38. //新增三级分类
  39. list, err := data_manage.GetChartClassifyByLevel(2,1)
  40. if err != nil {
  41. return
  42. }
  43. for _, v := range list {
  44. classify := new(data_manage.ChartClassify)
  45. classify.ParentId = v.ChartClassifyId
  46. classify.ChartClassifyName = v.ChartClassifyName
  47. classify.HasData = 0
  48. classify.CreateTime = time.Now()
  49. classify.ModifyTime = time.Now()
  50. if utils.RunMode == "debug" {
  51. classify.SysUserId = 11
  52. } else {
  53. classify.SysUserId = 163
  54. }
  55. classify.SysUserRealName = "admin"
  56. classify.Level = 3
  57. timestamp := strconv.FormatInt(time.Now().UnixNano(), 10)
  58. classify.UniqueCode = utils.MD5(utils.DATA_PREFIX + "_" + timestamp)
  59. classify.Sort = v.Sort
  60. classify.Source = utils.CHART_SOURCE_DEFAULT
  61. id, err := data_manage.AddChartClassify(classify)
  62. if err != nil {
  63. return
  64. }
  65. err = data_manage.FIXChartClassifyId(int(id),v.ChartClassifyId)
  66. if err != nil {
  67. return
  68. }
  69. }
  70. }