package cn.service.impl;
import cn.entity.CategoryEntity;
import cn.mapper.CategoryMapper;
import cn.service.CategoryService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author yanglinfengkk
* @version 1.0
* @description 商品三级分类业务接口实现类
* @date 2022-12-12
*/
@Service
public class CategoryServiceImpl extends ServiceImpl<CategoryMapper, CategoryEntity> implements CategoryService {
/**
* 获取三级分类列表
*
* @return 树形菜单列表
*/
@Override
public List<CategoryEntity> listWithTree() {
//1、查询出所有分类
List<CategoryEntity> entities = super.baseMapper.selectList(null);
//组装成父子的树形结构
//2.1)、找到所有一级分类
List<CategoryEntity> levelMenus = entities.stream()
.filter(e -> e.getParentId() == 0)
.map((menu) -> {
menu.setChildren(getChildrens(menu, entities));
return menu;
})
.sorted((menu, menu2) -> {
return (menu.getSort() == null ? 0 : menu.getSort()) - (menu2.getSort() == null ? 0 : menu2.getSort());
})
.collect(Collectors.toList());
return levelMenus;
}
/**
* 递归查找所有菜单的子菜单
*
* @param root 商品三级分类对象
* @param all 商品三级分类对象父列表
* @return
*/
private List<CategoryEntity> getChildrens(CategoryEntity root, List<CategoryEntity> all) {
return all.stream().filter(categoryEntity -> {
return categoryEntity.getParentId().equals(root.getCatId());
}).map(categoryEntity -> {
//1、找到子菜单(递归)
categoryEntity.setChildren(getChildrens(categoryEntity, all));
return categoryEntity;
}).sorted((menu, menu2) -> {
//2、菜单的排序
return (menu.getSort() == null ? 0 : menu.getSort()) - (menu2.getSort() == null ? 0 : menu2.getSort());
}).collect(Collectors.toList());
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
SpringBoot + MyBatis Plus 递归获取树形菜单信息列表(附源码)
共86个文件
xml:75个
java:6个
yml:1个
需积分: 0 3 下载量 92 浏览量
2022-12-12
11:08:56
上传
评论
收藏 68KB ZIP 举报
温馨提示
递归获取树形菜单信息列表(附源码)
资源推荐
资源详情
资源评论
收起资源包目录
recursion.zip (86个子文件)
recursion
pom.xml 2KB
recursion.iml 8KB
src
test
java
CategoryServiceImplTest.java 702B
main
resources
application.yml 459B
sql
pms.sql 112KB
java
cn
mapper
CategoryMapper.java 374B
service
CategoryService.java 365B
impl
CategoryServiceImpl.java 2KB
RecursionApplication.java 415B
entity
CategoryEntity.java 1KB
.idea
$PROJECT_FILE$ 364B
aws.xml 304B
uiDesigner.xml 9KB
qaplug_profiles.xml 41KB
misc.xml 797B
jarRepositories.xml 864B
vcs.xml 188B
junitgenerator-prj-settings.xml 6KB
modules.xml 265B
encodings.xml 191B
compiler.xml 816B
workspace.xml 28KB
.gitignore 0B
libraries
Maven__org_junit_jupiter_junit_jupiter_api_5_3_2.xml 618B
Maven__org_mybatis_mybatis_3_5_7.xml 524B
Maven__org_springframework_spring_context_5_1_9_RELEASE.xml 661B
Maven__ch_qos_logback_logback_classic_1_2_3.xml 592B
Maven__org_ow2_asm_asm_5_0_4.xml 496B
Maven__org_objenesis_objenesis_2_6.xml 532B
Maven__org_springframework_boot_spring_boot_starter_test_2_1_8_RELEASE.xml 751B
Maven__net_bytebuddy_byte_buddy_1_9_16.xml 560B
Maven__org_junit_platform_junit_platform_commons_1_3_2.xml 657B
Maven__org_springframework_boot_spring_boot_test_2_1_8_RELEASE.xml 695B
Maven__javax_annotation_javax_annotation_api_1_3_2.xml 635B
Maven__com_github_jsqlparser_jsqlparser_4_0.xml 571B
Maven__org_springframework_boot_spring_boot_starter_logging_2_1_8_RELEASE.xml 772B
Maven__junit_junit_4_12.xml 479B
Maven__org_yaml_snakeyaml_1_23.xml 519B
Maven__org_mybatis_mybatis_spring_2_0_6.xml 573B
Maven__org_hamcrest_hamcrest_library_1_3.xml 577B
Maven__mysql_mysql_connector_java_8_0_17.xml 598B
Maven__javax_activation_javax_activation_api_1_2_0.xml 635B
Maven__org_springframework_boot_spring_boot_starter_2_1_8_RELEASE.xml 716B
Maven__org_xmlunit_xmlunit_core_2_6_3.xml 559B
Maven__org_apache_logging_log4j_log4j_api_2_11_2.xml 597B
Maven__ch_qos_logback_logback_core_1_2_3.xml 571B
Maven__org_opentest4j_opentest4j_1_1_1.xml 557B
Maven__org_slf4j_jul_to_slf4j_1_7_28.xml 558B
Maven__org_springframework_boot_spring_boot_2_1_8_RELEASE.xml 660B
Maven__org_assertj_assertj_core_3_11_1.xml 566B
Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_1_8_RELEASE.xml 793B
Maven__org_springframework_spring_test_5_1_9_RELEASE.xml 640B
Maven__org_apiguardian_apiguardian_api_1_0_0.xml 596B
Maven__org_springframework_spring_jdbc_5_1_9_RELEASE.xml 640B
Maven__org_springframework_boot_spring_boot_starter_jdbc_2_1_8_RELEASE.xml 751B
Maven__org_hamcrest_hamcrest_core_1_3.xml 556B
Maven__org_junit_jupiter_junit_jupiter_engine_5_3_2.xml 639B
Maven__com_jayway_jsonpath_json_path_2_4_0.xml 570B
Maven__com_baomidou_mybatis_plus_boot_starter_3_4_3_1.xml 668B
Maven__org_mockito_mockito_core_2_23_4.xml 566B
Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml 724B
Maven__org_springframework_boot_spring_boot_autoconfigure_2_1_8_RELEASE.xml 758B
Maven__com_baomidou_mybatis_plus_annotation_3_4_3_1.xml 654B
Maven__org_skyscreamer_jsonassert_1_5_0.xml 561B
Maven__org_projectlombok_lombok_1_18_8.xml 548B
Maven__org_springframework_spring_core_5_1_9_RELEASE.xml 640B
Maven__com_baomidou_mybatis_plus_extension_3_4_3_1.xml 647B
Maven__org_junit_jupiter_junit_jupiter_5_9_1.xml 590B
Maven__com_fasterxml_jackson_core_jackson_annotations_2_14_1.xml 675B
Maven__org_springframework_spring_jcl_5_1_9_RELEASE.xml 633B
Maven__net_minidev_json_smart_2_3.xml 531B
Maven__org_slf4j_slf4j_api_1_7_28.xml 537B
Maven__org_springframework_spring_aop_5_1_9_RELEASE.xml 633B
Maven__org_apache_logging_log4j_log4j_to_slf4j_2_11_2.xml 632B
Maven__com_baomidou_mybatis_plus_core_3_4_3_1.xml 612B
Maven__org_springframework_spring_expression_5_1_9_RELEASE.xml 682B
Maven__com_zaxxer_HikariCP_3_2_0.xml 527B
Maven__net_bytebuddy_byte_buddy_agent_1_9_16.xml 602B
Maven__org_springframework_spring_beans_5_1_9_RELEASE.xml 647B
Maven__net_minidev_accessors_smart_1_2.xml 566B
Maven__javax_xml_bind_jaxb_api_2_3_1.xml 543B
Maven__com_baomidou_mybatis_plus_3_4_3_1.xml 577B
Maven__org_junit_jupiter_junit_jupiter_params_5_3_2.xml 639B
Maven__org_junit_platform_junit_platform_engine_1_3_2.xml 650B
Maven__org_springframework_spring_tx_5_1_9_RELEASE.xml 626B
inspectionProfiles
Project_Default.xml 1KB
共 86 条
- 1
资源评论
Fong灵
- 粉丝: 810
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功