controller\BuyerProductController.java
/** * 买点端商品 */ @RestController @RequestMapping("/buyer/product") public class BuyerProductController { @Autowired ProductService productService; @Autowired CategoryService categoryService; @GetMapping("/list") @Cacheable(cacheNames = "product" , key = "#sellerId" , condition = "#sellerId.length() > 3") public ResultVO<List<ProductVO>> list(@RequestParam("sellerId") String sellerId) { //获取所有上架商品 List<ProductInfo> productInfoList = productService.findUpAll(); //获取所有的类目 List<Integer> categoryTypes = productInfoList.stream() .map(e -> e.getCategoryType()) .collect(Collectors.toList()); List<ProductCategory> productCategoryList = categoryService.findByCategoryTypeIn(categoryTypes); //拼接VO List<ProductVO> productVOList = new ArrayList<>(); for(ProductCategory productCategory : productCategoryList) { ProductVO productVO = new ProductVO(); productVO.setCategoryName(productCategory.getCategoryName()); productVO.setCategoryType(productCategory.getCategoryType()); List<ProductInfoVO> productInfoVOList = new ArrayList<>(); for(ProductInfo productInfo : productInfoList) { if(productCategory.getCategoryType().equals(productInfo.getCategoryType())) { ProductInfoVO productInfoVO = new ProductInfoVO(); BeanUtils.copyProperties(productInfo , productInfoVO); productInfoVOList.add(productInfoVO); } } productVO.setProductInfos(productInfoVOList); productVOList.add(productVO); } return ResultUtils.success(productVOList); } }