diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseReportServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseReportServiceImpl.java index 7ccf8eade..b7a018798 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseReportServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseReportServiceImpl.java @@ -58,8 +58,8 @@ public class FranchiseReportServiceImpl implements FranchiseReportService { request.setRegionIds(regionIdByGroupName); } else { request.getRegionIds().retainAll(regionIdByGroupName); - if (CollectionUtils.isEmpty(request.getRegionIds())){ - throw new ServiceException(ErrorCodeEnum.REGION_INTERSECTION_IS_NULL); + if (CollectionUtils.isEmpty(request.getRegionIds())) { + throw new ServiceException(ErrorCodeEnum.REGION_INTERSECTION_IS_NULL); } } } @@ -76,22 +76,25 @@ public class FranchiseReportServiceImpl implements FranchiseReportService { List bigRegionDOList = bigRegionDAO.getByRegionIdList(new ArrayList<>(regionSet)); Map bigRegionDOMap = bigRegionDOList.stream().collect(Collectors.toMap(BigRegionDO::getRegionId, bigRegionDO -> bigRegionDO)); Map responseByRegionIdMap = new HashMap<>(); - Map responseByJoinGroupNameMap = new HashMap<>(); + Map responseByJoinGroupNameMap = new HashMap<>(); for (FranchiseReportDTO shopFranchiseReportDTO : shopFranchiseReportList) { - FranchiseReportResponse response = new FranchiseReportResponse(); - if(CollectionUtils.isEmpty(request.getJoinGroupName()) && CollectionUtils.isEmpty(request.getRegionIds())){ - BigRegionDO bigRegionDO = bigRegionDOMap.get(shopFranchiseReportDTO.getRegionId()); - response = responseByJoinGroupNameMap.get(bigRegionDO.getGroupName()); + BigRegionDO bigRegionDO = bigRegionDOMap.get(shopFranchiseReportDTO.getRegionId()); + if (bigRegionDO == null) { + continue; } - else { - response = responseByRegionIdMap.get(shopFranchiseReportDTO.getRegionId()); + FranchiseReportResponse response = new FranchiseReportResponse(); + if (CollectionUtils.isEmpty(request.getJoinGroupName()) && CollectionUtils.isEmpty(request.getRegionIds())) { + response = responseByJoinGroupNameMap.getOrDefault(bigRegionDO.getGroupName(), new FranchiseReportResponse()); + response.setJoinGroupName(bigRegionDO.getGroupName()); + } else { + response = responseByRegionIdMap.get(shopFranchiseReportDTO.getRegionId()); } - if (response == null) { + if (response == null && CollectionUtils.isNotEmpty(request.getJoinGroupName()) && CollectionUtils.isNotEmpty(request.getRegionIds())) { response = new FranchiseReportResponse(); response.setRegionId(shopFranchiseReportDTO.getRegionId()); - response.setRegionName(bigRegionDOMap.getOrDefault(shopFranchiseReportDTO.getRegionId(), new BigRegionDO()).getRegionName()); - String groupName = bigRegionDOMap.getOrDefault(shopFranchiseReportDTO.getRegionId(), new BigRegionDO()).getGroupName(); + response.setRegionName(bigRegionDO.getRegionName()); + String groupName = bigRegionDO.getGroupName(); if (StringUtils.isBlank(groupName)) { continue; } @@ -117,7 +120,11 @@ public class FranchiseReportServiceImpl implements FranchiseReportService { .add(new BigDecimal(franchiseFeeDO.getFirstYearFee())) .add(new BigDecimal(franchiseFeeDO.getPerformanceBond()))); } - responseByRegionIdMap.put(shopFranchiseReportDTO.getRegionId(), response); + if (CollectionUtils.isEmpty(request.getJoinGroupName()) && CollectionUtils.isEmpty(request.getRegionIds())) { + responseByJoinGroupNameMap.put(bigRegionDO.getGroupName(), response); + } else { + responseByRegionIdMap.put(shopFranchiseReportDTO.getRegionId(), response); + } } FranchiseReportRequest yesterdayRequest = new FranchiseReportRequest(); yesterdayRequest.setRegionIds(request.getRegionIds());