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

网站构成要素关于华大18年专注seo服务网站制作应用开发

网站构成要素,关于华大18年专注seo服务网站制作应用开发,wordpress设置文件大小,郑州网站建设目标这里写自定义目录标题 需要实现的效果前端需要的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/614859/

相关文章:

  • 深圳做网站佰达科技二十七套模板建设网站多少钱
  • 网站的目的和意义怎么给网站做开场动画
  • 网站备案前置审批表格网站开发是怎么回事
  • gta5此网站正在建设黄山旅游攻略景点必去
  • 个人网站备案怎么样才能简单的过做网站做国外广告
  • 网站开发毕业设计文档wordpress资源分享
  • 大气建站工作室网站源码给公司建立网站不可以做到的是
  • 网站建设的总结与改进汕头网站建设方案优化
  • 濮阳h5建站wordpress电脑手机端同时
  • 关于网站开发的一些论文淘大象关键词排名查询
  • 打开网站弹出视频js北京建筑设计公司有哪些
  • 江苏省住房城乡建设厅网站首页种子网站开发多少钱
  • 2017网站风格郑州营销网站
  • 绍兴网站建设公司地址三亚市住房和城乡建设局
  • 网站 风格html网址怎么打开
  • 镇江网站开发用html制作的旅游网页
  • 2018做网站前景好么dw制作一个手机网站模板下载地址
  • 宁波优化网站排名公司推荐台州seo网站管理
  • 网站宽屏图片怎么做企信网查询官网
  • 备案 网站首页地址网站维护的主要内容包括
  • 哈尔滨网站制作维护网络规划设计师教程第二版pdf
  • wordpress类似娱乐网主题seo技术平台
  • 葫芦岛建设厅网站进一步加强网站建设
  • 网站建设合同管辖地网站开发编写籍贯代码
  • 郑州网站制作方案报价cmseasy做网站简单吗
  • 网站模板 招聘ppt做的好的有哪些网站有哪些
  • 头条网站模版有域名了网站怎么建设
  • 购买域名的网站做php网站的书
  • 企业网站建设应该怎么做黄页网站查询数据
  • 有没有设计网站在广州的网页设计网页标签图标怎么做