```
feat(split): 添加批量查询手动分账覆盖和变更历史功能 - 新增 SplitManualService::orderIdsWithOverride 方法用于批量查询存在手动覆盖的订单 - 新增 SplitManualService::orderIdsWithLog 方法用于批量查询存在变更历史的订单 - 在订单列表页面优化性能,批量查询订单的手动覆盖和变更历史状态 - 添加 can_view_manual_history 权限控制,允许成功/失败后查看变更历史 - 更新前端界面显示逻辑,优化变更历史查看权限判断 - 增强操作提示文案,说明变更历史查看功能 ```
这个提交包含在:
@@ -135,6 +135,18 @@ class Order extends Base
|
||||
protected function formatSplitOrderList($list)
|
||||
{
|
||||
$rows = [];
|
||||
$manualService = new SplitManualService();
|
||||
$orderIds = [];
|
||||
foreach ($list as $item) {
|
||||
$data = is_array($item) ? $item : $item->toArray();
|
||||
$oid = intval($data['order_id'] ?? 0);
|
||||
if ($oid > 0) {
|
||||
$orderIds[] = $oid;
|
||||
}
|
||||
}
|
||||
$overrideOrderIds = array_flip($manualService->orderIdsWithOverride($orderIds));
|
||||
$logOrderIds = array_flip($manualService->orderIdsWithLog($orderIds));
|
||||
|
||||
foreach ($list as $item) {
|
||||
$data = is_array($item) ? $item : $item->toArray();
|
||||
|
||||
@@ -193,8 +205,14 @@ class Order extends Base
|
||||
$orderSplitSource = $data['split_source'] ?? 'auto';
|
||||
$data['split_source'] = $orderSplitSource;
|
||||
$data['split_source_text'] = $orderSplitSource === 'manual' ? '手动指定' : $data['calc_source_text'];
|
||||
$data['has_manual_override'] = (new SplitManualService())->hasOverride($orderId);
|
||||
$hasOverride = isset($overrideOrderIds[$orderId]);
|
||||
$hasManualLog = isset($logOrderIds[$orderId]);
|
||||
$data['has_manual_override'] = $hasOverride;
|
||||
$data['has_manual_log'] = $hasManualLog;
|
||||
$data['can_edit_manual'] = ($status === 4 && $channel === 'huifu');
|
||||
// 变更历史:成功/失败后均可查看,不限于 status=4
|
||||
$data['can_view_manual_history'] = ($channel === 'huifu')
|
||||
&& ($hasOverride || $hasManualLog || $orderSplitSource === 'manual');
|
||||
|
||||
unset($data['order'], $data['receivers']);
|
||||
$rows[] = $data;
|
||||
|
||||
在新工单中引用
屏蔽一个用户