Эх сурвалжийг харах

fix: 发包大包/小包可分配积分值的校验

lixuesong 1 жил өмнө
parent
commit
191516d776

+ 11 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmScorePackageController.java

@@ -1769,6 +1769,17 @@ public class WmScorePackageController {
 						wmScorePackage.getScore(), deptRecharge.getScore(), limitScore);
 				throw new RuntimeException(String.format("积分余额:%s。积分不足", deptRecharge.getScore()));
 			}
+		} else {
+			// 校验上级可分配积分值
+			List<WmScorePackage> scorePackagekfpjf = wmScorePackageService.getScorePackagekfpjf(null, null, new String[]{"0", "1", "2"},
+					new String[]{wmScorePackage.getRelationScoreId()});
+
+			if (CollUtil.isNotEmpty(scorePackagekfpjf)) {
+				int kfpjf = scorePackagekfpjf.get(0).getKfpjf();
+				if (wmScorePackage.getScore() > kfpjf) {
+					throw new RuntimeException("可分配积分值不足");
+				}
+			}
 		}
 
 		wmScorePackage.setTypeid("");

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

@@ -684,12 +684,17 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 		//判断预积分包值不能大于可分配积分值
 		if (!StringUtil.isEmpty(wmScorePackage.getRelationScoreId()) && !wmScorePackage.getRelationScoreId()
 				.equals("-1")) {
-			WmScorePackage wmScorePackage1 = new WmScorePackage();
-			wmScorePackage1.setId(wmScorePackage.getRelationScoreId());
-			WmScorePackage wmScorePackage2 = wmScorePackageMapper.selectById(wmScorePackage1.getId());
+//			WmScorePackage wmScorePackage1 = new WmScorePackage();
+//			wmScorePackage1.setId(wmScorePackage.getRelationScoreId());
+//			WmScorePackage wmScorePackage2 = wmScorePackageMapper.selectById(wmScorePackage1.getId());
 			Integer kfpjf = 0;
-			if (wmScorePackage2 != null) {
-				kfpjf = wmScorePackage2.getKfpjf() == null ? 0 : wmScorePackage2.getKfpjf();
+
+			List<WmScorePackage> scorePackagekfpjf = this.getScorePackagekfpjf(null, null, new String[]{"0", "1", "2"},
+					new String[]{wmScorePackage.getRelationScoreId()});
+
+			if (CollUtil.isNotEmpty(scorePackagekfpjf)) {
+				kfpjf = scorePackagekfpjf.get(0).getKfpjf();
+//				kfpjf = wmScorePackage2.getKfpjf() == null ? 0 : wmScorePackage2.getKfpjf();
 				if (kfpjf > 0 && wmScorePackage.getScore() > kfpjf) {
 					return R.failed("预积分包值不能大于可分配积分值");
 				}