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

做网站的哪里有网站支付界面怎么做

做网站的哪里有,网站支付界面怎么做,页面优化的方法,深圳seo网站这里写自定义目录标题 需要实现的效果前端需要的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/7662/

相关文章:

  • 网站设计制作费用手机如何创建个人网站
  • 小题狂做 官方网站wordpress主题下载
  • 外贸网站大全台州网站建设推广
  • 个人网页设计的方法百度优化是什么
  • 凡科网做网站好吗网站模板登录模块
  • 资源专业网站优化排名做网络推广选择哪个网站好
  • 杭州做网站小芒wordpress如何添加自定义链接
  • 中国建信网官网旺道seo软件技术
  • 如何建一个企业网站衣柜全屋定制排名
  • 天津免费做网站如何写一份食品的网站建设规划
  • 做logo的比赛网站做网站外包哪家好
  • 有什么网站建设类岗位网站信息资料库建设
  • 企业网站怎么优化手机兼职任务平台
  • 民宿网站建设方案网站关键词优化seo关键词之间最好用逗号
  • 做网站还需要搜狗吗银川网站建设怎么样
  • 网站建设 蜀美网络杭州计算机培训机构哪个最好
  • wordpress二级域名建站wordpress首页源码
  • 四川城乡建设网站首页做网站行业
  • 网站建设这门课好学吗定制软件app开发公司
  • 开发网站需要学什么怎么开网店?去哪里注册?
  • wordpress文章标题总有网站名兰州免费网站建设
  • 网站建设j介绍pptpython 做网站开发
  • wordpress 内存超限北京免费关键词优化
  • 如何利用国外分类网站开发客户手机上怎么建立公众号
  • 辽宁建设考试培训网站游戏ui素材网站
  • 思乐科技 成都网站建设北京网站开发网站建设报价
  • 免费的视频网站如何赚钱wordpress 文章索引插件
  • 织梦cms怎么更改网站的路径深圳智能响应网站建设
  • 只做移动端的网站广州关键词快速排名
  • 最新办公室设计网站建设和优化内容最重要