|
|
@ -1,5 +1,6 @@ |
|
|
using Microsoft.EntityFrameworkCore; |
|
|
using Microsoft.EntityFrameworkCore; |
|
|
using Microsoft.Extensions.Caching.Distributed; |
|
|
using Microsoft.Extensions.Caching.Distributed; |
|
|
|
|
|
using Microsoft.Extensions.Caching.Memory; |
|
|
using Shentun.Peis.Enums; |
|
|
using Shentun.Peis.Enums; |
|
|
using Shentun.Peis.Models; |
|
|
using Shentun.Peis.Models; |
|
|
using System; |
|
|
using System; |
|
|
@ -18,7 +19,8 @@ namespace Shentun.Peis |
|
|
public class CacheService : ISingletonDependency |
|
|
public class CacheService : ISingletonDependency |
|
|
{ |
|
|
{ |
|
|
private readonly IDistributedCache<IdentityUser, Guid> _userCache; |
|
|
private readonly IDistributedCache<IdentityUser, Guid> _userCache; |
|
|
private readonly IDistributedCache<CustomerOrg, Guid> _customerOrgCache; |
|
|
|
|
|
|
|
|
private readonly IMemoryCache _customerOrgCache; |
|
|
|
|
|
//private readonly IDistributedCache<CustomerOrg, Guid> _customerOrgCache;
|
|
|
private readonly IDistributedCache<string, Guid> _customerOrgTopNameCache; |
|
|
private readonly IDistributedCache<string, Guid> _customerOrgTopNameCache; |
|
|
private readonly IDistributedCache<Nation, string> _nationCache; |
|
|
private readonly IDistributedCache<Nation, string> _nationCache; |
|
|
private readonly IDistributedCache<Sex, char> _sexCache; |
|
|
private readonly IDistributedCache<Sex, char> _sexCache; |
|
|
@ -27,14 +29,16 @@ namespace Shentun.Peis |
|
|
private readonly IDistributedCache<DeviceType, Guid> _deviceTypeCache; |
|
|
private readonly IDistributedCache<DeviceType, Guid> _deviceTypeCache; |
|
|
private readonly IDistributedCache<MedicalType, Guid> _medicalTypeCache; |
|
|
private readonly IDistributedCache<MedicalType, Guid> _medicalTypeCache; |
|
|
private readonly IDistributedCache<PersonnelType, Guid> _personnelTypeCache; |
|
|
private readonly IDistributedCache<PersonnelType, Guid> _personnelTypeCache; |
|
|
private readonly IDistributedCache<Asbitem, Guid> _asbitemCache; |
|
|
|
|
|
private readonly IDistributedCache<ItemType, Guid> _itemTypeCache; |
|
|
|
|
|
|
|
|
private readonly IMemoryCache _asbitemCache; |
|
|
|
|
|
private readonly IMemoryCache _itemTypeCache; |
|
|
|
|
|
//private readonly IDistributedCache<ItemType, Guid> _itemTypeCache;
|
|
|
private readonly IRepository<IdentityUser, Guid> _userRepository; |
|
|
private readonly IRepository<IdentityUser, Guid> _userRepository; |
|
|
private readonly IRepository<Nation> _nationRepository; |
|
|
private readonly IRepository<Nation> _nationRepository; |
|
|
private readonly IRepository<Sex> _sexRepository; |
|
|
private readonly IRepository<Sex> _sexRepository; |
|
|
private readonly IRepository<ForSex> _forSexRepository; |
|
|
private readonly IRepository<ForSex> _forSexRepository; |
|
|
private readonly IRepository<DeviceType, Guid> _deviceTypeRepository; |
|
|
private readonly IRepository<DeviceType, Guid> _deviceTypeRepository; |
|
|
private readonly IRepository<Asbitem, Guid> _asbitemRepository; |
|
|
private readonly IRepository<Asbitem, Guid> _asbitemRepository; |
|
|
|
|
|
|
|
|
private readonly IRepository<ItemType, Guid> _itemTypeRepository; |
|
|
private readonly IRepository<ItemType, Guid> _itemTypeRepository; |
|
|
private readonly IRepository<CustomerOrg, Guid> _customerOrgRepository; |
|
|
private readonly IRepository<CustomerOrg, Guid> _customerOrgRepository; |
|
|
private readonly IRepository<MaritalStatus> _maritalStatusRepository; |
|
|
private readonly IRepository<MaritalStatus> _maritalStatusRepository; |
|
|
@ -43,12 +47,12 @@ namespace Shentun.Peis |
|
|
|
|
|
|
|
|
public CacheService( |
|
|
public CacheService( |
|
|
IDistributedCache<IdentityUser, Guid> userCache, |
|
|
IDistributedCache<IdentityUser, Guid> userCache, |
|
|
IDistributedCache<CustomerOrg, Guid> customerOrgCache, |
|
|
|
|
|
|
|
|
IMemoryCache customerOrgCache, |
|
|
IDistributedCache<Nation, string> nationCache, |
|
|
IDistributedCache<Nation, string> nationCache, |
|
|
IRepository<IdentityUser, Guid> userRepository, |
|
|
IRepository<IdentityUser, Guid> userRepository, |
|
|
IDistributedCache<Sex, char> sexCache, |
|
|
IDistributedCache<Sex, char> sexCache, |
|
|
IDistributedCache<Asbitem, Guid> asbitemCache, |
|
|
|
|
|
IDistributedCache<ItemType, Guid> itemTypeCache, |
|
|
|
|
|
|
|
|
IMemoryCache asbitemCache, |
|
|
|
|
|
IMemoryCache itemTypeCache, |
|
|
IDistributedCache<MaritalStatus, char> maritalStatusCache, |
|
|
IDistributedCache<MaritalStatus, char> maritalStatusCache, |
|
|
IDistributedCache<MedicalType, Guid> medicalTypeCache, |
|
|
IDistributedCache<MedicalType, Guid> medicalTypeCache, |
|
|
IDistributedCache<PersonnelType, Guid> personnelTypeCache, |
|
|
IDistributedCache<PersonnelType, Guid> personnelTypeCache, |
|
|
@ -234,23 +238,41 @@ namespace Shentun.Peis |
|
|
|
|
|
|
|
|
public async Task<Asbitem> GetAsbitemAsync(Guid id) |
|
|
public async Task<Asbitem> GetAsbitemAsync(Guid id) |
|
|
{ |
|
|
{ |
|
|
|
|
|
var entity = (Asbitem)_asbitemCache.Get(id); |
|
|
|
|
|
if (entity == null) |
|
|
|
|
|
{ |
|
|
|
|
|
entity = await _asbitemRepository.GetAsync(o => o.Id == id); |
|
|
|
|
|
_asbitemCache.Set(id, entity); |
|
|
|
|
|
//entity = (CustomerOrg)_customerOrgCache.Get(id);
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
var entity = await _asbitemCache.GetOrAddAsync( |
|
|
|
|
|
id, //缓存键
|
|
|
|
|
|
async () => await _asbitemRepository.GetAsync(id) |
|
|
|
|
|
|
|
|
|
|
|
); |
|
|
|
|
|
return entity; |
|
|
return entity; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//var entity = await _asbitemCache.GetOrAddAsync(
|
|
|
|
|
|
// id, //缓存键
|
|
|
|
|
|
// async () => await _asbitemRepository.GetAsync(id)
|
|
|
|
|
|
|
|
|
|
|
|
//);
|
|
|
|
|
|
//return entity;
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public async Task<ItemType> GetItemTypeAsync(Guid id) |
|
|
public async Task<ItemType> GetItemTypeAsync(Guid id) |
|
|
{ |
|
|
{ |
|
|
|
|
|
|
|
|
var entity = await _itemTypeCache.GetOrAddAsync( |
|
|
|
|
|
id, //缓存键
|
|
|
|
|
|
async () => await _itemTypeRepository.GetAsync(id) |
|
|
|
|
|
|
|
|
var entity = (ItemType)_itemTypeCache.Get(id); |
|
|
|
|
|
if (entity == null) |
|
|
|
|
|
{ |
|
|
|
|
|
entity = await _itemTypeRepository.GetAsync(o => o.Id == id); |
|
|
|
|
|
_itemTypeCache.Set(id, entity); |
|
|
|
|
|
//entity = (CustomerOrg)_customerOrgCache.Get(id);
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
//var entity = await _itemTypeCache.GetOrAddAsync(
|
|
|
|
|
|
// id, //缓存键
|
|
|
|
|
|
// async () => (ItemType) _itemTypeRepository.Get(id)
|
|
|
|
|
|
|
|
|
|
|
|
//);
|
|
|
return entity; |
|
|
return entity; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -277,11 +299,12 @@ namespace Shentun.Peis |
|
|
|
|
|
|
|
|
public async Task<CustomerOrg> GetCustomerOrgAsync(Guid id) |
|
|
public async Task<CustomerOrg> GetCustomerOrgAsync(Guid id) |
|
|
{ |
|
|
{ |
|
|
var entity = await _customerOrgCache.GetAsync(id); |
|
|
|
|
|
|
|
|
var entity = (CustomerOrg)_customerOrgCache.Get(id); |
|
|
if (entity == null) |
|
|
if (entity == null) |
|
|
{ |
|
|
{ |
|
|
entity = await _customerOrgRepository.GetAsync(o => o.Id == id); |
|
|
entity = await _customerOrgRepository.GetAsync(o => o.Id == id); |
|
|
_customerOrgCache.Set(id, entity); |
|
|
_customerOrgCache.Set(id, entity); |
|
|
|
|
|
//entity = (CustomerOrg)_customerOrgCache.Get(id);
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
return entity; |
|
|
return entity; |
|
|
@ -299,7 +322,7 @@ namespace Shentun.Peis |
|
|
|
|
|
|
|
|
public async Task<CustomerOrg> GetTopCustomerOrgAsync(Guid id) |
|
|
public async Task<CustomerOrg> GetTopCustomerOrgAsync(Guid id) |
|
|
{ |
|
|
{ |
|
|
var entity = await _customerOrgCache.GetAsync(id); |
|
|
|
|
|
|
|
|
var entity = (CustomerOrg)_customerOrgCache.Get(id); |
|
|
if(entity == null) |
|
|
if(entity == null) |
|
|
{ |
|
|
{ |
|
|
entity = await _customerOrgRepository.GetAsync(o => o.Id == id); |
|
|
entity = await _customerOrgRepository.GetAsync(o => o.Id == id); |
|
|
@ -336,7 +359,7 @@ namespace Shentun.Peis |
|
|
/// <returns></returns>
|
|
|
/// <returns></returns>
|
|
|
private async Task<string> GetTopCustomerOrgNameInCustomerOrgIdAsync(Guid id) |
|
|
private async Task<string> GetTopCustomerOrgNameInCustomerOrgIdAsync(Guid id) |
|
|
{ |
|
|
{ |
|
|
var entity = await _customerOrgCache.GetAsync(id); |
|
|
|
|
|
|
|
|
var entity = (CustomerOrg)_customerOrgCache.Get(id); |
|
|
if (entity == null) |
|
|
if (entity == null) |
|
|
{ |
|
|
{ |
|
|
entity = await _customerOrgRepository.GetAsync(o => o.Id == id); |
|
|
entity = await _customerOrgRepository.GetAsync(o => o.Id == id); |
|
|
|