解決PageHelper.startPage(page, size)后,關於PageInfo的total等屬性不正確等問題


在解決PageHelper.startPage(page, size);的位置問題后,又遇到total等信息錯誤,主要還是不細心,兩個不同的List實例化進PageInfo,不能混在一起,同時要確保這兩個List的PageInfo相同(例如:total等page信息相同),才能 pageInfo.setList(stockGoodsDtos);

問題代碼:

Controller.java

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.java

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;
    }

修改后,正確代碼:

Controller.java

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.java

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;
    }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM