同时分页展示,三个表包含共同字段domain,其他字段无联系。以domain为查询条件进行分页,ThreeTypesDomainVo为拼接三个表的实体类。
代码:
/**
*
* @param domain 查询参数(忽略)
* @param pageNo
* @param pageSize
* @return
*/
public PageInfo<ThreeTypesDomainVo> getDomainList(String domain, int pageNo, int pageSize){
int max=getMax(domainFilterurlMapper.getCount(domain),domainNotmatchurlMapper.getCount(domain),domainRulemetricMapper.getCount(domain));
com.github.pagehelper.Page page0=null;
if (domainFilterurlMapper.getCount(domain)==max){ //以数据条数最多的为标准分页
PageHelper.startPage(pageNo, pageSize);
List<DomainFilterurl> list11 = domainFilterurlMapper.selectAllByDomain(domain);
PageInfo<DomainFilterurl> pageInfo = new PageInfo<>(list11);
page0= new com.github.pagehelper.Page(pageInfo.getPageNum(), pageInfo.getPageSize());
page0.setTotal(pageInfo.getTotal());
int flag=page0.getStartRow();
for (DomainFilterurl domainFilterurl:list11) {
flag++;
//String domainPv1=null;
String domainPv2=null;
String domainPv3=null;
//String domain1=null;
String domain2=null;
String domain3=null;
List<DomainNotmatchurl> list2=domainNotmatchurlMapper.selectAllByDomain(domain);
List<DomainRulemetric> list3=domainRulemetricMapper.selectAllByDomain(domain);
if (list2.size()>=flag){ //判断其他两个表是否还有数据
domainPv2=list2.get(flag-1).getDomainPv();
domain2=list2.get(flag-1).getDomain();
}
if (list3.size()>=flag){
domainPv3=list3.get(flag-1).getDomainPv();
domain3=list3.get(flag-1).getDomain();
}
ThreeTypesDomainVo threeTypesDomainVo=new ThreeTypesDomainVo(domainFilterurl.getDomain(),domainFilterurl.getDomainPv(),null,domain2,domainPv2,null,domain3,domainPv3,null);
page0.add(threeTypesDomainVo);
}
}else if (domainNotmatchurlMapper.getCount(domain)==max){
同理......
}
}else if (domainRulemetricMapper.getCount(domain)==max){
同理......
}
}
return new PageInfo<ThreeTypesDomainVo>(page0);
}
代码水平一般~~ 欢迎大家批评指正----