Browse Source

Merge branch 'perf-getpkgbytype'

shc 1 year ago
parent
commit
4955e3e782

+ 30 - 43
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/ApiController.java

@@ -3489,63 +3489,52 @@ public class ApiController {
 	}
 	}
 
 
 	/**
 	/**
-	 * 小程序去掉通知--不再提示
+	 * 获取登录人积分包
 	 *
 	 *
-	 * @return
+	 * @param type 任务类型
+	 * @return 积分包信息
 	 */
 	 */
-	@ApiOperation(value = "获取登录人积分包", notes = "获取登录人积分包")
 	@SysLog("获取登录人积分包")
 	@SysLog("获取登录人积分包")
 	@GetMapping("/getPackageListByTaskType")
 	@GetMapping("/getPackageListByTaskType")
-	public R getPackageListByTaskType(String type) {
-		if (StringUtils.isEmpty(type)) {
-			return R.failed("参数异常,请求失败");
-		}
-		//获取用户基本信息
-		if (null == SecurityUtils.getUser().getId()) {
-			return R.failed("请求失败");
-		}
+	public R<?> getPackageListByTaskType(@RequestParam(value = "type") String type) {
 
 
-		SysUser sysUser = sysUserService.getById(SecurityUtils.getUser().getId());
+		HnqzUser user = SecurityUtils.getUser();
 
 
 		WmScorePackageStatus wmScorePackageStatus = new WmScorePackageStatus();
 		WmScorePackageStatus wmScorePackageStatus = new WmScorePackageStatus();
-		wmScorePackageStatus.setUserId(sysUser.getUserId() + "");
+		wmScorePackageStatus.setUserId(user.getId() + "");
 		wmScorePackageStatus.setTaskAddFlag("1");
 		wmScorePackageStatus.setTaskAddFlag("1");
 		wmScorePackageStatus.setStatus("2");
 		wmScorePackageStatus.setStatus("2");
 		wmScorePackageStatus.setDelFlag("0");
 		wmScorePackageStatus.setDelFlag("0");
 		wmScorePackageStatus.setEnableFlag("0");
 		wmScorePackageStatus.setEnableFlag("0");
-		List<WmScorePackageStatus> statusList = wmScorePackageStatusService.
-				list(Wrappers.query(wmScorePackageStatus));
+		List<WmScorePackageStatus> statusList = wmScorePackageStatusService.list(Wrappers.query(wmScorePackageStatus));
 
 
-		List<Map<String, Object>> listMap = new ArrayList<>();
+		if (CollUtil.isEmpty(statusList)){
+			return R.ok(Collections.emptyList());
+		}
 
 
-		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 (PackageTypeEnum.TYPE2_SETTLE_PACKAGE.val().equals(wmScorePackage.getPackageType2())
-						&& !PackageTypeEnum.TYPE1_SCORE_AND_TASK_PACKAGE.val().equals(wmScorePackage.getPackageType1())) {
-					continue;
-				}
-				if ("3".equals(wmScorePackage.getPackageType1())) {
+		List<Map<String, Object>> listMap = new LinkedList<>();
+
+		// 获取领包记录对应的积分包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));
+
+		Set<String> availPkgIds = scoreTaskTypes.stream().map(WmScoreTaskType::getScoreId).collect(Collectors.toSet());
+		if (CollUtil.isEmpty(availPkgIds)){
+			return R.ok(Collections.emptyList());
+		}
+
+		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;
 					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<String, Object> map = new HashMap<>(5);
 					map.put("label", wmScorePackage.getScorePackageName());
 					map.put("label", wmScorePackage.getScorePackageName());
 					map.put("value", wmScorePackage.getId());
 					map.put("value", wmScorePackage.getId());
 					String drugProducer = ArrayUtils.isEmpty(wmScorePackage.getDrugProducerList()) ? "" : String.join(StrUtil.COMMA, wmScorePackage.getDrugProducerList());
 					String drugProducer = ArrayUtils.isEmpty(wmScorePackage.getDrugProducerList()) ? "" : String.join(StrUtil.COMMA, wmScorePackage.getDrugProducerList());
@@ -3553,9 +3542,7 @@ public class ApiController {
 					map.put("deptId", wmScorePackage.getDeptId());
 					map.put("deptId", wmScorePackage.getDeptId());
 					map.put("relDeptId", wmScorePackage.getRelatedService());
 					map.put("relDeptId", wmScorePackage.getRelatedService());
 					listMap.add(map);
 					listMap.add(map);
-				}
 
 
-			}
 		}
 		}
 
 
 		return R.ok(listMap);
 		return R.ok(listMap);