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

Merge branch 'feat-20230828-newstoppackage' into temp-pre

lixuesong 1 жил өмнө
parent
commit
80a62a4f7b

+ 5 - 0
hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/constant/CacheConstants.java

@@ -187,4 +187,9 @@ public interface CacheConstants {
 	 */
 	String INVOICE_DEPT_KEY = "INVOICE:DEPT:KEY:";
 
+	/**
+	 * 终止积分包key
+	 */
+	String TERMINATE_PACKAGE_KEY = "TERMINATE:PACKAGE:KEY:";
+
 }

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

@@ -3077,6 +3077,12 @@ public class WmScorePackageController {
 			return R.failed("必填参数为空");
 		}
 
+		String cacheKey = CacheConstants.TERMINATE_PACKAGE_KEY + wmScorePackage.getId();
+		Boolean absent = redisTemplate.opsForValue().setIfAbsent(cacheKey, JSONUtil.toJsonStr(wmScorePackage), 3L, TimeUnit.SECONDS);
+		if (Boolean.FALSE.equals(absent)) {
+			return R.failed("正在处理");
+		}
+
 		// 查询积分包
 		WmScorePackage scorePackage = wmScorePackageService.getById(wmScorePackage.getId());
 

+ 5 - 4
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/recharge/entity/SysDeptRecharge.java

@@ -34,10 +34,11 @@ public class SysDeptRecharge implements Serializable {
      */
     private Integer score;
 
-    /**
-     * 余额(元)
-     */
-    private BigDecimal balance;
+//    /**
+//     * 余额(元)
+//     */
+//    @Deprecated
+//    private BigDecimal balance;
 
     /**
      * 权限

+ 8 - 4
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/recharge/service/impl/SysDeptRechargeServiceImpl.java

@@ -104,7 +104,11 @@ public class SysDeptRechargeServiceImpl extends ServiceImpl<SysDeptRechargeMappe
             if (deptRecharge != null) {
                 deptRechargeVO.setId(deptRecharge.getId());
                 deptRechargeVO.setScore(deptRecharge.getScore());
-                deptRechargeVO.setBalance(deptRecharge.getBalance());
+
+                // 金额 = 积分 * (服务费率/100)
+                BigDecimal balance = deptRecharge.getServiceCharge().divide(new BigDecimal("100.00"))
+                        .multiply(BigDecimal.valueOf(deptRecharge.getScore())).setScale(2, RoundingMode.HALF_EVEN);
+                deptRechargeVO.setBalance(balance);
                 deptRechargeVO.setServiceCharge(deptRecharge.getServiceCharge());
                 deptRechargeVO.setOverdrawAmount(deptRecharge.getOverdrawAmount());
                 deptRechargeVO.setOverdrawScore(deptRecharge.getOverdrawScore());
@@ -157,14 +161,14 @@ public class SysDeptRechargeServiceImpl extends ServiceImpl<SysDeptRechargeMappe
                 throw new RuntimeException("充值积分不正确");
             }
             // 计算更新金额
-            currentBalance  = toRecharge.getRechargeAmount().add(deptRecharge.getBalance());
+//            currentBalance  = toRecharge.getRechargeAmount().add(deptRecharge.getBalance());
             currentScore = rechargeScore.intValue() + deptRecharge.getScore();
             // 更新
             boolean update = this.update(Wrappers.<SysDeptRecharge>lambdaUpdate()
                     .eq(SysDeptRecharge::getId, deptRecharge.getId())
                     .eq(SysDeptRecharge::getVersion, deptRecharge.getVersion())
                     .set(SysDeptRecharge::getVersion, deptRecharge.getVersion() + 1)
-                    .set(SysDeptRecharge::getBalance, currentBalance)
+//                    .set(SysDeptRecharge::getBalance, currentBalance)
                     .set(SysDeptRecharge::getScore, currentScore)
                     .set(SysDeptRecharge::getUpdateTime, LocalDateTime.now())
                     .set(SysDeptRecharge::getUpdateUser, operator));
@@ -222,7 +226,7 @@ public class SysDeptRechargeServiceImpl extends ServiceImpl<SysDeptRechargeMappe
             deptRecharge.setOverdrawAmount(overdrawAmount);
             deptRecharge.setPermissions(toConfig.getPermissions());
             deptRecharge.setScore(0);
-            deptRecharge.setBalance(BigDecimal.ZERO);
+//            deptRecharge.setBalance(BigDecimal.ZERO);
             deptRecharge.setCreateUser(operator);
             this.save(deptRecharge);
         } else {