FunctionAppServiceBase.cs 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. using Abp.Application.Services.Dto;
  2. using Abp.Auditing;
  3. using Abp.Authorization;
  4. using Abp.Domain.Repositories;
  5. using Abp.Linq.Extensions;
  6. using Abp.Runtime.Caching;
  7. using VberZero.AppService.Base.Dto;
  8. using VberZero.AppService.Base.TreeBase;
  9. using VberZero.AppService.Functions.Dto;
  10. using VberZero.Auditing;
  11. using VberZero.BaseSystem;
  12. using VberZero.Navigation;
  13. using VberZero.Tools.StringModel;
  14. namespace VberZero.AppService.Functions;
  15. [AbpAuthorize, AuditLog("功能菜单管理", "功能菜单")]
  16. public class FunctionAppServiceBase : VzTreeAppServiceBaseBase<SysFunction, FunctionDto, int?, VzPagedRequestDto, FunctionCreateDto, FunctionUpdateDto>, IFunctionAppServiceBase
  17. {
  18. protected readonly VzNavigationManager NavigationManager;
  19. public FunctionAppServiceBase(ICacheManager cacheManager, IRepository<SysFunction, int?> repository, VzNavigationManager navigationManager) : base(repository, "FunctionNo")
  20. {
  21. NavigationManager = navigationManager;
  22. CacheManager = cacheManager;
  23. }
  24. protected virtual string RefreshPermissionName { get; set; }
  25. protected override bool KeyIsAuto { get; set; } = false;
  26. protected override string KeyExistMessage => string.Format(L("KeyExistMessageFormatter"), L("function"));
  27. protected override string KeyNotExistMessage => string.Format(L("KeyNotExistMessageFormatter"), L("function"));
  28. #region CURD
  29. [DisableAuditing]
  30. public override async Task<PagedResultDto<FunctionDto>> GetAll(VzPagedRequestDto input)
  31. {
  32. return await base.GetAll(input);
  33. }
  34. protected override IQueryable<T> ApplyFilter<T>(IQueryable<T> query, VzPagedRequestDto input)
  35. {
  36. if (query is IQueryable<SysFunction> queryable)
  37. {
  38. return (IQueryable<T>)queryable.Where(a => a.FunctionType != 0);
  39. }
  40. return query;
  41. }
  42. //public override async Task Create(FunctionCreateDto input)
  43. //{
  44. // await base.Create(input);
  45. //}
  46. protected override Task<FunctionCreateDto> CheckCreate(FunctionCreateDto input)
  47. {
  48. CheckErrors("不支持操作");
  49. return default;
  50. }
  51. public override async Task Update(FunctionUpdateDto input)
  52. {
  53. await base.Update(input);
  54. await CacheManager.GetCache(VzConsts.CacheFunction).RemoveAsync(input.Id + "");
  55. }
  56. protected override async Task<SysFunction> CheckUpdate(FunctionUpdateDto input)
  57. {
  58. var entity = await GetEntityById(input.Id);
  59. return entity;
  60. }
  61. public override async Task Delete(VzEntityDto<int?> input)
  62. {
  63. await base.Delete(input);
  64. await CacheManager.GetCache(VzConsts.CacheFunction).RemoveAsync(input.Id + "");
  65. }
  66. protected override async Task<SysFunction> CheckDelete(VzEntityDto<int?> input)
  67. {
  68. var entity = await GetEntityById(input.Id);
  69. return entity;
  70. }
  71. /// <summary>
  72. /// 强制刷新
  73. /// </summary>
  74. /// <returns></returns>
  75. public async Task Refresh()
  76. {
  77. CheckPermission(MoveUpPermissionName);
  78. await CacheManager.GetCache<string, List<SysFunction>>(VzConsts.CacheFunction).ClearAsync();
  79. NavigationManager.Initialize();
  80. }
  81. #endregion CURD
  82. protected override IQueryable<T> SelfSorting<T>(IQueryable<T> query, VzPagedRequestDto input)
  83. {
  84. if (query is IQueryable<SysFunction> queryable)
  85. return (IQueryable<T>)queryable.OrderBy(a => a.FunctionType).ThenBy(a => a.Sort);
  86. return query;
  87. }
  88. protected override IQueryable<T> KeyWordFilter<T>(IQueryable<T> query, string keyword)
  89. {
  90. if (query is IQueryable<SysFunction> queryable)
  91. return (IQueryable<T>)queryable.WhereIf(keyword.NotEmpty(), a =>
  92. a.DisplayName.Contains(keyword));
  93. return query;
  94. }
  95. protected override FunctionDto MapToEntityDto(SysFunction entity)
  96. {
  97. var dto = base.MapToEntityDto(entity);
  98. dto.ParentName = entity.Parent?.DisplayName;
  99. return dto;
  100. }
  101. }