From f93b1617d28c9d353fae628bfb86e0c15fa07579 Mon Sep 17 00:00:00 2001 From: 陶杰 <1378534974@qq.com> Date: 星期四, 31 十月 2024 11:59:21 +0800 Subject: [PATCH] 1.提现-增加明细记录 2.报表-财务报表-增加总销售扎数统计,将原销售扎数改成实际销售扎数 --- src/main/java/com/mzl/flower/service/impl/wallet/WalletWithdrawRecordServiceImpl.java | 32 +++++++++++++++++++++++++++++++- 1 files changed, 31 insertions(+), 1 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 9a6fbbe..7156e24 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 @@ -117,14 +117,43 @@ // 1.新增一条余额提现记录 WalletWithdrawRecordDO withdrawRecordDO = new WalletWithdrawRecordDO(); + //原金额 + withdrawRecordDO.setOriginalAmount(walletDO.getWithdrawableAmount()); + // 变动金额 + withdrawRecordDO.setChangeAmount(dto.getAmount()); + // 余额 + withdrawRecordDO.setBalance(walletDO.getWithdrawableAmount().subtract(dto.getAmount())); withdrawRecordDO.setAmount(dto.getAmount()); withdrawRecordDO.setSupplierId(supplierDTO.getId()); withdrawRecordDO.setWithdrawState(Constants.WALLET_WITHDRAW_STATE.WAITING.name()); withdrawRecordDO.setMethod(Constants.WALLET_WITHDRAW_METHOD.WEIXIN.name()); withdrawRecordDO.setWithdrawType(Constants.WALLET_WITHDRAW_TYPE.BALANCE.name()); + // 待审核状态 + withdrawRecordDO.setApproveState(Constants.WALLET_APPROVE_STATE.WAITING.name()); + withdrawRecordDO.create(SecurityUtils.getUserId()); + // 保存余额提现记录 save(withdrawRecordDO); + + + // 2.新增一条账单明细 + WalletBillRecordDO walletBillRecordDO=new WalletBillRecordDO(); + walletBillRecordDO.setId(UUIDGenerator.getUUID()); + walletBillRecordDO.setSupplierId(supplierDTO.getId()); + walletBillRecordDO.setWalletId(walletDO.getId()); + walletBillRecordDO.setType(Constants.BILL_CHANGE_TYPE.withdraw.name()); + // 发起提现 + walletBillRecordDO.setWithdrawType(Constants.BILL_WITHDRAW_TYPE.start.name()); + walletBillRecordDO.setMethod(Constants.BILL_CHANGE_METHOD.reduce.name()); + walletBillRecordDO.setOriginalAmount(walletDO.getWithdrawableAmount()); + walletBillRecordDO.setChangeAmount(dto.getAmount()); + walletBillRecordDO.setBalance(walletDO.getWithdrawableAmount().subtract(dto.getAmount())); + walletBillRecordDO.create(SecurityUtils.getUserId()); + + // 保存账单明细 + walletBillRecordService.save(walletBillRecordDO); + // 3. 钱包更新 @@ -238,6 +267,7 @@ } //记录转账状态,定时任务定时获取状态并更新钱包交易记录表信息 + walletBillRecordDO.setRemark("账户资金提现中"); walletBillRecordMapper.insert(walletBillRecordDO); //不需要更新结算单了,此时提现的金额和计算单上的金额不一致 } @@ -246,7 +276,7 @@ //更新钱包 Supplier s = supplierMapper.selectById(withdrawRecordDO.getSupplierId()); - WalletDO walletDO = walletService.getBySupplierId(s.getId()); + WalletDO walletDO = walletService.getOrCreateBySupplierId(s.getId()); RLock lock = redissonClient.getLock(String.format(LockConstants.WALLET_ID_KEY, walletDO.getId())); try { if (lock.tryLock(10, 30, TimeUnit.SECONDS)) { -- Gitblit v1.9.3