Преглед на файлове

feat: 我的积分-积分记录列表2

李学松 преди 2 години
родител
ревизия
aa2b6d4290

+ 26 - 1
hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/vo/PersonalScoreRecordVO.java

@@ -1,5 +1,6 @@
 package com.qunzhixinxi.hnqz.admin.api.vo;
 
+import cn.hutool.core.util.StrUtil;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.Getter;
@@ -54,13 +55,37 @@ public class PersonalScoreRecordVO implements Serializable {
 	@AllArgsConstructor
 	public enum PersonalScoreRecordStatus {
 		PAID("PAID", "6", "已结算积分"),
-		UNPAID("UNPAID", "4", "已结算积分");
+		UNPAID("UNPAID", "4,5,7", "待结算积分");
 
+		/**
+		 * 记录统计状态
+		 */
 		private final String status;
 
+		/**
+		 * 对应积分包状态
+		 */
 		private final String scorePackageStatus;
 
+		/**
+		 * 描述
+		 */
 		private final String description;
+
+		/**
+		 * 根据积分包状态获取枚举
+		 *
+		 * @param scorePackageStatus 积分包状态
+		 * @return 枚举对象
+		 */
+		public static PersonalScoreRecordStatus getByScorePackageStatus(String scorePackageStatus) {
+			for (PersonalScoreRecordStatus scoreRecordStatus : PersonalScoreRecordStatus.values()) {
+				if (StrUtil.split(scoreRecordStatus.scorePackageStatus, StrUtil.COMMA).contains(scorePackageStatus)) {
+					return scoreRecordStatus;
+				}
+			}
+			return null;
+		}
 	}
 
 }

+ 25 - 15
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/ApiController.java

@@ -686,7 +686,7 @@ public class ApiController {
 			// 获取会员已结算信息和和待结算信息
 			List<WmScorePackageStatus> packageStatuses = wmScorePackageStatusService.list(Wrappers.<WmScorePackageStatus>lambdaQuery()
 					.eq(WmScorePackageStatus::getUserId, sysU.getUserId())
-					.eq(WmScorePackageStatus::getStatus, "2"));
+					.eq(WmScorePackageStatus::getStatus, PackageStatusEnum.APPROVED.val()));
 
 			List<String> ids = packageStatuses.stream().map(WmScorePackageStatus::getPackageId).collect(Collectors.toList());
 
@@ -696,14 +696,21 @@ public class ApiController {
 			if (CollUtil.isNotEmpty(ids)) {
 				List<WmScorePackage> packages = wmScorePackageService.listByIds(ids);
 
-				Map<String, Integer> collect = packages.stream().filter(pkg -> "4".equals(pkg.getScorePackageStatus()) || "6".equals(pkg.getScorePackageStatus()))
-						.collect(Collectors.groupingBy(WmScorePackage::getScorePackageStatus))
+				// 记录统计状态对应的 积分包状态
+				// 已结算
+				List<String> paidStatuses = Collections.singletonList(PersonalScoreRecordVO.PersonalScoreRecordStatus.PAID.getScorePackageStatus());
+				// 待结算
+				List<String> unpaidStatuses = StrUtil.split(PersonalScoreRecordVO.PersonalScoreRecordStatus.UNPAID.getScorePackageStatus(), StrUtil.COMMA);
+
+				Map<PersonalScoreRecordVO.PersonalScoreRecordStatus, Integer> collect = packages.stream()
+						.filter(pkg -> paidStatuses.contains(pkg.getScorePackageStatus()) || unpaidStatuses.contains(pkg.getScorePackageStatus()))
+						.collect(Collectors.groupingBy(wmScorePackage -> PersonalScoreRecordVO.PersonalScoreRecordStatus.getByScorePackageStatus(wmScorePackage.getScorePackageStatus())))
 						.entrySet().stream()
 						.collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue().stream().mapToInt(WmScorePackage::getScore).sum()));
 
 				if (CollUtil.isNotEmpty(collect)) {
-					paid = collect.get("6") != null ? collect.get("6") : 0;
-					unpaid = collect.get("4") != null ? collect.get("4") : 0;
+					paid = collect.get(PersonalScoreRecordVO.PersonalScoreRecordStatus.PAID) != null ? collect.get(PersonalScoreRecordVO.PersonalScoreRecordStatus.PAID) : 0;
+					unpaid = collect.get(PersonalScoreRecordVO.PersonalScoreRecordStatus.UNPAID) != null ? collect.get(PersonalScoreRecordVO.PersonalScoreRecordStatus.UNPAID) : 0;
 				}
 
 			}
