mirror of
https://gitee.com/zoujingli/ThinkAdmin.git
synced 2026-06-07 20:48:09 +08:00
fix: 修复支付的统计精度问题
This commit is contained in:
parent
c5d84df71c
commit
9d231881d7
@ -442,7 +442,7 @@ abstract class Payment
|
|||||||
*/
|
*/
|
||||||
public static function leaveAmount(string $orderNo, $orderAmount): float
|
public static function leaveAmount(string $orderNo, $orderAmount): float
|
||||||
{
|
{
|
||||||
$diff = round(floatval($orderAmount) - self::paidAmount($orderNo, true), 2);
|
$diff = round(round(floatval($orderAmount), 2) - self::paidAmount($orderNo, true), 2);
|
||||||
return $diff > 0 ? $diff : 0.00;
|
return $diff > 0 ? $diff : 0.00;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -463,9 +463,9 @@ abstract class Payment
|
|||||||
'sum(used_integral-refund_integral)' => 'integral',
|
'sum(used_integral-refund_integral)' => 'integral',
|
||||||
])->group('channel_type')->select()->map(static function (PluginPaymentRecord $item) use (&$total) {
|
])->group('channel_type')->select()->map(static function (PluginPaymentRecord $item) use (&$total) {
|
||||||
$type = $item->getAttr('channel_type');
|
$type = $item->getAttr('channel_type');
|
||||||
$total['amount'] += $item->getAttr('amount');
|
$total['amount'] = round($total['amount'] + $item->getAttr('amount'), 2);
|
||||||
if (!in_array($type, [self::INTEGRAL, self::BALANCE])) $type = 'payment';
|
if (!in_array($type, [self::INTEGRAL, self::BALANCE])) $type = 'payment';
|
||||||
$total[$type] += $item[$type] ?? 0;
|
$total[$type] = round($total[$type] + $item[$type] ?? 0, 2);
|
||||||
});
|
});
|
||||||
} catch (\Exception $exception) {
|
} catch (\Exception $exception) {
|
||||||
trace_file($exception);
|
trace_file($exception);
|
||||||
@ -486,9 +486,9 @@ abstract class Payment
|
|||||||
'refund_account', 'sum(refund_amount) amount', 'sum(used_payment)' => 'payment', 'sum(used_balance)' => 'balance', 'sum(used_integral)' => 'integral',
|
'refund_account', 'sum(refund_amount) amount', 'sum(used_payment)' => 'payment', 'sum(used_balance)' => 'balance', 'sum(used_integral)' => 'integral',
|
||||||
])->group('refund_account')->select()->map(static function (PluginPaymentRefund $item) use (&$total) {
|
])->group('refund_account')->select()->map(static function (PluginPaymentRefund $item) use (&$total) {
|
||||||
$type = $item->getAttr('refund_account');
|
$type = $item->getAttr('refund_account');
|
||||||
$total['amount'] += $item->getAttr('amount');
|
$total['amount'] = round($total['amount'] + $item->getAttr('amount'), 2);
|
||||||
if (!in_array($type, [self::INTEGRAL, self::BALANCE])) $type = 'payment';
|
if (!in_array($type, [self::INTEGRAL, self::BALANCE])) $type = 'payment';
|
||||||
$total[$type] += $item[$type] ?? 0;
|
$total[$type] = round($total[$type] + $item[$type] ?? 0, 2);
|
||||||
});
|
});
|
||||||
} catch (\Exception $exception) {
|
} catch (\Exception $exception) {
|
||||||
trace_file($exception);
|
trace_file($exception);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user