package org.fouram.core.util;

import java.util.List;

import org.fouram.core.base.model.Page;
import org.fouram.core.base.model.PageData;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

public class PageUtil {
	
	public static final String SUM_COUNT = "ZS";

	public static Page getPage(PageData pd, Page page){
		String sEcho = "0";// 记录操作的次数 每次加1
		String iDisplayStart = "0";// 起始
		String iDisplayLength = "10";// size
		String mDataProp = "mDataProp_";
		String sortName = "";// 排序字段
		String iSortCol_0 = "";// 排序索引
		String sSortDir_0 = "";// 排序方式
		// 获取jquery datatable当前配置参数
		JSONArray jsonArray = JSONArray.parseArray(pd.getString("aoData"));
		for (int i = 0; i < jsonArray.size(); i++) {
			try {
				JSONObject jsonObject = (JSONObject) jsonArray.get(i);
				if (jsonObject.get("name").equals("sEcho")) {
					sEcho = jsonObject.get("value").toString();
				} else if (jsonObject.get("name").equals("iDisplayStart")) {
					iDisplayStart = jsonObject.get("value").toString();
				} else if (jsonObject.get("name").equals("iDisplayLength")) {
					iDisplayLength = jsonObject.get("value").toString();
				} else if (jsonObject.get("name").equals("sSortDir_0")) {
					sSortDir_0 = jsonObject.get("value").toString();
				} else if (jsonObject.get("name").equals("iSortCol_0")) {
					iSortCol_0 = jsonObject.get("value").toString();
					mDataProp = mDataProp + "" + iSortCol_0;
					for (int j = 0; j < jsonArray.size(); j++) {
						JSONObject jsonObject1 = (JSONObject) jsonArray.get(j);
						if (jsonObject1.get("name").equals(mDataProp)) {
							sortName = jsonObject1.get("value").toString();
						}
					}
				}

			} catch (Exception e) {
				break;
			}
		}

		page.setPd(pd);
		page.setOrderDirection(sSortDir_0);
		page.setOrderField(sortName);
		page.setPageSize(Integer.valueOf(iDisplayLength));
		page.setPageCurrent(Integer.valueOf(iDisplayStart));
		page.setsEcho(Integer.parseInt(sEcho) + 1);
		return page;
	}
	
	public static String getResult(Page page, List<? extends Object> list, Object total){
		JSONObject obj = new JSONObject();
		obj.put("sEcho", page.getsEcho());// 不知道这个值有什么用
		obj.put("iTotalRecords", total);// 实际的行数
		obj.put("iTotalDisplayRecords", total);// 显示的行数,这个要和上面写的一样
		obj.put("aaData", list);// 要以JSON格式返回
		return JSONUtil.toString(obj);
	}
	
}