@GetMapping public Result findAll(@RequestParam(required = false) Boolean status) { Integer userid = TokenUtils.getCurrentUser().getId(); QueryWrapper<Goods> queryWrapper = new QueryWrapper<>(); queryWrapper.eq(status != null, "status", status); List<Goods> list = goodsService.list(queryWrapper); for (Goods goods : list) { List<Praise> praises = praiseService.list(); List<Collect> collects = collectService.list(); Praise praise = praiseService.getOne(new QueryWrapper<Praise>().eq("userid", userid).eq("goodsid", goods.getId())); Collect collect = collectService.getOne(new QueryWrapper<Collect>().eq("userid", userid).eq("goodsid", goods.getId())); goods.setHasPraise(praise != null); goods.setHasCollect(collect != null); goods.setPraiseCount(praises.stream().filter(p -> p.getGoodsid().equals(goods.getId())).count()); goods.setCollectCount(collects.stream().filter(c -> c.getGoodsid().equals(goods.getId())).count()); } return Result.success(list); }
时间: 2023-06-20 08:07:16 浏览: 102
这段代码实现了一个 GET 请求,查询商品列表,并且可以根据商品的状态进行筛选。其中,使用了 TokenUtils 工具类获取当前用户的 id。然后,通过 QueryWrapper 对象构建条件,根据传入的 status 参数进行筛选。接着,通过 goodsService.list(queryWrapper) 方法获取符合条件的商品列表。之后,遍历商品列表,分别获取每个商品的点赞列表和收藏列表,并且获取当前用户对该商品的点赞和收藏记录。最后,将这些信息设置到商品对象中,并且统计每个商品的点赞数量和收藏数量。最终,将商品列表返回给前端。
相关问题
@GetMapping public Result findAll() { return Result.success(addressService.list(new QueryWrapper<Address>().eq("userid", TokenUtils.getCurrentUser().getId()))); }
这段代码是一个基于Spring框架的RESTful API的接口实现,使用了@GetMapping注解表示这是一个GET请求。该接口的功能是返回当前用户的所有地址信息。
具体实现是通过调用addressService的list方法,并传入一个查询条件,查询条件是根据当前用户的ID查询其所有的地址信息。最后将查询结果通过Result.success方法封装成一个标准的响应格式并返回。
@GetMapping("/page") public Result findPage(@RequestParam(defaultValue = "") String name, @RequestParam Integer pageNum, @RequestParam Integer pageSize) { QueryWrapper<Collect> 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()); } return Result.success(collectService.page(new Page<>(pageNum, pageSize), queryWrapper)); }
这段代码是一个 Spring Boot 的 Controller 类中的方法,使用了 @GetMapping 注解来处理 HTTP GET 请求。它接受三个请求参数:name、pageNum 和 pageSize。
在方法体内,它首先创建了一个 QueryWrapper 对象,用于构建查询条件。然后按照 id 字段倒序排序,如果传入了 name 参数,则使用 like 条件进行模糊查询。接着,它获取当前用户的角色信息,如果用户角色为 ROLE_USER,则添加一个 eq 条件,查询该用户收藏的数据。
最后,它使用 collectService 的 page 方法进行分页查询,并将查询结果封装成 Result 对象返回给前端。
阅读全文