第一步:建立pager分页实体类
package com.quhai.common.utils;
import java.io.Serializable;
import java.util.List;
/**
* @ClassName: Page
* @Description:分页工具类
* @author: 李鹏
* @date: 2019-10-19
* @Version:1.0
*/
public class Page<E> implements Serializable{
private Integer pageSize=10;//每页显示的记录数,这里可以看到每页显示10条
private Integer totalRecord;//数据库中总的记录数
private Integer totalPage;//总页数
private Integer currentPage;//当前页为第几页,比如图中就为第9页
private List<E> list;
public Integer getPageSize() {
return pageSize;
}
public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
public Integer getTotalRecord() {
return totalRecord;
}
public void setTotalRecord(Integer totalRecord) {
this.totalRecord = totalRecord;
}
public Integer getTotalPage() {
return totalPage;
}
public void setTotalPage(Integer totalPage) {
this.totalPage = totalPage;
}
public Integer getCurrentPage() {
return currentPage;
}
public void setCurrentPage(Integer currentPage) {
this.currentPage = currentPage;
}
public List<E> getList() {
return list;
}
public void setList(List<E> list) {
this.list = list;
}
public Page(Integer pageNo,Integer pageSize,List<E> sourceList){
if(sourceList==null){
return;
}
//总记录数
this.totalRecord = sourceList.size();
//每页显示多小条数据
this.pageSize = pageSize;
//总页数
this.totalPage = this.totalRecord % this.pageSize == 0?this.totalRecord/this.pageSize:this.totalRecord/this.pageSize+1;
//当前第几页
if(this.totalPage < pageNo){
this.currentPage = this.totalPage;
}else{
this.currentPage = pageNo;
}
//起始索引
Integer fromIndex = this.pageSize * (this.currentPage - 1);
//结束索引
Integer endIndex = null;
if(this.pageSize * this.currentPage >this.totalRecord){
endIndex = this.totalRecord;
}else{
endIndex = this.pageSize * this.currentPage;
}
this.list = sourceList.subList(fromIndex, endIndex);
}
}
第二步:Controller 代码
/**
*
* 功能:药店端---药事订单--(未完成/待分配/已完成)
* 时间:2019年4月9日下午11:01:30
* @param flag (0 未完成,3 待分配,4 已完成)
* @param pageNo :页面传过来的第几页(具体页码【2:就是第二页】)
* @return Map
* @author lipeng
*/
@RequestMapping(value="/findDrugOrder",method = RequestMethod.POST)
public Map<String,Object> findDrugOrder(String flag,@RequestParam(defaultValue = "1") int pageNo){
Map<String,Object> map = new HashMap<>();
System.out.println("===========================");
Map<String, Object> resultMap = new HashMap<String, Object>();
String content = "成功!";
String result = "ok";
List<Map<String,Object>> list = null;
map.put("pageNo", pageNo);
map.put("flag", flag);
Pager pager =null;
int totalPage=0;
try {
pager=shanDongShopsService.findDayOrder(map);
totalPage= pager.getTotalPage();
} catch (Exception e) {
e.printStackTrace();
content = "失败!!";
result = "false";
} finally {
if(pageNo>totalPage){
resultMap.put("content", content);
resultMap.put("result", result);
resultMap.put("pagecount", null);
resultMap.put("data", null);
resultMap.put("totalPage", "0");
resultMap.put("pageSize", "0");
return resultMap;
}else{
if (pager.getList() != null && pager.getList().size()> 0) {
resultMap.put("content", content);
resultMap.put("result", result);
resultMap.put("pagecount", pager.getList().size());
resultMap.put("data", pager.getList());
resultMap.put("totalPage", pager.getTotalPage());//总页数
resultMap.put("pageSize", pager.getPageSize());//每页显示的记录数,这里可以看到每页显示10条
} else {
resultMap.put("content", content);
resultMap.put("result", result);
resultMap.put("pagecount", null);
resultMap.put("data", null);
resultMap.put("totalPage", "0");
resultMap.put("pageSize", "0");
}
}
}
return resultMap;
}
第三步:service 代码
/**
*
* 功能:药店端—药事订单–(未完成/待分配/已完成)
* 时间:2019年4月9日下午11:01:30
* @param flag (0 未完成,3 待分配,4 已完成)
* @return Map
* @author lipeng
*/
public Pager findDayOrder(Map<String, Object> map) {
int pageNo=(int) map.get(“pageNo”);
String flag=(String) map.get(“flag”);
List<Map<String, Object>> sourceList = new ArrayList<>();
if(StringUtils.isNotBlank(flag)){
if(“0”.equals(flag)){
sourceList=shanDongShopsMapper.findDayOrder();
}else if(“3”.equals(flag)){
sourceList=shanDongShopsMapper.findOrder_dfp();
}else if(“4”.equals(flag)){
sourceList=shanDongShopsMapper.findFinishOrders();
}
}
int pageSize=10;
Pager p = new Pager<Map<String, Object>>(pageNo,pageSize,sourceList);
return p;
}
第四步:dao层代码
/**
- 药店端DAO
- 时间:2019年4月9日下午11:00:00
- @author lipeng
/
@Mapper
public interface ShanDongShopsMapper {
/*- 功能:药店端—药事订单–未完成
- 时间:2019年4月9日下午11:01:30
- @return List
- @author lipeng
*/
//@Select(“SELECT u.realname,DATE_FORMAT(d.create_date,’%Y-%m-%d %H:%i:%s’) create_date ,d.medicine_payType,d.medicine_payAmount,CASE d.medicine_orderState WHEN ‘0’ THEN ‘待确认’ WHEN ‘1’ THEN ‘已确认’ WHEN ‘3’ THEN ‘待配送’ WHEN ‘4’ THEN ‘已完成’ end medicine_orderState FROM t_medicine_order d JOIN t_user_base u ON u.id=d.user_id WHERE d.medicine_orderState<>4 AND d.medicine_orderState<>3 AND d.medicine_orderState<>2”)
@Select(“SELECT d.id,u.realname,DATE_FORMAT(d.create_date,’%Y年%m月%d日’) create_date ,d.medicine_payType,d.medicine_payAmount,d.medicine_orderState,d.medicine_orderNum FROM t_medicine_order d JOIN t_user_base u ON u.id=d.user_id WHERE d.medicine_orderState<>4 AND d.medicine_orderState<>3 AND d.medicine_orderState<>2 AND d.medicine_orderState<>4 AND d.is_show=1”)
List<Map<String, Object>> findDayOrder();