/*********************************************************************** * 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.Configuration; using CoreCms.Net.IRepository; using CoreCms.Net.IRepository.UnitOfWork; using CoreCms.Net.Model.Entities; using CoreCms.Net.Model.ViewModels.Basics; using CoreCms.Net.Utility.Extensions; using SqlSugar; namespace CoreCms.Net.Repository { /// /// 店铺店员关联表 接口实现 /// public class CoreCmsClerkRepository : BaseRepository, ICoreCmsClerkRepository { public CoreCmsClerkRepository(IUnitOfWork unitOfWork) : base(unitOfWork) { } #region 获取门店关联用户分页数据 /// /// 获取门店关联用户分页数据 /// /// 判断集合 /// 排序方式 /// 当前页面索引 /// 分布大小 /// /// 是否使用WITH(NOLOCK) /// public async Task> QueryStoreClerkDtoPageAsync(Expression> predicate, Expression> orderByExpression, OrderByType orderByType, int pageIndex = 1, int pageSize = 20, bool blUseNoLock = false) { RefAsync totalCount = 0; List page; if (blUseNoLock) { page = await DbClient.Queryable((p, sst, ccu) => new JoinQueryInfos( JoinType.Left, p.storeId == sst.id, JoinType.Left, p.userId == ccu.id )) .Select((p, sst, ccu) => new StoreClerkDto { id = p.id, storeId = p.storeId, userId = p.userId, isDel = p.isDel, createTime = p.createTime, updateTime = p.updateTime, storeName = sst.storeName, nickName = ccu.nickName, mobile = ccu.mobile, avatarImage = ccu.avatarImage, }).With(SqlWith.NoLock) .MergeTable() .OrderByIF(orderByExpression != null, orderByExpression, orderByType) .WhereIF(predicate != null, predicate) .ToPageListAsync(pageIndex, pageSize, totalCount); } else { page = await DbClient.Queryable((p, sst, ccu) => new JoinQueryInfos( JoinType.Left, p.storeId == sst.id, JoinType.Left, p.userId == ccu.id )) .Select((p, sst, ccu) => new StoreClerkDto { id = p.id, storeId = p.storeId, userId = p.userId, isDel = p.isDel, createTime = p.createTime, updateTime = p.updateTime, storeName = sst.storeName, nickName = ccu.nickName, mobile = ccu.mobile, avatarImage = ccu.avatarImage, }) .MergeTable() .OrderByIF(orderByExpression != null, orderByExpression, orderByType) .WhereIF(predicate != null, predicate) .ToPageListAsync(pageIndex, pageSize, totalCount); } var list = new PageList(page, pageIndex, pageSize, totalCount); return list; } #endregion #region 获取单个门店用户数据 /// /// 获取单个门店用户数据 /// /// 判断集合 /// 是否使用WITH(NOLOCK) /// public async Task QueryStoreClerkDtoByClauseAsync(Expression> predicate, bool blUseNoLock = false) { StoreClerkDto obj; if (blUseNoLock) { obj = await DbClient.Queryable((p, sst, ccu) => new JoinQueryInfos( JoinType.Left, p.storeId == sst.id, JoinType.Left, p.userId == ccu.id )) .Select((p, sst, ccu) => new StoreClerkDto { id = p.id, storeId = p.storeId, userId = p.userId, isDel = p.isDel, createTime = p.createTime, updateTime = p.updateTime, storeName = sst.storeName, nickName = ccu.nickName, mobile = ccu.mobile, avatarImage = ccu.avatarImage, }).With(SqlWith.NoLock) .MergeTable() .FirstAsync(predicate); } else { obj = await DbClient.Queryable((p, sst, ccu) => new JoinQueryInfos( JoinType.Left, p.storeId == sst.id, JoinType.Left, p.userId == ccu.id )) .Select((p, sst, ccu) => new StoreClerkDto { id = p.id, storeId = p.storeId, userId = p.userId, isDel = p.isDel, createTime = p.createTime, updateTime = p.updateTime, storeName = sst.storeName, nickName = ccu.nickName, mobile = ccu.mobile, avatarImage = ccu.avatarImage, }) .MergeTable() .FirstAsync(predicate); } return obj; } #endregion } }