lingling
2025-03-18 69fd468746d430cbdb5c63424f6e13a4f98a91fc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
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;
        }
    }
}