feat(split): 新增分账接收方明细功能 新增 SplitOrderHelper 类用于同步分账接收方明细数据,包括接收方角色、 姓名、账户和金额等信息。优化管理后台分账订单列表页面,显示详细的 接收方信息和失败原因,提升分账流程的可视化和可追溯性。 ```
40 行
1.2 KiB
PHP
40 行
1.2 KiB
PHP
<?php
|
|
|
|
namespace addons\shopro\library\split;
|
|
|
|
use addons\shopro\model\split\SplitOrderReceiver;
|
|
|
|
/**
|
|
* 分账订单明细写入(成功/失败均需落库,便于后台展示)
|
|
*/
|
|
class SplitOrderHelper
|
|
{
|
|
public static function syncReceivers($splitOrderId, array $items, $replace = false)
|
|
{
|
|
if (!$splitOrderId || empty($items)) {
|
|
return;
|
|
}
|
|
if ($replace) {
|
|
SplitOrderReceiver::where('split_order_id', $splitOrderId)->delete();
|
|
}
|
|
$exists = SplitOrderReceiver::where('split_order_id', $splitOrderId)->count();
|
|
if ($exists > 0 && !$replace) {
|
|
return;
|
|
}
|
|
foreach ($items as $item) {
|
|
$amount = floatval($item['amount'] ?? 0);
|
|
if ($amount <= 0) {
|
|
continue;
|
|
}
|
|
SplitOrderReceiver::create([
|
|
'split_order_id' => $splitOrderId,
|
|
'receiver_id' => intval($item['receiver_id'] ?? 0),
|
|
'role_type' => $item['role_type'] ?? '',
|
|
'amount' => round($amount, 2),
|
|
'description' => $item['description'] ?? '',
|
|
'status' => 0,
|
|
]);
|
|
}
|
|
}
|
|
}
|