/*********************************************************************** * Project: baifenBinfa * ProjectName: 百分兵法管理系统 * Web: http://chuanyin.com * Author: * Email: * CreateTime: 202403/02 * Description: 暂无 ***********************************************************************/ using System; using System.Collections.Generic; using System.Linq; 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.Entities.Expression; using CoreCms.Net.Model.ViewModels.Basics; using CoreCms.Net.Utility.Helper; using SqlSugar; namespace CoreCms.Net.Repository { /// /// 退货单表 接口实现 /// public class CoreCmsBillAftersalesRepository : BaseRepository, ICoreCmsBillAftersalesRepository { public CoreCmsBillAftersalesRepository(IUnitOfWork unitOfWork) : base(unitOfWork) { } #region 根据条件查询分页数据 /// /// 根据条件查询分页数据 /// /// 判断集合 /// 排序方式 /// 当前页面索引 /// 分布大小 /// /// public async Task> QueryPageAsync(Expression> predicate, Expression> orderByExpression, OrderByType orderByType, int pageIndex = 1, int pageSize = 20) { RefAsync totalCount = 0; var page = await DbClient.Queryable((p, sc) => new JoinQueryInfos( JoinType.Left, p.userId == sc.id)) .Select((p, sc) => new CoreCmsBillAftersales { aftersalesId = p.aftersalesId, orderId = p.orderId, userId = p.userId, type = p.type, refundAmount = p.refundAmount, status = p.status, reason = p.reason, mark = p.mark, createTime = p.createTime, updateTime = p.updateTime, userNickName = sc.nickName }) .MergeTable() .Mapper(p => p.items, p => p.items.First().aftersalesId) .Mapper(p => p.images, p => p.images.First().aftersalesId) .OrderByIF(orderByExpression != null, orderByExpression, orderByType) .WhereIF(predicate != null, predicate) .ToPageListAsync(pageIndex, pageSize, totalCount); if (page.Any()) { var billAftersalesStatus = EnumHelper.EnumToList(); foreach (var item in page) { var statusModel = billAftersalesStatus.Find(p => p.value == item.status); if (statusModel != null) item.statusName = statusModel.description; } } var list = new PageList(page, pageIndex, pageSize, totalCount); return list; } #endregion #region 获取单个数据 /// /// 获取单个数据 /// /// /// /// public async Task GetInfo(string aftersalesId, int userId = 0) { var model = userId > 0 ? await DbClient.Queryable() .Where(p => p.aftersalesId == aftersalesId && p.userId == userId).FirstAsync() : await DbClient.Queryable() .Where(p => p.aftersalesId == aftersalesId).FirstAsync(); if (model != null) { model.order = await DbClient.Queryable().Where(p => p.orderId == model.orderId).FirstAsync(); model.images = await DbClient.Queryable().Where(p => p.aftersalesId == aftersalesId).OrderBy(p => p.sortId).ToListAsync(); model.items = await DbClient.Queryable().Where(p => p.aftersalesId == aftersalesId).OrderBy(p => p.createTime).ToListAsync(); model.billRefund = await DbClient.Queryable().Where(p => p.aftersalesId == aftersalesId).FirstAsync(); model.billReship = await DbClient.Queryable().Where(p => p.aftersalesId == aftersalesId).FirstAsync(); } return model; } #endregion } }