Procházet zdrojové kódy

bugfix:解决门店入驻选择除大连外地区报错问题

penghao před 2 měsíci
rodič
revize
14f76d8ac5

+ 121 - 28
alien-store/src/main/java/shop/alien/store/service/impl/StoreInfoServiceImpl.java

@@ -970,12 +970,45 @@ public class StoreInfoServiceImpl extends ServiceImpl<StoreInfoMapper, StoreInfo
         //存入审批状态为待审批
         storeInfo.setStoreApplicationStatus(0);
         //处理一下行政区域信息
-        EssentialCityCode essentialCityCode1 = essentialCityCodeMapper.selectOne(new LambdaQueryWrapper<EssentialCityCode>().eq(EssentialCityCode::getAreaCode, storeInfo.getAdministrativeRegionProvinceAdcode()));
-        storeInfo.setAdministrativeRegionProvinceName(essentialCityCode1.getAreaName());
-        EssentialCityCode essentialCityCode2 = essentialCityCodeMapper.selectOne(new LambdaQueryWrapper<EssentialCityCode>().eq(EssentialCityCode::getAreaCode, storeInfo.getAdministrativeRegionCityAdcode()));
-        storeInfo.setAdministrativeRegionCityName(essentialCityCode2.getAreaName());
-        EssentialCityCode essentialCityCode3 = essentialCityCodeMapper.selectOne(new LambdaQueryWrapper<EssentialCityCode>().eq(EssentialCityCode::getAreaCode, storeInfo.getAdministrativeRegionDistrictAdcode()));
-        storeInfo.setAdministrativeRegionDistrictName(essentialCityCode3.getAreaName());
+        if (StringUtils.isNotEmpty(storeInfo.getAdministrativeRegionProvinceAdcode())) {
+            try {
+                Integer provinceAdcode = Integer.parseInt(storeInfo.getAdministrativeRegionProvinceAdcode());
+                EssentialCityCode essentialCityCode1 = essentialCityCodeMapper.selectOne(new LambdaQueryWrapper<EssentialCityCode>().eq(EssentialCityCode::getAreaCode, provinceAdcode));
+                if (null != essentialCityCode1) {
+                    storeInfo.setAdministrativeRegionProvinceName(essentialCityCode1.getAreaName());
+                } else {
+                    log.warn("未找到省份编码对应的地区信息:{}", storeInfo.getAdministrativeRegionProvinceAdcode());
+                }
+            } catch (NumberFormatException e) {
+                log.error("省份编码格式错误:{}", storeInfo.getAdministrativeRegionProvinceAdcode(), e);
+            }
+        }
+        if (StringUtils.isNotEmpty(storeInfo.getAdministrativeRegionCityAdcode())) {
+            try {
+                Integer cityAdcode = Integer.parseInt(storeInfo.getAdministrativeRegionCityAdcode());
+                EssentialCityCode essentialCityCode2 = essentialCityCodeMapper.selectOne(new LambdaQueryWrapper<EssentialCityCode>().eq(EssentialCityCode::getAreaCode, cityAdcode));
+                if (null != essentialCityCode2) {
+                    storeInfo.setAdministrativeRegionCityName(essentialCityCode2.getAreaName());
+                } else {
+                    log.warn("未找到城市编码对应的地区信息:{}", storeInfo.getAdministrativeRegionCityAdcode());
+                }
+            } catch (NumberFormatException e) {
+                log.error("城市编码格式错误:{}", storeInfo.getAdministrativeRegionCityAdcode(), e);
+            }
+        }
+        if (StringUtils.isNotEmpty(storeInfo.getAdministrativeRegionDistrictAdcode())) {
+            try {
+                Integer districtAdcode = Integer.parseInt(storeInfo.getAdministrativeRegionDistrictAdcode());
+                EssentialCityCode essentialCityCode3 = essentialCityCodeMapper.selectOne(new LambdaQueryWrapper<EssentialCityCode>().eq(EssentialCityCode::getAreaCode, districtAdcode));
+                if (null != essentialCityCode3) {
+                    storeInfo.setAdministrativeRegionDistrictName(essentialCityCode3.getAreaName());
+                } else {
+                    log.warn("未找到区县编码对应的地区信息:{}", storeInfo.getAdministrativeRegionDistrictAdcode());
+                }
+            } catch (NumberFormatException e) {
+                log.error("区县编码格式错误:{}", storeInfo.getAdministrativeRegionDistrictAdcode(), e);
+            }
+        }
         if (null == storeInfo.getCommissionRate()) {
             storeInfo.setCommissionRate("3");
         }
