一.知识回顾

【0.三高商城系统的专题专栏都帮你整理好了,请点击这里!】
【1-系统架构演进过程】
【2-微服务系统架构需求】
【3-高性能、高并发、高可用的三高商城系统项目介绍】
【4-Linux云服务器上安装Docker】
【5-Docker安装部署MySQL和Redis服务】
【6-Git安装与配置过程、Gitee码云上创建项目、IDEA关联克隆的项目】
【7-创建商城系统的子模块并将修改后的信息使用Git提交到Gitee上】
【8-数据库表结构的创建&后台管理系统的搭建】
【9-前端项目的搭建部署、Node安装、VSCode安装】
【10-Node的安装以及全局环境变量的相关配置&解决启动报错的问题(1.Error: Cannot find module ‘fs/promises)(2.npm安装node-sass报错)】
【11-导入人人generator项目并自动生成相关的文件&商品子模块的调试&公共模块common子模块的抽离与实现&Lombok插件的安装】
【12-商品子模块整合MyBatisPlus技术&其它模块通过generator的自动生成与补充完善】
【13-项目中微服务组件的学习-SpringCloudAlibaba微服务生态体系的学习&SpringCloudAlibaba的依赖管理&项目中SpringBoot和SpringCloud版本的统一】
【14-微服务的注册中心与配置中心Nacos&Windows操作系统上安装Nacos和Linux操作系统上用Docker中安装Nacos&每个子项目模块使用Nacos进行服务注册与发现】
【15-项目中服务的远程调用之OpenFeign&订单模块与商品模块集成使用OpenFeign的案例】
【16-配置中心之Nacos的基本使用&Nacos服务之命令空间、Nacos服务之配置组、Nacos服务之配置拆分】
【17-微服务网关之Spring Cloud Gateway&Spring Cloud Gateway网关服务搭建】

二.启动我们的管理端的后端项目和前端项目

2.1 后台项目部署

如果启动后端项目的时候遇到如下错误:

-Djps.track.ap.dependencies=false

那么直接在Settings->Complier->添加上述配置重新启动即可


后台项目启动后的效果:

2.2 前端项目部署

2.3 访问测试登陆

三.商品分类管理开发

3.1 商品模块对应的商品分类数据库表增加数据

3.2 启动商品类,对获取我们所有商品分类接口进行测试,看能否成功获取刚插入的数据

启动过程中如果发现报错,错误是Nacos的配置中心地址找不到,我们之前只用订单模块做了案例,并没有给其它模块做案例,所以其它模块直接启动会报错。那么是因为我们没有进行配置中心地址的配置,因为commons模块中引入了Nacos的配置中心依赖,而我们又引入了commons的依赖,所以,如果我们不进行Nacos配置中心的配置,那么启动肯定会报错。
解决方案如下:

数据展示:

因为后台为我们传过来的是json数据,显示效果不明显,为了更加明显,我们需要下载一个json插件

打开我们的插件,将我们的数据拷贝到json插件中

3.3 数据已经获取了,接下来就需要处理我们的大量数据,说明白了,就是将数据进行分类,具有父子层级关系的目录结构

controller层定义具有层级结构的访问接口

/*** 返回具有层级目录的商品分类数据* @param params* @return*/@GetMapping("/listTree")public R listTree(@RequestParam Map<String, Object> params){List<CategoryEntity> list = categoryService.queryPageWithTree(params);return R.ok().put("data", list);}

service中定义我们的具体业务接口

/*** CategoryService中同步定义对应的接口方法* @param params* @return*/List<CategoryEntity> queryPageWithTree(Map<String, Object> params);

对应的service实现类中实现相关的接口,并进行相关业务逻辑的处理
这个地方的实现是比较重要的:递归的思想+JDK8特性中stream流相关方法的使用+而且这个解决方案是通用的+可以用在任何想要返回具有层级结构、父子关系的查找当中。
补充一下:JDK8相关的特性文章可以看一下恩师dpb的博客:JDK8新特性

