|
|
@@ -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, "地址解析错误");
|