package com.kmall.common.utils;

import com.kmall.common.xss.SQLFilter;

import java.util.LinkedHashMap;
import java.util.Map;

/**
 * 查询参数
 *
 * @author Scott
 * @email
 * @date 2017-03-14 23:15
 */
public class Query extends LinkedHashMap<String, Object> {
    private static final long serialVersionUID = 1L;
    //当前页码
    private int page;
    //每页条数
    private int limit = 10;

    public Query(Map<String, Object> params) {
        this.putAll(params);

        //分页参数
        Object page = params.get("page");
        Object limit = params.get("limit");
        this.page = page == null ? 1 :Integer.parseInt(page.toString());
        this.limit = limit == null ? this.limit :Integer.parseInt(limit.toString());
        this.put("offset", (this.page - 1) * this.limit);
        this.put("page", this.page);
        this.put("limit", this.limit);

        //防止SQL注入（因为sidx、order是通过拼接SQL实现排序的，会有SQL注入风险）
        String sidx = null != params.get("sidx") ? params.get("sidx").toString() : "";
        String order = null != params.get("order") ? params.get("order").toString() : "";
        this.put("sidx", SQLFilter.sqlInject(sidx));
        this.put("order", SQLFilter.sqlInject(order));
    }


    public int getPage() {
        return page;
    }

    public void setPage(int page) {
        this.page = page;
    }

    public int getLimit() {
        return limit;
    }

    public void setLimit(int limit) {
        this.limit = limit;
    }
}
