支持挂账部分退款

This commit is contained in:
谭凯凯
2024-12-11 16:49:29 +08:00
committed by Tankaikai
parent 0426ff2e24
commit e4d2d1e34e

View File

@@ -325,22 +325,22 @@ public class TbCreditBuyerOrderServiceImpl extends ServiceImpl<TbCreditBuyerOrde
record.setCreateTime(new Date());
tbCreditPaymentRecordMapper.insert(record);
dto = baseMapper.getOne(params);
if (NumberUtil.isGreater(dto.getPaidAmount(), BigDecimal.ZERO)) {
if (NumberUtil.equals(dto.getPayAmount(), BigDecimal.ZERO) && NumberUtil.isGreater(dto.getPaidAmount(), BigDecimal.ZERO) && NumberUtil.isLess(dto.getUnpaidAmount(), BigDecimal.ZERO)) {
TbCreditPaymentRecord flow = new TbCreditPaymentRecord();
flow.setCreditBuyerId(creditBuyerId);
flow.setOrderId(orderId);
flow.setRepaymentAmount(NumberUtil.sub(BigDecimal.ZERO, dto.getPaidAmount()));
flow.setRepaymentAmount(dto.getUnpaidAmount());
flow.setPaymentMethod("挂账退款");
flow.setPaymentTime(new Date());
flow.setRemark(StrUtil.format("挂账订单:{},申请退款¥{}元,由于此挂账订单已提前还款,溢出部分¥{}元将转储至账户余额。", orderInfo.getOrderNo(), refundAmount, dto.getPaidAmount()));
flow.setRemark(StrUtil.format("挂账订单:{},申请退款¥{}元,由于此挂账订单已提前还款,溢出部分¥{}元将转储至账户余额。", orderInfo.getOrderNo(), refundAmount, dto.getUnpaidAmount().abs()));
flow.setCreateTime(new Date());
tbCreditPaymentRecordMapper.insert(flow);
tbCreditBuyerOrderMapper.update(Wrappers.<TbCreditBuyerOrder>lambdaUpdate()
.eq(TbCreditBuyerOrder::getId, dto.getId())
.set(TbCreditBuyerOrder::getPaidAmount, BigDecimal.ZERO)
.set(TbCreditBuyerOrder::getPaidAmount, NumberUtil.add(dto.getPaidAmount(), dto.getUnpaidAmount()))
);
// 退回余额
creditBuyer.setAccountBalance(NumberUtil.add(creditBuyer.getAccountBalance(), dto.getPaidAmount()));
creditBuyer.setAccountBalance(NumberUtil.add(creditBuyer.getAccountBalance(), dto.getUnpaidAmount().abs()));
tbCreditBuyerService.updateById(creditBuyer);
}
return true;