using Infrastructure.Extensions; using ZR.Mall.Model; using ZR.Mall.Model.Dto; using ZR.Mall.Service.IService; namespace ZR.Mall.Service { /// /// /// [AppService(ServiceType = typeof(ICategoryService))] public class CategoryService : BaseService, ICategoryService { /// /// 查询目录列表 /// /// /// public PagedInfo GetList(ShoppingCategoryQueryDto parm) { var predicate = QueryExp(parm); var response = Queryable() .Where(predicate.ToExpression()) .WithCache(60 * 5) .ToPage(parm); return response; } /// /// 查询目录树列表 /// /// /// public List GetTreeList(ShoppingCategoryQueryDto parm) { var predicate = QueryExp(parm); var response = Queryable() .Where(predicate.ToExpression()); if (parm.Sort.IsNotEmpty()) { response = response.OrderByPropertyName(parm.Sort, parm.SortType.Contains("desc") ? OrderByType.Desc : OrderByType.Asc); } var treeList = response.ToTree(it => it.Children, it => it.ParentId, 0); return treeList.Adapt>(); } /// /// 添加目录 /// /// /// public int AddCategory(Category parm) { var response = Add(parm); return response; } /// /// 导出 /// /// /// public PagedInfo ExportList(ShoppingCategoryQueryDto parm) { var predicate = QueryExp(parm); var response = Queryable() .Where(predicate.ToExpression()) .Select((it) => new CategoryDto() { }, true) .ToPage(parm); return response; } /// /// 查询导出表达式 /// /// /// private static Expressionable QueryExp(ShoppingCategoryQueryDto parm) { var predicate = Expressionable.Create(); predicate.AndIF(parm.ShowStatus != null, m => m.ShowStatus == parm.ShowStatus); predicate.AndIF(parm.ParentId != null, m => m.ParentId == parm.ParentId); predicate.AndIF(parm.Name.IsNotEmpty(), m => m.Name.Contains(parm.Name)); return predicate; } } }