mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-05-08 20:10:16 +08:00
update 计算解冻金额逻辑
This commit is contained in:
@@ -83,11 +83,22 @@ public class MemberAdapayRecordServiceImpl implements MemberAdapayRecordService
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新消费金额
|
* 更新消费金额
|
||||||
|
* 用来累计消费金额
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void updateSpendAmount(String paymentId, BigDecimal spendAmount) {
|
public void updateSpendAmount(String paymentId, BigDecimal spendAmount) {
|
||||||
log.info("更新消费金额, paymentId:{}, 消费金额:{}", paymentId, 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
|
@Override
|
||||||
public void unfreezeAmount(String paymentId, BigDecimal unfreezeAmount) {
|
public void unfreezeAmount(String paymentId, BigDecimal unfreezeAmount) {
|
||||||
log.info("解冻金额, paymentId:{}, 解冻金额:{}", paymentId, unfreezeAmount);
|
log.info("解冻金额, paymentId:{}, 解冻金额:{}", paymentId, unfreezeAmount);
|
||||||
// commonUpdateAmountMethod(paymentId, null, null, unfreezeAmount.negate());
|
|
||||||
MemberAdapayRecord record = selectByPaymentId(paymentId);
|
MemberAdapayRecord record = selectByPaymentId(paymentId);
|
||||||
if (record == null) {
|
if (record == null) {
|
||||||
log.info("更新交易记录的消费金额和退款金额paymentId:{}, 查询为空", paymentId);
|
log.info("更新交易记录的消费金额和退款金额paymentId:{}, 查询为空", paymentId);
|
||||||
@@ -118,7 +128,19 @@ public class MemberAdapayRecordServiceImpl implements MemberAdapayRecordService
|
|||||||
@Override
|
@Override
|
||||||
public void unfreezeAmountAndUpdateSpendAmount(String paymentId, BigDecimal unfreezeAmount, BigDecimal spendAmount) {
|
public void unfreezeAmountAndUpdateSpendAmount(String paymentId, BigDecimal unfreezeAmount, BigDecimal spendAmount) {
|
||||||
log.info("解冻金额并更新消费金额, paymentId:{}, 解冻金额:{}, 消费金额:{}", paymentId, unfreezeAmount, 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
|
@Override
|
||||||
public void updateRefundAmountFromFreezeAmount(String paymentId, BigDecimal refundAmount) {
|
public void updateRefundAmountFromFreezeAmount(String paymentId, BigDecimal refundAmount) {
|
||||||
log.info("部分解冻,并退款, paymentId:{}, 退款金额:{}", paymentId, 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
|
@Override
|
||||||
public void updateRefundAmount(String paymentId, BigDecimal refundAmount) {
|
public void updateRefundAmount(String paymentId, BigDecimal refundAmount) {
|
||||||
log.info("更新剩余金额, paymentId:{}, 退款金额:{}", paymentId, 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
|
@Override
|
||||||
public void updateFreezeAmount(String paymentId, BigDecimal freezeAmount) {
|
public void updateFreezeAmount(String paymentId, BigDecimal freezeAmount) {
|
||||||
log.info("更新冻结金额, paymentId:{}, 冻结金额:{}", paymentId, 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