using LifePayment.Application.Contracts;
|
using LifePayment.Domain.Models;
|
using LifePayment.Domain.Shared;
|
using Microsoft.EntityFrameworkCore;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Threading.Tasks;
|
using Volo.Abp.Application.Services;
|
using Volo.Abp.Domain.Repositories;
|
|
namespace LifePayment.Application
|
{
|
public class AreaService : ApplicationService, IAreaService
|
{
|
private readonly IRepository<Area, Guid> _areaRepository;
|
|
public AreaService(
|
IRepository<Area, Guid> areaRepository)
|
{
|
_areaRepository = areaRepository;
|
}
|
|
public async Task<List<AreaDto>> GetAreaList(GetAreaListInput input)
|
{
|
var query = _areaRepository.Where(s => (input.NeedTown || s.Layer != LifePaymentConstant.AreaLayerType.镇) && s.IsEnable).Select(r => new AreaDto
|
{
|
AreaCode = r.AreaCode,
|
ParentCode = r.ParentId,
|
AreaName = r.AreaName,
|
Layer = r.Layer,
|
Sort = r.Sort,
|
});
|
if (input != null)
|
{
|
if (input.Layer.HasValue)
|
{
|
query = query.Where(s => s.Layer == input.Layer);
|
}
|
|
if (input.ParentCode.HasValue)
|
{
|
query = query.Where(s => s.ParentCode == input.ParentCode);
|
}
|
}
|
|
return await query.ToListAsync();
|
}
|
|
public async Task<List<AreaInfo>> GetRegionalManagementList()
|
{
|
var result = new List<AreaInfo>();
|
var area = await _areaRepository.Where(r => r.Layer != LifePaymentConstant.AreaLayerType.镇 && r.IsEnable).Select(s => new
|
{
|
s.AreaCode,
|
s.AreaName,
|
s.Layer,
|
s.Sort,
|
s.ParentId,
|
s.QuickQuery,
|
s.SimpleSpelling
|
}).ToListAsync();
|
result = area.Where(r => r.Layer == LifePaymentConstant.AreaLayerType.省).Select(s => new AreaInfo
|
{
|
AreaCode = s.AreaCode,
|
AreaName = s.AreaName,
|
Layer = s.Layer,
|
Sort = s.Sort,
|
ParentId = s.ParentId,
|
QuickQuery = s.QuickQuery,
|
SimpleSpelling = s.SimpleSpelling,
|
Children = area.Where(r => r.Layer == LifePaymentConstant.AreaLayerType.市 && r.ParentId == s.AreaCode).Select(s => new AreaInfo
|
{
|
AreaCode = s.AreaCode,
|
AreaName = s.AreaName,
|
Layer = s.Layer,
|
Sort = s.Sort,
|
ParentId = s.ParentId,
|
QuickQuery = s.QuickQuery,
|
SimpleSpelling = s.SimpleSpelling,
|
Children = area.Where(d => d.Layer == LifePaymentConstant.AreaLayerType.区县 && d.ParentId == s.AreaCode).Select(s => new AreaInfo
|
{
|
AreaCode = s.AreaCode,
|
AreaName = s.AreaName,
|
Layer = s.Layer,
|
Sort = s.Sort,
|
ParentId = s.ParentId,
|
QuickQuery = s.QuickQuery,
|
SimpleSpelling = s.SimpleSpelling,
|
}).ToList()
|
}).ToList()
|
}).ToList();
|
return result;
|
}
|
}
|
}
|