From acb60adf399cd99ea0318bc1fce770f12c92ba15 Mon Sep 17 00:00:00 2001 From: "autumn.g@foxmail.com" Date: Thu, 31 Aug 2023 19:42:40 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E8=AE=A1=E7=AE=97=E8=A7=A3=E5=86=BB?= =?UTF-8?q?=E9=87=91=E9=A2=9D=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/MemberAdapayRecordServiceImpl.java | 69 +++++++++++++++++-- 1 file changed, 62 insertions(+), 7 deletions(-) diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberAdapayRecordServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberAdapayRecordServiceImpl.java index 98d5fe717..4a35c1a5a 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberAdapayRecordServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberAdapayRecordServiceImpl.java @@ -83,11 +83,22 @@ public class MemberAdapayRecordServiceImpl implements MemberAdapayRecordService /** * 更新消费金额 + * 用来累计消费金额 */ @Override public void updateSpendAmount(String paymentId, BigDecimal spendAmount) { log.info("更新消费金额, paymentId:{}, 消费金额:{}", paymentId, spendAmount); - commonUpdateAmountMethod(paymentId, spendAmount, null, null); + MemberAdapayRecord record = selectByPaymentId(paymentId); + if (record == null) { + log.info("更新交易记录的消费金额和退款金额paymentId:{}, 查询为空", paymentId); + return; + } + // 更新消费金额 = 累计消费的金额 - 本次消费的金额 + record.setSpendAmt(record.getSpendAmt().add(spendAmount)); + // 更新此笔交易单的剩余金额 = 支付金额 - 累计退款金额 - 累计消费金额 - 累计冻结金额 + BigDecimal balanceAmt = record.getPayAmt().subtract(record.getRefundAmt()).subtract(record.getSpendAmt()).subtract(record.getFreezeAmt()); + record.setBalanceAmt(balanceAmt); + updateByPrimaryKeySelective(record); } /** @@ -96,7 +107,6 @@ public class MemberAdapayRecordServiceImpl implements MemberAdapayRecordService @Override public void unfreezeAmount(String paymentId, BigDecimal unfreezeAmount) { log.info("解冻金额, paymentId:{}, 解冻金额:{}", paymentId, unfreezeAmount); - // commonUpdateAmountMethod(paymentId, null, null, unfreezeAmount.negate()); MemberAdapayRecord record = selectByPaymentId(paymentId); if (record == null) { log.info("更新交易记录的消费金额和退款金额paymentId:{}, 查询为空", paymentId); @@ -118,7 +128,19 @@ public class MemberAdapayRecordServiceImpl implements MemberAdapayRecordService @Override public void unfreezeAmountAndUpdateSpendAmount(String paymentId, BigDecimal unfreezeAmount, BigDecimal spendAmount) { log.info("解冻金额并更新消费金额, paymentId:{}, 解冻金额:{}, 消费金额:{}", paymentId, unfreezeAmount, spendAmount); - commonUpdateAmountMethod(paymentId, spendAmount, null, unfreezeAmount.negate()); + MemberAdapayRecord record = selectByPaymentId(paymentId); + if (record == null) { + log.info("更新交易记录的消费金额和退款金额paymentId:{}, 查询为空", paymentId); + return; + } + // 更新解冻金额 = 目前冻结的金额 - 需要解冻的金额 + record.setFreezeAmt(record.getFreezeAmt().subtract(unfreezeAmount)); + // 更新消费金额 = 累计消费的金额 - 本次消费的金额 + record.setSpendAmt(record.getSpendAmt().add(spendAmount)); + // 更新此笔交易单的剩余金额 = 支付金额 - 累计退款金额 - 累计消费金额 - 累计冻结金额 + BigDecimal balanceAmt = record.getPayAmt().subtract(record.getRefundAmt()).subtract(record.getSpendAmt()).subtract(record.getFreezeAmt()); + record.setBalanceAmt(balanceAmt); + updateByPrimaryKeySelective(record); } /** @@ -128,16 +150,39 @@ public class MemberAdapayRecordServiceImpl implements MemberAdapayRecordService @Override public void updateRefundAmountFromFreezeAmount(String paymentId, BigDecimal refundAmount) { log.info("部分解冻,并退款, paymentId:{}, 退款金额:{}", paymentId, refundAmount); - commonUpdateAmountMethod(paymentId, null, refundAmount, refundAmount.negate()); + // commonUpdateAmountMethod(paymentId, null, refundAmount, refundAmount.negate()); + MemberAdapayRecord record = selectByPaymentId(paymentId); + if (record == null) { + log.info("更新交易记录的消费金额和退款金额paymentId:{}, 查询为空", paymentId); + return; + } + // 更新冻结金额 = 目前冻结的金额 - 需要解冻的金额 + record.setFreezeAmt(record.getFreezeAmt().subtract(refundAmount)); + // 更新消费金额 = 累计消费的金额 - 本次消费的金额 + record.setRefundAmt(record.getRefundAmt().add(refundAmount)); + // 更新此笔交易单的剩余金额 = 支付金额 - 累计退款金额 - 累计消费金额 - 累计冻结金额 + BigDecimal balanceAmt = record.getPayAmt().subtract(record.getRefundAmt()).subtract(record.getSpendAmt()).subtract(record.getFreezeAmt()); + record.setBalanceAmt(balanceAmt); + updateByPrimaryKeySelective(record); } /** - * 更新剩余金额 + * 更新退款金额 */ @Override public void updateRefundAmount(String paymentId, BigDecimal refundAmount) { log.info("更新剩余金额, paymentId:{}, 退款金额:{}", paymentId, refundAmount); - commonUpdateAmountMethod(paymentId, null, refundAmount, null); + MemberAdapayRecord record = selectByPaymentId(paymentId); + if (record == null) { + log.info("更新交易记录的消费金额和退款金额paymentId:{}, 查询为空", paymentId); + return; + } + // 更新消费金额 = 累计消费的金额 - 本次消费的金额 + record.setRefundAmt(record.getRefundAmt().add(refundAmount)); + // 更新此笔交易单的剩余金额 = 支付金额 - 累计退款金额 - 累计消费金额 - 累计冻结金额 + BigDecimal balanceAmt = record.getPayAmt().subtract(record.getRefundAmt()).subtract(record.getSpendAmt()).subtract(record.getFreezeAmt()); + record.setBalanceAmt(balanceAmt); + updateByPrimaryKeySelective(record); } /** @@ -146,7 +191,17 @@ public class MemberAdapayRecordServiceImpl implements MemberAdapayRecordService @Override public void updateFreezeAmount(String paymentId, BigDecimal freezeAmount) { log.info("更新冻结金额, paymentId:{}, 冻结金额:{}", paymentId, freezeAmount); - commonUpdateAmountMethod(paymentId, null, null, freezeAmount); + MemberAdapayRecord record = selectByPaymentId(paymentId); + if (record == null) { + log.info("更新交易记录的消费金额和退款金额paymentId:{}, 查询为空", paymentId); + return; + } + // 更新冻结金额 = 目前冻结的金额 - 需要解冻的金额 + record.setFreezeAmt(record.getFreezeAmt().subtract(freezeAmount)); + // 更新此笔交易单的剩余金额 = 支付金额 - 累计退款金额 - 累计消费金额 - 累计冻结金额 + BigDecimal balanceAmt = record.getPayAmt().subtract(record.getRefundAmt()).subtract(record.getSpendAmt()).subtract(record.getFreezeAmt()); + record.setBalanceAmt(balanceAmt); + updateByPrimaryKeySelective(record); } /**