diff --git a/src/Shentun.Peis.Application/CustomerOrgs/CustomerOrgAppService.cs b/src/Shentun.Peis.Application/CustomerOrgs/CustomerOrgAppService.cs index db0f6b5..4edd4af 100644 --- a/src/Shentun.Peis.Application/CustomerOrgs/CustomerOrgAppService.cs +++ b/src/Shentun.Peis.Application/CustomerOrgs/CustomerOrgAppService.cs @@ -1,5 +1,6 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Caching.Memory; using Shentun.Peis.CustomerOrgRegisters; using Shentun.Peis.Enums; using Shentun.Peis.HelperDto; @@ -39,13 +40,15 @@ namespace Shentun.Peis.CustomerOrgs private readonly CustomerOrgManager _manager; private readonly CustomerOrgRegisterManager _customerOrgRegisterManager; private readonly CacheService _cacheService; + private readonly IMemoryCache _customerOrgCache; public CustomerOrgAppService( IRepository repository, IRepository userRepository, CustomerOrgManager manager, CustomerOrgRegisterManager customerOrgRegisterManager, IRepository customerOrgRegisterRepository, - CacheService cacheService) + CacheService cacheService, + IMemoryCache customerOrgCache) : base(repository) { _userRepository = userRepository; @@ -53,6 +56,7 @@ namespace Shentun.Peis.CustomerOrgs this._customerOrgRegisterManager = customerOrgRegisterManager; this._customerOrgRegisterRepository = customerOrgRegisterRepository; _cacheService = cacheService; + _customerOrgCache = customerOrgCache; } /// /// 获取通过主键 @@ -179,6 +183,7 @@ namespace Shentun.Peis.CustomerOrgs var customerOrgRegisterEntity = await _customerOrgRegisterManager.CreateAsync(entity.Id); await _customerOrgRegisterRepository.InsertAsync(customerOrgRegisterEntity); } + _customerOrgCache.Set(entity.Id, entity); var dto = ObjectMapper.Map(entity); return dto; } @@ -194,6 +199,7 @@ namespace Shentun.Peis.CustomerOrgs var sourceEntity = ObjectMapper.Map(input); await _manager.UpdateAsync(sourceEntity, entity); entity = await Repository.UpdateAsync(entity); + _customerOrgCache.Set(entity.Id, entity); return ObjectMapper.Map(entity); } /// @@ -210,7 +216,10 @@ namespace Shentun.Peis.CustomerOrgs foreach (var CustomerOrgChildrenId in CustomerOrgChildrenIds) { if (CustomerOrgChildrenId != null) + { await _manager.CheckAndDeleteAsync(CustomerOrgChildrenId.Value); + _customerOrgCache.Remove(CustomerOrgChildrenId); + } } }