From 381afd9e82b6e8610aeb00b8d4c0ff138195bb2d Mon Sep 17 00:00:00 2001 From: cloudroam <cloudroam> Date: 星期五, 01 十一月 2024 13:13:50 +0800 Subject: [PATCH] fix: 钱包供应商财务1 --- src/main/java/com/mzl/flower/service/payment/OrderSettlementService.java | 58 +++++++++++++++-------------- src/main/java/com/mzl/flower/service/impl/wallet/WalletWithdrawRecordServiceImpl.java | 3 + src/main/resources/mapper/wallet/WalletBillRecordMapper.xml | 2 3 files changed, 33 insertions(+), 30 deletions(-) diff --git a/src/main/java/com/mzl/flower/service/impl/wallet/WalletWithdrawRecordServiceImpl.java b/src/main/java/com/mzl/flower/service/impl/wallet/WalletWithdrawRecordServiceImpl.java index b891ecf..196e668 100644 --- a/src/main/java/com/mzl/flower/service/impl/wallet/WalletWithdrawRecordServiceImpl.java +++ b/src/main/java/com/mzl/flower/service/impl/wallet/WalletWithdrawRecordServiceImpl.java @@ -188,6 +188,7 @@ public void updateWallet(WalletWithdrawRecordDTO walletWithdrawRecordDTO) { WalletWithdrawRecordDO withdrawRecordDO = walletWithdrawRecordMapper.selectById(walletWithdrawRecordDTO.getId()); + final String approveState = withdrawRecordDO.getApproveState(); if (withdrawRecordDO == null) { throw new ValidationException("提现记录信息不存在"); } @@ -219,7 +220,7 @@ try { if (recordLock.tryLock(10, 30, TimeUnit.SECONDS)) { try { - if(!walletWithdrawRecordDTO.getApproveState().equals(Constants.WALLET_APPROVE_STATE.WAITING)){ + if(!approveState.equals(Constants.WALLET_APPROVE_STATE.WAITING.name())){ String msg = "重复通过"; throw new ValidationException(msg); } diff --git a/src/main/java/com/mzl/flower/service/payment/OrderSettlementService.java b/src/main/java/com/mzl/flower/service/payment/OrderSettlementService.java index 1bab152..1f1e32c 100644 --- a/src/main/java/com/mzl/flower/service/payment/OrderSettlementService.java +++ b/src/main/java/com/mzl/flower/service/payment/OrderSettlementService.java @@ -739,35 +739,37 @@ try { //2024-10-28 直接保存到walletBillRecord //新增WalletBillRecordDO - WalletBillRecordDO walletBillRecord = new WalletBillRecordDO(); - walletBillRecord.setId(UUIDGenerator.getUUID()); - WalletDO walletDOInfo = walletService.getBySupplierId(supplierId); - //增加供应商结算金额保存到钱包 - walletBillRecord.setSupplierId(supplierId); - walletBillRecord.setWalletId(walletDOInfo.getId()); - walletBillRecord.setSettlementId(settlement.getId()); - walletBillRecord.setOrderItemId(detail.getOrderItemId()); - //变动金额等于供应商收入 - walletBillRecord.setTotalAmount(ois.getIncomeSupplier()); - walletBillRecord.setType(Constants.BILL_CHANGE_TYPE.settlement.name()); - walletBillRecord.setMethod(Constants.BILL_CHANGE_METHOD.add.name()); - walletBillRecord.setOriginalAmount(walletDOInfo.getTotalAmount()); - walletBillRecord.setChangeAmount(ois.getIncomeSupplier()); - walletBillRecord.setBalance(walletDOInfo.getWithdrawableAmount().add(ois.getIncomeSupplier())); - Order order = orderMapper.selectById(detail.getOrderId()); - if (!ObjectUtils.isEmpty(order)) { - walletBillRecord.setRemark("订单完成(订单号" + order.getOrderNo() + ")" + ",获得收入"); - walletBillRecord.setOrderNo(order.getOrderNo()); + if(ois.getIncomeSupplier().compareTo(BigDecimal.ZERO) > 0) { + WalletBillRecordDO walletBillRecord = new WalletBillRecordDO(); + walletBillRecord.setId(UUIDGenerator.getUUID()); + WalletDO walletDOInfo = walletService.getBySupplierId(supplierId); + //增加供应商结算金额保存到钱包 + walletBillRecord.setSupplierId(supplierId); + walletBillRecord.setWalletId(walletDOInfo.getId()); + walletBillRecord.setSettlementId(settlement.getId()); + walletBillRecord.setOrderItemId(detail.getOrderItemId()); + //变动金额等于供应商收入 + walletBillRecord.setTotalAmount(ois.getIncomeSupplier()); + walletBillRecord.setType(Constants.BILL_CHANGE_TYPE.settlement.name()); + walletBillRecord.setMethod(Constants.BILL_CHANGE_METHOD.add.name()); + walletBillRecord.setOriginalAmount(walletDOInfo.getTotalAmount()); + walletBillRecord.setChangeAmount(ois.getIncomeSupplier()); + walletBillRecord.setBalance(walletDOInfo.getWithdrawableAmount().add(ois.getIncomeSupplier())); + Order order = orderMapper.selectById(detail.getOrderId()); + if (!ObjectUtils.isEmpty(order)) { + walletBillRecord.setRemark("订单完成(订单号" + order.getOrderNo() + ")" + ",获得收入"); + walletBillRecord.setOrderNo(order.getOrderNo()); + } + //更新钱包 + //可提现金额=钱包余额=结算金额 + walletDOInfo.setWithdrawableAmount(walletDOInfo.getWithdrawableAmount().add(ois.getIncomeSupplier())); + walletDOInfo.setTotalAmount(walletDOInfo.getWithdrawableAmount()); + //已结算金额 + walletDOInfo.setSettledAmount(walletDOInfo.getSettledAmount().add(ois.getIncomeSupplier())); + walletMapper.updateById(walletDOInfo); + walletBillRecord.create(); + walletBillRecordMapper.insert(walletBillRecord); } - //更新钱包 - //可提现金额=钱包余额=结算金额 - walletDOInfo.setWithdrawableAmount(walletDOInfo.getWithdrawableAmount().add(ois.getIncomeSupplier())); - walletDOInfo.setTotalAmount(walletDOInfo.getWithdrawableAmount()); - //已结算金额 - walletDOInfo.setSettledAmount(walletDOInfo.getSettledAmount().add(ois.getIncomeSupplier())); - walletMapper.updateById(walletDOInfo); - walletBillRecord.create(); - walletBillRecordMapper.insert(walletBillRecord); } finally { lock.unlock(); } diff --git a/src/main/resources/mapper/wallet/WalletBillRecordMapper.xml b/src/main/resources/mapper/wallet/WalletBillRecordMapper.xml index f71a580..b19ed5b 100644 --- a/src/main/resources/mapper/wallet/WalletBillRecordMapper.xml +++ b/src/main/resources/mapper/wallet/WalletBillRecordMapper.xml @@ -85,7 +85,7 @@ <if test="dto.approveEndDate!=null "> AND DATE_FORMAT(w.approve_time, '%Y-%m-%d') <= #{dto.approveEndDate} </if> - order by t.create_time + order by t.create_time desc </select> <select id="queryWalletBillRecordList" resultType="com.mzl.flower.dto.response.wallet.WalletBillRecordVO"> -- Gitblit v1.9.3