|
|
@@ -401,7 +401,6 @@ public class PayServiceImpl implements PayService {
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
String typeRouteScale = paymentConfig.getTypeRouteScale();
|
|
|
List<RouteScaleDto> routeScaleDtos = JSON.parseArray(typeRouteScale, RouteScaleDto.class);
|
|
|
List<Integer> organIds = routeScaleDtos.stream().map(RouteScaleDto::getOrganId).collect(Collectors.toList());
|
|
|
@@ -419,7 +418,6 @@ public class PayServiceImpl implements PayService {
|
|
|
BigDecimal sellHasRouteBalance = BigDecimal.ZERO;
|
|
|
|
|
|
Iterator<RouteScaleDto> iterator = routeScaleDtos.iterator();
|
|
|
- BigDecimal maxAmount = BigDecimal.ZERO;
|
|
|
while (iterator.hasNext()) {
|
|
|
RouteScaleDto routeScaleDto = iterator.next();
|
|
|
routeScaleDto.setPayType(paymentConfig.getPayType());
|
|
|
@@ -458,9 +456,6 @@ public class PayServiceImpl implements PayService {
|
|
|
iterator.remove();
|
|
|
continue;
|
|
|
}
|
|
|
- if (routeScaleDto.getAmount().compareTo(maxAmount) > 0) {
|
|
|
- maxAmount = routeScaleDto.getAmount();
|
|
|
- }
|
|
|
|
|
|
for (SysPaymentConfig paymentConfigByOrganId : paymentConfigByOrganIds) {
|
|
|
if (!paymentConfigByOrganId.getOrganId().equals(routeScaleDto.getOrganId())) continue;
|
|
|
@@ -471,8 +466,30 @@ public class PayServiceImpl implements PayService {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ Map<String, List<RouteScaleDto>> routeScaleDtosMap = routeScaleDtos.stream().collect(Collectors.groupingBy(RouteScaleDto::getMerNo));
|
|
|
+
|
|
|
+ //合并同账号的数据
|
|
|
+ BigDecimal maxAmount = BigDecimal.ZERO;
|
|
|
+ List<RouteScaleDto> newRouteScaleDtos = new ArrayList<>();
|
|
|
+ for (Map.Entry<String, List<RouteScaleDto>> groupRouteScaleDtos : routeScaleDtosMap.entrySet()) {
|
|
|
+ RouteScaleDto routeScaleDto = null;
|
|
|
+ for (RouteScaleDto scaleDto : groupRouteScaleDtos.getValue()) {
|
|
|
+ if(routeScaleDto == null){
|
|
|
+ routeScaleDto = scaleDto;
|
|
|
+ }else {
|
|
|
+ routeScaleDto.setAmount(routeScaleDto.getAmount().add(scaleDto.getAmount()));
|
|
|
+ routeScaleDto.setBalance(routeScaleDto.getBalance().add(scaleDto.getBalance()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (routeScaleDto != null && routeScaleDto.getAmount().compareTo(maxAmount) > 0) {
|
|
|
+ maxAmount = routeScaleDto.getAmount();
|
|
|
+ }
|
|
|
+ newRouteScaleDtos.add(routeScaleDto);
|
|
|
+ }
|
|
|
+
|
|
|
+ //金额最大的账号承担手续费
|
|
|
boolean hasFeeFlag = false;
|
|
|
- for (RouteScaleDto routeScaleDto : routeScaleDtos) {
|
|
|
+ for (RouteScaleDto routeScaleDto : newRouteScaleDtos) {
|
|
|
if (!hasFeeFlag && routeScaleDto.getAmount().compareTo(maxAmount) == 0) {
|
|
|
routeScaleDto.setFeeFlag("Y");
|
|
|
hasFeeFlag = true;
|
|
|
@@ -480,6 +497,6 @@ public class PayServiceImpl implements PayService {
|
|
|
routeScaleDto.setFeeFlag("N");
|
|
|
}
|
|
|
}
|
|
|
- return routeScaleDtos;
|
|
|
+ return newRouteScaleDtos;
|
|
|
}
|
|
|
}
|