【修复】修改前端添加地址获取三级联动的判断模式,防止出现个人重名导致的获取序列失败的问题。

This commit is contained in:
jianweie code
2024-06-07 11:43:16 +08:00
parent 19fa51bcb6
commit 24f532ff0c
8 changed files with 77 additions and 102 deletions

View File

@@ -299,11 +299,14 @@ namespace CoreCms.Net.Services.Basic
/// 获取最终地区ID
/// </summary>
/// <param name="provinceName">省</param>
/// <param name="provinceId">省序列</param>
/// <param name="cityName">市</param>
/// <param name="cityId">市序列</param>
/// <param name="countyName">县</param>
/// <param name="countyId">县序列</param>
/// <param name="postalCode">邮编</param>
/// <returns></returns>
public async Task<WebApiCallBack> GetAreaId(string provinceName, string cityName, string countyName, string postalCode)
public async Task<WebApiCallBack> GetAreaId(string provinceName, int provinceId, string cityName, int cityId, string countyName, int countyId, string postalCode)
{
var jm = new WebApiCallBack();
@@ -313,10 +316,12 @@ namespace CoreCms.Net.Services.Basic
return jm;
}
var areaId = await GetThreeAreaId(provinceName, provinceId, cityName, cityId, countyName, countyId, postalCode);
jm = new WebApiCallBack
{
status = true,
data = await GetThreeAreaId(provinceName, cityName, countyName, postalCode)
status = areaId > 0,
data = areaId
};
return jm;
}
@@ -325,109 +330,32 @@ namespace CoreCms.Net.Services.Basic
/// 获取最终地区ID
/// </summary>
/// <param name="provinceName">省</param>
/// <param name="provinceId">省序列</param>
/// <param name="cityName">市</param>
/// <param name="cityId">市序列</param>
/// <param name="countyName">县</param>
/// <param name="countyId">县序列</param>
/// <param name="postalCode">邮编</param>
/// <returns></returns>
public async Task<int> GetThreeAreaId(string provinceName, string cityName, string countyName, string postalCode)
public async Task<int> GetThreeAreaId(string provinceName, int provinceId, string cityName, int cityId, string countyName, int countyId, string postalCode)
{
var areaData = await GetCaChe();
var id = 0;
var countyList = areaData.Where(p => p.depth == (int)GlobalEnumVars.AreaDepth.County && p.name == countyName).ToList();
if (countyList.Any())
//获取县
var county = areaData.FirstOrDefault(p => p.depth == (int)GlobalEnumVars.AreaDepth.County && p.name == countyName && p.id == countyId);
//获取市
var city = areaData.FirstOrDefault(p => p.depth == (int)GlobalEnumVars.AreaDepth.City && p.name == cityName && p.id == cityId);
//获取省
var province = areaData.FirstOrDefault(p => p.depth == (int)GlobalEnumVars.AreaDepth.Province && p.name == provinceName && p.id == provinceId);
//必须三个都满足,证明才正常
if (province != null && city != null && county != null)
{
if (countyList.Count > 1)
{
var cityModel = areaData.Find(p => p.depth == (int)GlobalEnumVars.AreaDepth.City && p.name == cityName);
if (cityModel != null)
{
//foreach (var item in countyList)
//{
// if (item.parentId == cityModel.id)
// {
// id = item.id;
// }
//}
var result = countyList.Find(p => p.parentId == cityModel.id);
return result?.id ?? 0;
}
}
else
{
id = countyList[0].id;
}
id = county.id;
}
else
{
//var cityModel = areaData.Find(p => p.depth == (int)GlobalEnumVars.AreaDepth.City && p.name == cityName);
//if (cityModel != null)
//{
// //创建区域
// var area = new CoreCmsArea();
// area.depth = (int)GlobalEnumVars.AreaDepth.County;
// area.name = countyName;
// area.postalCode = postalCode;
// area.parentId = cityModel.id;
// area.sort = 100;
// id = await base.InsertAsync(area);
// await UpdateCaChe();
//}
//else
//{
// var province = areaData.Find(p => p.depth == (int)GlobalEnumVars.AreaDepth.Province && p.name == provinceName);
// if (province != null)
// {
// //创建城市
// var areaCity = new CoreCmsArea();
// areaCity.depth = (int)GlobalEnumVars.AreaDepth.City;
// areaCity.name = cityName;
// //areaCity.postalCode = postalCode;
// areaCity.parentId = province.id;
// areaCity.sort = 100;
// var cityId = await base.InsertAsync(areaCity);
// //创建区域
// var areaCounty = new CoreCmsArea();
// areaCounty.depth = (int)GlobalEnumVars.AreaDepth.County;
// areaCounty.name = countyName;
// areaCounty.postalCode = postalCode;
// areaCounty.parentId = cityId;
// areaCounty.sort = 100;
// id = await base.InsertAsync(areaCounty);
// }
// else
// {
// //创建省
// var areaProvince = new CoreCmsArea();
// areaProvince.depth = (int)GlobalEnumVars.AreaDepth.Province;
// areaProvince.name = cityName;
// //areaCity.postalCode = postalCode;
// areaProvince.parentId = (int)GlobalEnumVars.AreaDepth.ProvinceParentId;
// areaProvince.sort = 100;
// var provinceId = await base.InsertAsync(areaProvince);
// //创建城市
// var areaCity = new CoreCmsArea();
// areaCity.depth = (int)GlobalEnumVars.AreaDepth.City;
// areaCity.name = cityName;
// //areaCity.postalCode = postalCode;
// areaCity.parentId = provinceId;
// areaCity.sort = 100;
// var cityId = await base.InsertAsync(areaCity);
// //创建区域
// var areaCounty = new CoreCmsArea();
// areaCounty.depth = (int)GlobalEnumVars.AreaDepth.County;
// areaCounty.name = countyName;
// areaCounty.postalCode = postalCode;
// areaCounty.parentId = cityId;
// areaCounty.sort = 100;
// id = await base.InsertAsync(areaCounty);
// }
// await UpdateCaChe();
//}
id = 0;
}
return id;