using GDZZ.Core;
using Furion.DependencyInjection;
using Furion.DynamicApiController;
using Mapster;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
using System.Linq;
using System.Threading.Tasks;
using GDZZ.Application.Entity;
using Microsoft.AspNetCore.Authorization;
using System.Collections.Generic;
using GDZZ.Core.Service;
namespace GDZZ.Application
{
///
/// 地区表服务
///
[ApiDescriptionSettings("Application",Name = "SysRegion", Order = 1)]
public class SysRegionService : ISysRegionService, IDynamicApiController, ITransient
{
private readonly SqlSugarRepository _rep;
public SysRegionService(SqlSugarRepository rep)
{
_rep = rep;
}
///
/// 查询地区列表
///
///
[HttpGet("/Mini/GetRegionList")]
[AllowAnonymous]
public async Task> GetRegionList()
{
//先查询 省级别
var allRegions = await _rep.AsQueryable().ToListAsync();
var provinces = allRegions.Where(x=>x.region_level == 1).ToList().Adapt>();
foreach (var province in provinces)
{
province.children = allRegions.Where(r => r.region_level == 2 && r.region_parent_id == province.region_id).ToList().Adapt>();
foreach (var city in province.children)
{
city.children = allRegions.Where(r => r.region_level == 3 && r.region_parent_id == city.region_id).ToList().Adapt>();
}
}
return provinces;
}
}
}