/*** 实现CategoryService中对应的接口方法中具体的事项逻辑* 查询所有的类别数据,然后将数据封装为树形结构,便于前端使用* @param params* @return*/@Overridepublic List<CategoryEntity> queryPageWithTree(Map<String, Object> params) {// 1.查询所有的商品分类信息List<CategoryEntity> categoryEntities = baseMapper.selectList(null);// 2.将商品分类信息拆解为树形结构【父子关系】// 第一步遍历出所有的大类  parent_cid = 0List<CategoryEntity> list = categoryEntities.stream().filter(categoryEntity -> categoryEntity.getParentCid() == 0).map(categoryEntity -> {// 根据大类找到多有的小类  递归的方式实现categoryEntity.setChildrens(getCategoryChildrens(categoryEntity,categoryEntities));return categoryEntity;}).sorted((entity1, entity2) -> {return (entity1.getSort() == null ? 0 : entity1.getSort()) - (entity2.getSort() == null ? 0 : entity2.getSort());}).collect(Collectors.toList());// 第二步根据大类找到对应的所有的小类return list;}/***  查找该大类下的所有的小类  递归查找* @param categoryEntity 某个大类* @param categoryEntities 所有的类别数据* @return*/private List<CategoryEntity> getCategoryChildrens(CategoryEntity categoryEntity, List<CategoryEntity> categoryEntities) {List<CategoryEntity> collect = categoryEntities.stream().filter(entity -> {// 根据大类找到他的直属的小类return entity.getParentCid() == categoryEntity.getCatId();}).map(entity -> {// 根据这个小类递归找到对应的小小类entity.setChildrens(getCategoryChildrens(entity, categoryEntities));return entity;}).sorted((entity1, entity2) -> {return (entity1.getSort() == null ? 0 : entity1.getSort()) - (entity2.getSort() == null ? 0 : entity2.getSort());}).collect(Collectors.toList());return collect;}

最后就是启动我们是商品模块,访问测试我们是实现逻辑是否可行:---->如果出现下面的结果—》搞定!

【18-业务开发-基础业务-商品模块-分类管理-前后端管理系统的启动-为分类管理表增加数据-Json插件的下载-返回具有层级目录、父子关系结构的数据】相关推荐

  1. 【24-业务开发-基础业务-品牌管理-图片管理-阿里云OSS服务开通和使用-阿里云OSS服务API使用-SpringCloudAlibaba OSS服务的使用】

    一.知识回顾 [0.三高商城系统的专题专栏都帮你整理好了,请点击这里!] [1-系统架构演进过程] [2-微服务系统架构需求] [3-高性能.高并发.高可用的三高商城系统项目介绍] [4-Linux云 ...

  2. 视频教程-Vue、Spring Boot开发小而完整的Web前后端分离项目实战-Java

    Vue.Spring Boot开发小而完整的Web前后端分离项目实战 3年多.net开发经验:5年的java后端开发经验,熟悉行.net,java流行技术,拥有多个.net,java web企业级应; ...

  3. 最新开源微信小程序一键开发平台源码 支持15大功能模块+完整前后端+搭建教程

    分享一个开源微信小程序一键开发综合平台源码,系统支持15大小程序功能模块,涉及各行各业,含完整前后端+详细搭建部署教程. 系统特色功能一览: 1.全新重构升级功能后端文件和前端文件: 2.整套源码已经 ...

  4. node基础4-- MySQL的使用和前后端的身份认证

    在项目中操作 MySQL 安装并配置 MySQL MySQL的基本使用 在项目中操作 MySQL 4.2 安装与配置 mysql 模块 4.3 使用 mysql 模块操作 MySQL 数据库 前后端的 ...

  5. axios 跨域_当遇到跨域开发时,我们如何处理好前后端配置和请求库封装

    我们知道很多大型项目都或多或少的采用跨域的模式开发, 以达到服务和资源的解耦和高效利用. 在大前端盛行的今天更为如此, 前端工程师可以通过nodejs或者Nginx轻松搭建起web服务器.这个时候我们 ...

  6. Python开发基础总结之模块+日志+自省

    一.模块的使用 1.    如果不想将模块的某些函数和变量被别的模块使用,可以以单下划线开头.这样import 是没有的,但是使用import mode,然后mode.fun仍然可以调用.在class ...

  7. vue项目开发实战案例_Vue、Spring Boot开发小而完整的Web前后端分离项目实战02

    第02讲 前端项目工具安装及环境搭建 1.1.开发工具:visual studio code 1.1.visual studio code 官网下载地址 https://code.visualstud ...

  8. python输入姓名删除电话号码_pyhon基础之实例操作__个人名片管理系统,输入,查询,增加,删除等基本表的操作...

    说明:为了操作方便,在python中我们用字典来获取输入的数据,通过对字典的增删改查实现相应的功能: #这是一个个人名片管理系统 class BusinessCard(object): def __i ...

  9. springboot web项目_Vue、Spring Boot开发小而完整的Web前后端分离项目实战12

    第12讲 tabs选项卡制作讲解 1.1.tabs选项卡组件: 1. tabs 组件 2.常用属性: value :选中选项卡的name type :选项卡风格 可选择 card / border-c ...

最新文章

  1. 基于SSM实现考研信息管理平台系统
  2. 【版本更新】Aspose.Slides V17.10发布 | 支持免费下载
  3. 洛谷 P3372 【模板】线段树 1(线段树区间加区间找)
  4. 面向对象阶段个人总结
  5. sql backup database备份d盘_SQL数据库备份概述
  6. centos python_【建议收藏】Python虚拟环境最全教程,看这篇就够了!
  7. SAST算法的学习笔记
  8. mysql读数据入库es_ES 实现实时从Mysql数据库中读取热词,停用词
  9. UIButton 文字图片排列
  10. 缺少更新或刷新的键列信息_iPhone 12缺少的五个功能你会在意吗?
  11. 74hc138译码器实验c语言程序,实验二74HC138译码器实验学生
  12. 树莓派CM4官方底板的双路摄像头使用
  13. Jenkins部署到远程服务器
  14. 易捷文件共享web服务器 v3.5,易捷文件共享Web服务器 官方版
  15. 我想不通,MySQL 为什么使用 B+ 树来作索引?
  16. 踩坑到怀疑人生:win10下tensorRT加速YOLOV5
  17. httpclient报错:Invalid use of BasicClientConnManager: connection still allocated. Make sure to release
  18. mount_nfs: can't mount /data from x.x.x.x onto /Users/caicloud/nfs1: Operation not permitted
  19. android设备类型,android根据屏幕尺寸区分设备类型,phone或者pad - yuanyuan
  20. Java充电篇:Java IO常见的面试题

热门文章

  1. 计算机c盘如何腾出空间,电脑C盘空间不足,又不知道如何清理?做完这几步,能腾出几十个G...
  2. MySQL:排序(filesort)详细解析(8000字长文)
  3. 石家庄IT培训业转型要诀:出品,用户,服务
  4. 深耕硬科技,香港科大百万创赛与八大投资机构签署合作意向
  5. 【金融风控-贷款违约预测】数据挖掘学习:5.模型融合
  6. 阿里云大数据平台的实操:ODPS的SQL语句
  7. 雷电2接口_Intel发布雷电4接口,相比之前的雷电3,雷电4都改进了什么?
  8. 中图杯获奖作品计算机组,“中图杯”第十四届环境地图大赛召开 地图慧成指定制图软件...
  9. 【Unity3D-UGUI应用篇】(六)屏幕自适应(多分配率适配)
  10. php 斐多纳契数列,菲波纳契数列对股市的影响