package com.oceansoft.swl.qt.common.domain;
import com.oceansoft.uums.common.constant.Constant;
/**
* 分页工具类
*
* @author LL
*
*/
public class MfysPageUtil {
/**
* 计算分页开始参数
*
* @param pageIndex
* 当前页索引
* @param pageSize
* 分页大小
* @return 返回分页起始行号
*/
public static int getStartRow(int pageIndex, int pageSize) {
if (pageIndex < 0) {
pageIndex = 1;
}
if (pageSize < 0) {
pageSize = MfsyConstant.PAGE_SIZE;
}
return (pageIndex * pageSize - pageSize) + 1;
}
/**
* 计算分页开始参数
*
* @param pageIndex
* 当前页索引
* @return 返回分页起始行号
*/
public static int getStartRow(int pageIndex) {
if (pageIndex < 0) {
pageIndex = 1;
}
return (pageIndex *MfsyConstant.PAGE_SIZE - 5) + 1;
}
/**
* 计算分页结束参数
*
* @param pageIndex
* 当前页索引
* @param pageSize
* 分页大小
* @return 返回分页结束行号
*/
public static int getEndRow(int pageIndex, int pageSize) {
if (pageIndex < 0) {
pageIndex = 1;
}
if (pageSize < 0) {
pageSize = MfsyConstant.PAGE_SIZE;
}
return pageIndex * pageSize;
}
/**
* 计算分页结束参数
*
* @param pageIndex
* 当前页索引
* @return 返回分页结束行号
*/
public static int getEndRow(int pageIndex) {
if (pageIndex < 0) {
pageIndex = 1;
}
return pageIndex * MfsyConstant.PAGE_SIZE;
}
/**
* 获取分页SQL
*
* @param pageIndex当前页索引
* @param pageSize
* 分页大小
* @return 返回分页SQL
*/
public static String getPageSQL(int pageIndex, int pageSize) {
if (pageIndex < 0) {
pageIndex = 1;
}
if (pageSize < 0) {
pageSize = MfsyConstant.PAGE_SIZE;
}
return " BETWEEN " + ((pageIndex * pageSize - pageSize) + 1) + " AND " + pageIndex * pageSize;
}
/**
* 获取统计总数SQL
*
* @param pageIndex
* @return 返回分页SQL
*/
public static String getCountSQL(String sql) {
return String.format("SELECT COUNT(1) FROM (%s)", sql);
}
/**
* 获取分页SQL
*
* @param pageIndex
* @return 返回分页SQL
*/
public static String getPageSQL(String sql, int pageIndex) {
if (pageIndex < 0) {
pageIndex = 1;
}
String sb = new StringBuffer("SELECT * FROM (SELECT TMP_00.*, ROWNUM RUM FROM (").append(sql)
.append(") TMP_00 ")
.append(") TMP_0 WHERE TMP_0.RUM <= ").append(pageIndex * MfsyConstant.PAGE_SIZE).append(" AND TMP_0.RUM >= ")
.append((pageIndex * MfsyConstant.PAGE_SIZE - MfsyConstant.PAGE_SIZE) + 1).toString();
return sb;
}
}