|
@@ -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());
|