From 04755188d6a9ce773f89ebfc07614491a8093b8d Mon Sep 17 00:00:00 2001 From: ziin Date: Tue, 6 Jan 2026 19:48:06 +0800 Subject: [PATCH] =?UTF-8?q?fix(service):=20=E6=8F=90=E7=8E=B0=E6=88=90?= =?UTF-8?q?=E5=8A=9F=E6=97=B6=E5=90=8C=E6=AD=A5=E7=94=9F=E6=88=90=E4=BD=99?= =?UTF-8?q?=E9=A2=9D=E6=B5=81=E6=B0=B4=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...eyboardTenantWithdrawOrderServiceImpl.java | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/keyboard-server/src/main/java/com/yolo/keyboard/service/tenantwithdraworder/KeyboardTenantWithdrawOrderServiceImpl.java b/keyboard-server/src/main/java/com/yolo/keyboard/service/tenantwithdraworder/KeyboardTenantWithdrawOrderServiceImpl.java index 3d19e43..5759bce 100644 --- a/keyboard-server/src/main/java/com/yolo/keyboard/service/tenantwithdraworder/KeyboardTenantWithdrawOrderServiceImpl.java +++ b/keyboard-server/src/main/java/com/yolo/keyboard/service/tenantwithdraworder/KeyboardTenantWithdrawOrderServiceImpl.java @@ -4,8 +4,10 @@ import com.yolo.keyboard.controller.admin.tenantwithdraworder.vo.KeyboardTenantW import com.yolo.keyboard.controller.admin.tenantwithdraworder.vo.KeyboardTenantWithdrawOrderRespVO; import com.yolo.keyboard.controller.admin.tenantwithdraworder.vo.KeyboardTenantWithdrawOrderSaveReqVO; import com.yolo.keyboard.dal.dataobject.tenantbalance.TenantBalanceDO; +import com.yolo.keyboard.dal.dataobject.tenantbalancetransaction.TenantBalanceTransactionDO; import com.yolo.keyboard.dal.dataobject.tenantwithdraworder.KeyboardTenantWithdrawOrderDO; import com.yolo.keyboard.dal.mysql.tenantbalance.TenantBalanceMapper; +import com.yolo.keyboard.dal.mysql.tenantbalancetransaction.TenantBalanceTransactionMapper; import com.yolo.keyboard.dal.mysql.tenantwithdraworder.KeyboardTenantWithdrawOrderMapper; import com.yolo.keyboard.framework.common.pojo.PageResult; import com.yolo.keyboard.framework.common.util.object.BeanUtils; @@ -20,6 +22,7 @@ import org.springframework.validation.annotation.Validated; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; +import java.time.LocalDateTime; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -46,6 +49,9 @@ public class KeyboardTenantWithdrawOrderServiceImpl implements KeyboardTenantWit @Resource private TenantBalanceMapper tenantBalanceMapper; + @Resource + private TenantBalanceTransactionMapper tenantBalanceTransactionMapper; + @Override public Long createTenantWithdrawOrder(KeyboardTenantWithdrawOrderSaveReqVO createReqVO) { // 插入 @@ -69,7 +75,7 @@ public class KeyboardTenantWithdrawOrderServiceImpl implements KeyboardTenantWit KeyboardTenantWithdrawOrderDO updateObj = BeanUtils.toBean(updateReqVO, KeyboardTenantWithdrawOrderDO.class); tenantWithdrawOrderMapper.updateById(updateObj); - // 如果提现状态更新为成功(PAID),则扣除提现用户的冻结金额 + // 如果提现状态更新为成功(PAID),则扣除提现用户的冻结金额并创建流水记录 String newStatus = updateReqVO.getStatus(); if ("PAID".equals(newStatus) && !"PAID".equals(existingOrder.getStatus())) { // 获取提现用户的余额记录 @@ -85,6 +91,20 @@ public class KeyboardTenantWithdrawOrderServiceImpl implements KeyboardTenantWit } balance.setFrozenAmt(newFrozenAmt); tenantBalanceMapper.updateById(balance); + + // 创建提现成功的流水记录 + TenantBalanceTransactionDO transaction = TenantBalanceTransactionDO.builder() + .bizNo(existingOrder.getBizNo()) + .points(withdrawAmount.negate()) // 提现金额(负数表示支出) + .balance(balance.getWithdrawableBalance() != null ? balance.getWithdrawableBalance() : BigDecimal.ZERO) // 当前可提现余额 + .tenantId(existingOrder.getTenantId()) + .type("WITHDRAW_SUCCESS") + .description("提现成功") + .orderId(existingOrder.getWithdrawNo()) + .operatorId(TenantContextHolder.getTenantId()) + .createdAt(LocalDateTime.now()) + .build(); + tenantBalanceTransactionMapper.insert(transaction); } } }