QueryWrapper<VendorInfo> queryWrapper = new QueryWrapper<>(); if(storCode != null && !"".equals(storCode)){ queryWrapper.eq("MAT_CODE", matCode).eq("VENDOR_DESC", vendorDesc).eq("STORE_CODE",storCode); }else { queryWrapper.eq("MAT_CODE", matCode).eq("VENDOR_DESC", vendorDesc); }这个代码优化一下
时间: 2024-04-21 10:22:48 浏览: 97
可以使用链式调用来优化这段代码,可以将if-else语句简化为一行代码。以下是优化后的代码示例:
```java
QueryWrapper<VendorInfo> queryWrapper = new QueryWrapper<>()
.eq("MAT_CODE", matCode)
.eq("VENDOR_DESC", vendorDesc);
if (storCode != null && !"".equals(storCode)) {
queryWrapper.eq("STORE_CODE", storCode);
}
```
通过使用链式调用,我们可以在创建QueryWrapper实例后,直接连续调用eq方法来设置查询条件。这样可以避免重复的代码,并使代码更加简洁和易读。在if-else语句中,我们只需要在storCode不为空且不等于空字符串时,再调用eq方法来添加额外的查询条件。
相关问题
@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); }
这段代码实现了一个 GET 请求,查询商品列表,并且可以根据商品的状态进行筛选。其中,使用了 TokenUtils 工具类获取当前用户的 id。然后,通过 QueryWrapper 对象构建条件,根据传入的 status 参数进行筛选。接着,通过 goodsService.list(queryWrapper) 方法获取符合条件的商品列表。之后,遍历商品列表,分别获取每个商品的点赞列表和收藏列表,并且获取当前用户对该商品的点赞和收藏记录。最后,将这些信息设置到商品对象中,并且统计每个商品的点赞数量和收藏数量。最终,将商品列表返回给前端。
@GetMapping("/recommend") public Result recommend() { Integer userid = TokenUtils.getCurrentUser().getId(); QueryWrapper<Goods> queryWrapper = new QueryWrapper<>(); queryWrapper.eq( "status", 1).eq("recommend", 1); 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); }
这段代码是一个 Spring Boot 的 Controller,使用了 GetMapping 注解映射了一个 "/recommend" 的接口。该接口会返回一个 Result 对象,其中包含了一个 List<Goods> 对象,这个 List 包含了所有状态为1且被推荐的商品。在获取商品列表后,代码会对每个商品进行一些处理。首先,它会从数据库中获取所有点赞和收藏记录,并检查当前用户是否已经对该商品进行了点赞或收藏。然后,它会计算出该商品的点赞数和收藏数,将这些信息赋值给该商品。最后,这个方法会将这个 List<Goods> 对象返回给前端。
阅读全文