From 2cca18c106e7c9f729e6200f1024cbf2b3bdf373 Mon Sep 17 00:00:00 2001 From: ximu-tao Date: Thu, 18 Sep 2025 13:56:41 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E8=8E=B7=E5=8F=96=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=AE=9A=E4=BD=8D=E6=97=B6=EF=BC=8C=E5=9C=B0=E5=8C=BA=E5=90=8D?= =?UTF-8?q?=E7=A7=B0=E5=90=8C=E5=90=8D=E5=AF=BC=E8=87=B4=E5=88=B0=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/service/api/sys/impl/SysAreaServiceImpl.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/niucloud-core/src/main/java/com/niu/core/service/api/sys/impl/SysAreaServiceImpl.java b/niucloud-core/src/main/java/com/niu/core/service/api/sys/impl/SysAreaServiceImpl.java index cb997e97..71c6711a 100644 --- a/niucloud-core/src/main/java/com/niu/core/service/api/sys/impl/SysAreaServiceImpl.java +++ b/niucloud-core/src/main/java/com/niu/core/service/api/sys/impl/SysAreaServiceImpl.java @@ -201,11 +201,13 @@ public class SysAreaServiceImpl implements ISysAreaService { String addressJsonString = TencentGeocoder.getAddress(key, param.getLatlng(), param.getGetPoi()); JSONObject jsonObjectResult = TencentGeocoder.formatData(addressJsonString); String province = jsonObjectResult.getStr("province"); - jsonObjectResult.putOpt("province_id", this.queryCodeByNameAndLevel(province, 1)); + Integer province_id = this.queryCodeByNameAndLevel(province, 1, 0); + jsonObjectResult.putOpt("province_id", province_id ); String city = jsonObjectResult.getStr("city"); - jsonObjectResult.putOpt("city_id", this.queryCodeByNameAndLevel(city, 2)); + Integer city_id = this.queryCodeByNameAndLevel(city, 2, province_id); + jsonObjectResult.putOpt("city_id", city_id ); String district = jsonObjectResult.getStr("district"); - jsonObjectResult.putOpt("district_id", this.queryCodeByNameAndLevel(district, 3)); + jsonObjectResult.putOpt("district_id", this.queryCodeByNameAndLevel(district, 3, city_id)); return jsonObjectResult; } @@ -214,11 +216,12 @@ public class SysAreaServiceImpl implements ISysAreaService { * @param level * @return */ - private Integer queryCodeByNameAndLevel(String areaName, int level) { + private Integer queryCodeByNameAndLevel(String areaName, int level, Integer pid) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.select("id"); queryWrapper.eq("name", areaName); queryWrapper.eq("level", level); + queryWrapper.eq( pid > 0 && level > 1 , "pid", pid); SysArea sysArea = this.sysAreaMapper.selectOne(queryWrapper); if (sysArea != null) { return sysArea.getId(); -- Gitee