From b29c95bdab56d4ee0a68ceb9f24484b54e688886 Mon Sep 17 00:00:00 2001 From: lijianlin Date: Wed, 7 Jan 2026 11:28:39 +0800 Subject: [PATCH] =?UTF-8?q?01-07=20=E9=80=80=E6=AC=BE=E6=89=A3=E9=87=91?= =?UTF-8?q?=E5=B8=81=E6=8A=B5=E6=89=A3=E7=BA=A2=E5=8C=85=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E6=89=A3=E6=AC=BE=E9=A1=BA=E5=BA=8F=E8=87=B3=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E5=85=8D=E8=B4=B9=E6=B0=B8=E4=B9=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demo/serviceImpl/coin/AuditServiceImpl.java | 41 +++++++++++++--------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/example/demo/serviceImpl/coin/AuditServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/coin/AuditServiceImpl.java index 0b1d58a..6ebea1f 100644 --- a/src/main/java/com/example/demo/serviceImpl/coin/AuditServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/coin/AuditServiceImpl.java @@ -149,7 +149,14 @@ public class AuditServiceImpl implements AuditService { }else if (order.getType()==2) { //退款 //对非强制退款订单进行退红包校验 - if (order.getAuditStatus()!=4&&price!= null&&linkId!= null){ + if (price== null&&linkId== null) + { + String logMsg="旧版订单暂不支持退款,请联系工作人员进行操作"; + log.error(logMsg); + AuditContext.setFailMsg(logMsg); + return false; + } + if (order.getAuditStatus()!=4){ try { redService.checkRed(price, linkId); } catch (RedCheckException e) { @@ -222,29 +229,29 @@ public class AuditServiceImpl implements AuditService { throw new IllegalArgumentException("用户余额不足,无法抵扣红包"); } ConsumeUser consumeUser = new ConsumeUser(); - // 1. 先扣除免费金币 - if (order.getRedDiff().compareTo(user.getNowFreeGold()) <= 0) { - // 红包差额小于等于总免费金币,只扣免费金币 + // 1. 先扣除任务金币 + if (order.getRedDiff().compareTo(user.getNowTaskGold()) <= 0) { + // 红包差额小于等于任务金币,只扣任务金币 consumeUser.setJwcode(order.getJwcode()); - consumeUser.setFreeGold(order.getRedDiff()); + consumeUser.setTaskGold(order.getRedDiff()); + consumeUser.setFreeGold(BigDecimal.ZERO); consumeUser.setPermanentGold(BigDecimal.ZERO); - consumeUser.setTaskGold(BigDecimal.ZERO); } else { - // 2. 免费金币不足,扣除免费+永久金币 - BigDecimal remainingAfterFree = order.getRedDiff().subtract(user.getNowFreeGold()); - if (remainingAfterFree.compareTo(user.getNowPermanentGold()) <= 0) { + // 2. 任务金币不足,扣除任务+免费金币 + BigDecimal remainingAfterTask = order.getRedDiff().subtract(user.getNowTaskGold()); + if (remainingAfterTask.compareTo(user.getNowFreeGold()) <= 0) { consumeUser.setJwcode(order.getJwcode()); - consumeUser.setFreeGold(user.getNowFreeGold()); - consumeUser.setPermanentGold(user.getNowPermanentGold().subtract(remainingAfterFree)); - consumeUser.setTaskGold(BigDecimal.ZERO); + consumeUser.setTaskGold(user.getNowTaskGold()); + consumeUser.setFreeGold(user.getNowFreeGold().subtract(remainingAfterTask)); + consumeUser.setPermanentGold(BigDecimal.ZERO); } else { - // 3. 免费+永久金币仍不足,扣除全部免费+永久+部分任务金币 - BigDecimal remainingAfterPermanent = remainingAfterFree.subtract(user.getNowPermanentGold()); - if (remainingAfterPermanent.compareTo(user.getNowTaskGold()) <= 0) { + // 3. 任务+免费金币仍不足,扣除全部任务+免费+部分永久金币 + BigDecimal remainingAfterFree = remainingAfterTask.subtract(user.getNowFreeGold()); + if (remainingAfterFree.compareTo(user.getNowPermanentGold()) <= 0) { consumeUser.setJwcode(order.getJwcode()); + consumeUser.setTaskGold(user.getNowTaskGold()); consumeUser.setFreeGold(user.getNowFreeGold()); - consumeUser.setPermanentGold(user.getNowPermanentGold()); - consumeUser.setTaskGold(user.getNowTaskGold().subtract(remainingAfterPermanent)); + consumeUser.setPermanentGold(user.getNowPermanentGold().subtract(remainingAfterFree)); } else { throw new IllegalArgumentException("用户金币不足,无法抵扣红包"); }