fix: 修复3个紧急问题
1. 修复抄送人重新选择后接收不到通知的问题 - BusinessTripService: 添加 $detailUrl 变量定义,确保抄送通知包含详情链接 2. 修复多人审批报错的问题 - ApprovalService: isNodeCompleted() 方法改为从 $node->approvers 获取审批人列表 - 之前从 form_data['approvers'] 获取会因重新选择审批人而导致数据不一致 3. 确保所有角色的通知消息都能点击进入详情 - 飞书卡片通知已包含"查看详情"按钮,问题1的修复确保了抄送人也能正常跳转 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -331,10 +331,8 @@ class ApprovalService
|
|||||||
->where('action', 'approve')
|
->where('action', 'approve')
|
||||||
->get();
|
->get();
|
||||||
|
|
||||||
// 从 form_data 获取审批人列表
|
// 从节点的 approvers 字段获取审批人列表
|
||||||
$order = ApprovalOrder::find($orderId);
|
$approvers = $node->approvers ?? [];
|
||||||
$formData = $order->form_data ?? [];
|
|
||||||
$approvers = $formData['approvers'] ?? [];
|
|
||||||
|
|
||||||
// 兼容两种格式:[{id:1, name:'...'}] 或 [1]
|
// 兼容两种格式:[{id:1, name:'...'}] 或 [1]
|
||||||
if (!empty($approvers) && is_array($approvers[0] ?? null) && isset($approvers[0]['id'])) {
|
if (!empty($approvers) && is_array($approvers[0] ?? null) && isset($approvers[0]['id'])) {
|
||||||
|
|||||||
@@ -297,6 +297,7 @@ class BusinessTripService
|
|||||||
|
|
||||||
// 构建审批链接(统一使用审批详情页)
|
// 构建审批链接(统一使用审批详情页)
|
||||||
$approvalUrl = "https://uniservice-mobile.hnxinyouhe.com/approval/detail/{$approvalOrder->id}";
|
$approvalUrl = "https://uniservice-mobile.hnxinyouhe.com/approval/detail/{$approvalOrder->id}";
|
||||||
|
$detailUrl = $approvalUrl; // 用于抄送人和其他通知
|
||||||
|
|
||||||
// 构建内容
|
// 构建内容
|
||||||
$content = "**出差原因**: {$businessTrip->reason}\n";
|
$content = "**出差原因**: {$businessTrip->reason}\n";
|
||||||
|
|||||||
Reference in New Issue
Block a user