@@ -4392,32 +4399,34 @@ public class ApiController {
 	@GetMapping("/page-accumulative-score")
 	public R<Page<PersonalScoreRecordVO>> pageAccumulativeScore(Page<PersonalScoreRecordVO> page,
 									  @RequestParam(value = "status", required = true) PersonalScoreRecordVO.PersonalScoreRecordStatus status) {
+
+		Integer userId = SecurityUtils.getUser().getId();
+		// 记录统计状态对应的 积分包状态
+		List<String> scorePackageStatuses = StrUtil.split(status.getScorePackageStatus(), StrUtil.COMMA);
+
 		// 获取当前用户任务领包记录
 		List<WmScorePackageStatus> packageStatuses = wmScorePackageStatusService.list(Wrappers.<WmScorePackageStatus>lambdaQuery()
-				.eq(WmScorePackageStatus::getUserId, SecurityUtils.getUser().getId())
+				.eq(WmScorePackageStatus::getUserId, userId)
 				.eq(WmScorePackageStatus::getStatus, PackageStatusEnum.APPROVED.val()));
 		if (CollUtil.isEmpty(packageStatuses)) {
 			return R.ok(page);
 		}
 
 		// 查询积分包
-		List<String> ids = packageStatuses.stream().map(WmScorePackageStatus::getPackageId).collect(Collectors.toList());
+		Set<String> ids = packageStatuses.stream().map(WmScorePackageStatus::getPackageId).collect(Collectors.toSet());
 		List<WmScorePackage> packages = wmScorePackageService.listByIds(ids);
 		// 转为map key-积分包id,value-积分包名称
 		Map<String, String> packageMap = packages.stream()
-				.filter(pkg -> status.getScorePackageStatus().equals(pkg.getScorePackageStatus()))
+				.filter(pkg -> scorePackageStatuses.contains(pkg.getScorePackageStatus()))
 				.collect(Collectors.toMap(WmScorePackage::getId, WmScorePackage::getScorePackageName));
 
-		// 过滤得已结算、待结算积分包id
-		Set<String> packageIds = packages.stream()
-				.filter(pkg -> status.getScorePackageStatus().equals(pkg.getScorePackageStatus()))
-				.map(WmScorePackage::getId)
-				.collect(Collectors.toSet());
-
-		if (CollUtil.isEmpty(packageIds)) {
+		if (CollUtil.isEmpty(packageMap)) {
 			return R.ok(page);
 		}
 
+		// 过滤得已结算、待结算积分包id
+		Set<String> packageIds = packageMap.keySet();
+
 		// 查询taskType
 		List<WmTaskType> taskTypeList = wmTaskTypeService.list(Wrappers.<WmTaskType>lambdaQuery()
 				.eq(WmTaskType::getTaskTypeLevel, "1")
@@ -4430,6 +4439,7 @@ public class ApiController {
 		// 查询任务
 		Page<WmTask> wmTaskPage = wmTaskService.page(new Page<>(page.getCurrent(), page.getSize()), Wrappers.<WmTask>lambdaQuery()
 				.in(WmTask::getScorePackageId, packageIds)
+				.eq(WmTask::getTaskUserId, userId)
 				.eq(WmTask::getTaskStatus, TaskStatusEnum.APPROVED.val())
 				.eq(WmTask::getDelFlag, DelEnum.NOT_DEL.val())
 				.eq(WmTask::getEnableFlag, EnableEnum.ENABLE.val()));