【.net core】【watercloud】增加多条件排序

在项目:WaterCloud.Data\Extensions\SqlSugarExtensions.cs文件中修改方法:

注释代码为框架自带代码

		public static async Task<List<T>> ToPageListAsync<T>(this ISugarQueryable<T> query, SoulPage<T> pagination)
		{
			var tempData = query;
			List<FilterSo> filterSos = pagination.getFilterSos();
			if (filterSos != null && filterSos.Count > 0)
			{
				tempData = tempData.GenerateFilter("a", filterSos);
			}
            #region 修改内容
            if (pagination.order.Contains(","))
            {
                string orderByStr = "";
                var fieldArray = pagination.field.Split(',');
                var orderArray = pagination.order.Split(',');
                for (int i = 0; i < fieldArray.Length; i++)
                {
                    orderByStr += $"{fieldArray[i]} {orderArray[i]},";
                }
                if (!string.IsNullOrEmpty(orderByStr))
                {
                    tempData = tempData.OrderBy(orderByStr.Substring(0, orderByStr.Length - 1));
                }

            }
            else
            {
                if (pagination.order == "desc")
                {
                    tempData = tempData.OrderBy(pagination.field + " " + pagination.order);
                }
                else
                {
                    tempData = tempData.OrderBy(pagination.field);
                }
            }
            #endregion
            #region 框架原有内容
            //         if (pagination.order == "desc")
            //{
            //	tempData = tempData.OrderBy(pagination.field + " " + pagination.order);
            //}
            //else
            //{
            //	tempData = tempData.OrderBy(pagination.field);
            //}
            #endregion

            RefAsync<int> totalCount = 0;
			var data = await tempData.ToPageListAsync(pagination.page, pagination.rows, totalCount);
			pagination.count = totalCount;
			return data;
		}

		public static async Task<List<T>> ToPageListAsync<T>(this ISugarQueryable<T> query, Pagination pagination)
		{
			var tempData = query;
			RefAsync<int> totalCount = 0;
            #region 修改内容
            if (pagination.order.Contains(","))
            {
                string orderByStr = "";
                var fieldArray = pagination.field.Split(',');
                var orderArray = pagination.order.Split(',');
                for (int i = 0; i < fieldArray.Length; i++)
                {
                    orderByStr += $"{fieldArray[i]} {orderArray[i]},";
                }
                if (!string.IsNullOrEmpty(orderByStr))
                {
                    tempData = tempData.OrderBy(orderByStr.Substring(0, orderByStr.Length - 1));
                }

            }
            else
            {
                if (pagination.order == "desc")
                {
                    tempData = tempData.OrderBy(pagination.field + " " + pagination.order);
                }
                else
                {
                    tempData = tempData.OrderBy(pagination.field);
                }
            }
            #endregion
            #region 框架原有内容
            //         if (pagination.order == "desc")
            //{
            //	tempData = tempData.OrderBy(pagination.field + " " + pagination.order);
            //}
            //else
            //{
            //	tempData = tempData.OrderBy(pagination.field);
            //}
            #endregion

            var data = await tempData.ToPageListAsync(pagination.page, pagination.rows, totalCount);
			pagination.records = totalCount;
			return data;
		}

在使用时可以给pagination.field和pagination.order传多个排序条件,以逗号分隔

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值