商品评价 - 实现分页

    科技2023-12-31  78

    <!--pagehelper --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.12</version> </dependency> # 分页插件配置 pagehelper: helperDialect: mysql supportMethodsArguments: true /** * page: 第几页 * pageSize: 每页显示条数 */ PageHelper.startPage(page, pageSize); /** * 根据商品id查询商品的评价(分页) * @param itemId * @param level * @return */ public PagedGridResult queryPagedComments(String itemId, Integer level, Integer page, Integer pageSize); private PagedGridResult setterPagedGrid(List<?> list, Integer page) { PageInfo<?> pageList = new PageInfo<>(list); PagedGridResult grid = new PagedGridResult(); grid.setPage(page); grid.setRows(list); grid.setTotal(pageList.getPages()); grid.setRecords(pageList.getTotal()); return grid; } package com.leon.utils; import java.util.List; /** * * @Title: PagedGridResult.java * @Package com.leon.utils * @Description: 用来返回分页Grid的数据格式 */ public class PagedGridResult { private int page; // 当前页数 private int total; // 总页数 private long records; // 总记录数 private List<?> rows; // 每行显示的内容 public int getPage() { return page; } public void setPage(int page) { this.page = page; } public int getTotal() { return total; } public void setTotal(int total) { this.total = total; } public long getRecords() { return records; } public void setRecords(long records) { this.records = records; } public List<?> getRows() { return rows; } public void setRows(List<?> rows) { this.rows = rows; } } @Transactional(propagation = Propagation.SUPPORTS) @Override public PagedGridResult queryPagedComments(String itemId, Integer level, Integer page, Integer pageSize) { Map<String, Object> map = new HashMap<>(); map.put("itemId", itemId); map.put("level", level); // mybatis-pagehelper /** * page: 第几页 * pageSize: 每页显示条数 */ PageHelper.startPage(page, pageSize); List<ItemCommentVO> list = itemsMapperCustom.queryItemComments(map); for (ItemCommentVO vo : list) { vo.setNickname(DesensitizationUtil.commonDisplay(vo.getNickname())); } return setterPagedGrid(list, page); } @ApiOperation(value = "查询商品评论", notes = "查询商品评论", httpMethod = "GET") @GetMapping("/comments") public JSONResult comments( @ApiParam(name = "itemId", value = "商品id", required = true) @RequestParam String itemId, @ApiParam(name = "level", value = "评价等级", required = false) @RequestParam Integer level, @ApiParam(name = "page", value = "查询下一页的第几页", required = false) @RequestParam Integer page, @ApiParam(name = "pageSize", value = "分页的每一页显示的条数", required = false) @RequestParam Integer pageSize) { if (StringUtils.isBlank(itemId)) { return JSONResult.errorMsg(null); } if (page == null) { page = 1; } if (pageSize == null) { pageSize = COMMON_PAGE_SIZE; } PagedGridResult grid = itemService.queryPagedComments(itemId, level, page, pageSize); return JSONResult.ok(grid); } @Controller public class BaseController { public static final Integer COMMON_PAGE_SIZE = 10; public static final Integer PAGE_SIZE = 20; } public class ItemsController extends BaseController { @ApiOperation(value = "查询商品评论", notes = "查询商品评论", httpMethod = "GET") @GetMapping("/comments") public JSONResult comments( @ApiParam(name = "itemId", value = "商品id", required = true) @RequestParam String itemId, @ApiParam(name = "level", value = "评价等级", required = false) @RequestParam Integer level, @ApiParam(name = "page", value = "查询下一页的第几页", required = false) @RequestParam Integer page, @ApiParam(name = "pageSize", value = "分页的每一页显示的条数", required = false) @RequestParam Integer pageSize) { if (StringUtils.isBlank(itemId)) { return JSONResult.errorMsg(null); } if (page == null) { page = 1; } if (pageSize == null) { pageSize = COMMON_PAGE_SIZE; } PagedGridResult grid = itemService.queryPagedComments(itemId, level, page, pageSize); return JSONResult.ok(grid); }

     

    Processed: 0.010, SQL: 8