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

在解決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;
    }
相關文章
相關標籤/搜索