CategoryService.cs 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. using Infrastructure.Extensions;
  2. using ZR.Mall.Model;
  3. using ZR.Mall.Model.Dto;
  4. using ZR.Mall.Service.IService;
  5. namespace ZR.Mall.Service
  6. {
  7. /// <summary>
  8. ///
  9. /// </summary>
  10. [AppService(ServiceType = typeof(ICategoryService))]
  11. public class CategoryService : BaseService<Category>, ICategoryService
  12. {
  13. /// <summary>
  14. /// 查询目录列表
  15. /// </summary>
  16. /// <param name="parm"></param>
  17. /// <returns></returns>
  18. public PagedInfo<CategoryDto> GetList(ShoppingCategoryQueryDto parm)
  19. {
  20. var predicate = QueryExp(parm);
  21. var response = Queryable()
  22. .Where(predicate.ToExpression())
  23. .WithCache(60 * 5)
  24. .ToPage<Category, CategoryDto>(parm);
  25. return response;
  26. }
  27. /// <summary>
  28. /// 查询目录树列表
  29. /// </summary>
  30. /// <param name="parm"></param>
  31. /// <returns></returns>
  32. public List<CategoryDto> GetTreeList(ShoppingCategoryQueryDto parm)
  33. {
  34. var predicate = QueryExp(parm);
  35. var response = Queryable()
  36. .Where(predicate.ToExpression());
  37. if (parm.Sort.IsNotEmpty())
  38. {
  39. response = response.OrderByPropertyName(parm.Sort, parm.SortType.Contains("desc") ? OrderByType.Desc : OrderByType.Asc);
  40. }
  41. var treeList = response.ToTree(it => it.Children, it => it.ParentId, 0);
  42. return treeList.Adapt<List<CategoryDto>>();
  43. }
  44. /// <summary>
  45. /// 添加目录
  46. /// </summary>
  47. /// <param name="parm"></param>
  48. /// <returns></returns>
  49. public int AddCategory(Category parm)
  50. {
  51. var response = Add(parm);
  52. return response;
  53. }
  54. /// <summary>
  55. /// 导出
  56. /// </summary>
  57. /// <param name="parm"></param>
  58. /// <returns></returns>
  59. public PagedInfo<CategoryDto> ExportList(ShoppingCategoryQueryDto parm)
  60. {
  61. var predicate = QueryExp(parm);
  62. var response = Queryable()
  63. .Where(predicate.ToExpression())
  64. .Select((it) => new CategoryDto()
  65. {
  66. }, true)
  67. .ToPage(parm);
  68. return response;
  69. }
  70. /// <summary>
  71. /// 查询导出表达式
  72. /// </summary>
  73. /// <param name="parm"></param>
  74. /// <returns></returns>
  75. private static Expressionable<Category> QueryExp(ShoppingCategoryQueryDto parm)
  76. {
  77. var predicate = Expressionable.Create<Category>();
  78. predicate.AndIF(parm.ShowStatus != null, m => m.ShowStatus == parm.ShowStatus);
  79. predicate.AndIF(parm.ParentId != null, m => m.ParentId == parm.ParentId);
  80. predicate.AndIF(parm.Name.IsNotEmpty(), m => m.Name.Contains(parm.Name));
  81. return predicate;
  82. }
  83. }
  84. }