diff --git a/Admin.NET/Admin.NET.Core/Service/Region/SysRegionService.cs b/Admin.NET/Admin.NET.Core/Service/Region/SysRegionService.cs index e1a19741..02cc7e8d 100644 --- a/Admin.NET/Admin.NET.Core/Service/Region/SysRegionService.cs +++ b/Admin.NET/Admin.NET.Core/Service/Region/SysRegionService.cs @@ -297,63 +297,69 @@ public class SysRegionService : IDynamicApiController, ITransient Level = regionLevel0.Level, }); } - foreach (var regionLevel1 in regionLevel0.Children) + if (regionLevel0.Children != null) { - var region1 = new SysRegion + foreach (var regionLevel1 in regionLevel0.Children) { - Id = Convert.ToInt64(regionLevel1.Code), - Pid = Convert.ToInt64(regionLevel0.Code), - Code = regionLevel1.Code, - Name = regionLevel1.Name, - Type = regionLevel1.Type, - Level = regionLevel1.Level, - }; - if (areaList.Any(u => u.Id == region1.Id)) - Console.WriteLine($"1 级:{region1.Id} - {region1.Name} 已存在"); - else - areaList.Add(region1); - foreach (var regionLevel2 in regionLevel1.Children) - { - var region2 = new SysRegion + var region1 = new SysRegion { - Id = Convert.ToInt64(regionLevel2.Code), - Pid = Convert.ToInt64(regionLevel1.Code), - Code = regionLevel2.Code, - Name = regionLevel2.Name, - Type = regionLevel2.Type, - Level = regionLevel2.Level, + Id = Convert.ToInt64(regionLevel1.Code), + Pid = Convert.ToInt64(regionLevel0.Code), + Code = regionLevel1.Code, + Name = regionLevel1.Name, + Type = regionLevel1.Type, + Level = regionLevel1.Level, }; - if (areaList.Any(u => u.Id == region2.Id)) - Console.WriteLine($"2 级:{region2.Id} - {region2.Name} 已存在"); + if (areaList.Any(u => u.Id == region1.Id)) + Console.WriteLine($"1 级:{region1.Id} - {region1.Name} 已存在"); else - areaList.Add(region2); - foreach (var regionLevel3 in regionLevel2.Children) + areaList.Add(region1); + if (regionLevel1.Children == null) continue; + foreach (var regionLevel2 in regionLevel1.Children) { - var region3 = new SysRegion + var region2 = new SysRegion { - Id = Convert.ToInt64(regionLevel3.Code), - Pid = Convert.ToInt64(regionLevel2.Code), - Code = regionLevel3.Code, - Name = regionLevel3.Name, - Type = regionLevel3.Type, - Level = regionLevel3.Level, + Id = Convert.ToInt64(regionLevel2.Code), + Pid = Convert.ToInt64(regionLevel1.Code), + Code = regionLevel2.Code, + Name = regionLevel2.Name, + Type = regionLevel2.Type, + Level = regionLevel2.Level, }; - if (areaList.Any(u => u.Id == region3.Id)) - Console.WriteLine($"3 级:{region3.Id} - {region3.Name}"); + if (areaList.Any(u => u.Id == region2.Id)) + Console.WriteLine($"2 级:{region2.Id} - {region2.Name} 已存在"); else - areaList.Add(region3); - foreach (var regionLevel4 in regionLevel3.Children) + areaList.Add(region2); + if (regionLevel2.Children == null) continue; + foreach (var regionLevel3 in regionLevel2.Children) { - var region4 = new SysRegion + var region3 = new SysRegion { - Id = Convert.ToInt64(regionLevel4.Code), - Pid = Convert.ToInt64(regionLevel3.Code), - Code = regionLevel4.Code, - Name = regionLevel4.Name, - Type = regionLevel4.Type, - Level = regionLevel4.Level, + Id = Convert.ToInt64(regionLevel3.Code), + Pid = Convert.ToInt64(regionLevel2.Code), + Code = regionLevel3.Code, + Name = regionLevel3.Name, + Type = regionLevel3.Type, + Level = regionLevel3.Level, }; - areaList.Add(region4); + if (areaList.Any(u => u.Id == region3.Id)) + Console.WriteLine($"3 级:{region3.Id} - {region3.Name}"); + else + areaList.Add(region3); + if (regionLevel3.Children == null) continue; + foreach (var regionLevel4 in regionLevel3.Children) + { + var region4 = new SysRegion + { + Id = Convert.ToInt64(regionLevel4.Code), + Pid = Convert.ToInt64(regionLevel3.Code), + Code = regionLevel4.Code, + Name = regionLevel4.Name, + Type = regionLevel4.Type, + Level = regionLevel4.Level, + }; + areaList.Add(region4); + } } } }