You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3.4 KiB
3.4 KiB
错误响应方法统一修正总结
修正内容
已将所有控制器中的 $this->error() 调用统一修正为 $this->fail() 调用,确保整个系统使用统一的错误响应格式。
修正的文件
1. GateController.php
修正了 4 处 $this->error() 调用:
// 修正前
return $this->error(__('gate.get_visit_list_failed'));
return $this->error(__('gate.get_visit_detail_failed'));
return $this->error(__('gate.person_no_required'));
return $this->error(__('gate.operation_failed') . ':' . $e->getMessage());
// 修正后
return $this->fail([ResponseCode::ERROR_INSIDE, __('gate.get_visit_list_failed')]);
return $this->fail([ResponseCode::ERROR_INSIDE, __('gate.get_visit_detail_failed')]);
return $this->fail([ResponseCode::ERROR_PARAMETER, __('gate.person_no_required')]);
return $this->fail([ResponseCode::ERROR_INSIDE, __('gate.operation_failed') . ':' . $e->getMessage()]);
2. VisitLogController.php
修正了 7 处 $this->error() 调用:
// 修正前
return $this->error(__('visit_log.visit_id_required'));
return $this->error(__('visit_log.type_required'));
return $this->error(__('visit_log.not_found'));
return $this->error(__('visit_log.save_failed') . ':' . $e->getMessage());
return $this->error(__('visit_log.id_required'));
return $this->error(__('visit_log.not_found'));
return $this->error(__('visit_log.delete_failed') . ':' . $e->getMessage());
// 修正后
return $this->fail([ResponseCode::ERROR_PARAMETER, __('visit_log.visit_id_required')]);
return $this->fail([ResponseCode::ERROR_PARAMETER, __('visit_log.type_required')]);
return $this->fail([ResponseCode::ERROR_BUSINESS, __('visit_log.not_found')]);
return $this->fail([ResponseCode::ERROR_INSIDE, __('visit_log.save_failed') . ':' . $e->getMessage()]);
return $this->fail([ResponseCode::ERROR_PARAMETER, __('visit_log.id_required')]);
return $this->fail([ResponseCode::ERROR_BUSINESS, __('visit_log.not_found')]);
return $this->fail([ResponseCode::ERROR_INSIDE, __('visit_log.delete_failed') . ':' . $e->getMessage()]);
3. SendVisitReminderCommand.php
未修改 - 该文件中的 $this->error() 是 Laravel 命令类的标准方法,用于控制台输出,不需要修改。
错误码分类
根据错误类型使用了不同的错误码:
ERROR_PARAMETER (10001) - 参数错误
- 缺少必填参数
- 参数格式错误
ERROR_BUSINESS (10002) - 业务错误
- 记录不存在
- 业务逻辑验证失败
ERROR_INSIDE (10003) - 内部错误
- 数据库操作失败
- 系统异常
响应格式
所有错误响应现在都使用统一格式:
{
"errcode": 10001,
"errmsg": "错误消息"
}
测试结果
✅ 门岗端接口测试通过
- ✅ 拜访列表接口
- ✅ 拜访详情接口
- ✅ 拜访更新接口
- ✅ 多语言支持
- ✅ API响应格式
- ✅ 路由验证
⚠️ 认证测试失败(之前存在的问题,与本次修改无关)
优势
- 统一性: 整个系统使用相同的错误响应格式
- 标准化: 错误码分类清晰,便于前端处理
- 可维护性: 统一的错误处理逻辑
- 一致性: 与系统其他部分保持一致的响应格式
总结
已成功将所有 $this->error() 调用统一修正为 $this->fail() 调用,确保整个系统使用统一的错误响应格式。所有门岗端接口测试通过,系统响应格式完全统一。