Ready for Review
作为 人才小程序用户, 我想要 当我没有就业记录时,页面显示友好的"未就业"状态而不是错误提示, 以便 我能够清楚了解当前的就业状态,避免产生混淆和焦虑
问题描述:
当前 GET /api/v1/rencai/employment/status 接口在用户没有就业记录时返回 404 状态码和"用户不存在"消息。这导致前端显示错误提示,但实际上:
当前行为 (talent-employment.routes.ts:196-200):
if (!employmentStatus) {
return c.json({
code: 404,
message: '用户不存在'
}, 404);
}
期望行为:
影响范围:
后端API修改:
前端页面优化:
测试覆盖:
向后兼容:
talent-employment.routes.ts 中的 /employment/status 路由
EmploymentStatusResponseSchema 支持空数据
CurrentEmploymentStatus 组件
status 为 null 或 undefined 时显示"未就业"状态EmploymentPage 页面
SalaryRecords 和 EmploymentHistory 组件
allin-packages/order-module/tests/integration/talent-employment.integration.test.ts来源: 史诗015.005就业信息API
当前接口:
GET /api/v1/rencai/employment/status - 当前就业状态GET /api/v1/rencai/employment/salary-records - 薪资记录GET /api/v1/rencai/employment/history - 就业历史问题代码位置:
allin-packages/order-module/src/routes/talent-employment.routes.ts:196-200
// 当前代码 - 返回404
if (!employmentStatus) {
return c.json({
code: 404,
message: '用户不存在'
}, 404);
}
方案1: 返回null值 (推荐)
// 返回200 + null
if (!employmentStatus) {
return c.json(null, 200);
}
status === null 时显示"未就业"方案2: 返回空对象
// 返回200 + 空对象
return c.json({
companyName: null,
positionName: null,
workStatus: 'not_working'
}, 200);
workStatus 字段显示对应状态推荐使用方案1,因为:
CurrentEmploymentStatus 组件:
interface Props {
status: CurrentEmploymentStatusType | null
loading: boolean
}
export function CurrentEmploymentStatus({ status, loading }: Props) {
if (loading) return <LoadingSpinner />
if (!status) return <EmptyState /> // 显示"未就业"状态
return (
// 正常显示就业信息
)
}
EmptyState 组件设计:
briefcase 或 user需要修改的文件:
allin-packages/order-module/src/routes/talent-employment.routes.ts - 后端路由mini-ui-packages/rencai-employment-ui/src/components/CurrentEmploymentStatus.tsx - 前端组件mini-ui-packages/rencai-employment-ui/src/pages/EmploymentPage/EmploymentPage.tsx - 前端页面allin-packages/order-module/tests/integration/talent-employment.integration.test.ts - 后端测试mini-ui-packages/rencai-employment-ui/tests/unit/components/CurrentEmploymentStatus.test.tsx - 前端测试data: []| Date | Version | Description | Author |
|---|---|---|---|
| 2025-12-28 | 1.0 | 初始故事创建 | James (Claude Code) |
此部分由开发代理在实施过程中填写
claude-sonnet
无重大调试问题
/employment/status 路由在无就业记录时返回 200 + null 而非 404EmploymentStatusNullableSchema 支持null响应无
修改的文件:
allin-packages/order-module/src/schemas/talent-employment.schema.ts - 添加 EmploymentStatusNullableSchemaallin-packages/order-module/src/routes/talent-employment.routes.ts - 修改就业状态路由返回200+nullallin-packages/order-module/tests/integration/talent-employment.integration.test.ts - 更新测试用例mini-ui-packages/rencai-employment-ui/src/components/CurrentEmploymentStatus.tsx - 改进空状态UImini-ui-packages/rencai-employment-ui/src/components/SalaryRecords.tsx - 改进空状态UImini-ui-packages/rencai-employment-ui/src/components/EmploymentHistory.tsx - 改进空状态UImini-ui-packages/rencai-employment-ui/src/pages/EmploymentPage/EmploymentPage.tsx - 添加null处理注释此部分由QA代理在审查完成后填写