|
@@ -2937,50 +2937,47 @@ public class ApiController {
|
|
|
|
|
|
List<Map<String, Object>> listMap = new ArrayList<>();
|
|
List<Map<String, Object>> listMap = new ArrayList<>();
|
|
|
|
|
|
- for (WmScorePackageStatus item : statusList) {
|
|
|
|
- WmScorePackage wmScorePackage = wmScorePackageService.getOne(Wrappers.<WmScorePackage>lambdaQuery()
|
|
|
|
- .eq(WmScorePackage::getId, item.getPackageId()));
|
|
|
|
- if (null != wmScorePackage) {
|
|
|
|
- if ("0".equals(wmScorePackage.getTaskAddFlag())) {
|
|
|
|
- continue;
|
|
|
|
- }
|
|
|
|
- if ("1".equals(wmScorePackage.getEnableFlag())) {
|
|
|
|
- continue;
|
|
|
|
- }
|
|
|
|
- if (PackageTypeEnum.TYPE2_SETTLE_PACKAGE.val().equals(wmScorePackage.getPackageType2())
|
|
|
|
- && !PackageTypeEnum.TYPE1_SCORE_AND_TASK_PACKAGE.val().equals(wmScorePackage.getPackageType1())) {
|
|
|
|
- continue;
|
|
|
|
- }
|
|
|
|
- if ("3".equals(wmScorePackage.getPackageType1())) {
|
|
|
|
- continue;
|
|
|
|
- }
|
|
|
|
|
|
+ // 获取领包记录对应的积分包ID && 获取积分包信息
|
|
|
|
+ Set<String> pkgIds = statusList.stream().map(WmScorePackageStatus::getPackageId).collect(Collectors.toSet());
|
|
|
|
+ // 过滤有效任务类型
|
|
|
|
+ List<WmScoreTaskType> scoreTaskTypes = wmScoreTaskTypeService.list(Wrappers.<WmScoreTaskType>lambdaQuery()
|
|
|
|
+ .eq(WmScoreTaskType::getTaskTypeId, type)
|
|
|
|
+ .in(WmScoreTaskType::getScoreId, pkgIds));
|
|
|
|
|
|
- // 推广药品企业drugProducerList不为空, 则走推广药品企业的判断(历史数据判断), 否则判断推广药品是否包含(新数据判断)
|
|
|
|
- if (ArrayUtil.isEmpty(wmScorePackage.getDrugProducerList())) {
|
|
|
|
- // 过滤只要关联了推广药品的积分包
|
|
|
|
- if (!ArrayUtil.contains(wmScorePackage.getDrugtable(), album.getGlyp())) {
|
|
|
|
- continue;
|
|
|
|
- }
|
|
|
|
- } else {
|
|
|
|
- // 推广药品企业的过滤条件(兼容历史数据)
|
|
|
|
- if (!ArrayUtil.contains(wmScorePackage.getDrugProducerList(), drugProducer)) {
|
|
|
|
- continue;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ Set<String> availPkgIds = scoreTaskTypes.stream().map(WmScoreTaskType::getScoreId).collect(Collectors.toSet());
|
|
|
|
+ if (CollUtil.isEmpty(availPkgIds)) {
|
|
|
|
+ return R.ok(Collections.emptyList());
|
|
|
|
+ }
|
|
|
|
|
|
- // 过滤有效任务类型
|
|
|
|
- WmScoreTaskType taskType = new WmScoreTaskType();
|
|
|
|
- taskType.setTaskTypeId(type);
|
|
|
|
- taskType.setScoreId(wmScorePackage.getId());
|
|
|
|
- int total = wmScoreTaskTypeService.count(Wrappers.query(taskType));
|
|
|
|
|
|
+ List<WmScorePackage> packages = wmScorePackageService.listByIds(availPkgIds);
|
|
|
|
+
|
|
|
|
+ for (WmScorePackage wmScorePackage : packages) {
|
|
|
|
+
|
|
|
|
+ if ("0".equals(wmScorePackage.getTaskAddFlag())
|
|
|
|
+ || "1".equals(wmScorePackage.getEnableFlag())
|
|
|
|
+ || "3".equals(wmScorePackage.getPackageType1())
|
|
|
|
+ || (PackageTypeEnum.TYPE2_SETTLE_PACKAGE.val().equals(wmScorePackage.getPackageType2())
|
|
|
|
+ && !PackageTypeEnum.TYPE1_SCORE_AND_TASK_PACKAGE.val().equals(wmScorePackage.getPackageType1()))) {
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
|
|
- if (total != 0) {
|
|
|
|
|
|
+ // 推广药品企业drugProducerList不为空, 则走推广药品企业的判断(历史数据判断), 否则判断推广药品是否包含(新数据判断)
|
|
|
|
+ if (ArrayUtil.isEmpty(wmScorePackage.getDrugProducerList())) {
|
|
|
|
+ // 只要关联了推广药品的积分包
|
|
|
|
+ if (ArrayUtil.contains(wmScorePackage.getDrugtable(), album.getGlyp())) {
|
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
|
+ map.put("label", wmScorePackage.getScorePackageName());
|
|
|
|
+ map.put("value", wmScorePackage.getId());
|
|
|
|
+ listMap.add(map);
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ // 只要关联了推广药品企业的积分包(兼容历史数据)
|
|
|
|
+ if (ArrayUtil.contains(wmScorePackage.getDrugProducerList(), drugProducer)) {
|
|
Map<String, Object> map = new HashMap<>();
|
|
Map<String, Object> map = new HashMap<>();
|
|
map.put("label", wmScorePackage.getScorePackageName());
|
|
map.put("label", wmScorePackage.getScorePackageName());
|
|
map.put("value", wmScorePackage.getId());
|
|
map.put("value", wmScorePackage.getId());
|
|
listMap.add(map);
|
|
listMap.add(map);
|
|
}
|
|
}
|
|
-
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return R.ok(listMap);
|
|
return R.ok(listMap);
|