把父子关系表转换为树形数据
组织表通常用 id 和 parent_id 保存层级,前端树组件则需要嵌套 children。本文从根节点开始查找子节点,把平面记录组织成树。
组织表通常用 id 和 parent_id 保存层级,前端树组件则需要嵌套 children。本文从根节点开始查找子节点,把平面记录组织成树。
成绩列表需要按分数降序展示,并返回从 1 开始的名次。本文先排序,再为每一行追加 rank,使结果顺序和显示名次保持一致。
多个数据来源返回层数不一的数值数组,后续统计需要一份平面列表。本文通过递归展开所有层级,保留数值出现的先后顺序,并忽略空数组。
成员列表需要按团队分别展示。本文使用 groupBy 将一份列表变成以团队名称为键的对象,每个键下面保留对应的完整成员列表。
经营报表需要把本期金额与去年同期金额放在一起。本文按商品 code 关联两份数据,以本期记录为基准,并计算增长百分比。
接口需要按原有顺序逐条处理记录,并给每条数据追加从 0 开始的 seq_no。DataQL 可以用递归函数表达这个过程。
报表返回每个地区一行、每个月一个字段,页面希望按月份展示各地区的数据。本文把三行两列的数值转换成两行三列,并由 columns 明确指定参与转换的字段。
菜单、组织架构和设备目录常常有相同的树结构,却使用不同的字段名。本文将 value、text、ChildNodes 转成前端需要的 id、text、children,并保留每一层父子关系。
新版 Dataway 保留了“编写脚本、调试、保存、发布、调用”的使用方式,将运行核心、框架整合、元数据存储和控制台资源拆成独立模块。迁移时,接口的原始脚本和发布历史可以继续使用,应用的装配代码、身份接入和扩展接口需要按新接口调整。
本文对照 old-hasor/hasor-dataql 中的 dataql-dataway、dataql-fx 与当前 5.0.0 源码,说明变化及处理步骤。文中的数据库操作应先在备份副本上执行;目标版本仍为开发版本,迁移前应固定实际使用的依赖版本。
请求头常用于传递链路编号、客户端版本等信息。本文读取 X-Trace-Id,把它放进 JSON 结果并写入响应头,让调用方能够关联一次请求与响应。