Jpa+EasyUI 实现:左侧选中树形商品分类菜单的某个分类,右侧加载该类别下所有商品(级联的演示)

上一篇展示左侧树形商品分类菜单,链接:
左侧商品分类树形菜单

一、效果展示:
选中一个类别,右侧加载出它的所有商品
在这里插入图片描述
二、实现步骤:
1.点击 分类菜单某个 类别,触发事件:
在这里插入图片描述
请求后台:
在这里插入图片描述
2.controller:

/**
	 * 分页查询商品信息
	 * @param goods
	 * @param page:当前页
	 * @param rows:每页记录数
	 * @return
	 * @throws Exception
	 */
	@ResponseBody
	@RequestMapping("/list")
	@RequiresPermissions(value={"商品管理","进货入库","退货出库"},logical=Logical.OR)
	public Map<String,Object> list(Goods goods,@RequestParam(value="page",required=false)Integer page,@RequestParam(value="rows",required=false)Integer rows) throws Exception{
		Map<String,Object> resultMap=new HashMap<>();
		List<Goods> goodsList=goodsService.list(goods, page, rows, Direction.ASC, "id");
		Long total=goodsService.getCount(goods);
		
		resultMap.put("rows", goodsList);
		resultMap.put("total", total);
		logService.save(new Log(Log.SEARCH_ACTION,"查询商品信息"));
		return resultMap;
	}

3.service实现类

/*
	 根据条件分页查询商品信息
	 */
	@Override
	public List<Goods> list(Goods goods, Integer page, Integer pageSize, Direction direction, String... properties) {
		Pageable pageable=new PageRequest(page-1,pageSize);
		Page<Goods> pageGoods=goodsRepository.findAll(new Specification<Goods>() {
			
			@Override
			public Predicate toPredicate(Root<Goods> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
				Predicate predicate=cb.conjunction();
				if(goods!=null) {
					if(StringUtil.isNotEmpty(goods.getName())) {
						predicate.getExpressions().add(cb.like(root.get("name"), "%"+goods.getName()+"%"));
					}
					if(goods.getType()!=null && goods.getType().getId()!=null && goods.getType().getId()!=1) {
						predicate.getExpressions().add(cb.equal(root.get("type").get("id"),goods.getType().getId()));
					}
					
					if(StringUtil.isNotEmpty(goods.getCodeOrName())){
						predicate.getExpressions().add(cb.or(cb.like(root.get("code"), "%"+goods.getCodeOrName()+"%"), cb.like(root.get("name"), "%"+goods.getCodeOrName()+"%")));
					}
				}
				return predicate;
			}
			
		}, pageable);
		return pageGoods.getContent();
	}

	/*
	获取总记录数
	*/
	@Override
	public Long getCount(Goods goods) {
		Long count=goodsRepository.count(new Specification<Goods>() {

			@Override
			public Predicate toPredicate(Root<Goods> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
				Predicate predicate=cb.conjunction();
				if(goods!=null){
					if(StringUtil.isNotEmpty(goods.getName())){
						predicate.getExpressions().add(cb.like(root.get("name"), "%"+goods.getName()+"%"));
					}
					if(goods.getType()!=null && goods.getType().getId()!=null && goods.getType().getId()!=1){
						predicate.getExpressions().add(cb.equal(root.get("type").get("id"), goods.getType().getId()));
					}
				}
				return predicate;
			}
			
		});
		return count;
	}

4.其中级联的使用
在这里插入图片描述
在这里插入图片描述
前台页面传的是商品分类实体里面的那个id:
在这里插入图片描述
Controller接收:
在这里插入图片描述
service实现类中这样处理:
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值