😎修复同步行政区划空对象问题

This commit is contained in:
zuohuaijun 2025-03-10 13:53:15 +08:00
parent 6a2ad8c850
commit 39d8ed7326

View File

@ -297,63 +297,69 @@ public class SysRegionService : IDynamicApiController, ITransient
Level = regionLevel0.Level, 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), var region1 = new SysRegion
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
{ {
Id = Convert.ToInt64(regionLevel2.Code), Id = Convert.ToInt64(regionLevel1.Code),
Pid = Convert.ToInt64(regionLevel1.Code), Pid = Convert.ToInt64(regionLevel0.Code),
Code = regionLevel2.Code, Code = regionLevel1.Code,
Name = regionLevel2.Name, Name = regionLevel1.Name,
Type = regionLevel2.Type, Type = regionLevel1.Type,
Level = regionLevel2.Level, Level = regionLevel1.Level,
}; };
if (areaList.Any(u => u.Id == region2.Id)) if (areaList.Any(u => u.Id == region1.Id))
Console.WriteLine($"2 级:{region2.Id} - {region2.Name} 已存在"); Console.WriteLine($"1 级:{region1.Id} - {region1.Name} 已存在");
else else
areaList.Add(region2); areaList.Add(region1);
foreach (var regionLevel3 in regionLevel2.Children) if (regionLevel1.Children == null) continue;
foreach (var regionLevel2 in regionLevel1.Children)
{ {
var region3 = new SysRegion var region2 = new SysRegion
{ {
Id = Convert.ToInt64(regionLevel3.Code), Id = Convert.ToInt64(regionLevel2.Code),
Pid = Convert.ToInt64(regionLevel2.Code), Pid = Convert.ToInt64(regionLevel1.Code),
Code = regionLevel3.Code, Code = regionLevel2.Code,
Name = regionLevel3.Name, Name = regionLevel2.Name,
Type = regionLevel3.Type, Type = regionLevel2.Type,
Level = regionLevel3.Level, Level = regionLevel2.Level,
}; };
if (areaList.Any(u => u.Id == region3.Id)) if (areaList.Any(u => u.Id == region2.Id))
Console.WriteLine($"3 级:{region3.Id} - {region3.Name}"); Console.WriteLine($"2 级:{region2.Id} - {region2.Name} 已存在");
else else
areaList.Add(region3); areaList.Add(region2);
foreach (var regionLevel4 in regionLevel3.Children) if (regionLevel2.Children == null) continue;
foreach (var regionLevel3 in regionLevel2.Children)
{ {
var region4 = new SysRegion var region3 = new SysRegion
{ {
Id = Convert.ToInt64(regionLevel4.Code), Id = Convert.ToInt64(regionLevel3.Code),
Pid = Convert.ToInt64(regionLevel3.Code), Pid = Convert.ToInt64(regionLevel2.Code),
Code = regionLevel4.Code, Code = regionLevel3.Code,
Name = regionLevel4.Name, Name = regionLevel3.Name,
Type = regionLevel4.Type, Type = regionLevel3.Type,
Level = regionLevel4.Level, 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);
}
} }
} }
} }