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

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

@@ -40,11 +40,14 @@ namespace CoreCms.Net.IServices
/// 获取最终地区ID /// 获取最终地区ID
/// </summary> /// </summary>
/// <param name="provinceName">省</param> /// <param name="provinceName">省</param>
/// <param name="provinceId">省序列</param>
/// <param name="cityName">市</param> /// <param name="cityName">市</param>
/// <param name="cityId">市序列</param>
/// <param name="countyName">县</param> /// <param name="countyName">县</param>
/// <param name="countyId">县序列</param>
/// <param name="postalCode">邮编</param> /// <param name="postalCode">邮编</param>
/// <returns></returns> /// <returns></returns>
Task<int> GetThreeAreaId(string provinceName, string cityName, string countyName, string postalCode); Task<int> GetThreeAreaId(string provinceName, int provinceId, string cityName, int cityId, string countyName, int countyId, string postalCode);
/// <summary> /// <summary>
/// 根据areaId获取三级区域名称 /// 根据areaId获取三级区域名称
@@ -64,11 +67,14 @@ namespace CoreCms.Net.IServices
/// 获取最终地区ID /// 获取最终地区ID
/// </summary> /// </summary>
/// <param name="provinceName">省</param> /// <param name="provinceName">省</param>
/// <param name="provinceId">省序列</param>
/// <param name="cityName">市</param> /// <param name="cityName">市</param>
/// <param name="cityId">市序列</param>
/// <param name="countyName">县</param> /// <param name="countyName">县</param>
/// <param name="countyId">县序列</param>
/// <param name="postalCode">邮编</param> /// <param name="postalCode">邮编</param>
/// <returns></returns> /// <returns></returns>
Task<WebApiCallBack> GetAreaId(string provinceName, string cityName, string countyName, string postalCode); Task<WebApiCallBack> GetAreaId(string provinceName, int provinceId, string cityName, int cityId, string countyName, int countyId, string postalCode);
#region =========================================================== #region ===========================================================

View File

@@ -12303,16 +12303,31 @@
市/区 市/区
</summary> </summary>
</member> </member>
<member name="P:CoreCms.Net.Model.ViewModels.DTO.GetAreaIdPost.cityId">
<summary>
市区序列号
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.DTO.GetAreaIdPost.countyName"> <member name="P:CoreCms.Net.Model.ViewModels.DTO.GetAreaIdPost.countyName">
<summary> <summary>
</summary> </summary>
</member> </member>
<member name="P:CoreCms.Net.Model.ViewModels.DTO.GetAreaIdPost.countyId">
<summary>
县序列
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.DTO.GetAreaIdPost.provinceName"> <member name="P:CoreCms.Net.Model.ViewModels.DTO.GetAreaIdPost.provinceName">
<summary> <summary>
</summary> </summary>
</member> </member>
<member name="P:CoreCms.Net.Model.ViewModels.DTO.GetAreaIdPost.provinceId">
<summary>
省序列
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.DTO.GetAreaIdPost.postalCode"> <member name="P:CoreCms.Net.Model.ViewModels.DTO.GetAreaIdPost.postalCode">
<summary> <summary>
邮编 邮编

View File

@@ -75,16 +75,32 @@ namespace CoreCms.Net.Model.ViewModels.DTO
/// </summary> /// </summary>
public string cityName { get; set; } public string cityName { get; set; }
/// <summary>
/// 市区序列号
/// </summary>
public int cityId { get; set; }
/// <summary> /// <summary>
/// 县 /// 县
/// </summary> /// </summary>
public string countyName { get; set; } public string countyName { get; set; }
/// <summary>
/// 县序列
/// </summary>
public int countyId { get; set; }
/// <summary> /// <summary>
/// 省 /// 省
/// </summary> /// </summary>
public string provinceName { get; set; } public string provinceName { get; set; }
/// <summary>
/// 省序列
/// </summary>
public int provinceId { get; set; }
/// <summary> /// <summary>
/// 邮编 /// 邮编
/// </summary> /// </summary>

View File

@@ -299,11 +299,14 @@ namespace CoreCms.Net.Services.Basic
/// 获取最终地区ID /// 获取最终地区ID
/// </summary> /// </summary>
/// <param name="provinceName">省</param> /// <param name="provinceName">省</param>
/// <param name="provinceId">省序列</param>
/// <param name="cityName">市</param> /// <param name="cityName">市</param>
/// <param name="cityId">市序列</param>
/// <param name="countyName">县</param> /// <param name="countyName">县</param>
/// <param name="countyId">县序列</param>
/// <param name="postalCode">邮编</param> /// <param name="postalCode">邮编</param>
/// <returns></returns> /// <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(); var jm = new WebApiCallBack();
@@ -313,10 +316,12 @@ namespace CoreCms.Net.Services.Basic
return jm; return jm;
} }
var areaId = await GetThreeAreaId(provinceName, provinceId, cityName, cityId, countyName, countyId, postalCode);
jm = new WebApiCallBack jm = new WebApiCallBack
{ {
status = true, status = areaId > 0,
data = await GetThreeAreaId(provinceName, cityName, countyName, postalCode) data = areaId
}; };
return jm; return jm;
} }
@@ -325,109 +330,32 @@ namespace CoreCms.Net.Services.Basic
/// 获取最终地区ID /// 获取最终地区ID
/// </summary> /// </summary>
/// <param name="provinceName">省</param> /// <param name="provinceName">省</param>
/// <param name="provinceId">省序列</param>
/// <param name="cityName">市</param> /// <param name="cityName">市</param>
/// <param name="cityId">市序列</param>
/// <param name="countyName">县</param> /// <param name="countyName">县</param>
/// <param name="countyId">县序列</param>
/// <param name="postalCode">邮编</param> /// <param name="postalCode">邮编</param>
/// <returns></returns> /// <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 areaData = await GetCaChe();
var id = 0; 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) id = county.id;
{
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;
}
} }
else else
{ {
//var cityModel = areaData.Find(p => p.depth == (int)GlobalEnumVars.AreaDepth.City && p.name == cityName); id = 0;
//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();
//}
} }
return id; return id;

