在common项目resp目录下生成PageResp类:
public class PageResp<T> implements Serializable { /** * 总条数 */ private Long total; /** * 当前页的列表 */ private List<T> list; public Long getTotal() { return total; } public void setTotal(Long total) { this.total = total; } public List<T> getList() { return list; } public void setList(List<T> list) { this.list = list; } @Override public String toString() { return "PageResp{" + "total=" + total + ", list=" + list + '}'; } }
在Member项目的service层加入queryList类:
public PageResp<PassengerQueryResp> queryList(PassengerQueryReq req){ PassengerExample passengerExample = new PassengerExample(); // criteria会以最后一次为准 如果使用两次 所以需要提取出来只Criteria一次 PassengerExample.Criteria criteria = passengerExample.createCriteria(); if ( ObjectUtil.isNotNull(req.getMemberId())){ criteria.andMemberIdEqualTo(req.getMemberId()); } LOG.info("查询页码:{}", req.getPage()); LOG.info("每页条数:{}", req.getSize()); // 查第一页查两条 它会对执行的sql进行拦截 会记住做一个分页 然后往下执行碰到的第一个查询他就会做一个分页limit。(后续的就不会执行) PageHelper.startPage(req.getPage(),req.getSize()); List<Passenger> passengerList= passengerMapper.selectByExample(passengerExample); PageInfo<Passenger> pageInfo =new PageInfo<>(passengerList); LOG.info("总行数:{}", pageInfo.getTotal()); LOG.info("总页数:{}", pageInfo.getPages()); List<PassengerQueryResp> list = BeanUtil.copyToList(passengerList, PassengerQueryResp.class); PageResp<PassengerQueryResp> PageResp = new PageResp<>(); PageResp.setTotal(pageInfo.getTotal()); PageResp.setList(list); return PageResp; }
在控制层也加入:
@GetMapping("/query-list") public CommonResp<PageResp<PassengerQueryResp>> queryList(@Valid PassengerQueryReq req){ req.setMemberId(LoginMemberContext.getId()); PageResp<PassengerQueryResp> list = passengerService.queryList(req); return new CommonResp<>(list); }
格式化时间和日期: