|
@@ -59,9 +59,8 @@ export class RefundService extends BaseService {
|
|
|
}
|
|
|
const wallet = await this.walletService.queryByMchIdAndCurrency(refund.mchId, refund.currency);
|
|
|
const { balance = 0, freeze = 0 } = wallet;
|
|
|
- const totalAmount = +refund.amount + +refund.charge
|
|
|
const withdrawAmount = +balance - Math.abs(+freeze)
|
|
|
- if (+totalAmount > +withdrawAmount) {
|
|
|
+ if (+refund.amount > +withdrawAmount) {
|
|
|
throw new Error('当前商户余额不足,无法发起退款!当前商户可提现余额:' + withdrawAmount);
|
|
|
}
|
|
|
await this.refundEntity.insert(refund);
|
|
@@ -71,7 +70,7 @@ export class RefundService extends BaseService {
|
|
|
type: 5,
|
|
|
amount: 0,
|
|
|
currency: refund.currency,
|
|
|
- freeze: totalAmount
|
|
|
+ freeze: +refund.amount
|
|
|
});
|
|
|
try {
|
|
|
this.logger.error('发起退款', refund.orderNo, refund.refundNo);
|
|
@@ -119,7 +118,6 @@ export class RefundService extends BaseService {
|
|
|
refund.remark = message;
|
|
|
refund.status = 2;
|
|
|
refund.updateTime = new Date();
|
|
|
- const totalAmount = +refund.amount + +refund.charge
|
|
|
await this.refundEntity.update(refund.id, refund);
|
|
|
await this.walletService.updateBalance({
|
|
|
orderNo: refund.orderNo,
|
|
@@ -127,7 +125,7 @@ export class RefundService extends BaseService {
|
|
|
type: 5,
|
|
|
amount: 0,
|
|
|
currency: refund.currency,
|
|
|
- freeze: -totalAmount
|
|
|
+ freeze: -refund.amount
|
|
|
});
|
|
|
return true;
|
|
|
}
|
|
@@ -142,15 +140,14 @@ export class RefundService extends BaseService {
|
|
|
refund.updateTime = new Date();
|
|
|
refund.date = data.date || new Date();
|
|
|
refund.refundTraceNo = data.refundTraceNo;
|
|
|
- const totalAmount = +refund.amount + +refund.charge
|
|
|
await this.refundEntity.update(refund.id, refund);
|
|
|
await this.walletService.updateBalance({
|
|
|
orderNo: refund.orderNo,
|
|
|
mchId: refund.mchId,
|
|
|
type: 5,
|
|
|
- amount: -totalAmount,
|
|
|
+ amount: -refund.amount,
|
|
|
currency: refund.currency,
|
|
|
- freeze: -totalAmount
|
|
|
+ freeze: -refund.amount
|
|
|
});
|
|
|
return true;
|
|
|
}
|