From 4709a90bc82fad68aa3dc90eb291738ae5ca3cb5 Mon Sep 17 00:00:00 2001 From: wangguorui <2069821375@qq.com> Date: Fri, 6 Mar 2026 11:30:59 +0800 Subject: [PATCH] =?UTF-8?q?20260306=E5=85=85=E5=80=BC=E9=92=B1=E5=8C=85?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceImpl/cash/CashAuditServiceImpl.java | 76 ++++++++++++++++++---- .../cash/CashCollectionServiceImpl.java | 49 -------------- 2 files changed, 62 insertions(+), 63 deletions(-) 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 64fbe17..6fbd3b2 100644 --- a/src/main/java/com/example/demo/serviceImpl/cash/CashAuditServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/cash/CashAuditServiceImpl.java @@ -3,9 +3,7 @@ package com.example.demo.serviceImpl.cash; import com.example.demo.Util.GoldTistV2; import com.example.demo.Util.SimpleIdGenerator; import com.example.demo.config.RabbitMQConfig; -import com.example.demo.domain.entity.CashRecord; -import com.example.demo.domain.entity.User; -import com.example.demo.domain.entity.UserGoldRecord; +import com.example.demo.domain.entity.*; import com.example.demo.domain.vo.cash.CashCollectionMessage; import com.example.demo.domain.vo.coin.Messages; import com.example.demo.mapper.cash.CashAuditMapper; @@ -14,6 +12,7 @@ import com.example.demo.mapper.coin.AuditMapper; import com.example.demo.mapper.coin.MarketMapper; import com.example.demo.mapper.coin.RechargeMapper; import com.example.demo.service.cash.CashAuditService; +import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -36,6 +35,7 @@ import static net.sf.jsqlparser.parser.feature.Feature.update; * @Version 1.0 **/ @Service +@Slf4j public class CashAuditServiceImpl implements CashAuditService { @Autowired private AuditMapper auditMapper; @@ -83,11 +83,11 @@ public class CashAuditServiceImpl implements CashAuditService { int currentMonth = LocalDate.now().getMonthValue(); // 根据当前月份设置对应字段 if (currentMonth >= 1 && currentMonth <= 6) { - // 1-6月:设置6月额度,12月保持默认值 + // 1-6 月:设置 6 月额度,12 月保持默认值 rechargeOrder.setFreeJune(order.getFreeGold()); rechargeOrder.setFreeDecember(0); } else { - // 7-12月:设置12月额度,6月保持默认值 + // 7-12 月:设置 12 月额度,6 月保持默认值 rechargeOrder.setFreeJune(0); rechargeOrder.setFreeDecember(order.getFreeGold()); } @@ -98,7 +98,7 @@ public class CashAuditServiceImpl implements CashAuditService { rechargeOrder.setVoucher(order.getVoucher()); rechargeOrder.setPayPlatform("金币系统"); rechargeOrder.setPayModel(order.getPayType()); - //把时间转换成Date + //把时间转换成 Date Date date = Date.from(order.getPayTime().toInstant(ZoneOffset.ofHours(8))); rechargeOrder.setPayTime(date); rechargeOrder.setAdminId(order.getSubmitterId()); @@ -110,7 +110,7 @@ public class CashAuditServiceImpl implements CashAuditService { rechargeOrder.setLinkId(order.getLinkId()); rechargeMapper.add(rechargeOrder); - //往ERP加一条充值数据 + //往 ERP 加一条充值数据 GoldTistV2.addCoinNew(order.getJwcode().toString(), 64, //充值永久金币 (double) (order.getPermanentGold()) / 100,order.getLinkId(), order.getRemark(), (double) (order.getPermanentGold()) / 100, auditName, "金币充值"); @@ -123,12 +123,12 @@ public class CashAuditServiceImpl implements CashAuditService { user.setSumConsumePermanent(BigDecimal.valueOf(order.getPermanentGold())); // 根据当前月份设置对应字段 if (currentMonth >= 1 && currentMonth <= 6) { - // 1-6月:设置12月额度,6月保持默认值 + // 1-6 月:设置 12 月额度,6 月保持默认值 user.setSumFreeJune(BigDecimal.valueOf(0)); user.setSumFreeDecember(BigDecimal.valueOf(order.getFreeGold())); user.setCurrentFreeDecember(BigDecimal.valueOf(order.getFreeGold())); } else { - // 7-12月:设置6月额度,12月保持默认值 + // 7-12 月:设置 6 月额度,12 月保持默认值 user.setSumFreeJune(BigDecimal.valueOf(order.getFreeGold())); user.setCurrentFreeJune(BigDecimal.valueOf(order.getFreeGold())); user.setSumFreeDecember(BigDecimal.valueOf(0)); @@ -136,6 +136,54 @@ public class CashAuditServiceImpl implements CashAuditService { user.setCurrentPermanentGold(BigDecimal.valueOf(order.getPermanentGold())); user.setRechargeNum(1); //充值次数加一 auditMapper.updateUserGold(user); + + // 先从数据库中获取订单的 walletId + CashRecord dbRecord = cashCollectionMapper.selectByOrderCode(orderCode); + Integer walletId = dbRecord != null ? dbRecord.getWalletId() : null; + + // 充值到指定钱包 + if (walletId != null && order.getPermanentGold() > 0) { + try { + // 尝试更新用户钱包余额 + int updateRows = cashCollectionMapper.addUserWalletPermanentGold( + order.getJwcode(), + walletId, + order.getPermanentGold() + ); + + // 如果没有更新任何行,说明记录不存在,需要插入新记录 + if (updateRows == 0) { + UserRegionWallet wallet = new UserRegionWallet(); + wallet.setJwcode(order.getJwcode()); + wallet.setWalletId(walletId); + wallet.setCurrentPermanentGold(new BigDecimal(order.getPermanentGold())); + cashCollectionMapper.insertUserWallet(wallet); + log.info("创建新的钱包记录:jwcode={}, walletId={}, permanentGold={}", + order.getJwcode(), walletId, order.getPermanentGold()); + } else { + log.info("充值成功:jwcode={}, walletId={}, 增加金币={}", + order.getJwcode(), walletId, order.getPermanentGold()); + } + + // 创建钱包明细记录 + UserWalletRecord walletRecord = new UserWalletRecord(); + walletRecord.setJwcode(order.getJwcode()); + walletRecord.setWalletId(walletId); + walletRecord.setType(0); // 0=充值 + walletRecord.setAmount(order.getPermanentGold()); + walletRecord.setOrderCode(orderCode); + walletRecord.setDescription(order.getPayType()); + walletRecord.setStatus(0); // 0=正常 + cashCollectionMapper.insertUserWalletRecord(walletRecord); + log.info("创建钱包明细记录:jwcode={}, walletId={}, orderCode={}, amount={}", + order.getJwcode(), walletId, orderCode, order.getPermanentGold()); + + } catch (Exception e) { + log.error("充值钱包失败:jwcode={}, walletId={}, error={}", + order.getJwcode(), walletId, e.getMessage(), e); + // 不抛出异常,避免影响主流程,但记录错误日志 + } + } } if (order.getGoodsName().equals("免费金币赠送")) { //往金币订单表加一条充值记录 @@ -148,11 +196,11 @@ public class CashAuditServiceImpl implements CashAuditService { int currentMonth = LocalDate.now().getMonthValue(); // 根据当前月份设置对应字段 if (currentMonth >= 1 && currentMonth <= 6) { - // 1-6月:设置6月额度,12月保持默认值 + // 1-6 月:设置 6 月额度,12 月保持默认值 rechargeOrder.setFreeJune(order.getFreeGold()); rechargeOrder.setFreeDecember(0); } else { - // 7-12月:设置12月额度,6月保持默认值 + // 7-12 月:设置 12 月额度,6 月保持默认值 rechargeOrder.setFreeJune(0); rechargeOrder.setFreeDecember(order.getFreeGold()); } @@ -165,7 +213,7 @@ public class CashAuditServiceImpl implements CashAuditService { rechargeOrder.setAuditStatus(1); rechargeOrder.setCreateTime(new Date()); rechargeMapper.add(rechargeOrder); - //往ERP加一条充值数据 + //往 ERP 加一条充值数据 GoldTistV2.addCoinNew(order.getJwcode().toString(), 63, //充值免费 (double) (order.getFreeGold()) / 100, order.getRemark(), SimpleIdGenerator.generateId(),0, auditName, "金币充值"); @@ -175,12 +223,12 @@ public class CashAuditServiceImpl implements CashAuditService { user.setSumConsumePermanent(BigDecimal.valueOf(0)); // 根据当前月份设置对应字段 if (currentMonth >= 1 && currentMonth <= 6) { - // 1-6月:设置6月额度,12月保持默认值 + // 1-6 月:设置 6 月额度,12 月保持默认值 user.setSumFreeJune(BigDecimal.valueOf(order.getFreeGold())); user.setSumFreeJune(BigDecimal.valueOf(order.getFreeGold())); user.setCurrentFreeDecember(BigDecimal.valueOf(0)); } else { - // 7-12月:设置12月额度,6月保持默认值 + // 7-12 月:设置 12 月额度,6 月保持默认值 user.setSumFreeJune(BigDecimal.valueOf(0)); user.setSumFreeDecember(BigDecimal.valueOf(order.getFreeGold())); user.setSumFreeDecember(BigDecimal.valueOf(order.getFreeGold())); 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 43bef89..31c0574 100644 --- a/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java @@ -389,58 +389,9 @@ public class CashCollectionServiceImpl implements CashCollectionService { int rows = cashCollectionMapper.complete(cashRecord); String goodsName = cashCollectionMapper.selectGoodsNameByCode(cashRecord.getOrderCode()); if (goodsName != null && goodsName.equals("金币充值")) { - - // 先从数据库中获取订单的 walletId , permanentGold 和 jwcode - CashRecord dbRecord = cashCollectionMapper.selectByOrderCode(cashRecord.getOrderCode()); - Integer walletId = dbRecord != null ? dbRecord.getWalletId() : null; - Integer permanentGold = dbRecord != null ? dbRecord.getPermanentGold() : null; - Integer jwcode = dbRecord != null ? dbRecord.getJwcode() : null; - cashRecord.setOrderCode(cashRecord.getOrderCode().replace("XJ_", "XJCZ_")); //修改金币订单 cashCollectionMapper.updateGoldOrder(cashRecord); - - // 充值成功,增加用户钱包金币 - if (walletId != null && permanentGold > 0) { - try { - // 尝试更新用户钱包余额 - int updateRows = cashCollectionMapper.addUserWalletPermanentGold( - jwcode, - walletId, - permanentGold - ); - - // 如果没有更新任何行,说明记录不存在,需要插入新记录 - if (updateRows == 0) { - UserRegionWallet wallet = new UserRegionWallet(); - wallet.setJwcode(jwcode); - wallet.setWalletId(walletId); - wallet.setCurrentPermanentGold(new BigDecimal(permanentGold)); - cashCollectionMapper.insertUserWallet(wallet); - log.info("创建新的钱包记录:jwcode={}, walletId={}, permanentGold={}", - jwcode, walletId, permanentGold); - } else { - log.info("充值成功:jwcode={}, walletId={}, 增加金币={}", - jwcode, walletId, permanentGold); - } - - // 创建钱包明细记录 - UserWalletRecord walletRecord = new UserWalletRecord(); - walletRecord.setJwcode(jwcode); - walletRecord.setWalletId(walletId); - walletRecord.setType(0); // 0=充值 - walletRecord.setAmount(permanentGold); - walletRecord.setOrderCode(cashRecord.getOrderCode()); - walletRecord.setDescription(dbRecord.getRemark() != null ? dbRecord.getRemark() : "金币充值"); - walletRecord.setStatus(0); // 0=正常 - cashCollectionMapper.insertUserWalletRecord(walletRecord); - - } catch (Exception e) { - log.error("充值钱包失败:jwcode={}, walletId={}, error={}", - jwcode, walletId, e.getMessage(), e); - throw new RuntimeException("充值钱包失败:" + e.getMessage(), e); - } - } } return rows > 0 ? "编辑成功" : "编辑失败"; }