Эх сурвалжийг харах

fix: 查询关联积分包的可分配积分值-优化查询速度

lixuesong 1 жил өмнө
parent
commit
37ced9687a

+ 7 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmScorePackageServiceImpl.java

@@ -552,8 +552,14 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 								new String[]{wmScorePackage.getId()} : null);
 		log.info("查询关联积分包值耗时:{}ms", System.currentTimeMillis() - start);
 
+		Set<String> packageIdSet = packageList.stream().map(WmScorePackage::getId).collect(Collectors.toSet());
+		List<WmScoreTaskType> allTaskTypelist =
+				wmScoreTaskTypeMapper.getScoreTaskTypeByScoreId(CollUtil.join(packageIdSet, ","));
+		Map<String, List<WmScoreTaskType>> scoreTaskTypeMap = allTaskTypelist.stream()
+				.collect(Collectors.groupingBy(WmScoreTaskType::getScoreId));
 		for (WmScorePackage wmScorePackage1 : packageList) {
-			List<WmScoreTaskType> taskTypelist = wmScoreTaskTypeMapper.getScoreTaskTypeByScoreId(wmScorePackage1.getId());
+//			List<WmScoreTaskType> taskTypelist = wmScoreTaskTypeMapper.getScoreTaskTypeByScoreId(wmScorePackage1.getId());
+			List<WmScoreTaskType> taskTypelist = scoreTaskTypeMap.get(wmScorePackage1.getId());
 			wmScorePackage1.setTaskTypeList1(taskTypelist);
 			Set taskTypeSet = taskTypelist.stream().map(WmScoreTaskType::getTaskTypeId).collect(Collectors.toSet());
 			wmScorePackage1.setTaskTypeSet(taskTypeSet);