fix: 添加订单状态检查和友好错误提示
- 检测订单已完成状态,返回友好提示 - 添加infoCard方法显示中性提示 - 优化自审批错误处理
This commit is contained in:
@@ -184,13 +184,27 @@ class FeishuCardController extends BaseController
|
||||
try {
|
||||
$approvalService = new ApprovalService();
|
||||
|
||||
// 检查用户是否有权限审批
|
||||
// 检查订单状态
|
||||
$order = \app\model\ApprovalOrder::find($orderId);
|
||||
if (!$order) {
|
||||
error_log('❌ 审批单不存在: order_id=' . $orderId);
|
||||
return $this->errorCard('审批单不存在');
|
||||
}
|
||||
|
||||
// 检查订单是否已经处理过
|
||||
if ($order->status === \app\model\ApprovalOrder::STATUS_APPROVED) {
|
||||
error_log('⚠️ 订单已通过: order_id=' . $orderId);
|
||||
return $this->infoCard('该申请已通过', '此申请已经被审批通过,无需重复操作。');
|
||||
}
|
||||
if ($order->status === \app\model\ApprovalOrder::STATUS_REJECTED) {
|
||||
error_log('⚠️ 订单已拒绝: order_id=' . $orderId);
|
||||
return $this->infoCard('该申请已拒绝', '此申请已经被拒绝,如需重新申请请提交新的申请。');
|
||||
}
|
||||
if ($order->status === \app\model\ApprovalOrder::STATUS_CANCELLED) {
|
||||
error_log('⚠️ 订单已撤销: order_id=' . $orderId);
|
||||
return $this->infoCard('该申请已撤销', '此申请已经被撤销。');
|
||||
}
|
||||
|
||||
error_log('📝 开始审批通过: order_id=' . $orderId . ', user_id=' . $user->id . ', remark=' . $remark);
|
||||
|
||||
// 执行审批通过
|
||||
|
||||
@@ -553,10 +553,23 @@ class ApprovalService
|
||||
$currentNodeIds = $order->current_nodes ?? [];
|
||||
error_log("🔄 自审批自动通过 - 当前节点: " . json_encode($currentNodeIds));
|
||||
|
||||
// 检查订单是否已经结束
|
||||
if (empty($currentNodeIds)) {
|
||||
error_log("❌ 自审批:订单已完成,current_nodes为空");
|
||||
if ($order->status === ApprovalOrder::STATUS_APPROVED) {
|
||||
throw new \Exception('该申请已通过,无需重复操作');
|
||||
} else if ($order->status === ApprovalOrder::STATUS_REJECTED) {
|
||||
throw new \Exception('该申请已被拒绝');
|
||||
} else if ($order->status === ApprovalOrder::STATUS_CANCELLED) {
|
||||
throw new \Exception('该申请已被撤销');
|
||||
}
|
||||
throw new \Exception('该申请已完成,无法重复操作');
|
||||
}
|
||||
|
||||
$currentNode = ApprovalNode::whereIn('id', $currentNodeIds)->first();
|
||||
|
||||
if (!$currentNode) {
|
||||
error_log("❌ 自审批:当前节点不存在");
|
||||
error_log("❌ 自审批:当前节点不存在,IDs: " . json_encode($currentNodeIds));
|
||||
throw new \Exception('当前节点不存在');
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user