Ver código fonte

处理套餐配置,基础方案驾意险不能按照座位数进行报价的问题

lixiaolong 3 semanas atrás
pai
commit
bd54de2685

+ 25 - 0
tenant/organization/src/main/java/com/jzg/organization/service/impl/PtlSchemeServiceImpl.java

@@ -647,6 +647,31 @@ public class PtlSchemeServiceImpl extends ServiceImpl<PtlSchemeMapper, PtlScheme
         List<SchemeResultVo.SchemeVo> schemeInsuranceInfo = ptlSchemeMapper.getSchemeInsuranceInfo(companyId, productId);
         List<SchemeResultVo.SchemeVo> schemeDrivingInfo = ptlSchemeMapper.getSchemeDrivingInfo(companyId, productId);
 
+        // 过滤驾意险 ->根据座位数
+        if (StrUtil.isNotBlank(seatCount)) {
+            int seats = Integer.parseInt(seatCount);
+            schemeDrivingInfo.forEach(scheme -> {
+                scheme.getInfos().forEach(info -> {
+                    List<SchemeResultVo.Driving> drivings = info.getDrivings();
+                    if (drivings != null && !drivings.isEmpty()) {
+                        List<SchemeResultVo.Driving> filteredList = drivings.stream()
+                                .filter(driving -> {
+                                    // 如果 minSeatCount 和 maxSeatCount 都为 null,视为没有限制,不过滤
+                                    if (driving.getMinSeatCount() == null && driving.getMaxSeatCount() == null) {
+                                        return true;
+                                    }
+                                    // 检查座位数是否在范围内
+                                    int minSeat = driving.getMinSeatCount() != null ? driving.getMinSeatCount() : Integer.MIN_VALUE;
+                                    int maxSeat = driving.getMaxSeatCount() != null ? driving.getMaxSeatCount() : Integer.MAX_VALUE;
+                                    return seats >= minSeat && seats <= maxSeat;
+                                })
+                                .collect(Collectors.toList());
+                        info.setDrivings(filteredList);
+                    }
+                });
+            });
+        }
+
         // 过滤类型
         List<SchemeResultVo.SchemeVo> newSchemeList = schemeInsuranceInfo.stream()
                 .filter(scheme -> scheme.getVehicleType().contains(vehicleType)