This commit is contained in:
2026-01-05 12:44:01 +08:00
parent 41a939176e
commit ea541fb6e4
14 changed files with 171 additions and 467 deletions

View File

@@ -24,7 +24,7 @@ namespace Atomx.Data.CacheServices
/// </summary>
/// <param name="parentId"></param>
/// <returns></returns>
Task<List<StateProvince>> GetStateProvinces(long countryId, bool? reload = false);
Task<List<Area>> GetStateProvinces(long countryId, bool? reload = false);
/// <summary>
/// 获取州省数据
@@ -32,7 +32,7 @@ namespace Atomx.Data.CacheServices
/// <param name="countryId"></param>
/// <param name="stateProvinceId"></param>
/// <returns></returns>
Task<StateProvince> GetStateProvince(long countryId, long stateProvinceId);
Task<Area> GetStateProvince(long countryId, long stateProvinceId);
/// <summary>
/// 获取地区数据
@@ -54,7 +54,7 @@ namespace Atomx.Data.CacheServices
/// </summary>
/// <param name="stateProvince"></param>
/// <returns></returns>
Task UpdateStateProvince(StateProvince stateProvince);
Task UpdateStateProvince(Area area);
/// <summary>
/// 更新调整国家缓存数据
@@ -141,14 +141,14 @@ namespace Atomx.Data.CacheServices
/// </summary>
/// <param name="countryId"></param>
/// <returns></returns>
public async Task<List<StateProvince>> GetStateProvinces(long countryId, bool? reload = false)
public async Task<List<Area>> GetStateProvinces(long countryId, bool? reload = false)
{
bool reloadData = reload.HasValue ? reload.Value : false;
var cacheData = await GetCacheAsync<List<StateProvince>>($"{CacheKeys.StateProvince}.{countryId}");
var cacheData = await GetCacheAsync<List<Area>>($"{CacheKeys.StateProvince}.{countryId}");
if (cacheData == null || reloadData)
{
var stateProvinces = (from p in _dbContext.StateProvinces
where p.CountryId == countryId && p.Enabled
var stateProvinces = (from p in _dbContext.Areas
where p.CountryId == countryId && p.Enabled && p.ParentId == 0
select p).ToList();
await SetCacheAsync($"{CacheKeys.StateProvince}.{countryId}", stateProvinces);
return stateProvinces;
@@ -162,7 +162,7 @@ namespace Atomx.Data.CacheServices
/// </summary>
/// <param name="stateProvinceId"></param>
/// <returns></returns>
public async Task<StateProvince> GetStateProvince(long countryId, long stateProvinceId)
public async Task<Area> GetStateProvince(long countryId, long stateProvinceId)
{
var cacheData = await GetStateProvinces(countryId);
var data = cacheData.SingleOrDefault(p => p.Id == stateProvinceId);
@@ -183,7 +183,7 @@ namespace Atomx.Data.CacheServices
{
List<Area> areas = new();
var query = from p in _dbContext.Areas
where p.CountryId == countryId && p.Enabled
where p.CountryId == countryId && p.Enabled && p.StateProvinceId != 0
select p;
var count = query.Count();
int size = 50;
@@ -193,7 +193,7 @@ namespace Atomx.Data.CacheServices
var list = query.Skip((i - 1) * size).Take(size).ToList();
areas.AddRange(list);
}
await SetCacheAsync(CacheKeys.Country, areas);
await SetCacheAsync($"{CacheKeys.City}.{countryId}", areas);
return areas;
}
return cacheData;
@@ -218,16 +218,16 @@ namespace Atomx.Data.CacheServices
/// </summary>
/// <param name="stateProvince"></param>
/// <returns></returns>
public async Task UpdateStateProvince(StateProvince stateProvince)
public async Task UpdateStateProvince(Area area)
{
var cacheData = await GetStateProvinces(stateProvince.CountryId);
var data = cacheData.Where(p => p.Id == stateProvince.Id).SingleOrDefault();
var cacheData = await GetStateProvinces(area.CountryId);
var data = cacheData.Where(p => p.Id == area.Id).SingleOrDefault();
if (data != null)
{
cacheData.Remove(data);
}
cacheData.Add(stateProvince);
await SetCacheAsync($"{CacheKeys.StateProvince}.{stateProvince.CountryId}", cacheData);
cacheData.Add(area);
await SetCacheAsync($"{CacheKeys.StateProvince}.{area.CountryId}", cacheData);
}
/// <summary>