Browse Source

update 按费用类型增加分佣规则

周箭河 4 years ago
parent
commit
7730ebe1e4
1 changed files with 16 additions and 11 deletions
  1. 16 11
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/PayServiceImpl.java

+ 16 - 11
mec-biz/src/main/java/com/ym/mec/biz/service/impl/PayServiceImpl.java

@@ -418,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());
@@ -457,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;
@@ -470,9 +466,10 @@ public class PayServiceImpl implements PayService {
                 }
             }
         }
-        boolean hasFeeFlag = false;
         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;
@@ -483,15 +480,23 @@ public class PayServiceImpl implements PayService {
                     routeScaleDto.setAmount(routeScaleDto.getAmount().add(scaleDto.getAmount()));
                     routeScaleDto.setBalance(routeScaleDto.getBalance().add(scaleDto.getBalance()));
                 }
-                if (!hasFeeFlag && scaleDto.getAmount().compareTo(maxAmount) == 0) {
-                    routeScaleDto.setFeeFlag("Y");
-                    hasFeeFlag = true;
-                } else {
-                    routeScaleDto.setFeeFlag("N");
-                }
+            }
+            if (routeScaleDto != null && routeScaleDto.getAmount().compareTo(maxAmount) > 0) {
+                maxAmount = routeScaleDto.getAmount();
             }
             newRouteScaleDtos.add(routeScaleDto);
         }
+
+        //金额最大的账号承担手续费
+        boolean hasFeeFlag = false;
+        for (RouteScaleDto routeScaleDto : newRouteScaleDtos) {
+            if (!hasFeeFlag && routeScaleDto.getAmount().compareTo(maxAmount) == 0) {
+                routeScaleDto.setFeeFlag("Y");
+                hasFeeFlag = true;
+            } else {
+                routeScaleDto.setFeeFlag("N");
+            }
+        }
         return newRouteScaleDtos;
     }
 }