/**
* 分页查询电影动态信息
* @param page
* @param pageSize
* @return
*/
@Override
public List<WebSiteInfo> list(WebSiteInfo webSiteInfo, Integer page, Integer pageSize) {
Pageable pageable=new PageRequest(page, pageSize,Sort.Direction.DESC,"publishDate");
Page<WebSiteInfo> pageWebSite=webSiteInfoRepository.findAll(new Specification<WebSiteInfo>() {
@Override
public Predicate toPredicate(Root<WebSiteInfo> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
Predicate predicate=cb.conjunction();
if(webSiteInfo!=null){
if(StringUtil.isNotEmpty(webSiteInfo.getInfo())){
predicate.getExpressions().add(cb.like(root.get("info"), "%"+webSiteInfo.getInfo().trim()+"%"));
}
}
return predicate;
}
}, pageable);
return pageWebSite.getContent();
}
/**
* 获取总记录数
* @return
*/
@Override
public Long getCount(WebSiteInfo webSiteInfo) {
Long count=webSiteInfoRepository.count(new Specification<WebSiteInfo>() {
@Override
public Predicate toPredicate(Root<WebSiteInfo> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
Predicate predicate=cb.conjunction();
if(webSiteInfo!=null){
if(StringUtil.isNotEmpty(webSiteInfo.getInfo())){
predicate.getExpressions().add(cb.like(root.get("info"), "%"+webSiteInfo.getInfo().trim()+"%"));
}
}
return predicate;
}
});
return count;
}
/**
* 生成分页代码
* @param targetUrl 目标地址
* @param totalNum 总记录数
* @param currentPage 当前页
* @param pageSize 每页大小
* @return
*/
public static String genPagination(String targetUrl,long totalNum,int currentPage,int pageSize){
long totalPage=totalNum%pageSize==0?totalNum/pageSize:totalNum/pageSize+1;
if(totalPage==0){
return "未查询到数据";
}else{
StringBuffer pageCode=new StringBuffer();
pageCode.append("<li><a href='"+targetUrl+"/1'>首页</a></li>");
if(currentPage>1){
pageCode.append("<li><a href='"+targetUrl+"/"+(currentPage-1)+"'>上一页</a></li>");
}else{
pageCode.append("<li class='disabled'><a href='#'>上一页</a></li>");
}
for(int i=currentPage-2;i<=currentPage+2;i++){
if(i<1||i>totalPage){
continue;
}
if(i==currentPage){
pageCode.append("<li class='active'><a href='"+targetUrl+"/"+i+"'>"+i+"</a></li>");
}else{
pageCode.append("<li><a href='"+targetUrl+"/"+i+"'>"+i+"</a></li>");
}
}
if(currentPage<totalPage){
pageCode.append("<li><a href='"+targetUrl+"/"+(currentPage+1)+"'>下一页</a></li>");
}else{
pageCode.append("<li class='disabled'><a href='#'>下一页</a></li>");
}
pageCode.append("<li><a href='"+targetUrl+"/"+totalPage+"'>尾页</a></li>");
return pageCode.toString();
}
}
/**
* 分页查询 电影网站动态信息
* @param page
* @return
* @throws Exception
*/
@RequestMapping("/list/{id}")
public ModelAndView list(@PathVariable(value="id",required=false)Integer page)throws Exception{
ModelAndView mav=new ModelAndView();
List<WebSiteInfo> webSiteInfoList=webSiteInfoService.list(null, page-1, 20);
Long total=webSiteInfoService.getCount(null);
mav.addObject("webSiteInfoList", webSiteInfoList);
mav.addObject("pageCode", PageUtil.genPagination("/webSiteInfo/list", total, page, 20));
mav.addObject("title", "电影网站动态信息列表");
mav.addObject("mainPage", "webSiteInfo/list");
mav.addObject("mainPageKey", "#f");
mav.setViewName("index");
return mav;
}