正版python深度学习逻辑算法与编程

80.9元

(需用券)

去购买 >

查询所有商品分类

遍历每个分类

如果能查到父级,就将子类放入父级中

根据分类Id查询商品列表

最后将查询到的商品放入分类中

controller代码

@GetMapping("/list")

@ApiOperation(value = "分类下的商品", notes = "所有分类包含商品", produces = "application/json")

public ResultPoJo> getCategoryproducts(Pagination pagination,String keyword) {

LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper().orderByAsc(YxJpProductCategory::getSort).orderByDesc(YxJpProductCategory::getCreateDate);

CommonUtil.emptyStr(keyword).ifPresent(key -> queryWrapper.and(andQw ->

andQw.or(orQw -> orQw.like(YxJpProductCategory::getName, key))

));

// 查询所有分类

List categoryList = categoryService.list(queryWrapper);//查询所有分类

List rsList = categoryList;

if (StrUtil.isBlank(keyword)) {//关键字为空(用于搜索)

categoryList.forEach(category -> {//遍历每个分类

if (!"0".equals(category.getParentId())) {//父id不等于0 (0为顶级分类)

//查找父级分类(包含子类)

categoryList.stream().filter(ca -> ca.getId().equals(category.getParentId())).findFirst()

.ifPresent(parentCategory -> {//如果存在父子关系

List children = parentCategory.getChildren();

if (ObjectUtil.isNull(children)) {

children = Lists.newArrayList();

}

//根据商品分类查询商品

IPage page = productService.getJpProductByCategory(pagination.page(),keyword,category.getId());

category.setProducts(page);

//将子级放到父级的children中

children.add(category);

parentCategory.setChildren(children);

});

}

});

rsList = categoryList.stream().filter(category -> "0".equals(category.getParentId())).collect(Collectors.toList());

}

return ResultPoJo.ok(rsList);

}

在实体类中需要加入children的列表(类型是自己本身)

需要加入商品列表的属性

实体类代码

public class YxJpProductCategory extends BaseEntity {

private static final long serialVersionUID=1L;

private String id;

@ApiModelProperty(value = "上级分类的编号:0表示一级分类")

private String parentId;

@ApiModelProperty(value = "所有父级编号")

private String parentIds;

@ApiModelProperty(value = "分类名称")

private String name;

@ApiModelProperty(value = "分类级别:0->1级;1->2级")

private String level;

@ApiModelProperty(value = "产品数量")

private Integer productCount;

@ApiModelProperty(value = "排序")

private Integer sort;

@ApiModelProperty(value = "图标")

private String icon;

@ApiModelProperty(value = "关键词")

private String keywords;

@ApiModelProperty(value = "描述")

private String description;

@ApiModelProperty(value = "创建者",hidden = true)

private String createBy;

@ApiModelProperty(value = "创建时间",example = "2020-05-19 00:00:00",hidden = true)

private Date createDate;

@ApiModelProperty(value = "更新者",hidden = true)

private String updateBy;

@ApiModelProperty(value = "更新时间",example = "2020-05-19 00:00:00",hidden = true)

private Date updateDate;

private String remarks;

@TableLogic

@ApiModelProperty(value = "删除标记",example = "0",hidden = true)

private String delFlag;

private String openid;

@TableField(select = false,exist = false)

@ApiModelProperty(hidden = true)

private List children;

@TableField(select = false,exist = false)

@ApiModelProperty(hidden = true)

private IPage products;

@Override

protected Serializable pkVal() {

return this.id;

}

}

java 11官方入门(第8版)教材

79.84元

包邮

(需用券)

去购买 >

