当前位置: 首页 > news >正文

如何建设一个工业品采购网站企业官网有哪些网站

如何建设一个工业品采购网站,企业官网有哪些网站,网站建设公司专业网站开发需求,网站平台建设工作汇报这里写自定义目录标题 需要实现的效果前端需要的json格式:一定是一个完整的树结构错误错误的返回格式错误的返回格式实现的效果 正确正确的返回格式正确的展示画面 后端逻辑分析代码总览 数据库表结构 需要实现的效果 前端需要的json格式:一定是一个完整…

这里写自定义目录标题

  • 需要实现的效果
  • 前端需要的json格式:一定是一个完整的树结构
    • 错误
      • 错误的返回格式
      • 错误的返回格式实现的效果
    • 正确
      • 正确的返回格式
      • 正确的展示画面
  • 后端
    • 逻辑分析
    • 代码总览
  • 数据库表结构

需要实现的效果

在这里插入图片描述

前端需要的json格式:一定是一个完整的树结构

错误

错误的返回格式

在这里插入图片描述

错误的返回格式实现的效果

在这里插入图片描述

正确

正确的返回格式

在这里插入图片描述

正确的展示画面

在这里插入图片描述

后端

逻辑分析

1. 根据搜索条件,查出符合的数据

List<ReproductiveCycleInfo> list = reproductiveCycleInfoMapper.selectReproductiveCycleInfoList(reproductiveCycleInfo);

在这里插入图片描述
这一步不能直接返回给前端的,因为前端的组件是需要完整的一个树结构。
从图中可以看到,我们 id in(70,71,72)的父节点 id = 17 没有找到,所以 这就不是一个完整的树结构。

2. 符合的数据里面我们需要发现还需要找到几个父节点数据

// parentId = 0,表示他已经没有父节点了
Set<Long> collect = list.stream().filter(x -> x.getParentId() != 0).map(ReproductiveCycleInfo::getParentId).collect(Collectors.toSet());

在这里插入图片描述
3. 开始找父节点的信息

        if (StringUtils.isNotEmpty(collect)) {for (Long x : collect) {getParentInfoByParentId(x, list);}}

3.1 根据节点的id找到节点

    /*** 根据节点id找出节点,并添加到结果集里面** @param nodeId 当前需要找的节点id* @param list 返回的结果集*/private void getNodeByParentId(Long nodeId, List<ReproductiveCycleInfo> list) {// 1. 如果当前需要找的节点if (nodeId != 0) {// 2. 为了避免父节点也已经出现在 所有的节点信息 里面// 2.1 找出当前所有的节点信息List<Long> ids = list.stream().map(ReproductiveCycleInfo::getId).collect(Collectors.toList());// 2.2 当前所有的节点信息不包含当前需要找的节点if (!ids.contains(nodeId)) {// 3. 从数据库里面,根据父节点的id,找到父节点信息ReproductiveCycleInfo one = reproductiveCycleInfoMapper.selectReproductiveCycleInfoById(nodeId);// 4. 把当前节点放到所有节点里面list.add(one);// 5. 如果当前节点还存在父节点if (one.getParentId() != 0) {// 6. 递归去找父节点信息getNodeByParentId(one.getParentId(), list);}}}}

以找17节点为例子:
在这里插入图片描述

代码总览

从这里也可以看出我这里其实代码已经有逻辑耦合了。毕竟 node != 0 判断了两次了,这其实没必要。还可以优化一下。

    @Overridepublic List<ReproductiveCycleInfo> selectReproductiveCycleInfoListByName(ReproductiveCycleInfoDto reproductiveCycleInfo) {List<ReproductiveCycleInfo> list = reproductiveCycleInfoMapper.selectReproductiveCycleInfoList(reproductiveCycleInfo);Set<Long> collect = list.stream().filter(x -> x.getParentId() != 0).map(ReproductiveCycleInfo::getParentId).collect(Collectors.toSet());if (StringUtils.isNotEmpty(collect)) {for (Long x : collect) {getNodeByParentId(x, list);}}return list;}/*** 根据节点id找出节点,并添加到结果集里面** @param nodeId 当前需要找的节点id* @param list 返回的结果集*/private void getNodeByParentId(Long nodeId, List<ReproductiveCycleInfo> list) {// 1. 如果当前需要找的节点if (nodeId != 0) {// 2. 为了避免父节点也已经出现在 所有的节点信息 里面// 2.1 找出当前所有的节点信息List<Long> ids = list.stream().map(ReproductiveCycleInfo::getId).collect(Collectors.toList());// 2.2 当前所有的节点信息不包含当前需要找的节点if (!ids.contains(nodeId)) {// 3. 从数据库里面,根据父节点的id,找到父节点信息ReproductiveCycleInfo one = reproductiveCycleInfoMapper.selectReproductiveCycleInfoById(nodeId);// 4. 把当前节点放到所有节点里面list.add(one);// 5. 如果当前节点还存在父节点if (one.getParentId() != 0) {// 6. 递归去找父节点信息getNodeByParentId(one.getParentId(), list);}}}}

数据库表结构

起码得满足有这些极端并约定 parentId = 0 是表示是首节点了.
在这里插入图片描述

http://www.yayakq.cn/news/461030/

相关文章:

  • 这是我自己做的网站吗个人备案20字备注
  • 西工网站建设设计韩国导航地图中文版app
  • 中小型网站建设流程张家港网站设计制作早晨设计
  • 网站开发者 地图哪个地方可学习网站建设
  • 农业营销型网站源码网站商城建设员招聘
  • 九江做网站哪家便宜品牌建设 网站
  • iis网站正在建设中会宁网站建设
  • 厦门建站比较好的公司深圳做网站 信科便宜
  • 如何做网课网站虚拟主机 安装wordpress
  • 网站开发上海wordpress恢复主题初始值
  • 网站建设找c宋南南前端网站开发教程
  • 做网站排名多少钱阿里云备案多个网站吗
  • 常州做网站价格企业制作网站一般多少钱
  • 晚上睡不着正能量网站0元开店0元铺货无加盟费开网店
  • 广东长城建设集团有限公司 网站织梦做分类信息系统网站
  • 徐州制作网站的公司有哪些做网站的人
  • 网站需要的技术wordpress建站要钱么
  • 网站模版与模板的使用网站前后端全部做需要多少钱
  • 网站设计公司有名乐云seo怎么创建个人网页
  • 国外网站建立网站怎么做 吸引人
  • 网站开发有什么软件有哪些网站访问速度跟服务器cpu和内存和带宽哪个重要
  • 长乐市住房和城乡建设局网站农村做网站开发
  • 南京英文网站建设缅甸做网站
  • 电影点播网站开发费用百度下载app
  • 徐家汇网站建设网站浮动咨询代码
  • 烟台工程建设信息网站网络营销的工具和方法有哪些
  • 用宝塔做网站软件工程公司排名
  • 一条龙网站p2p网站开发方法
  • 宁德做网站公司个人网站可以做健康付费知识
  • 佛山企业门户网站建设百度统计怎么使用