QueryWrapper<Record> queryWrapper = new QueryWrapper(); queryWrapper.apply("a.goods=b.id and b.storage=c.id and b.goodsType=d.id "); if("2".equals(roleId)){ // queryWrapper.eq(Record::getUserid,userId); queryWrapper.apply(" a.userId= "+userId); } if(StringUtils.isNotBlank(name) && !"null".equals(name)){ queryWrapper.like("b.name",name); } if(StringUtils.isNotBlank(goodstype) && !"null".equals(goodstype)){ queryWrapper.eq("d.id",goodstype); } if(StringUtils.isNotBlank(storage) && !"null".equals(storage)){ queryWrapper.eq("c.id",storage);
时间: 2024-04-18 12:23:41 浏览: 143
这段代码是使用了MyBatis-Plus的QueryWrapper来建数据库查询条件。首先,创建了一个空的QueryWrapper对象queryWrapper。然后,通过apply方法添加了一个自定义的SQL条件,该条件表示a表的goods字段等于b表的id字段,并且b表的storage字段等于c表的id字段,并且b表的goodsType字段等于d表的id字段。
接下来,通过判断roleId是否等于2,如果是则使用apply方法添加了一个自定义的SQL条件,该条件表示a表的userId字段等于指定的userId值。
然后,通过判断name是否不为空且不等于"null"字符串,如果满足条件则使用like方法添加了一个模糊查询条件,该条件表示b表的name字段包含指定的name值。
接着,通过判断goodstype是否不为空且不等于"null"字符串,如果满足条件则使用eq方法添加了一个等于查询条件,该条件表示d表的id字段等于指定的goodstype值。
最后,通过判断storage是否不为空且不等于"null"字符串,如果满足条件则使用eq方法添加了一个等于查询条件,该条件表示c表的id字段等于指定的storage值。
相关问题
@GetMapping("/page") public Result findPage(@RequestParam(defaultValue = "") String name, @RequestParam Integer pageNum, @RequestParam Integer pageSize) { QueryWrapper<Orders> queryWrapper = new QueryWrapper<>(); queryWrapper.orderByDesc("id"); if (!"".equals(name)) { queryWrapper.like("name", name); } User currentUser = TokenUtils.getCurrentUser(); if (currentUser.getRole().equals("ROLE_USER")) { queryWrapper.eq("userid", currentUser.getId()); } Page<Orders> page = ordersService.page(new Page<>(pageNum, pageSize), queryWrapper); for (Orders record : page.getRecords()) { Integer id = record.getId(); List<OrderItem> orderItems = orderItemService.list(new QueryWrapper<OrderItem>().eq("order_id", id)); record.setOrderItems(orderItems); } return Result.success(page); }
这是一个使用 Spring Boot 框架编写的 RESTful API 接口,处理 GET 请求,访问路径为 "/page"。该接口接受三个参数:name,pageNum 和 pageSize,其中 name 为可选参数,pageNum 和 pageSize 为必选参数。接口的作用是查询订单信息并返回分页结果。
在实现中,接口先构造了一个 QueryWrapper 对象,在查询时按照 id 降序排序。如果传入了 name 参数,则使用 like 条件查询 name 字段。然后获取当前用户信息,如果当前用户是 ROLE_USER 角色,则使用 eq 条件查询 userid 字段。接着使用 ordersService 对象进行分页查询,查询结果为 Page 对象。最后,遍历分页结果中的每个订单记录,查询其对应的订单项,将订单项列表设置到订单记录中。最终将分页结果封装到 Result 对象中并返回。
@GetMapping("/page") public Result findPage(@RequestParam(defaultValue = "") String name, @RequestParam Integer pageNum, @RequestParam Integer pageSize) { // 构造查询条件 QueryWrapper<Cart> queryWrapper = new QueryWrapper<>(); queryWrapper.orderByDesc("id"); if (!"".equals(name)) { queryWrapper.like("name", name); } // 获取当前登录用户 User currentUser = TokenUtils.getCurrentUser(); if (currentUser.getRole().equals("ROLE_USER")) { // 如果当前用户是普通用户,则只查询该用户的购物车记录 queryWrapper.eq("userid", currentUser.getId()); } // 分页查询购物车记录 Page<Cart> page = cartService.page(new Page<>(pageNum, pageSize), queryWrapper); List<Cart> records = page.getRecords(); for (Cart record : records) { // 查询购物车记录对应的商品信息 Goods goods = goodsService.getById(record.getGoodsId()); record.setGoodName(goods.getName()); record.setImg(goods.getImg()); record.setPrice(goods.getPrice()); } // 返回查询结果 return Result.success(page); }
这段代码是一个基于SpringBoot框架的Java后端接口,用于实现分页查询购物车记录的功能。接口的路径为"/page",使用了@GetMapping注解。接口接受三个参数:name(默认值为空字符串)、pageNum(当前页码)、pageSize(每页显示的记录数)。接口首先构造了一个查询条件,按照购物车记录的ID倒序排序,如果name不为空,则按照商品名称进行模糊查询。然后获取当前登录用户,如果当前用户是普通用户,则只查询该用户的购物车记录。接着使用cartService的page方法实现分页查询购物车记录,将查询结果赋值给Page对象page。最后,将查询结果中每条购物车记录对应的商品信息查询出来,将商品信息赋值给购物车记录对象中的属性,并返回查询结果。
阅读全文
相关推荐










