using System; using System.Collections.Generic; using System.Threading.Tasks; using Znyc.Cloudcar.Admin.Commons.Cache; using Znyc.Cloudcar.Admin.Commons.Mapping; using Znyc.Cloudcar.Admin.Commons.Services; using Znyc.Cloudcar.Admin.Security.Dtos; using Znyc.Cloudcar.Admin.Security.Entitys; using Znyc.Cloudcar.Admin.Security.IRepositories; using Znyc.Cloudcar.Admin.Security.IServices; namespace Znyc.Cloudcar.Admin.Security.Services { /// /// 地区信息 /// public class RegionService : BaseService, IRegionService { private readonly IRegionRepository _regionRepository; public RegionService(IRegionRepository regionRepository) : base(regionRepository) { _regionRepository = regionRepository; } /// /// 查询省市区缓存 /// /// public async Task> GetAllRegionList() { CacheHelper cacheHelper = new CacheHelper(); List list = cacheHelper.Get>("region:list "); if (list == null) { list = await AsyncRegionCache(); } return list; } /// /// 同步地区缓存 /// /// public async Task> AsyncRegionCache() { List regionList = new List(); CacheHelper cacheHelper = new CacheHelper(); IEnumerable list = await _regionRepository.GetListWhereAsync(" ParentId=0"); foreach (RegionEntity item in list) { RegionOutputDto regionListOutputs = new RegionOutputDto { RegionId = item.RegionId, Name = item.Name, ParentId = item.ParentId }; string where = string.Format(@" IsDeleted = 0 and ParentId = {0}", item.RegionId); IEnumerable regions = await _regionRepository.GetListWhereAsync(where); regionListOutputs.Childers = regions.MapTo(); regionList.Add(regionListOutputs); } cacheHelper.Add("region:list ", regionList, TimeSpan.FromDays(30)); return regionList; } } }