java根据商品编号查找商品_查询商品分类下的所有商品(分类级别不限)
正版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根据商品编号查找商品_查询商品分类下的所有商品(分类级别不限)相关推荐
- vue pc端 商品轮播图_轮播图高点击商品图
轮播图由背景,商品图,文案三大部分组成,其中商品图是轮播图的主体内容,在轮播主图中,能不能通过一张商品图呈现出商品信息或者卖点,是影响点击率高低的重要因素.本期内容,我们将从商品图出发,为大家讲解的轮 ...
- java version 和javac版本不一致_解决linux下javac -version和java -version版本显示不一致...
[javascript] view plaincopy [root@localhost usr]# $JAVA_HOME/bin/java -version bash: /bin/java: 没有那个 ...
- Java语言实现二分查找(可查询重复数据)
文章目录 二分查找 1.前言 2.算法思想 3.图示 4.优缺点 5.代码实现 标准二分查找 拓展:可以查询重复值 二分查找 1.前言 二分查找是一种查询效率非常高的查找算法,又称为折半查找. 用递归 ...
- Java代码总结【1】_查询手机号码归属地
这段代码是查询指定手机号的代码归属地,输出格式为[省份+运营商] public static String checkMobilePlace(String mobilephone)throws IOE ...
- linux在文件夹下查找关键字,linux 查询目录下包含关键字的所有文件
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri "IBM" 查 ...
- 【Java基础】第6章_面向对象(下)-1:static关键字、main方法、代码块、final关键字
文章目录 1.关键字:static 1.1.static的使用 1.2.类变量 vs 实例变量内存解析 1.3.自定义 ArrayUtil工具类的优化 1.4.static 的应用举例 1.5.练习 ...
- 查mysql连接密码是什么意思_查询mysql下的数据库密码是什么意思
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
- 现要为某一个销售部门编写一个程序管理约100种商品。要求设计一个结构体类型来描述商品,每种商品包括商品编号(如A001)、商品名称、商品销售量和商品销售额等信息,并编写以下函数···········
原题:现要为某一个销售部门编写一个程序管理约100种商品.要求设计一个结构体类型来描述商品,每种商品包括商品编号(如A001).商品名称.商品销售量和商品销售额等信息,并编写以下函数: 1.编写一个函 ...
- c#实现循环输入商品编号和购买数量,结账时应付金额并找零
循环输入商品编号和购买数量,系统自动计算每种商品的价钱(单价X数量),并累加总金额. 当输入n时结账(假设享受8折优惠)结账时,根据折扣计算应付金额,输入实付金额,并找零 下面展示一些 内联代码片. ...
最新文章
- oracle修改连接数
- 机器人焊枪动作与编程实验_机器人编程实验报告.pdf
- poj2632 累死了
- 记一次 .NET 某市附属医院 Web程序 偶发性CPU爆高分析
- 手把手教你搭建Maven项目
- Android--音乐播放器
- Linux用户:您上一次使用Windows已有多长时间了?
- 带有SeekBar的Android Media Player歌曲
- Xampp mysql启动
- Hibernate框架(一)——总体介绍
- hdoj1176:免费馅饼(dp基础题-数塔思想)
- win10打开计算机出现马赛克,主编处理win10系统播放视频影片出现锯齿、马赛克、模糊的办法?...
- 各大媒体优劣对比_各种媒体的优缺点分析()
- 如何运行element ui
- 电脑重装系统后数据恢复的方法
- 全球与中国结肠水疗机市场深度研究分析报告
- 百度网盘如何生成目录树结构?
- 笔记本无线热点共享批处理bat_马立杰_新浪博客
- 思科防火墙NAT——实验
- 令人激动的语音UI背后