案例场景:
在本项目中有一个服务拓扑,这个服务拓扑呢每个客户属于不同的角色,不同的角色看到的服务拓扑是不一样的,并且这个服务拓扑是一个树形结构
思路分析:根据token取出用户信息,找到用户的角色id,根据角色id去寻找其下所有的树id,这里有一个细节需要注意的是这个树id必须要满足是顶级id,才需要去进行递归遍历它的子树。
递归过程如下:

//trees 服务树递归返回数据
func trees(tree []*models.Tree) []*models.Tree {var nodes []*models.Treeif reflect.ValueOf(tree).IsValid() {for k, v := range tree {orm.Eloquent.Model(&models.TreeIndex{}).Where("del_flag = 0 && fat_id in(?)", v.Id).Order("id").Find(&nodes)for kk := range nodes {tree[k].Children = append(tree[k].Children, nodes[kk])}trees(nodes)}}return tree
}

数据结构--树--在项目中的实践应用相关推荐

  1. Effective Dart 文档注释在Flutter项目中的实践

    前言 什么是注释? 在编程语言中,注释就是对代码的解释和说明,其目的是让人们能够更加轻松地了解代码. 也有一句话是这样说的:程序员都讨厌两件事,1.别人不写注释 2.自己写注释 在开发者社区里,我不止 ...

  2. Protobuf 的 import 功能在 Go 项目中的实践

    业务场景 我们会有这样的需求:在不同的文件夹中定义了不同的 proto 文件,这些不同的文件夹可能是一些不同的 gRPC 服务.因为不想重复定义某一个 message,所以其中一个服务可能会用到其他服 ...

  3. 数加平台在数据挖掘项目中的实践

    目录 背景 数据源 数据处理 模型训练及预测 数据可视化 总结 1. 背景 返回目录 随着越来越多的公司开始重视数据的积累和产品的敏捷开发,数据量的不断增加和开发周期的不断缩短,就形成了一对明显的矛盾 ...

  4. 数加平台在数据挖掘项目中的实践 1

    目录 背景 数据源 数据处理 模型训练及预测 数据可视化 总结 1. 背景 返回目录 随着越来越多的公司开始重视数据的积累和产品的敏捷开发,数据量的不断增加和开发周期的不断缩短,就形成了一对明显的矛盾 ...

  5. 流程图布局在项目中的实践

    背景 随着项目中流程图被运营同学画的越来越复杂,出现了一个流程图上存在几百个节点的情况,流程图带来的业务逻辑可视化效果越来越不明显.虽然我们提供了分组.注释.记号等修饰性功能去支持标识流程中重要的业务 ...

  6. 数据结构在编程项目中的作用和认识

    几天前就想写一篇关于<数据结构>方面的文章,一直没写,忍不住今天终于动手写了.我最开始学习<数据结构>课程使在大学二年级,当时编程基础薄弱的我认为它是一门很难的课程,将其和&l ...

  7. methods vue过滤器 和_数据动态过滤技巧在 Vue 项目中的实践

    这个问题是在下在做一个 Vue 项目中遇到的实际场景,这里记录一下我遇到问题之后的思考和最后怎么解决的(老年程序员记性不好 -.-),过程中会涉及到一些Vue源码的概念比如 $mount. rende ...

  8. 网关 Apache APISIX 在 360 基础运维平台项目中的实践

    女主宣言 今天小编为大家分享一篇关于Apache APISIX的文章,文章从开发者的角度讲述了 Apache APISIX 网关在 360 基础运维平台的落地实践,希望能对大家有所帮助. PS:丰富的 ...

  9. ElasticSearch 在 Spring 项目中的实践

    前言 ElasticSearch简称es,是一个开源的高扩展的分布式全文检索引擎. 它可以近乎实时的存储.检索数据,其扩展性很好,ElasticSearch是企业级应用中较为常见的技术. 下面和大家分 ...

最新文章

  1. 4层板到12层板叠层经典设计方案
  2. ubuntu mysql 改密码_tpcc-mysql 压力测试
  3. gpu处理信号_GPU中的并行运算,加速你的Matlab程序
  4. 星露谷物语json_《星露谷物语》1.5版本更新细节公开 已上线PC
  5. 面对imbalance data的时候
  6. leetcode力扣36.有效的数独
  7. 【1083】code[vs] 1083 Cantor表 1999年NOIP全国联赛普及组
  8. 《从问题到程序:用Python学编程和计算》——1.4 练习
  9. 版本 tomcat_Tomcat爆出安全漏洞!Spring Cloud/Boot框架多个版本受影响
  10. java计算立方体体积(利用类函数)
  11. 初中英语听力计算机考试反馈,【初中英语】英语听说机考,怎样才能有效提高英语听力和口语水平?...
  12. repo的安装和使用
  13. 关于jquery.mloading加载loading效果
  14. neat算法做监督学习(Python)
  15. 更改计算机图标,Win7如何修改桌面图标
  16. 基于linux 开源机顶盒_基于linux的数字电视机顶盒几种升级方式的设计与实现
  17. 深层clon()实现方法
  18. 微服务调用链的原理和选型
  19. bmi健康指标计算器php,bmi计算器
  20. 【附源码】计算机毕业设计JAVA疫苗药品批量扫码识别追溯系统

热门文章

  1. “小会话,大学问”:如何让聊天机器人读懂对话历史?
  2. 物联网平台可以做什么
  3. JAVA编程卡的充值消费,RFID——充值消费系统
  4. 已上架APP如何更换公司的各项主体-苹果、安卓、支付、域名等
  5. 预告:今天(6月21日)20点,做客 刘润直播间 聊聊“进化的故事”
  6. 市场调研—全球与中国牲畜饲料制粒机市场现状及未来发展趋势
  7. 常见的各种无人售货机多少钱一台
  8. Python学习笔记 - 探索字符串数据操作
  9. 如何用Visio画venn(维恩)图
  10. AOJ 351 rmq或 基础线段树 求解