Browse Source

feat: 拆包需求修改了

李学松 2 years ago
parent
commit
98857a85dd

+ 0 - 12
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/dto/UnpackDTO.java

@@ -24,12 +24,6 @@ public class UnpackDTO implements Serializable {
 	@NotBlank(message = "积分包id必填")
 	@NotBlank(message = "积分包id必填")
 	private String scorePackageId;
 	private String scorePackageId;
 
 
-	/**
-	 * 预拆包积分值
-	 */
-	@NotNull(message = "预拆包积分值必填")
-	private Integer newPackageScore;
-
 	/**
 	/**
 	 * 原积分包剩余积分包值
 	 * 原积分包剩余积分包值
 	 */
 	 */
@@ -42,12 +36,6 @@ public class UnpackDTO implements Serializable {
 	@NotNull(message = "已选任务积分值必填")
 	@NotNull(message = "已选任务积分值必填")
 	private Integer selectTaskScore;
 	private Integer selectTaskScore;
 
 
-	/**
-	 * 剩余任务积分值
-	 */
-	@NotNull(message = "剩余任务积分值必填")
-	private Integer remainTaskScore;
-
 	/**
 	/**
 	 * 已选任务id列表
 	 * 已选任务id列表
 	 */
 	 */

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

@@ -19,6 +19,7 @@ package com.qunzhixinxi.hnqz.admin.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.RandomUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.csp.sentinel.util.StringUtil;
 import com.alibaba.csp.sentinel.util.StringUtil;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
@@ -2512,10 +2513,6 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 		if (!ScorePackageStatusEnum.TO_BE_SETTLED.val().equals(scorePackage.getScorePackageStatus())) {
 		if (!ScorePackageStatusEnum.TO_BE_SETTLED.val().equals(scorePackage.getScorePackageStatus())) {
 			throw new RuntimeException("只有“已完成待结算”的积分包可以拆包");
 			throw new RuntimeException("只有“已完成待结算”的积分包可以拆包");
 		}
 		}
-		// 业务校验2
-		if (unpackDTO.getNewPackageScore().compareTo(scorePackage.getScore()) >= 0) {
-			throw new RuntimeException("“预拆包分值”不能大于“原积分包值”");
-		}
 		// 原审核通过的任务列表
 		// 原审核通过的任务列表
 		QueryWrapper<WmTask> queryWrapper = Wrappers.query();
 		QueryWrapper<WmTask> queryWrapper = Wrappers.query();
 		queryWrapper.eq("task_status", TaskStatusEnum.APPROVED.val());
 		queryWrapper.eq("task_status", TaskStatusEnum.APPROVED.val());
@@ -2540,9 +2537,9 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 		if (!unpackDTO.getSelectTaskScore().equals(selectTaskScore)) {
 		if (!unpackDTO.getSelectTaskScore().equals(selectTaskScore)) {
 			throw new RuntimeException("已选任务分值不正确");
 			throw new RuntimeException("已选任务分值不正确");
 		}
 		}
-		// 业务校验3
-		if (selectTaskScore < unpackDTO.getNewPackageScore()) {
-			throw new RuntimeException("已选任务分值大于预拆包分值,才能拆包");
+		// 业务校验2
+		if (selectTaskScore >= scorePackage.getScore()) {
+			throw new RuntimeException("“已选总任务积分”必须小于“总积分包值”");
 		}
 		}
 
 
 		// 剩余任务
 		// 剩余任务
@@ -2550,22 +2547,10 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 				.filter(task -> !unpackDTO.getSelectTaskIds().contains(task.getId())).collect(Collectors.toList());
 				.filter(task -> !unpackDTO.getSelectTaskIds().contains(task.getId())).collect(Collectors.toList());
 		// 剩余任务分值
 		// 剩余任务分值
 		int remainTaskScore = remainTaskList.stream().mapToInt(WmTask::getScore).sum();
 		int remainTaskScore = remainTaskList.stream().mapToInt(WmTask::getScore).sum();
-		if (!unpackDTO.getRemainTaskScore().equals(remainTaskScore)) {
-			throw new RuntimeException("剩余任务分值不正确");
-		}
 
 
-		// 拆包后的原积分包包值:
-		// 剩余任务分值 > 剩余积分包值,取剩余积分包值
-		// 剩余任务分值 < 剩余积分包值,取剩任务分值
-		int remainPackageScore;
-		int tempRemainPackageScore = scorePackage.getScore() - unpackDTO.getNewPackageScore();
-		if (remainTaskScore > tempRemainPackageScore) {
-			remainPackageScore = tempRemainPackageScore;
-		} else {
-			remainPackageScore = remainTaskScore;
-		}
-		if (!unpackDTO.getRemainPackageScore().equals(remainPackageScore)) {
-			throw new RuntimeException("剩余积分包值不正确");
+		// 拆包后的原积分包包值:取剩任务分值
+		if (!unpackDTO.getRemainPackageScore().equals(remainTaskScore)) {
+			throw new RuntimeException("原积分包剩余积分包值不正确");
 		}
 		}
 
 
 
 
@@ -2574,10 +2559,10 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 		// 创建新包
 		// 创建新包
 		String newScorePackageName = null;
 		String newScorePackageName = null;
 		// 校验积分包名称是否存在
 		// 校验积分包名称是否存在
-		for (int i = 0; i < 9999; i++) {
+		for (int i = 0; i < 10; i++) {
+			newScorePackageName = String.format("%s-%s", scorePackage.getScorePackageName(), RandomUtil.randomNumbers(3));
 			int newScorePackageCount = this.count(Wrappers.<WmScorePackage>lambdaQuery().eq(WmScorePackage::getScorePackageName, newScorePackageName));
 			int newScorePackageCount = this.count(Wrappers.<WmScorePackage>lambdaQuery().eq(WmScorePackage::getScorePackageName, newScorePackageName));
 			if (newScorePackageCount <= 0) {
 			if (newScorePackageCount <= 0) {
-				newScorePackageName = String.format("%s-%s", scorePackage.getScorePackageName(), i + 1);
 				break;
 				break;
 			}
 			}
 		}
 		}
@@ -2588,20 +2573,21 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 		newScorePackage.setCreateTime(now);
 		newScorePackage.setCreateTime(now);
 		newScorePackage.setCreateUser(operatorId);
 		newScorePackage.setCreateUser(operatorId);
 		newScorePackage.setReceiveDate(now);
 		newScorePackage.setReceiveDate(now);
-		newScorePackage.setScore(unpackDTO.getNewPackageScore());
+		newScorePackage.setScore(unpackDTO.getSelectTaskScore());
 		newScorePackage.setScorePackageName(newScorePackageName);
 		newScorePackage.setScorePackageName(newScorePackageName);
 		newScorePackage.setRemark(String.format("拆包自原积分包id=%s", unpackDTO.getScorePackageId()));
 		newScorePackage.setRemark(String.format("拆包自原积分包id=%s", unpackDTO.getScorePackageId()));
 		log.info("创建新积分包参数:{}", newScorePackage);
 		log.info("创建新积分包参数:{}", newScorePackage);
 		this.save(newScorePackage);
 		this.save(newScorePackage);
 
 
 		// 更新原积分包包值
 		// 更新原积分包包值
+		int oldScorePackageScore = scorePackage.getScore() - selectTaskScore;
 		WmScorePackage updateOldPackage = new WmScorePackage();
 		WmScorePackage updateOldPackage = new WmScorePackage();
 		updateOldPackage.setId(unpackDTO.getScorePackageId());
 		updateOldPackage.setId(unpackDTO.getScorePackageId());
-		updateOldPackage.setScore(remainPackageScore);
+		updateOldPackage.setScore(remainTaskScore);
 		updateOldPackage.setUpdateTime(now);
 		updateOldPackage.setUpdateTime(now);
 		updateOldPackage.setUpdateUser(operatorId);
 		updateOldPackage.setUpdateUser(operatorId);
 		updateOldPackage.setRemark(String.format("%s; 原积分包值%s更新为%s",
 		updateOldPackage.setRemark(String.format("%s; 原积分包值%s更新为%s",
-				StrUtil.emptyIfNull(updateOldPackage.getRemark()), scorePackage.getScore(), remainPackageScore));
+				StrUtil.emptyIfNull(updateOldPackage.getRemark()), scorePackage.getScore(), remainTaskScore));
 		log.info("更新原积分包参数:{}", updateOldPackage);
 		log.info("更新原积分包参数:{}", updateOldPackage);
 		this.updateById(updateOldPackage);
 		this.updateById(updateOldPackage);