/*********************************************************************** * Project: baifenBinfa * ProjectName: 百分兵法管理系统 * Web: http://chuanyin.com * Author: * Email: * CreateTime: 202403/02 * Description: 暂无 ***********************************************************************/ using System; using System.Collections.Generic; using System.Linq.Expressions; using System.Threading.Tasks; using CoreCms.Net.IRepository; using CoreCms.Net.IRepository.UnitOfWork; using CoreCms.Net.Model.Entities; using CoreCms.Net.Model.ViewModels.Basics; using SqlSugar; namespace CoreCms.Net.Repository { /// /// 公告表 接口实现 /// public class CoreCmsNoticeRepository : BaseRepository, ICoreCmsNoticeRepository { public CoreCmsNoticeRepository(IUnitOfWork unitOfWork) : base(unitOfWork) { } /// /// 重写根据条件查询分页数据 /// /// 判断集合 /// 排序方式 /// 当前页面索引 /// 分布大小 /// /// public async Task> QueryPageAsync(Expression> predicate, Expression> orderByExpression, OrderByType orderByType, int pageIndex = 1, int pageSize = 20) { RefAsync totalCount = 0; var page = await DbClient.Queryable() .OrderByIF(orderByExpression != null, orderByExpression, orderByType) .WhereIF(predicate != null, predicate).Select(p => new CoreCmsNotice { id = p.id, title = p.title, type = p.type, sort = p.sort, isDel = p.isDel, createTime = p.createTime, contentBody = p.contentBody }).WithCache().ToPageListAsync(pageIndex, pageSize, totalCount); var list = new PageList(page, pageIndex, pageSize, totalCount); return list; } /// /// 获取首页组件数据 /// /// 判断集合 /// public async Task> QueryComponentAsync(Expression> predicate) { var list = await DbClient.Queryable() .WhereIF(predicate != null, predicate) .OrderBy(p => p.sort) .Select(p => (dynamic)new { p.id, p.title, p.type, p.sort, p.createTime }) .WithCache().ToListAsync(); return list; } } }