From 4237f51df79831289a4cd95d2bee805e3b91adce Mon Sep 17 00:00:00 2001 From: sunjiabei Date: Tue, 9 Sep 2025 11:56:04 +0800 Subject: [PATCH] =?UTF-8?q?9=E6=9C=889=E6=B6=88=E8=B4=B9=E9=80=80=E6=AC=BE?= =?UTF-8?q?plus?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demo/serviceImpl/coin/RefundServiceImpl.java | 62 +++++++++++++++++----- 1 file changed, 49 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/example/demo/serviceImpl/coin/RefundServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/coin/RefundServiceImpl.java index 0fdd766..bdcc67f 100644 --- a/src/main/java/com/example/demo/serviceImpl/coin/RefundServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/coin/RefundServiceImpl.java @@ -115,22 +115,58 @@ public class RefundServiceImpl implements RefundService { userGoldRecord.setJwcode(refundUser.getJwcode()); userGoldRecord.setRefundType(refundUser.getRefundType()); userGoldRecord.setRefundModel(refundUser.getRefundModel()); - userGoldRecord.setPermanentGold(refundUser.getPermanentGold().intValue()); // 获取当前月份(1-12) int currentMonth = LocalDate.now().getMonthValue(); // 根据当前月份设置对应字段 - if (currentMonth >= 1 && currentMonth <= 6) { - // 1-6月:设置6月额度,12月保持默认值 - userGoldRecord.setFreeJune(0); - userGoldRecord.setFreeDecember(refundUser.getFreeGold().intValue()); - } else { - // 7-12月:设置12月额度,6月保持默认值 - userGoldRecord.setFreeJune(refundUser.getFreeGold().intValue()); - userGoldRecord.setFreeDecember(0); + if(Objects.equals(refundUser.getRefundType(), "商品退款")){ + if (currentMonth >= 1 && currentMonth <= 6) { + // 1-6月:设置6月额度,12月保持默认值 + userGoldRecord.setFreeJune(0); + userGoldRecord.setFreeDecember(refundUser.getFreeGold().intValue()); + } else { + // 7-12月:设置12月额度,6月保持默认值 + userGoldRecord.setFreeJune(refundUser.getFreeGold().intValue()); + userGoldRecord.setFreeDecember(0); + } + //信息输入 + userGoldRecord.setPermanentGold(refundUser.getPermanentGold().intValue()); + userGoldRecord.setTaskGold(refundUser.getTaskGold().intValue()); + userGoldRecord.setSumGold(refundUser.getSumGold().intValue()); + }else{ + GoldUser gold = userMapper.selectGold(refundUser.getJwcode().toString()); + if (refundUser.getFreeGold().compareTo(gold.getNowFreeDecember().add(gold.getNowFreeJune())) > 0 + || refundUser.getPermanentGold().compareTo(gold.getNowPermanentGold()) > 0 + || refundUser.getTaskGold().compareTo(gold.getNowTaskGold()) > 0) { + return Result.error("金币数量不足"); + } + // 根据当前月份设置对应字段 + if (currentMonth >= 1 && currentMonth <= 6) { + // 1-6月:设置6月额度,12月保持默认值 + if (refundUser.getFreeGold().compareTo(gold.getNowFreeJune()) > 0) { + userGoldRecord.setFreeJune(-gold.getNowFreeJune().intValue()); + userGoldRecord.setFreeDecember(-(refundUser.getFreeGold().subtract(gold.getNowFreeJune())).intValue()); + } else { + userGoldRecord.setFreeJune(-refundUser.getFreeGold().intValue()); + userGoldRecord.setFreeDecember(0); + } + } else { + // 7-12月:设置12月额度,6月保持默认值 + if (refundUser.getFreeGold().compareTo(gold.getNowFreeDecember()) > 0) { + userGoldRecord.setFreeDecember(-gold.getNowFreeDecember().intValue()); + userGoldRecord.setFreeJune(-(refundUser.getFreeGold().subtract(gold.getNowFreeDecember())).intValue()); + } else { + userGoldRecord.setFreeDecember(-refundUser.getFreeGold().intValue()); + userGoldRecord.setFreeJune(0); + } + } + //信息输入 + userGoldRecord.setPermanentGold(-refundUser.getPermanentGold().intValue()); + userGoldRecord.setTaskGold(-refundUser.getTaskGold().intValue()); + userGoldRecord.setSumGold(-refundUser.getSumGold().intValue()); } - //信息输入 - userGoldRecord.setTaskGold(refundUser.getTaskGold().intValue()); - userGoldRecord.setSumGold(refundUser.getSumGold().intValue()); + + + userGoldRecord.setPayPlatform("金币系统"); userGoldRecord.setRemark(refundUser.getRemark()); userGoldRecord.setAdminId(refundUser.getAdminId()); @@ -147,7 +183,7 @@ public class RefundServiceImpl implements RefundService { return Result.error("该订单已被退款"); } } else { - return Result.error("消费订单重复"); + return Result.error("订单重复"); } refundMapper.add(userGoldRecord); consumeMapper.updateIsRefund(orderCode);