diff --git a/src/main/java/com/example/demo/controller/cash/CashCollectionController.java b/src/main/java/com/example/demo/controller/cash/CashCollectionController.java index 95f5b2c..65aad69 100644 --- a/src/main/java/com/example/demo/controller/cash/CashCollectionController.java +++ b/src/main/java/com/example/demo/controller/cash/CashCollectionController.java @@ -865,7 +865,24 @@ public class CashCollectionController { } // 翻译交易类型 if (vo.getType() != null) { - String typeText = vo.getType() == 0 ? "充值" : (vo.getType() == 1 ? "消耗" : "退款"); + String typeText; + switch (vo.getType()) { + case 0: + typeText = "充值"; + break; + case 1: + typeText = "消耗"; + break; + case 2: + typeText = "退款"; + break; + case 3: + typeText = "软件购买"; + break; + default: + typeText = "未知"; + break; + } vo.setTypeText(languageTranslationUtil.translate(typeText, lang)); } // 翻译状态 diff --git a/src/main/java/com/example/demo/serviceImpl/cash/CashAuditServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/cash/CashAuditServiceImpl.java index f8e98fa..8b305de 100644 --- a/src/main/java/com/example/demo/serviceImpl/cash/CashAuditServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/cash/CashAuditServiceImpl.java @@ -238,6 +238,24 @@ public class CashAuditServiceImpl implements CashAuditService { user.setRechargeNum(1); //充值次数加一 auditMapper.updateUserGold(user); } + else { + // 先从数据库中获取订单的 walletId + CashRecord dbRecord = cashCollectionMapper.selectByOrderCode(orderCode); + Integer walletId = dbRecord != null ? dbRecord.getWalletId() : null; + // 创建钱包明细记录 + UserWalletRecord walletRecord = new UserWalletRecord(); + walletRecord.setJwcode(order.getJwcode()); + walletRecord.setWalletId(walletId); + walletRecord.setType(3); // 3=软件购买 + walletRecord.setTransactionCurrency(order.getPaymentCurrency()); + walletRecord.setAmount(order.getPaymentAmount().intValue()); + walletRecord.setOrderCode(orderCode); + walletRecord.setDescription(order.getGoodsName()+order.getGoodNum()+order.getNumUnit()); + walletRecord.setStatus(0); // 0=正常 + cashCollectionMapper.insertUserWalletRecord(walletRecord); + log.info("创建钱包明细记录:jwcode={}, walletId={}, orderCode={}, amount={}", + order.getJwcode(), walletId, orderCode, order.getPermanentGold()); + } } else if (action == 2) { //驳回 updateOrder.setStatus(2); updateOrder.setRejectReason(rejectReason); diff --git a/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java index f9a2ea7..2cba3a6 100644 --- a/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java @@ -76,6 +76,9 @@ public class CashCollectionServiceImpl implements CashCollectionService { if (cashCollection.getActivity() == null || cashCollection.getActivity().isEmpty()) { throw new IllegalArgumentException("活动不能为空"); } + if (cashCollection.getWalletId() == null || cashCollection.getWalletId() < 1 || cashCollection.getWalletId() > 10) { + throw new IllegalArgumentException("钱包 ID 为 1~10"); + } if (cashCollection.getGoodsName() == null|| cashCollection.getGoodsName().isEmpty()) { throw new IllegalArgumentException("产品名称不能为空"); } @@ -83,9 +86,6 @@ public class CashCollectionServiceImpl implements CashCollectionService { if (cashCollection.getPermanentGold() == 0 && cashCollection.getFreeGold() == 0) { throw new IllegalArgumentException("金币数量不能为空"); } - if (cashCollection.getWalletId() == null || cashCollection.getWalletId() < 1 || cashCollection.getWalletId() > 10) { - throw new IllegalArgumentException("钱包 ID 为 1~10"); - } } if (!cashCollection.getGoodsName().equals("金币充值")) { if (cashCollection.getGoodNum() == 0) { diff --git a/src/main/resources/cashMapper/CashCollectionMapper.xml b/src/main/resources/cashMapper/CashCollectionMapper.xml index b410e5c..daec598 100644 --- a/src/main/resources/cashMapper/CashCollectionMapper.xml +++ b/src/main/resources/cashMapper/CashCollectionMapper.xml @@ -226,13 +226,15 @@