java根据商品编号查找商品_查询商品分类下的所有商品(分类级别不限)相关推荐

  1. vue pc端 商品轮播图_轮播图高点击商品图

    轮播图由背景,商品图,文案三大部分组成,其中商品图是轮播图的主体内容,在轮播主图中,能不能通过一张商品图呈现出商品信息或者卖点,是影响点击率高低的重要因素.本期内容,我们将从商品图出发,为大家讲解的轮 ...

  2. java version 和javac版本不一致_解决linux下javac -version和java -version版本显示不一致...

    [javascript] view plaincopy [root@localhost usr]# $JAVA_HOME/bin/java -version bash: /bin/java: 没有那个 ...

  3. Java语言实现二分查找(可查询重复数据)

    文章目录 二分查找 1.前言 2.算法思想 3.图示 4.优缺点 5.代码实现 标准二分查找 拓展:可以查询重复值 二分查找 1.前言 二分查找是一种查询效率非常高的查找算法,又称为折半查找. 用递归 ...

  4. Java代码总结【1】_查询手机号码归属地

    这段代码是查询指定手机号的代码归属地,输出格式为[省份+运营商] public static String checkMobilePlace(String mobilephone)throws IOE ...

  5. linux在文件夹下查找关键字,linux 查询目录下包含关键字的所有文件

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri "IBM" 查 ...

  6. 【Java基础】第6章_面向对象(下)-1:static关键字、main方法、代码块、final关键字

    文章目录 1.关键字:static 1.1.static的使用 1.2.类变量 vs 实例变量内存解析 1.3.自定义 ArrayUtil工具类的优化 1.4.static 的应用举例 1.5.练习 ...

  7. 查mysql连接密码是什么意思_查询mysql下的数据库密码是什么意思

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  8. 现要为某一个销售部门编写一个程序管理约100种商品。要求设计一个结构体类型来描述商品,每种商品包括商品编号(如A001)、商品名称、商品销售量和商品销售额等信息,并编写以下函数···········

    原题:现要为某一个销售部门编写一个程序管理约100种商品.要求设计一个结构体类型来描述商品,每种商品包括商品编号(如A001).商品名称.商品销售量和商品销售额等信息,并编写以下函数: 1.编写一个函 ...

  9. c#实现循环输入商品编号和购买数量,结账时应付金额并找零

    循环输入商品编号和购买数量,系统自动计算每种商品的价钱(单价X数量),并累加总金额. 当输入n时结账(假设享受8折优惠)结账时,根据折扣计算应付金额,输入实付金额,并找零 下面展示一些 内联代码片. ...

最新文章

  1. python怎么读excel文件-python如何读写excel文件
  2. 什么是防火墙?—Vecloud微云
  3. C语言中数组做函数参数的问题
  4. EYQiPa,梦开始的地方
  5. 第十章练习题----2
  6. linux mmap 内存映射 mmap() vs read()/write()/lseek()
  7. leetcode - 101. 对称二叉树
  8. svn in xcode5
  9. 谷歌搜索363搜索引擎入口_SEO谷歌搜索引擎优化到底有啥好?
  10. *第七周*数据结构实践项目一【建设环形队列算法库】
  11. Word经典技巧大全
  12. 由QCustomplot引发drawPolyline和drawLine的区别
  13. bootstrap视频教程 jsp_家政服务系统(JAVA,SSM,BOOTSTRAP,JSP,AJAX,MYSQL)+手把手系列视频教程...
  14. linux rarp命令,通过源码理解Rarp协议(基于linux1.2.13)
  15. nvidia驱动程序下载类型怎么选?
  16. ssh登陆之忽略known_hosts文件
  17. Origin作向下柱状图
  18. 中国人民大学_《组织行为学》_14.相对剥夺:怎样快速形成凝聚力?
  19. Linux C编程17-locale
  20. layui自定义打印

热门文章

  1. Python接口自动化测试框架(工具篇)-- 接口测试神器postman
  2. 网站安全需注意,华为云为企业稳定运营保驾护航
  3. 2017年秋季学期获领跑衫感言
  4. python库的作用与用途_Python 中 absl 库的用途
  5. Egret实战开发笔记,飞行射击游戏(二)
  6. 关于虚拟机linux系统eth0无IP地址的解决办法
  7. hive统计每日的活跃用户和新用户sql开发(附shell脚本)
  8. Citrix VDI 跨平台桌面虚拟化架构的研究
  9. obs多推流地址_OBS直播多平台同时推流解决方法,简单粗暴
  10. 43岁张曼玉回春疑整容(组图)