在解決PageHelper.startPage(page, size);的位置問題後,又遇到total等信息錯誤,主要仍是不細心,兩個不一樣的List實例化進PageInfo,不能混在一塊兒,同時要確保這兩個List的PageInfo相同(例如:total等page信息相同),才能 pageInfo.setList(stockGoodsDtos);java
問題代碼:app
Controller.javacode
public Wrapper<PageInfo<StockGoodsDto>> getStockGoodsByCondition(@RequestBody ShopGoods shopGoods, @ApiParam(name = "page", value = "分頁值", defaultValue = "0") @RequestParam(defaultValue = "0") Integer page, @ApiParam(name = "size", value = "每分頁返回的記錄數", defaultValue = "0") @RequestParam(defaultValue = "0") Integer size) { List<StockGoodsDto> list = shopGoodsService.getStockGoodsByCondition(shopGoods, page, size); PageInfo pageInfo = new PageInfo(list); return WrapMapper.ok(pageInfo); }
ServiceImpl.javaget
public List<StockGoodsDto> getStockGoodsByCondition(ShopGoods shopGoods, Integer page , Integer size) { List<StockGoodsDto> stockGoodsDtos = new ArrayList<>(); ... PageHelper.startPage(page, size); List<ShopGoods> shopGoodsList = shopGoodsMapper.getStockGoodsByCondition(shopGoods, specIds); if (shopGoodsList == null || shopGoodsList.size() == 0) { PageInfo pageInfo = new PageInfo(stockGoodsDtos); return pageInfo; } for (ShopGoods goods : shopGoodsList) { StockGoodsDto stockGoodsDto = new StockGoodsDto(); stockGoodsDto.setShopGoods(goods); for (ProdSpecInfoDto specInfoDto : prodSpecInfoDtos) { if (goods.getProductId().equals(specInfoDto.getSpecId())) { stockGoodsDto.setProdSpecInfoDto(specInfoDto); stockGoodsDtos.add(stockGoodsDto); } } } return stockGoodsDtos; }
修改後,正確代碼:it
Controller.javaio
public Wrapper<PageInfo<StockGoodsDto>> getStockGoodsByCondition(@RequestBody ShopGoods shopGoods, @ApiParam(name = "page", value = "分頁值", defaultValue = "0") @RequestParam(defaultValue = "0") Integer page, @ApiParam(name = "size", value = "每分頁返回的記錄數", defaultValue = "0") @RequestParam(defaultValue = "0") Integer size) { return WrapMapper.ok(shopGoodsService.getStockGoodsByCondition(shopGoods, page, size)); }
ServiceImpl.javaList
public PageInfo<StockGoodsDto> getStockGoodsByCondition(ShopGoods shopGoods, Integer page , Integer size) { List<StockGoodsDto> stockGoodsDtos = new ArrayList<>(); ... PageHelper.startPage(page, size); List<ShopGoods> shopGoodsList = shopGoodsMapper.getStockGoodsByCondition(shopGoods, specIds); if (shopGoodsList == null || shopGoodsList.size() == 0) { PageInfo pageInfo = new PageInfo(stockGoodsDtos); return pageInfo; } for (ShopGoods goods : shopGoodsList) { StockGoodsDto stockGoodsDto = new StockGoodsDto(); stockGoodsDto.setShopGoods(goods); for (ProdSpecInfoDto specInfoDto : prodSpecInfoDtos) { if (goods.getProductId().equals(specInfoDto.getSpecId())) { stockGoodsDto.setProdSpecInfoDto(specInfoDto); stockGoodsDtos.add(stockGoodsDto); } } } PageInfo pageInfo = new PageInfo(shopGoodsList); pageInfo.setList(stockGoodsDtos); return pageInfo; }