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); } /**