Sfoglia il codice sorgente

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

lixuesong 2 mesi fa
parent
commit
08380a0d12

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

@@ -780,19 +780,28 @@ public class WmPackageManager {
 
       List<String> packageIds = packages.stream().map(WmScorePackage::getId).collect(Collectors.toList());
 
-      // 查询已知会信息
+      // 查询已知会信息(一阶段知会的只能二阶段看到,二阶段知会的只能三阶段看到)
       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())));
 
-      if (step > 1) {
+      if (step == 2) {
+          List<Integer> secondNoticedPkgIds = noticePkgMap.get(2);
+          List<Integer> thirdNoticedPkgIds = noticePkgMap.get(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())))