package com.ssm.util.page;

import java.util.List;  

import com.github.pagehelper.Page;  
import com.ssm.util.page.PagedResult;  
public class BeanUtil {  
	  
	/**  
	 * 将List转换成pageResult对象返回  
	 */  
	  
	    public static <T> PagedResult<T> toPagedResult(List<T> datas) {  
	        PagedResult<T> result = new PagedResult<T>();  
	        if (datas instanceof Page) {  
	            Page<T> page = (Page<T>) datas;  
	            result.setPageNo(page.getPageNum());  
	            result.setPageSize(page.getPageSize());  
	            result.setDataList(page.getResult());  
	            result.setTotal(page.getTotal());  
	            result.setPages(page.getPages());  
	            /* 计算 页面页码 开始和  结束  控制 只显示 5页  */
	            int totalPage = page.getPages();//总页数
	            int pageNo = page.getPageNum(); //当前页
	            int startPage = 0; //页面页码开始页
	            int endPage =0;//页面页码结束页
				if((pageNo - 2)>0){
					startPage = pageNo-2;
				}else if((pageNo-1>0)){
					startPage = pageNo-1;
				}else{
					startPage = pageNo;
				}
				if(totalPage <= 5){
					endPage = totalPage;
					startPage = 1;
				}else{
					endPage = startPage+4;
					if(endPage > totalPage){//最大页码不能超过总页码
						endPage = totalPage;
						startPage = totalPage -4;
					}
				}
	            
				result.setStartPage(startPage);
				result.setEndPage(endPage);
	        }  
	        else {  
	            result.setPageNo(1);  
	            result.setPageSize(datas.size());  
	            result.setDataList(datas);  
	            result.setTotal(datas.size());  
	            
	            /* 只有 1页  */
				result.setStartPage(1);
				result.setEndPage(1);
	            
	        }  
	  
	        return result;  
	    }  
	  
	}  
