Forráskód Böngészése

feat: 前置批量下发积分包查询

shc 3 éve
szülő
commit
3d3d62d8c1

+ 61 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmScorePackageStatusController.java

@@ -20,6 +20,7 @@ package com.qunzhixinxi.hnqz.admin.controller;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.csp.sentinel.util.StringUtil;
 import com.baomidou.mybatisplus.core.metadata.OrderItem;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackageStatusBatch;
 import com.qunzhixinxi.hnqz.admin.entity.WmScorePackage;
@@ -37,8 +38,11 @@ import lombok.AllArgsConstructor;
 import org.springframework.web.bind.annotation.*;
 
 import java.time.LocalDateTime;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
 
 
 /**
@@ -187,6 +191,63 @@ public class WmScorePackageStatusController {
 		return R.ok(wmScorePackageStatusService.approvalStatusBatch(statusBatch));
 	}
 
+	/**
+	 * 获取批量审核的校验信息
+	 * @param ids
+	 * @return
+	 */
+	@GetMapping(value = "/approvalStatus/checkout")
+	public R approvalStatusCheckout(@RequestParam(value = "ids") String ids){
+
+		List<String> idList = StrUtil.split(ids, StrUtil.COMMA);
+
+		List<WmScorePackageStatus> wmScorePackageStatuses = wmScorePackageStatusService.list(Wrappers.<WmScorePackageStatus>lambdaQuery()
+				.in(WmScorePackageStatus::getId, idList));
+
+
+		Set<String> packageIds = wmScorePackageStatuses.stream()
+				.map(WmScorePackageStatus::getPackageId)
+				.collect(Collectors.toSet());
+
+		List<WmScorePackage> packageList = wmScorePackageService.list(Wrappers.<WmScorePackage>lambdaQuery()
+				.in(WmScorePackage::getId, packageIds));
+
+		Map<String, Integer> userNumMap = packageList.stream()
+				.collect(Collectors.toMap(WmScorePackage::getId, WmScorePackage::getUserNum));
+
+
+		List<WmScorePackageStatus> packageStatuses = wmScorePackageStatusService.list(Wrappers.<WmScorePackageStatus>lambdaQuery()
+				.in(WmScorePackageStatus::getPackageId, packageIds));
+
+
+		Map<String, List<WmScorePackageStatus>> map = packageStatuses.stream()
+				.collect(Collectors.groupingBy(WmScorePackageStatus::getPackageId));
+
+		int operation = 0;
+		int remain = 0;
+		for (Map.Entry<String,List<WmScorePackageStatus>>entry : map.entrySet()){
+
+			String packageId = entry.getKey();
+
+			Integer userNum = userNumMap.get(packageId) == null ? 1 : userNumMap.get(packageId);
+
+			if (entry.getValue().size() <= userNum){
+				operation += 1;
+
+			} else {
+				remain += 1;
+			}
+		}
+
+
+		Map<String, Integer> result = new HashMap<>(2);
+		result.put("operation", operation);
+		result.put("remain",remain);
+
+		return R.ok(result);
+
+	}
+
 	/**
 	 * 终止接单--区分全部收回,和部分收回
 	 *