@@ -1325,22 +1358,43 @@ public class StoreInfoServiceImpl extends ServiceImpl<StoreInfoMapper, StoreInfo
     @Override
     public int saveStoreInfoDraft(StoreInfoDraft storeInfoDraft) {
         //处理一下行政区域信息
-        if (storeInfoDraft.getAdministrativeRegionProvinceAdcode() != null) {
-            EssentialCityCode essentialCityCode1 = essentialCityCodeMapper.selectOne(new LambdaQueryWrapper<EssentialCityCode>().eq(EssentialCityCode::getAreaCode, storeInfoDraft.getAdministrativeRegionProvinceAdcode()));
-            if (null != essentialCityCode1) {
-                storeInfoDraft.setAdministrativeRegionProvinceName(essentialCityCode1.getAreaName());
+        if (StringUtils.isNotEmpty(storeInfoDraft.getAdministrativeRegionProvinceAdcode())) {
+            try {
+                Integer provinceAdcode = Integer.parseInt(storeInfoDraft.getAdministrativeRegionProvinceAdcode());
+                EssentialCityCode essentialCityCode1 = essentialCityCodeMapper.selectOne(new LambdaQueryWrapper<EssentialCityCode>().eq(EssentialCityCode::getAreaCode, provinceAdcode));
+                if (null != essentialCityCode1) {
+                    storeInfoDraft.setAdministrativeRegionProvinceName(essentialCityCode1.getAreaName());
+                } else {
+                    log.warn("未找到省份编码对应的地区信息:{}", storeInfoDraft.getAdministrativeRegionProvinceAdcode());
+                }
+            } catch (NumberFormatException e) {
+                log.error("省份编码格式错误:{}", storeInfoDraft.getAdministrativeRegionProvinceAdcode(), e);
             }
         }
-        if (storeInfoDraft.getAdministrativeRegionCityAdcode() != null) {
-            EssentialCityCode essentialCityCode2 = essentialCityCodeMapper.selectOne(new LambdaQueryWrapper<EssentialCityCode>().eq(EssentialCityCode::getAreaCode, storeInfoDraft.getAdministrativeRegionCityAdcode()));
-            if (null != essentialCityCode2) {
-                storeInfoDraft.setAdministrativeRegionCityName(essentialCityCode2.getAreaName());
+        if (StringUtils.isNotEmpty(storeInfoDraft.getAdministrativeRegionCityAdcode())) {
+            try {
+                Integer cityAdcode = Integer.parseInt(storeInfoDraft.getAdministrativeRegionCityAdcode());
+                EssentialCityCode essentialCityCode2 = essentialCityCodeMapper.selectOne(new LambdaQueryWrapper<EssentialCityCode>().eq(EssentialCityCode::getAreaCode, cityAdcode));
+                if (null != essentialCityCode2) {
+                    storeInfoDraft.setAdministrativeRegionCityName(essentialCityCode2.getAreaName());
+                } else {
+                    log.warn("未找到城市编码对应的地区信息:{}", storeInfoDraft.getAdministrativeRegionCityAdcode());
+                }
+            } catch (NumberFormatException e) {
+                log.error("城市编码格式错误:{}", storeInfoDraft.getAdministrativeRegionCityAdcode(), e);
             }
         }
-        if (storeInfoDraft.getAdministrativeRegionDistrictAdcode() != null) {
-            EssentialCityCode essentialCityCode3 = essentialCityCodeMapper.selectOne(new LambdaQueryWrapper<EssentialCityCode>().eq(EssentialCityCode::getAreaCode, storeInfoDraft.getAdministrativeRegionDistrictAdcode()));
-            if (null != essentialCityCode3) {
-                storeInfoDraft.setAdministrativeRegionDistrictName(essentialCityCode3.getAreaName());
+        if (StringUtils.isNotEmpty(storeInfoDraft.getAdministrativeRegionDistrictAdcode())) {
+            try {
+                Integer districtAdcode = Integer.parseInt(storeInfoDraft.getAdministrativeRegionDistrictAdcode());
+                EssentialCityCode essentialCityCode3 = essentialCityCodeMapper.selectOne(new LambdaQueryWrapper<EssentialCityCode>().eq(EssentialCityCode::getAreaCode, districtAdcode));
+                if (null != essentialCityCode3) {
+                    storeInfoDraft.setAdministrativeRegionDistrictName(essentialCityCode3.getAreaName());
+                } else {
+                    log.warn("未找到区县编码对应的地区信息:{}", storeInfoDraft.getAdministrativeRegionDistrictAdcode());
+                }
+            } catch (NumberFormatException e) {
+                log.error("区县编码格式错误:{}", storeInfoDraft.getAdministrativeRegionDistrictAdcode(), e);
             }
         }
         if (StringUtils.isEmpty(storeInfoDraft.getBusinessLicenseUrl())) {
@@ -1484,12 +1538,45 @@ public class StoreInfoServiceImpl extends ServiceImpl<StoreInfoMapper, StoreInfo
         }
         
         //处理一下行政区域信息
-        EssentialCityCode essentialCityCode1 = essentialCityCodeMapper.selectOne(new LambdaQueryWrapper<EssentialCityCode>().eq(EssentialCityCode::getAreaCode, storeInfo.getAdministrativeRegionProvinceAdcode()));
-        storeInfo.setAdministrativeRegionProvinceName(essentialCityCode1.getAreaName());
-        EssentialCityCode essentialCityCode2 = essentialCityCodeMapper.selectOne(new LambdaQueryWrapper<EssentialCityCode>().eq(EssentialCityCode::getAreaCode, storeInfo.getAdministrativeRegionCityAdcode()));
-        storeInfo.setAdministrativeRegionCityName(essentialCityCode2.getAreaName());
-        EssentialCityCode essentialCityCode3 = essentialCityCodeMapper.selectOne(new LambdaQueryWrapper<EssentialCityCode>().eq(EssentialCityCode::getAreaCode, storeInfo.getAdministrativeRegionDistrictAdcode()));
-        storeInfo.setAdministrativeRegionDistrictName(essentialCityCode3.getAreaName());
+        if (StringUtils.isNotEmpty(storeInfo.getAdministrativeRegionProvinceAdcode())) {
+            try {
+                Integer provinceAdcode = Integer.parseInt(storeInfo.getAdministrativeRegionProvinceAdcode());
+                EssentialCityCode essentialCityCode1 = essentialCityCodeMapper.selectOne(new LambdaQueryWrapper<EssentialCityCode>().eq(EssentialCityCode::getAreaCode, provinceAdcode));
+                if (null != essentialCityCode1) {
+                    storeInfo.setAdministrativeRegionProvinceName(essentialCityCode1.getAreaName());
+                } else {
+                    log.warn("未找到省份编码对应的地区信息:{}", storeInfo.getAdministrativeRegionProvinceAdcode());
+                }
+            } catch (NumberFormatException e) {
+                log.error("省份编码格式错误:{}", storeInfo.getAdministrativeRegionProvinceAdcode(), e);
+            }
+        }
+        if (StringUtils.isNotEmpty(storeInfo.getAdministrativeRegionCityAdcode())) {
+            try {
+                Integer cityAdcode = Integer.parseInt(storeInfo.getAdministrativeRegionCityAdcode());
+                EssentialCityCode essentialCityCode2 = essentialCityCodeMapper.selectOne(new LambdaQueryWrapper<EssentialCityCode>().eq(EssentialCityCode::getAreaCode, cityAdcode));
+                if (null != essentialCityCode2) {
+                    storeInfo.setAdministrativeRegionCityName(essentialCityCode2.getAreaName());
+                } else {
+                    log.warn("未找到城市编码对应的地区信息:{}", storeInfo.getAdministrativeRegionCityAdcode());
+                }
+            } catch (NumberFormatException e) {
+                log.error("城市编码格式错误:{}", storeInfo.getAdministrativeRegionCityAdcode(), e);
+            }
+        }
+        if (StringUtils.isNotEmpty(storeInfo.getAdministrativeRegionDistrictAdcode())) {
+            try {
+                Integer districtAdcode = Integer.parseInt(storeInfo.getAdministrativeRegionDistrictAdcode());
+                EssentialCityCode essentialCityCode3 = essentialCityCodeMapper.selectOne(new LambdaQueryWrapper<EssentialCityCode>().eq(EssentialCityCode::getAreaCode, districtAdcode));
+                if (null != essentialCityCode3) {
+                    storeInfo.setAdministrativeRegionDistrictName(essentialCityCode3.getAreaName());
+                } else {
+                    log.warn("未找到区县编码对应的地区信息:{}", storeInfo.getAdministrativeRegionDistrictAdcode());
+                }
+            } catch (NumberFormatException e) {
+                log.error("区县编码格式错误:{}", storeInfo.getAdministrativeRegionDistrictAdcode(), e);
+            }
+        }
         storeInfoMapper.updateById(storeInfo);
         nearMeService.inGeolocation(new Point(Double.parseDouble(storeInfoDto.getStorePositionLongitude()), Double.parseDouble(storeInfoDto.getStorePositionLatitude())), storeInfo.getId().toString(), Boolean.TRUE);
 
@@ -2815,10 +2902,16 @@ public class StoreInfoServiceImpl extends ServiceImpl<StoreInfoMapper, StoreInfo
         if (StringUtils.isEmpty(areaCode)) {
             return ""; // 或返回null,根据业务定义
         }
-        EssentialCityCode cityCode = essentialCityCodeMapper.selectOne(
-                new LambdaQueryWrapper<EssentialCityCode>().eq(EssentialCityCode::getAreaCode, areaCode)
-        );
-        return Objects.nonNull(cityCode) ? cityCode.getAreaName() : "";
+        try {
+            Integer areaCodeInt = Integer.parseInt(areaCode);
+            EssentialCityCode cityCode = essentialCityCodeMapper.selectOne(
+                    new LambdaQueryWrapper<EssentialCityCode>().eq(EssentialCityCode::getAreaCode, areaCodeInt)
+            );
+            return Objects.nonNull(cityCode) ? cityCode.getAreaName() : "";
+        } catch (NumberFormatException e) {
+            log.error("区域编码格式错误:{}", areaCode, e);
+            return "";
+        }
     }
 
     @Override