2020-06-12 11:37:57 版本 : 人防开发框架_通用分页、通用导出参数详解
作者: 余承浩 于 2020年06月12日 发布在分类 / 人防组 / 人防后端 下,并于 2020年06月12日 编辑
 历史版本

修改日期 修改人 备注
2020-06-12 11:43:23[当前版本] 余承浩 格式调整
2020-06-12 11:42:16 余承浩 格式调整
2020-06-12 11:37:57 余承浩 创建版本

通用查询参数

        /// <summary>
        /// 每页记录数
        /// </summary>
        int PageSize { get; set; }
        /// <summary>
        /// 当前页码
        /// </summary>
        int PageIndex { get; set; }
        /// <summary>
        /// 查询条件
        /// </summary>
        List<ModelFilter> Filters { get; set; }
        /// <summary>
        /// 排序条件
        /// </summary>
        List<ModelSort> Sorts { get; set; }

PageSize 

        注释: 每页记录数

        需要检索全部复合条件的数据 设置PageSize =-1 即可

PageIndex 

        注释: 当前检索页码

Filters

        注释:参与检索的字段

    /// <summary>
    /// 过滤
    /// </summary>
    public class ModelFilter
    {
        /// <summary>
        /// 过滤字段名
        /// </summary>
        public string Name { get; set; }
        /// <summary>
        /// 过滤字段值
        /// </summary>
        public string Value { get; set; }
        /// <summary>
        /// 过滤类别
        /// </summary>
        public FieldType FieldType { get; set; }
        /// <summary>
        /// 操作类型
        /// </summary>
        public ExpressionType OperType { get; set; }
    }

            Name:检索的字段名

            Value:检索字段对应的值(布尔类型直接true/false)

            FieldType:过滤类别

    public enum FieldType
    {
        /// <summary>
        /// 默认检索类型
        /// </summary>
        Default = -1,
        /// <summary>
        /// 字符串
        /// </summary>
        String,
        /// <summary>
        /// 整型
        /// </summary>
        Int,
        /// <summary>
        /// 长整形
        /// </summary>
        Long,
        /// <summary>
        /// 布尔类型
        /// </summary>
        Boolean,
        /// <summary>
        /// 该类型暂时只支持ToString("yyyy-MM-dd").equals操作
        /// </summary>
        DateTime,
        /// <summary>
        /// 枚举类型
        /// </summary>
        Enum
    }

            OperType:操作类型

    /// <summary>
    /// 对比方式枚举
    /// </summary>
    public enum ExpressionType
    {
        /// <summary>
        ///  包含或者类似
        /// </summary>
        Contains = 0,
        /// <summary>
        /// 等于
        /// </summary>
        Equal,
        /// <summary>
        /// 小于
        /// </summary>
        LessThan,
        /// <summary>
        /// 小于等于
        /// </summary>
        LessThanOrEqual,
        /// <summary>
        /// 大于
        /// </summary>
        GreaterThan,
        /// <summary>
        /// 大于等于
        /// </summary>
        GreaterThanOrEqual,
        /// <summary>
        /// 不等于
        /// </summary>
        NotEqual = 6
    }

PS:

  1. DateTime类型不支持Contains操作
  2. DateTime?类型暂不支持各种操作,后期会解决这个问题
  3. Enum类型不支持Contains操作

Filters

        注释:排序字段

    /// <summary>
    /// 排序
    /// </summary>
    public class ModelSort
    {
        /// <summary>
        /// 排序字段名
        /// </summary>
        public string SortName { get; set; }
        /// <summary>
        /// 排序类型
        /// </summary>
        public OrderByType SortType { get; set; }
    }

            SortName:排序字段名

            SortType:排序方式(升序0 降序1)

导出参数

        查询参数与上述一致

sheetName

        注释:导出的文件名(默认为 数据导出表.xlsx

PS:

请严格按照上述规则传参,以免带来不必要的重构

强烈建议在 DateTime?类型的检索问题解决之前,后端开发尽量不设置参与检索的字段类型为 DateTime?




历史版本-目录  [回到顶端]
    知识分享平台 -V 4.8.7 -wcp