package com.cim.idm.service;

import com.cim.idm.utils.PageResult;
import com.cim.idm.wmsextend.generic.errorHandler.CustomException;

import java.util.List;
import java.util.Map;


public interface QueryService {
    /**
     * 执行查询并返回结果列表
     *
     * @param queryId 查询标识符，用于指定具体的查询
     * @param version 查询版本，用于指定查询的不同版本
     * @param bindMap 查询参数绑定，包含查询所需的参数
     * @return 查询结果列表，每个结果以Map形式表示，键为列名，值为数据值
     */
    public List<Map<String, Object>> getQueryResult(String queryId, String version, Map bindMap) throws CustomException;

    /**
     * 执行查询并返回分页结果
     *
     * @param queryId 查询标识符，用于指定具体的查询
     * @param version 查询版本，用于指定查询的不同版本
     * @param bindMap 查询参数绑定，包含查询所需的参数
     * @param pageNum 页码，表示请求的页面编号
     * @param pageSize 页面大小，表示每页包含的记录数
     * @return 查询结果的分页对象，包含页码、页面大小及查询结果列表
     */
    PageResult<Map<String, Object>> getQueryResultPage(String queryId, String version, Map bindMap, int pageNum, int pageSize) throws CustomException;

    /**
     * 执行查询并返回分页结果
     * @param sql
     * @param bindMap
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageResult<Map<String, Object>> getQueryResultPage(String sql, Map<String, Object> bindMap, int pageNum, int pageSize);
}