View File

@@ -256,15 +256,18 @@ export default {
// #endif // #endif
}, },
onConfirm(e) { onConfirm(e) {
console.log(e); //console.log(e);
let provinceName = e[0].label; let provinceName = e[0].label;
let cityName = e[1].label; let cityName = e[1].label;
let countyName = e[2].label; let countyName = e[2].label;
this.pickerValue = e[0].label + " " + e[1].label + " " + e[2].label this.pickerValue = e[0].label + " " + e[1].label + " " + e[2].label
let data = { let data = {
provinceName: provinceName, provinceName: provinceName,
provinceId: e[0].value,
cityName: cityName, cityName: cityName,
countyName: countyName cityId: e[1].value,
countyName: countyName,
countyId: e[2].value,
} }
this.$u.api.getAreaId(data).then(res => { this.$u.api.getAreaId(data).then(res => {
if (res.status) { if (res.status) {

View File

@@ -2677,6 +2677,13 @@
<param name="entity"></param> <param name="entity"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:CoreCms.Net.Web.Admin.Controllers.CoreCmsOrderController.CancelOrderAndRefund(CoreCms.Net.Model.FromBody.FMStringId)">
<summary>
取消订单并退款
</summary>
<param name="entity"></param>
<returns></returns>
</member>
<member name="M:CoreCms.Net.Web.Admin.Controllers.CoreCmsOrderController.DeleteOrder(CoreCms.Net.Model.FromBody.FMArrayStringIds)"> <member name="M:CoreCms.Net.Web.Admin.Controllers.CoreCmsOrderController.DeleteOrder(CoreCms.Net.Model.FromBody.FMArrayStringIds)">
<summary> <summary>
批量删除订单 批量删除订单

View File

@@ -14,7 +14,7 @@
dbProvider="Microsoft.Data.SqlClient.SqlConnection, Microsoft.Data.SqlClient" dbProvider="Microsoft.Data.SqlClient.SqlConnection, Microsoft.Data.SqlClient"
connectionString="Server=127.0.0.1;Database=BaseMIS;User ID=sa;Password=123456" connectionString="Server=127.0.0.1;Database=BaseMIS;User ID=sa;Password=123456"
--> -->
<target name="log_database" xsi:type="Database" dbProvider="MySql.Data.MySqlClient.MySqlConnection,Mysql.Data" connectionString="Server=124.223.165.131;Port=3306;Database=coreshoppro;Uid=CoreShopPro;Pwd=Txbrk5s4AR452nCF;CharSet=utf8;pooling=true;SslMode=None;Allow User Variables=true;Convert Zero Datetime=True;Allow Zero Datetime=True;"> <target name="log_database" xsi:type="Database" dbProvider="Microsoft.Data.SqlClient.SqlConnection, Microsoft.Data.SqlClient" connectionString="Server=127.0.0.1;uid=CoreShopProfessional;pwd=CoreShopProfessional;Database=CoreShopProfessional;MultipleActiveResultSets=true;pooling=true;min pool size=5;max pool size=32767;connect timeout=20;Encrypt=True;TrustServerCertificate=True;">
<commandText> <commandText>
INSERT INTO SysNLogRecords INSERT INTO SysNLogRecords
(LogDate,LogLevel,LogType,LogTitle,Logger,Message,MachineName,MachineIp,NetRequestMethod (LogDate,LogLevel,LogType,LogTitle,Logger,Message,MachineName,MachineIp,NetRequestMethod

View File

@@ -860,7 +860,7 @@ namespace CoreCms.Net.Web.WebApi.Controllers
[HttpPost] [HttpPost]
public async Task<WebApiCallBack> GetAreaId([FromBody] GetAreaIdPost entity) public async Task<WebApiCallBack> GetAreaId([FromBody] GetAreaIdPost entity)
{ {
var jm = await _areaServices.GetAreaId(entity.provinceName, entity.cityName, entity.countyName, entity.postalCode); var jm = await _areaServices.GetAreaId(entity.provinceName, entity.provinceId, entity.cityName, entity.cityId, entity.countyName, entity.countyId, entity.postalCode);
return jm; return jm;
} }