@GetMapping("/page") public Result findPage(@RequestParam(defaultValue = "") String name, @RequestParam(defaultValue = "") String category, @RequestParam Integer pageNum, @RequestParam Integer pageSize) { QueryWrapper<Goods> queryWrapper = new QueryWrapper<>(); queryWrapper.orderByDesc("id"); if (!"".equals(name)) {// 如果商品名不为空 queryWrapper.like("name", name); } if (!"".equals(category)) { queryWrapper.eq("category", category); } User currentUser = TokenUtils.getCurrentUser();// 获取当前登录用户 if (currentUser.getRole().equals("ROLE_USER")) { queryWrapper.eq("status", 1);// 只返回状态为1的图书 } List<Praise> praises = praiseService.list();// 查询所有点赞记录 List<Collect> collects = collectService.list();// 查询所有收藏记录 Page<Goods> page = goodsService.page(new Page<>(pageNum, pageSize), queryWrapper); for (Goods goods : page.getRecords()) {// 遍历图书列表 // 计算商品点赞数 goods.setPraiseCount(praises.stream().filter(praise -> praise.getGoodsid().equals(goods.getId())).count()); // 计算商品收藏数 goods.setCollectCount(collects.stream().filter(c -> c.getGoodsid().equals(goods.getId())).count()); } return Result.success(page);// 返回查询结果 }
时间: 2023-06-20 07:07:12 浏览: 97
这段代码是一个 Spring Boot 中的 RestController,使用了 @GetMapping 注解来定义一个 GET 请求,请求路径为 /page。该方法接受四个参数:name、category、pageNum 和 pageSize,其中 name 和 category 为 String 类型的查询条件,pageNum 和 pageSize 为分页参数。在方法内部,使用 QueryWrapper 来构建查询条件,并按照 id 倒序排列。如果 name 不为空,则添加一个模糊查询条件;如果 category 不为空,则添加一个等于查询条件。获取当前登录用户并判断其角色,如果是普通用户则只返回状态为 1 的商品。然后查询所有点赞记录和收藏记录,并使用 PageHelper 进行分页查询。最后遍历查询到的商品列表,计算每个商品的点赞数和收藏数,并封装成 Result 对象返回。
相关问题
解释这行代码 @GetMapping("/page/{name}") public Result<PageInfo<UserInfo>> page(@RequestParam(defaultValue = "1") Integer pageNum, @RequestParam(defaultValue = "10") Integer pageSize, @PathVariable String name){ return Result.success(userInfoService.findPage(pageNum,pageSize,name)); }
这是一个使用Spring框架的Java代码,使用了@GetMapping注解,表示这是一个处理HTTP GET请求的方法,请求路径为"/page/{name}",其中{name}是一个占位符,表示请求路径中的变量,用@PathVariable注解标注。该方法的返回值类型是Result<PageInfo<UserInfo>>,表示一个包含了用户信息的结果对象。
该方法还有三个参数,分别是pageNum、pageSize和name,其中pageNum和pageSize是通过@RequestParam注解标注的,表示从请求参数中获取这两个参数,如果请求参数中没有这两个参数,则使用默认值1和10。name则是从请求路径中获取的占位符参数,用@PathVariable注解标注。
该方法调用了userInfoService的findPage方法,传入了pageNum、pageSize和name三个参数,用于查询并返回指定页码和页大小的用户信息。最终将查询结果封装成Result对象并返回给调用方。
@GetMapping("/page") public Result findPage(@RequestParam(defaultValue = "") String name, @RequestParam Integer pageNum, @RequestParam Integer pageSize) { QueryWrapper<Category> 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("user", currentUser.getUsername()); // } return Result.success(categoryService.page(new Page<>(pageNum, pageSize), queryWrapper)); }
这个代码片段是一个Spring Boot的控制器方法,使用了@GetMapping注解来处理GET请求,路径为/page。它接受三个请求参数:name(字符串类型,默认为空)、pageNum(整数类型)和pageSize(整数类型),并返回一个Result对象。
在方法体中,它首先创建了一个QueryWrapper对象,用于构建查询条件。然后根据id倒序排序查询结果。如果name参数不为空,则添加一个模糊查询条件。最后调用categoryService的page方法进行分页查询,并将查询结果封装到Result对象中返回。
注释掉的代码是用于根据当前用户角色限制查询结果的,如果当前用户是ROLE_USER角色,则添加一个等于查询条件。但是这部分代码被注释掉了,因此不会起作用。
阅读全文