Browse Source

Update OrderServiceImpl.java

luseweixiao 3 weeks ago
parent
commit
2eeac3ab53

+ 79 - 8
src/main/java/com/sl/ms/web/enterprise/service/impl/OrderServiceImpl.java

@@ -139,16 +139,87 @@ public class OrderServiceImpl implements OrderService {
         areaNames.add(orderRequest.getReceiverCounty());
 
         List<AreaDto> areaDtoList = areaFeign.findByNamesV2(areaNames);
-        Map<String, AreaDto> map = new HashMap<>();
+        Map<String, List<AreaDto>> map = new HashMap<>();
         areaDtoList.stream().forEach(areaDto -> {
-            map.put(areaDto.getName(), areaDto);
+            if (map.get(areaDto.getName())== null) {
+                List<AreaDto> list = new ArrayList<>();
+                list.add(areaDto);
+                map.put(areaDto.getName(), list);
+            } else {
+                map.get(areaDto.getName()).add(areaDto);
+            }
         });
-        AreaDto senderProvince = map.get(orderRequest.getSenderProvince());
-        AreaDto receiverProvince = map.get(orderRequest.getReceiverProvince());
-        AreaDto senderCity = map.get(orderRequest.getSenderCity());
-        AreaDto receiverCity = map.get(orderRequest.getReceiverCity());
-        AreaDto senderCounty = map.get(orderRequest.getSenderCounty());
-        AreaDto receiverCounty = map.get(orderRequest.getReceiverCounty());
+        AreaDto senderProvince = null;
+        AreaDto receiverProvince = null;
+        AreaDto senderCity = null;
+        AreaDto receiverCity = null;
+        AreaDto senderCounty = null;
+        AreaDto receiverCounty = null;
+        if (ObjectUtils.isNotEmpty(map.get(orderRequest.getSenderProvince()))) {
+            senderProvince = map.get(orderRequest.getSenderProvince()).get(0);
+        } else {
+            throw new SLWebException("寄件省份错误");
+        }
+        if (ObjectUtils.isNotEmpty(map.get(orderRequest.getReceiverProvince()))) {
+            receiverProvince = map.get(orderRequest.getReceiverProvince()).get(0);
+        } else {
+            throw new SLWebException("收件省份错误");
+        }
+        if (ObjectUtils.isNotEmpty(map.get(orderRequest.getSenderCity()))) {
+            List<AreaDto> areaDtoList1 = map.get(orderRequest.getSenderCity());
+            for (AreaDto areaDto : areaDtoList1) {
+                if (areaDto.getParentId().equals(senderProvince.getId())) {
+                    senderCity = areaDto;
+                    break;
+                }
+            }
+        } else {
+            throw new SLWebException("寄件市信息错误");
+        }
+        if (ObjectUtil.isNull(senderCity)) {
+            throw new SLWebException("收件市信息错误");
+        }
+        if (ObjectUtils.isNotEmpty(map.get(orderRequest.getReceiverCity()))) {
+            List<AreaDto> areaDtoList2 = map.get(orderRequest.getReceiverCity());
+            for (AreaDto areaDto : areaDtoList2) {
+                if (areaDto.getParentId().equals(receiverProvince.getId())) {
+                    receiverCity = areaDto;
+                    break;
+                }
+            }
+        } else {
+            throw new SLWebException("收件市信息错误");
+        }
+        if (ObjectUtil.isNull(receiverCity)) {
+            throw new SLWebException("收件市信息错误");
+        }
+        if (ObjectUtils.isNotEmpty(map.get(orderRequest.getSenderCounty()))) {
+            List<AreaDto> areaDtoList3 = map.get(orderRequest.getSenderCounty());
+            for (AreaDto areaDto : areaDtoList3) {
+                if (areaDto.getParentId().equals(senderCity.getId())) {
+                    senderCounty = areaDto;
+                }
+            }
+        }
+        if (ObjectUtil.isNull(senderCounty)) {
+            throw new SLWebException("寄件区县信息错误");
+        }
+        if (ObjectUtils.isNotEmpty(map.get(orderRequest.getReceiverCounty()))) {
+            List<AreaDto> areaDtoList4 = map.get(orderRequest.getReceiverCounty());
+            for (AreaDto areaDto : areaDtoList4) {
+                if (areaDto.getParentId().equals(receiverCity.getId())) {
+                    receiverCounty = areaDto;
+                }
+            }
+        }
+        if (ObjectUtil.isNull(receiverCounty)) {
+            throw new SLWebException("收件区县信息错误");
+        }
+//        AreaDto receiverProvince = map.get(orderRequest.getReceiverProvince());
+//        AreaDto senderCity = map.get(orderRequest.getSenderCity());
+//        AreaDto receiverCity = map.get(orderRequest.getReceiverCity());
+//        AreaDto senderCounty = map.get(orderRequest.getSenderCounty());
+//        AreaDto receiverCounty = map.get(orderRequest.getReceiverCounty());
 
         if (ObjectUtils.anyNull(senderProvince, receiverProvince, senderCity, receiverCity, senderCounty, receiverCounty)) {
             return ApiResponse.error(SZColdChainConstant.CODE_PARAM_FORMAT_ERROR, "地址解析错误");