Selaa lähdekoodia

perf: 优化速度

shc 3 vuotta sitten
vanhempi
commit
bcaf5b9083

+ 113 - 80
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/ApiController.java

@@ -658,7 +658,7 @@ public class ApiController {
 
 				// 小程序角色:5-全职学术信息沟通专员, 6-兼职学术信息沟通专员, 10-兼职CRC, 13-HCP
 				List<Integer> roleIdList = sysU.getRoleList().stream().filter(item ->
-						item.getRoleId() == 5 || item.getRoleId() == 6 || item.getRoleId() == 10 || item.getRoleId() == 13)
+								item.getRoleId() == 5 || item.getRoleId() == 6 || item.getRoleId() == 10 || item.getRoleId() == 13)
 						.map(SysRole::getRoleId).collect(Collectors.toList());
 
 				if ("2".equals(management) && roleIdList.contains(5)) {
@@ -819,16 +819,16 @@ public class ApiController {
 				.in(WmTaskType::getParentId, parentId));
 
 		// 按照父id分组
-		Map<String,Map<String, List<WmTaskType>>> pTaskTypeMap = baseTypeList1.stream()
-				.collect(Collectors.groupingBy(WmTaskType::getParentId,Collectors.groupingBy(WmTaskType::getBaseId)));
+		Map<String, Map<String, List<WmTaskType>>> pTaskTypeMap = baseTypeList1.stream()
+				.collect(Collectors.groupingBy(WmTaskType::getParentId, Collectors.groupingBy(WmTaskType::getBaseId)));
 
 		// 查询所有子id对应的taskType列表
 		List<WmTaskType> baseTypeList2 = wmTaskTypeService.
 				list(Wrappers.<WmTaskType>query().lambda().eq(WmTaskType::getTaskTypeLevel, "1").in(WmTaskType::getId, id));
 
 		// 所有子id对应的taskType列表 按照父id分组
-		Map<String,Map<String, List<WmTaskType>>> cTaskTypeMap = baseTypeList2.stream()
-				.collect(Collectors.groupingBy(WmTaskType::getParentId,Collectors.groupingBy(WmTaskType::getBaseId)));
+		Map<String, Map<String, List<WmTaskType>>> cTaskTypeMap = baseTypeList2.stream()
+				.collect(Collectors.groupingBy(WmTaskType::getParentId, Collectors.groupingBy(WmTaskType::getBaseId)));
 		// 对应的parentId
 		Set<String> cPidSet = cTaskTypeMap.keySet();
 
@@ -2863,7 +2863,6 @@ public class ApiController {
 		sysUserService.updateById(sysUser);
 
 
-
 		return R.ok();
 	}
 
@@ -3228,14 +3227,16 @@ public class ApiController {
 			return R.failed("参数异常,请求失败");
 		}
 		//获取用户基本信息
-		if (null == SecurityUtils.getUser().getId()) {
+		Integer userId = SecurityUtils.getUser().getId();
+		if (null == userId) {
 			return R.failed("请求失败");
 		}
 
-		SysUser sysUser = sysUserService.getById(SecurityUtils.getUser().getId());
+		// SysUser sysUser = sysUserService.getById(SecurityUtils.getUser().getId());
+
 
 		WmScorePackageStatus wmScorePackageStatus = new WmScorePackageStatus();
-		wmScorePackageStatus.setUserId(sysUser.getUserId() + "");
+		wmScorePackageStatus.setUserId(String.valueOf(userId));
 		wmScorePackageStatus.setTaskAddFlag("1");
 		wmScorePackageStatus.setStatus("2");
 		wmScorePackageStatus.setDelFlag("0");
@@ -3245,80 +3246,111 @@ public class ApiController {
 
 		List<Map<String, Object>> listMap = new ArrayList<>();
 
+		List<String> collect = statusList.stream().map(WmScorePackageStatus::getPackageId).collect(Collectors.toList());
 
-		statusList.parallelStream().forEach(item -> {
-			WmScorePackage wmScorePackage = wmScorePackageService.getById(item.getPackageId());
-			if (null != wmScorePackage) {
-				if ("0".equals(wmScorePackage.getTaskAddFlag())) {
-					return;
-				}
-				if ("1".equals(wmScorePackage.getEnableFlag())) {
-					return;
-				}
-				if ("2".equals(wmScorePackage.getPackageType2())) {
-					return;
-				}
-				if ("3".equals(wmScorePackage.getPackageType1())) {
-					return;
-				}
-				/**
-				 * 过滤有效任务类型
-				 */
-				WmScoreTaskType taskType = new WmScoreTaskType();
-				taskType.setTaskTypeId(type);
-				taskType.setScoreId(wmScorePackage.getId());
-//				List<WmScoreTaskType> taskTypes = wmScoreTaskTypeService.
-//						list(Wrappers.query(taskType));
-				int total = wmScoreTaskTypeService.count(Wrappers.query(taskType));
+		if (CollUtil.isEmpty(collect)) {
+			return R.ok(listMap);
+		}
 
-				if (total != 0) {
-					Map<String, Object> map = new HashMap<>();
-					map.put("label", wmScorePackage.getScorePackageName());
-					map.put("value", wmScorePackage.getId());
-					String drugProducer = ArrayUtils.isEmpty(wmScorePackage.getDrugProducerList()) ? "" : String.join(StrUtil.COMMA, wmScorePackage.getDrugProducerList());
-					map.put("drugProducer", drugProducer);
-					listMap.add(map);
-				}
+		List<WmScorePackage> list = wmScorePackageService.list(Wrappers.<WmScorePackage>lambdaQuery().in(WmScorePackage::getId, collect));
+
+		List<WmScorePackage> wmScorePackages = list.stream().filter(w -> !"0".equals(w.getTaskAddFlag()) && !"1".equals(w.getEnableFlag()) && "2".equals(w.getPackageType2())
+				&& "3".equals(w.getPackageType1())).collect(Collectors.toList());
+
+		List<String> pIds = wmScorePackages.stream().map(WmScorePackage::getId).collect(Collectors.toList());
+
+		if (CollUtil.isEmpty(pIds)) {
+			return R.ok(listMap);
+		}
+
+		List<WmScoreTaskType> tts = wmScoreTaskTypeService.list(Wrappers.<WmScoreTaskType>lambdaQuery().eq(WmScoreTaskType::getTaskTypeId, type)
+				.in(WmScoreTaskType::getScoreId, pIds)
+		);
+
+
+		Set<String> pids = tts.stream().map(WmScoreTaskType::getScoreId).collect(Collectors.toSet());
+
+
+		Map<String, List<WmScorePackage>> pMap = wmScorePackages.stream().collect(Collectors.groupingBy(WmScorePackage::getId));
+
+
+		pids.forEach(id -> {
+
+			WmScorePackage p = pMap.get(id).get(0);
+			Map<String, Object> map = new HashMap<>();
+			map.put("label", p.getScorePackageName());
+			map.put("value", id);
+			String drugProducer = ArrayUtils.isEmpty(p.getDrugProducerList()) ? "" : String.join(StrUtil.COMMA, p.getDrugProducerList());
+			map.put("drugProducer", drugProducer);
+			listMap.add(map);
 
-			}
 		});
 
-//		for (WmScorePackageStatus item : statusList) {
-//			WmScorePackage wmScorePackage = wmScorePackageService.getById(item.getPackageId());
-//			if (null != wmScorePackage) {
-//				if ("0".equals(wmScorePackage.getTaskAddFlag())) {
-//					continue;
-//				}
-//				if ("1".equals(wmScorePackage.getEnableFlag())) {
-//					continue;
-//				}
-//				if ("2".equals(wmScorePackage.getPackageType2())) {
-//					continue;
-//				}
-//				if ("3".equals(wmScorePackage.getPackageType1())) {
-//					continue;
-//				}
-//				/**
-//				 * 过滤有效任务类型
-//				 */
-//				WmScoreTaskType taskType = new WmScoreTaskType();
-//				taskType.setTaskTypeId(type);
-//				taskType.setScoreId(wmScorePackage.getId());
-////				List<WmScoreTaskType> taskTypes = wmScoreTaskTypeService.
-////						list(Wrappers.query(taskType));
-//				int total = wmScoreTaskTypeService.count(Wrappers.query(taskType));
-//
-//				if (total != 0) {
-//					Map<String, Object> map = new HashMap<>();
-//					map.put("label", wmScorePackage.getScorePackageName());
-//					map.put("value", wmScorePackage.getId());
-//					String drugProducer = ArrayUtils.isEmpty(wmScorePackage.getDrugProducerList()) ? "" : String.join(StrUtil.COMMA, wmScorePackage.getDrugProducerList());
-//					map.put("drugProducer", drugProducer);
-//					listMap.add(map);
-//				}
-//
-//			}
-//		}
+
+		// 		.map(w -> {
+		// 			WmScoreTaskType tt = new WmScoreTaskType();
+		// 			tt.setTaskTypeId(type);
+		// 			tt.setScoreId(w.getId());
+		// 			return tt;
+		// }).
+
+
+		// 		//.forEach( w -> {
+		// 	/**
+		// 	 * 过滤有效任务类型
+		// 	 */
+		// 	WmScoreTaskType taskType = new WmScoreTaskType();
+		// 	taskType.setTaskTypeId(type);
+		// 	taskType.setScoreId(w.getId());
+		// 	int total = wmScoreTaskTypeService.count(Wrappers.query(taskType));
+		//
+		// 	if (total != 0) {
+		// 		Map<String, Object> map = new HashMap<>();
+		// 		map.put("label", w.getScorePackageName());
+		// 		map.put("value", w.getId());
+		// 		String drugProducer = ArrayUtils.isEmpty(w.getDrugProducerList()) ? "" : String.join(StrUtil.COMMA, w.getDrugProducerList());
+		// 		map.put("drugProducer", drugProducer);
+		// 		listMap.add(map);
+		// 	}
+		//
+		// } );
+
+// 		for (WmScorePackageStatus item : statusList) {
+// 			WmScorePackage wmScorePackage = wmScorePackageService.getById(item.getPackageId());
+// 			if (null != wmScorePackage) {
+// 				if ("0".equals(wmScorePackage.getTaskAddFlag())) {
+// 					continue;
+// 				}
+// 				if ("1".equals(wmScorePackage.getEnableFlag())) {
+// 					continue;
+// 				}
+// 				if ("2".equals(wmScorePackage.getPackageType2())) {
+// 					continue;
+// 				}
+// 				if ("3".equals(wmScorePackage.getPackageType1())) {
+// 					continue;
+// 				}
+// 				/**
+// 				 * 过滤有效任务类型
+// 				 */
+// 				WmScoreTaskType taskType = new WmScoreTaskType();
+// 				taskType.setTaskTypeId(type);
+// 				taskType.setScoreId(wmScorePackage.getId());
+// //				List<WmScoreTaskType> taskTypes = wmScoreTaskTypeService.
+// //						list(Wrappers.query(taskType));
+// 				int total = wmScoreTaskTypeService.count(Wrappers.query(taskType));
+//
+// 				if (total != 0) {
+// 					Map<String, Object> map = new HashMap<>();
+// 					map.put("label", wmScorePackage.getScorePackageName());
+// 					map.put("value", wmScorePackage.getId());
+// 					String drugProducer = ArrayUtils.isEmpty(wmScorePackage.getDrugProducerList()) ? "" : String.join(StrUtil.COMMA, wmScorePackage.getDrugProducerList());
+// 					map.put("drugProducer", drugProducer);
+// 					listMap.add(map);
+// 				}
+//
+// 			}
+// 		}
 
 		return R.ok(listMap);
 	}
@@ -3441,7 +3473,7 @@ public class ApiController {
 	 * @param packageId        积分包id
 	 * @param sharePicUrl      分享图片链接
 	 * @param taskCategoryName 任务类别名称
-	 * @param remark 备注
+	 * @param remark           备注
 	 * @return 结果
 	 */
 	private R<?> shareAndReadTaskMethod(String id, String shareUserId, String openUserId, String type, String packageId,
@@ -3951,12 +3983,13 @@ public class ApiController {
 
 	/**
 	 * 记录广告点击情况
+	 *
 	 * @param json 请求参数
 	 * @return 记录结果
 	 */
 	@PostMapping(value = "/ad-record")
 	@Transactional(rollbackFor = Exception.class)
-	public R<Boolean> insertAdRecord(@RequestBody String json){
+	public R<Boolean> insertAdRecord(@RequestBody String json) {
 		JSONObject jsonObject = JSONObject.parseObject(json);
 		WmAdRecord record = new WmAdRecord();
 		record.setUrl(jsonObject.getString("url"));