|
@@ -2552,7 +2552,6 @@ public class WmScorePackageController {
|
|
|
.between(start != null && end != null, "p.create_time", start, end);
|
|
|
|
|
|
if (StrUtil.isNotBlank(scorePackageName)) {
|
|
|
-// queryWrapper.like( "p.score_package_name", scorePackageName).or().like( "p.pkg_sn", scorePackageName);
|
|
|
queryWrapper.and(wrapper -> wrapper.like("p.score_package_name", scorePackageName).or().like("p.pkg_sn", scorePackageName));
|
|
|
}
|
|
|
|
|
@@ -2587,43 +2586,69 @@ public class WmScorePackageController {
|
|
|
}
|
|
|
|
|
|
long startMillis = System.currentTimeMillis();
|
|
|
- Page<WmScorePackage> wmScorePackagePage = null;
|
|
|
-// if (StrUtil.isNotBlank(acceptUser) || StrUtil.isNotBlank(relationScoreId)) {
|
|
|
- // 带有接单对象acceptUser模糊查询的查询
|
|
|
- wmScorePackagePage = wmScorePackageMapper.listScorePackage(new Page<>(current, size),
|
|
|
+ Page<WmScorePackage> wmScorePackagePage = wmScorePackageMapper.listScorePackage(new Page<>(current, size),
|
|
|
queryWrapper.orderByDesc("p.create_time"), acceptUser, relationScoreId, toApproval);
|
|
|
-// } else {
|
|
|
-// wmScorePackagePage = wmScorePackageMapper.selectPage(new Page<>(current, size), queryWrapper
|
|
|
-// .orderByDesc("p.create_time"));
|
|
|
-// }
|
|
|
- log.info("积分包列表sql耗时:{}", System.currentTimeMillis() - startMillis);
|
|
|
|
|
|
List<WmScorePackage> pageRecords = wmScorePackagePage.getRecords();
|
|
|
|
|
|
if (CollUtil.isNotEmpty(pageRecords)) {
|
|
|
long buildStartMillis = System.currentTimeMillis();
|
|
|
- List<Future<WmScorePackage>> futureList = new ArrayList<>(pageRecords.size());
|
|
|
|
|
|
- for (WmScorePackage scorePackage : pageRecords) {
|
|
|
- log.info("====> 积分包SN:{}", scorePackage.getPackageSn());
|
|
|
- Future<WmScorePackage> wmScorePackageFuture = wmScorePackageService.buildScorePackage(scorePackage, packageType1, packageType2);
|
|
|
- futureList.add(wmScorePackageFuture);
|
|
|
- }
|
|
|
+ Set<String> packageIds = pageRecords.stream().map(WmScorePackage::getId).collect(Collectors.toSet());
|
|
|
|
|
|
- List<WmScorePackage> finalRecords = new ArrayList<>(pageRecords.size());
|
|
|
- try {
|
|
|
- for (Future<WmScorePackage> future : futureList) {
|
|
|
- WmScorePackage wmScorePackage = future.get();
|
|
|
- finalRecords.add(wmScorePackage);
|
|
|
+ // 任务统计
|
|
|
+ List<WmTask> taskList = wmTaskMapper.selectList(Wrappers.<WmTask>lambdaQuery()
|
|
|
+ .eq(WmTask::getRealFlag, "0")
|
|
|
+ .eq(WmTask::getEnableFlag, "0")
|
|
|
+ .eq(WmTask::getDelFlag, "0")
|
|
|
+ .in(WmTask::getScorePackageId, packageIds)
|
|
|
+ );
|
|
|
+ Map<String, List<WmTask>> taskGoupMap = taskList.stream().collect(Collectors.groupingBy(WmTask::getScorePackageId));
|
|
|
|
|
|
- }
|
|
|
+ // 领取积分包记录
|
|
|
+ List<WmScorePackageStatus> scorePackageStatusList = wmScorePackageStatusService.list(Wrappers.<WmScorePackageStatus>lambdaQuery()
|
|
|
+ .in(WmScorePackageStatus::getPackageId, packageIds)
|
|
|
+ );
|
|
|
+ Map<String, List<WmScorePackageStatus>> packageStatusGroupMap = scorePackageStatusList.stream()
|
|
|
+ .collect(Collectors.groupingBy(WmScorePackageStatus::getPackageId));
|
|
|
+
|
|
|
+ //获取上级包
|
|
|
+ Set<String> parentPackageIds = pageRecords.stream().map(WmScorePackage::getRelationScoreId).collect(Collectors.toSet());
|
|
|
+ List<WmScorePackage> parentPackages = wmScorePackageMapper.selectList(Wrappers.<WmScorePackage>lambdaQuery()
|
|
|
+ .in(WmScorePackage::getId, parentPackageIds));
|
|
|
+ Map<String, WmScorePackage> parentPackageNameMap = parentPackages.stream()
|
|
|
+ .collect(Collectors.toMap(WmScorePackage::getId, Function.identity()));
|
|
|
+
|
|
|
+ // 类型标签
|
|
|
+ List<SysDictItem> dictItems = sysDictItemService.list(Wrappers.<SysDictItem>lambdaQuery()
|
|
|
+ .in(SysDictItem::getType, "package_type1", "package_type2"));
|
|
|
+ Map<String, List<SysDictItem>> dictItemMap = dictItems.stream().collect(Collectors.groupingBy(SysDictItem::getType));
|
|
|
+ List<SysDictItem> packageType1List = dictItemMap.get("package_type1");
|
|
|
+ List<SysDictItem> packageType2List = dictItemMap.get("package_type2");
|
|
|
+
|
|
|
+ // 结算记录
|
|
|
+ List<WmScorePackageSettleNote> noteList = settleNoteMapper.selectList(Wrappers.<WmScorePackageSettleNote>lambdaQuery()
|
|
|
+ .in(WmScorePackageSettleNote::getPackageId, packageIds));
|
|
|
+ Map<String, List<WmScorePackageSettleNote>> noteMap = noteList.stream()
|
|
|
+ .collect(Collectors.groupingBy(WmScorePackageSettleNote::getPackageId));
|
|
|
+
|
|
|
+ // 有效任务类型
|
|
|
+ List<WmScoreTaskType> taskTypeList = wmScoreTaskTypeMapper.getScoreTaskTypeByScoreId(String.join(",", packageIds));
|
|
|
+ Map<String, List<WmScoreTaskType>> taskTypeMap = taskTypeList.stream().collect(Collectors.groupingBy(WmScoreTaskType::getScoreId));
|
|
|
+
|
|
|
+ for (int i = 0; i < pageRecords.size(); i++) {
|
|
|
+ WmScorePackage wmScorePackage = pageRecords.get(i);
|
|
|
+
|
|
|
+ List<WmTask> tasks = taskGoupMap.getOrDefault(wmScorePackage.getId(), new ArrayList<>());
|
|
|
+ List<WmScorePackageStatus> statuses = packageStatusGroupMap.getOrDefault(wmScorePackage.getId(), new ArrayList<>());
|
|
|
+ List<WmScorePackageSettleNote> notes = noteMap.getOrDefault(wmScorePackage.getId(), new ArrayList<>());
|
|
|
+ List<WmScoreTaskType> scoreTaskTypes = taskTypeMap.getOrDefault(wmScorePackage.getId(), new ArrayList<>());
|
|
|
+
|
|
|
+ wmScorePackageService.buildScorePackageSync(wmScorePackage, packageType1, packageType2, tasks, statuses,
|
|
|
+ packageType1List, packageType2List, parentPackageNameMap, notes, scoreTaskTypes);
|
|
|
|
|
|
- wmScorePackagePage.setRecords(finalRecords);
|
|
|
- } catch (ExecutionException | InterruptedException e) {
|
|
|
- log.error("获取分页信息失败", e);
|
|
|
- return R.failed("获取分页信息失败");
|
|
|
}
|
|
|
- log.info("build积分包耗时:{}", System.currentTimeMillis() - buildStartMillis);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
return R.ok(wmScorePackagePage);
|
|
@@ -2684,34 +2709,65 @@ public class WmScorePackageController {
|
|
|
Page<WmScorePackage> wmScorePackagePage = wmScorePackageMapper.listScorePackage(new Page<>(current, size),
|
|
|
queryWrapper.orderByDesc("p.settlement_date"), acceptUser, relationScoreId, toApproval);
|
|
|
|
|
|
- log.info("MAH积分包列表sql耗时:{}", System.currentTimeMillis() - startMillis);
|
|
|
-
|
|
|
List<WmScorePackage> pageRecords = wmScorePackagePage.getRecords();
|
|
|
|
|
|
if (CollUtil.isNotEmpty(pageRecords)) {
|
|
|
long buildStartMillis = System.currentTimeMillis();
|
|
|
- List<Future<WmScorePackage>> futureList = new ArrayList<>(pageRecords.size());
|
|
|
+ Set<String> packageIds = pageRecords.stream().map(WmScorePackage::getId).collect(Collectors.toSet());
|
|
|
+
|
|
|
+ // 任务统计
|
|
|
+ List<WmTask> taskList = wmTaskMapper.selectList(Wrappers.<WmTask>lambdaQuery()
|
|
|
+ .eq(WmTask::getRealFlag, "0")
|
|
|
+ .eq(WmTask::getEnableFlag, "0")
|
|
|
+ .eq(WmTask::getDelFlag, "0")
|
|
|
+ .in(WmTask::getScorePackageId, packageIds)
|
|
|
+ );
|
|
|
+ Map<String, List<WmTask>> taskGoupMap = taskList.stream().collect(Collectors.groupingBy(WmTask::getScorePackageId));
|
|
|
|
|
|
- for (WmScorePackage scorePackage : pageRecords) {
|
|
|
- log.info("====> MAH积分包SN:{}", scorePackage.getPackageSn());
|
|
|
- Future<WmScorePackage> wmScorePackageFuture = wmScorePackageService.buildScorePackage(scorePackage, packageType1, packageType2);
|
|
|
- futureList.add(wmScorePackageFuture);
|
|
|
- }
|
|
|
+ // 领取积分包记录
|
|
|
+ List<WmScorePackageStatus> scorePackageStatusList = wmScorePackageStatusService.list(Wrappers.<WmScorePackageStatus>lambdaQuery()
|
|
|
+ .in(WmScorePackageStatus::getPackageId, packageIds)
|
|
|
+ );
|
|
|
+ Map<String, List<WmScorePackageStatus>> packageStatusGroupMap = scorePackageStatusList.stream()
|
|
|
+ .collect(Collectors.groupingBy(WmScorePackageStatus::getPackageId));
|
|
|
|
|
|
- List<WmScorePackage> finalRecords = new ArrayList<>(pageRecords.size());
|
|
|
- try {
|
|
|
- for (Future<WmScorePackage> future : futureList) {
|
|
|
- WmScorePackage wmScorePackage = future.get();
|
|
|
- finalRecords.add(wmScorePackage);
|
|
|
+ //获取上级包
|
|
|
+ Set<String> parentPackageIds = pageRecords.stream().map(WmScorePackage::getRelationScoreId).collect(Collectors.toSet());
|
|
|
+ List<WmScorePackage> parentPackages = wmScorePackageMapper.selectList(Wrappers.<WmScorePackage>lambdaQuery()
|
|
|
+ .in(WmScorePackage::getId, parentPackageIds));
|
|
|
+ Map<String, WmScorePackage> parentPackageNameMap = parentPackages.stream()
|
|
|
+ .collect(Collectors.toMap(WmScorePackage::getId, Function.identity()));
|
|
|
|
|
|
- }
|
|
|
+ // 类型标签
|
|
|
+ List<SysDictItem> dictItems = sysDictItemService.list(Wrappers.<SysDictItem>lambdaQuery()
|
|
|
+ .in(SysDictItem::getType, "package_type1", "package_type2"));
|
|
|
+ Map<String, List<SysDictItem>> dictItemMap = dictItems.stream().collect(Collectors.groupingBy(SysDictItem::getType));
|
|
|
+ List<SysDictItem> packageType1List = dictItemMap.get("package_type1");
|
|
|
+ List<SysDictItem> packageType2List = dictItemMap.get("package_type2");
|
|
|
+
|
|
|
+ // 结算记录
|
|
|
+ List<WmScorePackageSettleNote> noteList = settleNoteMapper.selectList(Wrappers.<WmScorePackageSettleNote>lambdaQuery()
|
|
|
+ .in(WmScorePackageSettleNote::getPackageId, packageIds));
|
|
|
+ Map<String, List<WmScorePackageSettleNote>> noteMap = noteList.stream()
|
|
|
+ .collect(Collectors.groupingBy(WmScorePackageSettleNote::getPackageId));
|
|
|
+
|
|
|
+ // 有效任务类型
|
|
|
+ List<WmScoreTaskType> taskTypeList = wmScoreTaskTypeMapper.getScoreTaskTypeByScoreId(String.join(",", packageIds));
|
|
|
+ Map<String, List<WmScoreTaskType>> taskTypeMap = taskTypeList.stream().collect(Collectors.groupingBy(WmScoreTaskType::getScoreId));
|
|
|
+
|
|
|
+ for (int i = 0; i < pageRecords.size(); i++) {
|
|
|
+ WmScorePackage wmScorePackage = pageRecords.get(i);
|
|
|
+
|
|
|
+ List<WmTask> tasks = taskGoupMap.getOrDefault(wmScorePackage.getId(), new ArrayList<>());
|
|
|
+ List<WmScorePackageStatus> statuses = packageStatusGroupMap.getOrDefault(wmScorePackage.getId(), new ArrayList<>());
|
|
|
+ List<WmScorePackageSettleNote> notes = noteMap.getOrDefault(wmScorePackage.getId(), new ArrayList<>());
|
|
|
+ List<WmScoreTaskType> scoreTaskTypes = taskTypeMap.getOrDefault(wmScorePackage.getId(), new ArrayList<>());
|
|
|
+
|
|
|
+ wmScorePackageService.buildScorePackageSync(wmScorePackage, packageType1, packageType2, tasks, statuses,
|
|
|
+ packageType1List, packageType2List, parentPackageNameMap, notes, scoreTaskTypes);
|
|
|
|
|
|
- wmScorePackagePage.setRecords(finalRecords);
|
|
|
- } catch (ExecutionException | InterruptedException e) {
|
|
|
- log.error("获取分页信息失败", e);
|
|
|
- return R.failed("获取分页信息失败");
|
|
|
}
|
|
|
- log.info("MAHbuild积分包耗时:{}", System.currentTimeMillis() - buildStartMillis);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
// 个人承接-其他 标记已读提醒
|