mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-20 02:55:04 +08:00
update 计算解冻金额逻辑
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user