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 @@