StatesAppService.cs 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. using System.Linq;
  2. using System.Threading.Tasks;
  3. using Abp.Application.Services.Dto;
  4. using Abp.Auditing;
  5. using Abp.Authorization;
  6. using Abp.Domain.Entities;
  7. using Abp.Domain.Repositories;
  8. using Abp.Runtime.Caching;
  9. using ContractService.Authorization;
  10. using ContractService.BaseInfo;
  11. using ContractService.BaseSystem.States.Dto;
  12. using ContractService.Configuration;
  13. using IwbZero;
  14. using IwbZero.AppServiceBase;
  15. using IwbZero.Auditing;
  16. using IwbZero.Authorization.Base.Users;
  17. using IwbZero.ToolCommon.Lambda;
  18. namespace ContractService.BaseSystem.States
  19. {
  20. [AbpAuthorize, AuditLog("系统字典", "字典")]
  21. public class StatesAppService : IwbAsyncCrudAppService<SysState, StateDto, int, IwbPagedRequestDto, StateCreateDto, StateUpdateDto>, IStatesAppService
  22. {
  23. public StatesAppService(ICacheManager cacheManager, IRepository<SysState, int> repository) : base(repository, "StateNo")
  24. {
  25. CacheManager = cacheManager;
  26. }
  27. protected override string KeyExistMessage => string.Format(L(IwbLanguageMessage.KeyExistMessageFormatter), L("state"));
  28. protected override string KeyNotExistMessage => string.Format(L(IwbLanguageMessage.KeyNotExistMessageFormatter), L("state"));
  29. protected override string GetPermissionName { get; set; } = PermissionNames.PagesSystemMgStateMgQuery;
  30. protected override string GetAllPermissionName { get; set; } = PermissionNames.PagesSystemMgStateMgQuery;
  31. protected override string UpdatePermissionName { get; set; } = PermissionNames.PagesSystemMgStateMgUpdate;
  32. public override async Task Create(StateCreateDto input)
  33. {
  34. if (AbpSession.UserName != UserBase.HostAdminName && AbpSession.UserName != UserBase.HostSystemName && AbpSession.UserName != UserBase.AdminUserName && AbpSession.UserName != UserBase.SystemUserName)
  35. {
  36. ThrowError(IwbLanguageMessage.NoPermissionOperation);
  37. }
  38. await base.Create(input);
  39. }
  40. public override async Task Update(StateUpdateDto input)
  41. {
  42. if (AbpSession.UserName != UserBase.HostAdminName && AbpSession.UserName != UserBase.HostSystemName && AbpSession.UserName != UserBase.AdminUserName && AbpSession.UserName != UserBase.SystemUserName)
  43. {
  44. ThrowError(IwbLanguageMessage.NoPermissionOperation);
  45. }
  46. await UpdateEntity(input);
  47. await CacheManager.GetCache(IwbZeroConsts.SysStateCache)
  48. .RemoveAsync(input.TableName + "." + input.ColumnName + "." + input.CodeValue);
  49. }
  50. public override async Task Delete(EntityDto<int> input)
  51. {
  52. #if DEBUG
  53. if ( AbpSession.UserName != UserBase.HostAdminName && AbpSession.UserName != UserBase.HostSystemName && AbpSession.UserName != UserBase.AdminUserName && AbpSession.UserName != UserBase.SystemUserName )
  54. {
  55. ThrowError(IwbLanguageMessage.NoPermissionOperation);
  56. }
  57. await base.Delete(input);
  58. #else
  59. ThrowError(IwbLanguageMessage.CanNotDelete);
  60. #endif
  61. }
  62. protected override IQueryable<SysState> KeyWordFilter(IQueryable<SysState> query, string keyword)
  63. {
  64. query = query.Where(a =>
  65. a.StateName.Contains(keyword) ||
  66. a.TableName.Contains(keyword) ||
  67. a.ColumnName.Contains(keyword) ||
  68. a.CodeValue.Contains(keyword));
  69. return query;
  70. }
  71. }
  72. }