Przeglądaj źródła

fix: 知会-二阶段兑付后,在三阶段可以看到,但是在二阶段还可以看到这个包3

lixuesong 2 miesięcy temu
rodzic
commit
f6dd79bb8f

+ 13 - 12
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/manager/WmPackageManager.java

@@ -783,29 +783,30 @@ public class WmPackageManager {
       // 查询已知会信息(一阶段知会的只能二阶段看到,二阶段知会的只能三阶段看到)
       List<WmPackageRedemptionNotice> redemptionNotices = packageRedemptionNoticeService.list(
           Wrappers.<WmPackageRedemptionNotice>lambdaQuery().in(WmPackageRedemptionNotice::getPackageId, packageIds)
-              .eq(step > 1, WmPackageRedemptionNotice::getStep, step - 1)
-              .ne(step > 1, WmPackageRedemptionNotice::getStep, step + 1)
               .notIn(WmPackageRedemptionNotice::getCheckState, CheckState.REJECTED.getState()));
 
       Map<Integer, List<Integer>> noticePkgMap =
           redemptionNotices.stream().collect(Collectors.groupingBy(WmPackageRedemptionNotice::getStep,
               Collectors.mapping(WmPackageRedemptionNotice::getPackageId, Collectors.toList())));
 
+      List<Integer> firstNoticedPkgIds = noticePkgMap.get(1);
+      List<Integer> secondNoticedPkgIds = noticePkgMap.get(2);
+      List<Integer> thirdNoticedPkgIds = noticePkgMap.get(3);
+      
       if (step == 2) {
-          List<Integer> secondNoticedPkgIds = noticePkgMap.get(1);
-          List<Integer> thirdNoticedPkgIds = noticePkgMap.get(3);
-          // 二阶段获取上一阶段已知会的包, 但不获取三阶段已知会的包
+          // 二阶段获取上一阶段已知会的包, 但不获取二阶段和三阶段已知会的包
+          return packages.stream().filter(pkg -> CollUtil.isNotEmpty(firstNoticedPkgIds)
+              && firstNoticedPkgIds.contains(Integer.parseInt(pkg.getId()))
+              && (CollUtil.isEmpty(thirdNoticedPkgIds) || !thirdNoticedPkgIds.contains(Integer.parseInt(pkg.getId())))
+              && (CollUtil.isEmpty(secondNoticedPkgIds)
+                  || !secondNoticedPkgIds.contains(Integer.parseInt(pkg.getId()))))
+              .collect(Collectors.toList());
+      } else if (step == 3) {
+          // 三阶段获取上一阶段已知会的包, 但不获取三阶段已知会的包
           return packages.stream().filter(pkg -> CollUtil.isNotEmpty(secondNoticedPkgIds)
               && secondNoticedPkgIds.contains(Integer.parseInt(pkg.getId()))
               && (CollUtil.isEmpty(thirdNoticedPkgIds) || !thirdNoticedPkgIds.contains(Integer.parseInt(pkg.getId()))))
               .collect(Collectors.toList());
-      } else if (step > 2) {
-        List<Integer> noticedPkgIds = noticePkgMap.get(step - 1);
-          // 三阶段获取上一阶段已知会的包
-          return packages.stream()
-              .filter(
-                  pkg -> CollUtil.isNotEmpty(noticedPkgIds) && noticedPkgIds.contains(Integer.parseInt(pkg.getId())))
-              .collect(Collectors.toList());
       } else {
           List<Integer> allNoticedPackageIds =
               redemptionNotices.stream().map(WmPackageRedemptionNotice::getPackageId).collect(Collectors.toList());