66 lines
2.2 KiB
C#
Raw Normal View History

2026-03-18 00:05:53 +08:00
using YD_Event.Core.Entities;
using Mapster;
using System.ComponentModel;
using Furion.DynamicApiController;
using YD_Event.Application.Region.Dtos;
namespace YD_Event.Application.Region
{
/// <summary>
/// 行政区域服务
/// </summary>
public class RegionService : ITransient, IDynamicApiController
{
private readonly ISqlSugarRepository<SysProvince> _provinceRepository;
private readonly ISqlSugarRepository<SysCity> _cityRepository;
private readonly ISqlSugarRepository<SysDistrict> _districtRepository;
public RegionService(
ISqlSugarRepository<SysProvince> provinceRepository,
ISqlSugarRepository<SysCity> cityRepository,
ISqlSugarRepository<SysDistrict> districtRepository)
{
_provinceRepository = provinceRepository;
_cityRepository = cityRepository;
_districtRepository = districtRepository;
}
/// <summary>
/// 获取所有省份
/// </summary>
/// <returns></returns>
[DisplayName("获取所有省份")]
public async Task<List<RegionDto>> GetProvinces()
{
var provinces = await _provinceRepository.GetListAsync();
return provinces.Adapt<List<RegionDto>>();
}
/// <summary>
/// 根据省份代码获取城市列表
/// </summary>
/// <param name="provinceCode"></param>
/// <returns></returns>
[DisplayName("根据省份代码获取城市列表")]
public async Task<List<RegionDto>> GetCitiesByProvince(string provinceCode)
{
var cities = await _cityRepository.GetListAsync(c => c.ProvinceCode == provinceCode);
return cities.Adapt<List<RegionDto>>();
}
/// <summary>
/// 根据城市代码获取区县列表
/// </summary>
/// <param name="cityCode"></param>
/// <returns></returns>
[DisplayName("根据城市代码获取区县列表")]
public async Task<List<RegionDto>> GetDistrictsByCity(string cityCode)
{
var districts = await _districtRepository.GetListAsync(d => d.CityCode == cityCode);
return districts.Adapt<List<RegionDto>>();
}
}
}