Browse Source

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

周箭河 4 năm trước cách đây
mục cha
commit
d9fe5fc1ed

+ 20 - 8
mec-biz/src/main/java/com/ym/mec/biz/service/impl/PayServiceImpl.java

@@ -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());
@@ -472,14 +471,27 @@ public class PayServiceImpl implements PayService {
             }
         }
         boolean hasFeeFlag = false;
-        for (RouteScaleDto routeScaleDto : routeScaleDtos) {
-            if (!hasFeeFlag && routeScaleDto.getAmount().compareTo(maxAmount) == 0) {
-                routeScaleDto.setFeeFlag("Y");
-                hasFeeFlag = true;
-            } else {
-                routeScaleDto.setFeeFlag("N");
+        Map<String, List<RouteScaleDto>> routeScaleDtosMap = routeScaleDtos.stream().collect(Collectors.groupingBy(RouteScaleDto::getMerNo));
+
+        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 (!hasFeeFlag && scaleDto.getAmount().compareTo(maxAmount) == 0) {
+                    routeScaleDto.setFeeFlag("Y");
+                    hasFeeFlag = true;
+                } else {
+                    routeScaleDto.setFeeFlag("N");
+                }
             }
+            newRouteScaleDtos.add(routeScaleDto);
         }
-        return routeScaleDtos;
+        return newRouteScaleDtos;
     }
 }