{ "openapi": "3.1.0", "info": { "title": "职来 API", "version": "v1" }, "servers": [ { "url": "http://localhost", "description": "Generated server url" } ], "tags": [ { "name": "岗位收藏", "description": "学生收藏/取消收藏岗位,查看收藏列表" }, { "name": "API", "description": "API 信息入口" }, { "name": "评分运营看板", "description": "企业评分运营看板、评分排名与评分趋势" }, { "name": "认证", "description": "登录、验证码、用户信息" }, { "name": "通知", "description": "站内通知查询、已读管理" }, { "name": "双向匹配沟通", "description": "匹配成功后创建或获取直聊会话(幂等)" }, { "name": "企业认证", "description": "企业认证提交、审核管理" }, { "name": "求职者评分体系", "description": "8 维候选人生成评分、综合分、趋势与企业只读评分卡" }, { "name": "投递", "description": "学生投递、撤回、查询;企业查看和审核投递;时间线" }, { "name": "Offer", "description": "企业录用邀请:创建、发送、接受/拒绝/洽谈、到期失效、提醒与时间线" }, { "name": "岗位", "description": "岗位创建、管理、查询" }, { "name": "评价审核", "description": "评价审核与防刷:待审列表、审核决策、审核历史(仅 ADMIN)" }, { "name": "简历版本", "description": "学生简历版本管理、默认简历、导出任务" }, { "name": "双向匹配阈值", "description": "企业与求职者的匹配阈值配置" }, { "name": "消息", "description": "会话创建、消息发送、已读管理" }, { "name": "评分治理", "description": "求职者评分申诉、审核、回滚与审计" }, { "name": "候选人反馈", "description": "企业对已投递候选人的评价反馈" }, { "name": "求职者评分卡", "description": "求职者评价聚合与评分卡" }, { "name": "双向匹配", "description": "求职者意愿分、企业 HR 适配分、匹配状态" }, { "name": "系统", "description": "健康检查、应用信息" }, { "name": "个人资料", "description": "学生个人资料查询、更新与简历管理" }, { "name": "岗位匹配", "description": "学生查看岗位匹配诊断(确定性规则)" }, { "name": "面试", "description": "面试创建、查看、响应、取消、完成" }, { "name": "结构化面试评分", "description": "企业为已完成面试填写/提交结构化评分,学生查看已提交评分与历史" }, { "name": "求职偏好", "description": "学生求职偏好查询与保存" }, { "name": "岗位评价", "description": "学生对已发布岗位进行评价" }, { "name": "企业", "description": "企业资料创建、查询与更新" }, { "name": "health-controller", "description": "health-controller 接口" }, { "name": "student-review-weight-controller", "description": "student-review-weight-controller 接口" }, { "name": "同岗位竞争力排名", "description": "同岗位竞争力排名 接口" }, { "name": "RIASEC 职业兴趣测评", "description": "RIASEC 职业兴趣测评接口" }, { "name": "求职进度", "description": "求职进度 接口" }, { "name": "account-deletion-controller", "description": "account-deletion-controller 接口" }, { "name": "personal-data-export-controller", "description": "personal-data-export-controller 接口" }, { "name": "privacy-settings-controller", "description": "privacy-settings-controller 接口" }, { "name": "举报与屏蔽", "description": "举报与屏蔽 接口" }, { "name": "举报管理", "description": "举报管理 接口" }, { "name": "四维能力测评", "description": "四维能力测评接口" }, { "name": "风险治理", "description": "评分风险治理管理接口" }, { "name": "岗位推荐", "description": "学生岗位推荐及企业推荐画像接口" }, { "name": "企业评价管理", "description": "企业评价查看及官方回复接口" }, { "name": "官方回复审核", "description": "管理员官方回复审核接口" }, { "name": "企业人才发现", "description": "企业人才发现接口" }, { "name": "企业人才邀约", "description": "企业人才邀约接口" } ], "paths": { "/": { "get": { "tags": [ "API" ], "summary": "API 信息", "description": "返回 API v0.1 基本信息", "operationId": "index", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/admin/candidate-scoring/appeals": { "get": { "tags": [ "评分治理" ], "summary": "全部申诉列表", "description": "仅 ADMIN", "operationId": "listAllAppeals", "parameters": [ { "name": "status", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 0 } }, { "name": "size", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 20 } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/admin/candidate-scoring/appeals/{appealId}/decision": { "post": { "tags": [ "评分治理" ], "summary": "审核决定", "description": "仅 ADMIN;APPROVE/REJECT,REJECT 必须填 reason", "operationId": "decideAppeal", "parameters": [ { "name": "appealId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AppealDecisionRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseAppealResponse" } } } } } } }, "/admin/candidate-scoring/appeals/{appealId}/history": { "get": { "tags": [ "评分治理" ], "summary": "申诉历史", "description": "本人(脱敏,无 actorUserId)或 ADMIN(全量);此路径的本人放行先于 ADMIN 通用规则", "operationId": "getAppealHistory", "parameters": [ { "name": "appealId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseListAppealHistoryItem" } } } } } } }, "/admin/candidate-scoring/appeals/{appealId}/rollback": { "post": { "tags": [ "评分治理" ], "summary": "执行回滚", "description": "仅 ADMIN;记录前态+确定性重算+新版本;年 3 次上限", "operationId": "rollbackAppeal", "parameters": [ { "name": "appealId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseAppealResponse" } } } } } } }, "/admin/candidate-scoring/snapshots/{candidateUserId}/{dimension}/{period}/history": { "get": { "tags": [ "评分治理" ], "summary": "快照变更审计", "description": "仅 ADMIN;按学生+维度+周期查看回滚前后完整变化", "operationId": "getSnapshotHistory", "parameters": [ { "name": "candidateUserId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } }, { "name": "dimension", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "period", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseListSnapshotHistoryItem" } } } } } } }, "/admin/companies/verifications": { "get": { "tags": [ "企业认证" ], "summary": "待审核认证列表", "description": "管理员查看认证申请列表,支持 status/from/to 筛选和分页", "operationId": "listVerifications", "parameters": [ { "name": "status", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "from", "in": "query", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "to", "in": "query", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 0 } }, { "name": "size", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 20 } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/admin/companies/verifications/history": { "get": { "tags": [ "企业认证" ], "summary": "认证审核历史", "description": "管理员查看某个认证申请的审核历史", "operationId": "listHistory", "parameters": [ { "name": "verificationId", "in": "query", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseListMapStringObject" } } } } } } }, "/admin/companies/verifications/{id}": { "get": { "tags": [ "企业认证" ], "summary": "认证详情", "description": "管理员查看认证申请详情", "operationId": "getDetail", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/admin/companies/verifications/{id}/decision": { "post": { "tags": [ "企业认证" ], "summary": "审核决定", "description": "管理员通过或拒绝认证申请,拒绝时必须填写原因", "operationId": "decide_1", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VerificationDecisionRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/admin/reviews/history": { "get": { "tags": [ "评价审核" ], "summary": "审核历史", "description": "仅 ADMIN;分页返回审核结果、审核人、时间与原因", "operationId": "history", "parameters": [ { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 0 } }, { "name": "size", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 20 } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/admin/reviews/pending": { "get": { "tags": [ "评价审核" ], "summary": "待审评价列表", "description": "仅 ADMIN;分页 + jobId/riskLevel/createdFrom/createdTo 筛选;不返回明文 IP/UA", "operationId": "pending", "parameters": [ { "name": "jobId", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64" } }, { "name": "riskLevel", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "createdFrom", "in": "query", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "createdTo", "in": "query", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 0 } }, { "name": "size", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 20 } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/admin/reviews/{reviewId}/decision": { "post": { "tags": [ "评价审核" ], "summary": "评价审核决策", "description": "仅 ADMIN;仅 PENDING 可审,重复提交 409;决策写入历史与 audit_logs", "operationId": "decide", "parameters": [ { "name": "reviewId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReviewDecisionRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/admin/scoring/dashboard/overview": { "get": { "tags": [ "评分运营看板" ], "summary": "全局运营概览", "description": "仅 ADMIN", "operationId": "getAdminOverview", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseAdminDashboardOverviewResponse" } } } } } } }, "/applications": { "post": { "tags": [ "投递" ], "summary": "投递岗位", "description": "只能投递 PUBLISHED 状态的岗位,不可重复投递", "operationId": "apply", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApplicationCreateRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/applications/me": { "get": { "tags": [ "投递" ], "summary": "我的投递列表", "description": "查看当前学生自己的投递记录,支持 status 筛选和分页", "operationId": "listMyApplications", "parameters": [ { "name": "status", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 0 } }, { "name": "size", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 20 } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/applications/{applicationId}/feedback": { "get": { "tags": [ "候选人反馈" ], "summary": "查询候选人反馈", "description": "该投递的企业或学生可查看", "operationId": "get_4", "parameters": [ { "name": "applicationId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseCandidateFeedbackResponse" } } } } } }, "put": { "tags": [ "候选人反馈" ], "summary": "修改候选人反馈", "description": "仅岗位所属企业", "operationId": "update_4", "parameters": [ { "name": "applicationId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CandidateFeedbackRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseCandidateFeedbackResponse" } } } } } }, "post": { "tags": [ "候选人反馈" ], "summary": "创建候选人反馈", "description": "仅岗位所属企业;同一投递只能反馈一次", "operationId": "create", "parameters": [ { "name": "applicationId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CandidateFeedbackRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseCandidateFeedbackResponse" } } } } } }, "delete": { "tags": [ "候选人反馈" ], "summary": "删除候选人反馈", "description": "仅岗位所属企业", "operationId": "delete_2", "parameters": [ { "name": "applicationId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/applications/{applicationId}/interviews": { "get": { "tags": [ "面试" ], "summary": "查询投递的面试列表", "description": "学生本人或岗位所属企业可查看", "operationId": "listByApplication", "parameters": [ { "name": "applicationId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseListMapStringObject" } } } } } }, "post": { "tags": [ "面试" ], "summary": "创建面试邀请", "description": "企业为投递记录创建面试邀请", "operationId": "create_4", "parameters": [ { "name": "applicationId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InterviewCreateRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/applications/{id}": { "get": { "tags": [ "投递" ], "summary": "投递详情", "description": "查看自己的投递记录详情", "operationId": "getApplication", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/applications/{id}/candidate-interest-score": { "put": { "tags": [ "双向匹配" ], "summary": "提交求职者岗位意愿分", "description": "仅投递本人(STUDENT);0-100;MATCHED/CLOSED 后不可修改", "operationId": "submitCandidateInterestScore", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ScoreRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/applications/{id}/conversation": { "post": { "tags": [ "双向匹配沟通" ], "summary": "创建/获取匹配会话", "description": "仅 MATCHED 双方可调用;重复调用返回同一会话", "operationId": "createOrGetConversation", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/applications/{id}/hr-suitability-score": { "put": { "tags": [ "双向匹配" ], "summary": "提交企业 HR 适配分", "description": "仅岗位所属企业;0-100;MATCHED/CLOSED 后不可修改", "operationId": "submitHrSuitabilityScore", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ScoreRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/applications/{id}/match": { "get": { "tags": [ "双向匹配" ], "summary": "查询投递匹配状态", "description": "仅投递求职者或岗位所属企业;不暴露内部路径/事件 ID", "operationId": "getMatch", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/applications/{id}/status": { "patch": { "tags": [ "投递" ], "summary": "更新投递状态(企业)", "description": "SUBMITTED→VIEWED→INTERVIEW→REJECTED/HIRED", "operationId": "updateStatus_1", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApplicationStatusRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/applications/{id}/timeline": { "get": { "tags": [ "投递" ], "summary": "投递状态时间线", "description": "学生本人或岗位所属企业可查看状态变更历史", "operationId": "timeline_2", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseListMapStringObject" } } } } } } }, "/applications/{id}/withdraw": { "post": { "tags": [ "投递" ], "summary": "撤回投递", "description": "仅 SUBMITTED/VIEWED 状态可撤回,撤回后不可逆", "operationId": "withdraw", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/auth/login": { "post": { "tags": [ "认证" ], "summary": "Mock 登录", "description": "使用手机号+验证码登录,返回 JWT token", "operationId": "mockLogin", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LoginRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/auth/me": { "get": { "tags": [ "认证" ], "summary": "当前用户信息", "description": "需要 JWT 认证", "operationId": "me", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/auth/sms/send": { "post": { "tags": [ "认证" ], "summary": "发送短信验证码", "description": "开发/测试使用 Mock 发送实现;生产环境未接入短信网关时返回服务不可用。验证码不会写入日志。", "operationId": "sendSmsCode", "parameters": [ { "name": "phone", "in": "query", "required": true, "schema": { "type": "string", "minLength": 1, "pattern": "[0-9]{11}" } }, { "name": "purpose", "in": "query", "required": false, "schema": { "type": "string", "default": "login" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringString" } } } } } } }, "/companies/me": { "get": { "tags": [ "企业" ], "summary": "查询当前企业资料", "description": "返回当前登录用户绑定的企业资料,未绑定企业返回 404", "operationId": "getMyCompany", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } }, "put": { "tags": [ "企业" ], "summary": "更新企业资料", "description": "仅更新传入的非 null 字段;未绑定企业时返回 404", "operationId": "updateMyCompany", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CompanyUpdateRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } }, "post": { "tags": [ "企业" ], "summary": "创建企业资料", "description": "仅 COMPANY 角色可调用;已存在时返回 409", "operationId": "createMyCompany", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CompanyCreateRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/companies/me/match-rule": { "get": { "tags": [ "双向匹配阈值" ], "summary": "查询企业匹配阈值", "description": "未配置返回默认 60", "operationId": "getCompanyRule", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } }, "put": { "tags": [ "双向匹配阈值" ], "summary": "更新企业匹配阈值", "description": "requiredCandidateScore 0-100;首次更新创建配置", "operationId": "updateCompanyRule", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CompanyMatchRuleRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/companies/me/verification": { "get": { "tags": [ "企业认证" ], "summary": "查询企业认证状态", "description": "企业查询自己的认证状态和历史", "operationId": "getMyVerification", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } }, "post": { "tags": [ "企业认证" ], "summary": "提交企业认证", "description": "企业提交认证材料(营业执照等),只能提交自己的认证", "operationId": "submit", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VerificationSubmitRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/companies/{companyId}": { "get": { "tags": [ "企业" ], "summary": "查询企业公开详情", "description": "匿名可访问,仅返回 6 个公开字段", "operationId": "getPublicCompany", "parameters": [ { "name": "companyId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseCompanyPublicView" } } } } } } }, "/companies/{companyId}/jobs": { "get": { "tags": [ "企业" ], "summary": "查询企业公开岗位列表", "description": "匿名可访问,仅返回 PUBLISHED 岗位", "operationId": "getCompanyJobs", "parameters": [ { "name": "companyId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } }, { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 0 } }, { "name": "size", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 20 } }, { "name": "sort", "in": "query", "required": false, "schema": { "type": "string", "default": "latest" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/company/applications": { "get": { "tags": [ "投递" ], "summary": "查看岗位投递列表(企业)", "description": "企业查看自己发布的某个岗位收到的投递,支持 status 筛选和分页", "operationId": "listCompanyApplications", "parameters": [ { "name": "jobId", "in": "query", "required": true, "schema": { "type": "integer", "format": "int64" } }, { "name": "status", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 0 } }, { "name": "size", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 20 } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/company/candidates": { "get": { "tags": [ "投递" ], "summary": "企业候选人列表", "description": "跨岗位查询本企业所有候选人投递,支持按岗位、状态、关键词筛选,支持分页和排序", "operationId": "listCompanyCandidates", "parameters": [ { "name": "jobId", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64" } }, { "name": "status", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "keyword", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "sort", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "order", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 0 } }, { "name": "size", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 20 } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseCandidateListResponse" } } } } } } }, "/company/candidates/{applicationId}": { "get": { "tags": [ "投递" ], "summary": "企业候选人详情", "description": "查看投递详情及候选人公开资料,只能查看本企业岗位下的投递", "operationId": "getCompanyCandidateDetail", "parameters": [ { "name": "applicationId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseCandidateDetailView" } } } } } } }, "/company/candidates/{applicationId}/scoring": { "get": { "tags": [ "求职者评分体系" ], "summary": "企业候选人评分卡", "description": "仅岗位所属企业;只读,仅返回 applicationId/overallScore/status/dimensions/generatedAt/rulesVersion,不泄露候选人敏感信息", "operationId": "getCompanyScoring", "parameters": [ { "name": "applicationId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseCompanyCandidateScoringResponse" } } } } } } }, "/company/scoring/dashboard/candidate-rankings": { "get": { "tags": [ "评分运营看板" ], "summary": "候选人评分排名", "description": "仅 COMPANY;按学生去重;overallScore DESC, applicationId DESC", "operationId": "getCandidateRankings", "parameters": [ { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 0 } }, { "name": "size", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 20 } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseCandidateRankingListResponse" } } } } } } }, "/company/scoring/dashboard/candidate-rankings/{applicationId}": { "get": { "tags": [ "评分运营看板" ], "summary": "单候选人评分排名明细", "description": "仅 COMPANY;跨企业 403/8004", "operationId": "getCandidateRanking", "parameters": [ { "name": "applicationId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseCandidateRankingDetailResponse" } } } } } } }, "/company/scoring/dashboard/job-rankings": { "get": { "tags": [ "评分运营看板" ], "summary": "岗位评分排名", "description": "仅 COMPANY;avgRating DESC, jobId DESC;审核通过评价", "operationId": "getJobRankings", "parameters": [ { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 0 } }, { "name": "size", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 20 } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseJobRankingListResponse" } } } } } } }, "/company/scoring/dashboard/job-rankings/{jobId}": { "get": { "tags": [ "评分运营看板" ], "summary": "单岗位评分排名", "description": "仅 COMPANY;跨企业 403/8004", "operationId": "getJobRanking", "parameters": [ { "name": "jobId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseJobRankingItem" } } } } } } }, "/company/scoring/dashboard/overview": { "get": { "tags": [ "评分运营看板" ], "summary": "企业评分运营概览", "description": "仅 COMPANY;只返回本企业数据", "operationId": "getOverview_1", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseDashboardOverviewResponse" } } } } } } }, "/company/scoring/dashboard/trend": { "get": { "tags": [ "评分运营看板" ], "summary": "企业评分趋势", "description": "仅 COMPANY;months 1–24", "operationId": "getTrend_2", "parameters": [ { "name": "months", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 6 } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseScoreTrendResponse" } } } } } } }, "/conversations": { "get": { "tags": [ "消息" ], "summary": "会话列表", "description": "当前用户参与的所有会话", "operationId": "listConversations", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseListMapStringObject" } } } } } }, "post": { "tags": [ "消息" ], "summary": "创建/获取会话", "description": "创建或返回与另一用户的 DIRECT 会话", "operationId": "createConversation", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateConversationRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/conversations/messages": { "post": { "tags": [ "消息" ], "summary": "发送消息", "description": "在会话中发送消息,仅成员可发送", "operationId": "sendMessage", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SendMessageRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/conversations/{id}": { "get": { "tags": [ "消息" ], "summary": "会话详情", "description": "查看会话信息和未读数", "operationId": "getConversation", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/conversations/{id}/messages": { "get": { "tags": [ "消息" ], "summary": "消息列表", "description": "分页查询会话消息,倒序;仅成员可查看", "operationId": "listMessages", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } }, { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 0 } }, { "name": "size", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 20 } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMessagePageResponse" } } } } } } }, "/conversations/{id}/read": { "post": { "tags": [ "消息" ], "summary": "标记已读", "description": "将当前会话所有消息标记为已读", "operationId": "markRead_1", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/conversations/{conversationId}/messages/{messageId}/recall": { "post": { "tags": [ "消息" ], "summary": "撤回消息", "description": "仅原发送者可在发送后两分钟内撤回消息;重复撤回幂等返回当前状态", "operationId": "recallMessage", "parameters": [ { "name": "conversationId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } }, { "name": "messageId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMessageResponse" } } } }, "401": { "description": "未登录" }, "403": { "description": "非会话成员或非原发送者" }, "404": { "description": "会话或消息不存在" }, "409": { "description": "撤回窗口已过期或并发冲突" } } } }, "/health": { "get": { "tags": [ "系统" ], "summary": "应用健康检查", "description": "返回应用及依赖服务状态", "operationId": "health", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/health/details": { "get": { "tags": [ "health-controller" ], "operationId": "healthDetails", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/info": { "get": { "tags": [ "系统" ], "summary": "应用信息", "description": "返回应用版本、运行时信息", "operationId": "info", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/interviews/me": { "get": { "tags": [ "面试" ], "summary": "我的面试列表", "description": "查看当前用户相关的面试,支持 status/from/to 筛选和分页", "operationId": "listMyInterviews", "parameters": [ { "name": "status", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "from", "in": "query", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "to", "in": "query", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 0 } }, { "name": "size", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 20 } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/interviews/{interviewId}": { "get": { "tags": [ "面试" ], "summary": "面试详情", "description": "学生本人或企业可查看面试详情", "operationId": "get_3", "parameters": [ { "name": "interviewId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } }, "put": { "tags": [ "面试" ], "summary": "修改面试", "description": "企业修改面试时间、地点等信息,仅 SCHEDULED/CONFIRMED 状态可修改", "operationId": "update_3", "parameters": [ { "name": "interviewId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InterviewUpdateRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/interviews/{interviewId}/cancel": { "post": { "tags": [ "面试" ], "summary": "取消面试", "description": "企业取消已安排的面试", "operationId": "cancel", "parameters": [ { "name": "interviewId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InterviewCancelRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/interviews/{interviewId}/complete": { "post": { "tags": [ "面试" ], "summary": "完成面试", "description": "企业在面试时间结束后将面试标记为完成", "operationId": "complete", "parameters": [ { "name": "interviewId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/interviews/{interviewId}/respond": { "post": { "tags": [ "面试" ], "summary": "响应面试邀请", "description": "学生接受、拒绝或申请改期", "operationId": "respond", "parameters": [ { "name": "interviewId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InterviewRespondRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/interviews/{interviewId}/timeline": { "get": { "tags": [ "面试" ], "summary": "面试状态时间线", "description": "查看面试状态变更历史", "operationId": "timeline_1", "parameters": [ { "name": "interviewId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseListMapStringObject" } } } } } } }, "/jobs": { "get": { "tags": [ "岗位" ], "summary": "查询已发布岗位列表", "description": "仅返回 PUBLISHED 岗位,支持关键词、城市、用工类型、薪资筛选和分页", "operationId": "listJobs", "parameters": [ { "name": "keyword", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "city", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "employmentType", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "salaryMin", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "salaryMax", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 0 } }, { "name": "size", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 20 } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } }, "post": { "tags": [ "岗位" ], "summary": "创建岗位", "description": "仅企业账号可调用,新岗位默认 DRAFT 状态", "operationId": "createJob", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobCreateRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/jobs/compare": { "get": { "tags": [ "岗位评价" ], "summary": "岗位对比", "description": "公开访问;ids 为 2-3 个公开岗位;返回公开岗位字段与公开评分", "operationId": "compare_1", "parameters": [ { "name": "ids", "in": "query", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseListMapStringObject" } } } } } } }, "/jobs/favorites": { "get": { "tags": [ "岗位收藏" ], "summary": "我的收藏列表", "description": "仅 STUDENT;分页,按收藏时间倒序", "operationId": "listFavorites", "parameters": [ { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 0 } }, { "name": "size", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 20 } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/jobs/filters": { "get": { "tags": [ "岗位" ], "summary": "岗位筛选选项", "description": "返回当前 PUBLISHED 岗位可用的城市、用工类型和薪资范围", "operationId": "getFilters", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/jobs/public/{jobId}": { "get": { "tags": [ "岗位" ], "summary": "查询岗位详情(公开)", "description": "仅返回 PUBLISHED 岗位详情;CLOSED 也可查看详情", "operationId": "getPublicJob", "parameters": [ { "name": "jobId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/jobs/search": { "get": { "tags": [ "岗位" ], "summary": "岗位高级搜索", "description": "仅返回 PUBLISHED 岗位,支持关键词、城市、用工类型、薪资、公司筛选、排序和分页", "operationId": "searchJobs", "parameters": [ { "name": "keyword", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "city", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "employmentType", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "salaryMin", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "salaryMax", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "companyId", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64" } }, { "name": "sort", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 0 } }, { "name": "size", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 20 } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/jobs/{jobId}": { "get": { "tags": [ "岗位" ], "summary": "查询岗位详情", "description": "企业可查看自己管理的岗位详情", "operationId": "getJob", "parameters": [ { "name": "jobId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } }, "put": { "tags": [ "岗位" ], "summary": "更新岗位", "description": "仅岗位所属企业可修改", "operationId": "updateJob", "parameters": [ { "name": "jobId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobUpdateRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/jobs/{jobId}/favorite": { "post": { "tags": [ "岗位收藏" ], "summary": "收藏岗位", "description": "仅 STUDENT;仅 PUBLISHED;幂等", "operationId": "favorite", "parameters": [ { "name": "jobId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } }, "delete": { "tags": [ "岗位收藏" ], "summary": "取消收藏", "description": "仅 STUDENT;幂等,未收藏也返回 200", "operationId": "unfavorite", "parameters": [ { "name": "jobId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/jobs/{jobId}/match": { "get": { "tags": [ "岗位匹配" ], "summary": "岗位匹配诊断", "description": "仅 STUDENT;返回匹配分、硬性条件、缺口和说明", "operationId": "diagnose", "parameters": [ { "name": "jobId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/jobs/{jobId}/personalized-review-score": { "get": { "tags": [ "student-review-weight-controller" ], "operationId": "getPersonalizedScore", "parameters": [ { "name": "jobId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponsePersonalizedScoreResponse" } } } }, "401": { "description": "未登录", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "403": { "description": "非 STUDENT 角色", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } } } } }, "/jobs/{jobId}/competition-ranking": { "get": { "tags": [ "同岗位竞争力排名" ], "summary": "同岗位竞争力排名", "description": "仅 STUDENT 且已投递该(PUBLISHED)岗位的学生可查看。返回本人排名/综合分/百分位/维度/缺口及匿名 Top 5。COMPANY/ADMIN 或未投递学生返回 403;岗位不存在或非 PUBLISHED 返回 404。身份仅取自 JWT,不接收 userId/studentUserId/candidateId 参数。topCandidates 每项仅含 rank 与 overallScore,不含任何身份字段(studentUserId/candidateId/name/school/phone/email/resumeUrl/applicationId)。cohort 排除 WITHDRAWN/REJECTED 投递。", "operationId": "getCompetitionRanking", "parameters": [ { "name": "jobId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "400": { "description": "jobId 为空或 <=0", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "401": { "description": "未登录", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "403": { "description": "非 STUDENT 角色或学生未投递该岗位", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "404": { "description": "岗位不存在或岗位状态非 PUBLISHED", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } } }, "security": [ { "bearerAuth": [] } ] } }, "/assessments/types": { "get": { "tags": [ "RIASEC 职业兴趣测评" ], "summary": "测评类型列表", "description": "返回全部 ACTIVE 测评定义。任意已登录用户可访问;未登录 401。", "operationId": "listAssessmentTypes", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "401": { "description": "未登录", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } } }, "security": [ { "bearerAuth": [] } ] } }, "/assessments/{type}/questions": { "get": { "tags": [ "RIASEC 职业兴趣测评" ], "summary": "题目列表", "description": "返回指定测评的 ACTIVE 题目,隐藏维度/reverseScored/source/版本等内部字段。", "operationId": "listAssessmentQuestions", "parameters": [ { "name": "type", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "401": { "description": "未登录", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "404": { "description": "测评类型不存在(9701)", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } } }, "security": [ { "bearerAuth": [] } ] } }, "/assessments/attempts": { "post": { "tags": [ "RIASEC 职业兴趣测评" ], "summary": "创建答卷", "description": "照六维各抽 5 题共 30 道并持久化,刷新不重抽。幂等键重放返回原答卷;同键不同定义 409/9709;已有活跃答卷 409/9708。仅 STUDENT。", "operationId": "createAssessmentAttempt", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "401": { "description": "未登录", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "403": { "description": "非 STUDENT(2002)", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "404": { "description": "测评类型不存在(9701)", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "409": { "description": "活跃答卷/幂等冲突(9708/9709)", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } } }, "security": [ { "bearerAuth": [] } ] } }, "/assessments/attempts/{attemptId}": { "get": { "tags": [ "RIASEC 职业兴趣测评" ], "summary": "答卷详情", "description": "返回本次抽中的 30 道题(固定顺序)、已保存答案、进度与当前状态。仅本人可访问;非 STUDENT 403。", "operationId": "getAssessmentAttempt", "parameters": [ { "name": "attemptId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "401": { "description": "未登录", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "403": { "description": "非本人或非 STUDENT(2002)", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "404": { "description": "答卷不存在(9702)", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } } }, "security": [ { "bearerAuth": [] } ] } }, "/assessments/attempts/{attemptId}/answers": { "patch": { "tags": [ "RIASEC 职业兴趣测评" ], "summary": "保存答案", "description": "单题或批量保存,重复保存 upsert;value 1-5;题目必须属于本答卷;版本冲突 409/9707;首次保存后状态置为 IN_PROGRESS。仅本人。", "operationId": "saveAssessmentAnswers", "parameters": [ { "name": "attemptId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "401": { "description": "未登录", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "403": { "description": "非本人或非 STUDENT(2002)", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "404": { "description": "答卷不存在(9702)", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "409": { "description": "非法状态/并发(9703/9707)", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } } }, "security": [ { "bearerAuth": [] } ] } }, "/assessments/attempts/{attemptId}/submit": { "post": { "tags": [ "RIASEC 职业兴趣测评" ], "summary": "提交答卷", "description": "30 题全答且每维各 5 题后方可提交(否则 400/9706);提交后生成结果并写审计;重复提交返回原结果,不重复生成与审计。仅本人。", "operationId": "submitAssessmentAttempt", "parameters": [ { "name": "attemptId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "400": { "description": "未完成(9706)", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "401": { "description": "未登录", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "403": { "description": "非本人或非 STUDENT(2002)", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "404": { "description": "答卷不存在(9702)", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "409": { "description": "非法状态(9703)", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } } }, "security": [ { "bearerAuth": [] } ] } }, "/assessments/attempts/{attemptId}/result": { "get": { "tags": [ "RIASEC 职业兴趣测评" ], "summary": "查看结果", "description": "答卷 COMPLETED 后返回聚合分、类型排名、探索方向。仅本人可访问。", "operationId": "getAssessmentResult", "parameters": [ { "name": "attemptId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "401": { "description": "未登录", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "403": { "description": "非本人或非 STUDENT(2002)", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "404": { "description": "答卷不存在(9702)", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "409": { "description": "答卷未完成(9703)", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } } }, "security": [ { "bearerAuth": [] } ] } }, "/assessments/me": { "get": { "tags": [ "RIASEC 职业兴趣测评" ], "summary": "我的测评历史", "description": "分页返回当前学生的全部答卷与结果概要。仅 STUDENT 本人可访问。", "operationId": "listMyAssessments", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "401": { "description": "未登录", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "403": { "description": "非 STUDENT(2002)", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } } }, "security": [ { "bearerAuth": [] } ] } }, "/jobs/{jobId}/reviews": { "get": { "tags": [ "岗位评价" ], "summary": "查询岗位评价列表", "description": "公开访问;仅返回 PUBLISHED 评价,分页;每条含八维评分", "operationId": "list_2", "parameters": [ { "name": "jobId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } }, { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 0 } }, { "name": "size", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 20 } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } }, "post": { "tags": [ "岗位评价" ], "summary": "创建岗位评价", "description": "仅 STUDENT;同一学生对同一岗位只能评价一次", "operationId": "create_3", "parameters": [ { "name": "jobId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobReviewCreateRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/jobs/{jobId}/reviews/summary": { "get": { "tags": [ "岗位评价" ], "summary": "评分汇总", "description": "公开访问;统计 PUBLISHED 评价的平均分、分布和热门标签", "operationId": "summary", "parameters": [ { "name": "jobId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/jobs/{jobId}/reviews/{reviewId}": { "get": { "tags": [ "岗位评价" ], "summary": "岗位评价详情", "description": "公开访问;返回单条 PUBLISHED 评价与八维评分", "operationId": "get_2", "parameters": [ { "name": "jobId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } }, { "name": "reviewId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } }, "put": { "tags": [ "岗位评价" ], "summary": "修改评价", "description": "仅评价本人可以修改", "operationId": "update_2", "parameters": [ { "name": "jobId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } }, { "name": "reviewId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobReviewUpdateRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } }, "delete": { "tags": [ "岗位评价" ], "summary": "删除评价", "description": "仅评价本人可以删除", "operationId": "delete_1", "parameters": [ { "name": "jobId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } }, { "name": "reviewId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/jobs/{jobId}/status": { "patch": { "tags": [ "岗位" ], "summary": "发布/关闭岗位", "description": "DRAFT→PUBLISHED,PUBLISHED→CLOSED;禁止非法回退", "operationId": "updateStatus", "parameters": [ { "name": "jobId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobStatusRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/notifications": { "get": { "tags": [ "通知" ], "summary": "通知列表", "description": "当前用户的通知,分页,按时间倒序", "operationId": "list_3", "parameters": [ { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 0 } }, { "name": "size", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 20 } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/notifications/read-all": { "post": { "tags": [ "通知" ], "summary": "全部已读", "description": "标记当前用户全部通知已读(幂等)", "operationId": "markAllRead", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/notifications/unread-count": { "get": { "tags": [ "通知" ], "summary": "未读数", "description": "当前用户未读通知数", "operationId": "unreadCount", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/notifications/{id}/read": { "post": { "tags": [ "通知" ], "summary": "标记已读", "description": "标记单条通知已读(幂等)", "operationId": "markRead", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/offers": { "get": { "tags": [ "Offer" ], "summary": "Offer 列表", "description": "候选人查看收到的、企业查看发出的 Offer;支持 status、applicationId 筛选与分页", "operationId": "list_1", "parameters": [ { "name": "status", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "applicationId", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64" } }, { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 0 } }, { "name": "size", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 20 } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } }, "post": { "tags": [ "Offer" ], "summary": "创建 Offer", "description": "仅企业账号;投递存在、岗位属于本企业、投递状态可发、无有效 Offer;默认 DRAFT", "operationId": "create_2", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OfferCreateRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/offers/compare": { "get": { "tags": [ "Offer" ], "summary": "Offer 比较", "description": "仅候选人本人;比较 2-5 个非 DRAFT 的 Offer", "operationId": "compare", "parameters": [ { "name": "ids", "in": "query", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseListMapStringObject" } } } } } } }, "/offers/statistics": { "get": { "tags": [ "Offer" ], "summary": "Offer 统计", "description": "仅企业;统计本企业 Offer 状态分布、接受率、平均响应时间", "operationId": "statistics", "parameters": [ { "name": "months", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 6 } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/offers/{id}": { "get": { "tags": [ "Offer" ], "summary": "Offer 详情", "description": "仅目标候选人、所属企业可访问;其他账号返回无权限错误", "operationId": "get_1", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } }, "put": { "tags": [ "Offer" ], "summary": "修改 Offer", "description": "仅所属企业、仅 DRAFT 状态可修改;其余状态返回业务错误", "operationId": "update_1", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OfferUpdateRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/offers/{id}/counter-offers": { "get": { "tags": [ "Offer" ], "summary": "还价列表", "description": "候选人查看本人 Offer 的还价、企业查看本企业 Offer 的还价", "operationId": "listCounterOffers", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseListMapStringObject" } } } } } }, "post": { "tags": [ "Offer" ], "summary": "发起还价", "description": "仅候选人本人;仅 SENT/NEGOTIATING 可发起;SENT 时自动进入 NEGOTIATING", "operationId": "createCounterOffer", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CounterOfferCreateRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/offers/{id}/counter-offers/{coId}/accept": { "patch": { "tags": [ "Offer" ], "summary": "接受还价", "description": "仅所属企业;接受后更新 Offer 薪资/入职日期并变为 ACCEPTED", "operationId": "acceptCounterOffer", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } }, { "name": "coId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/offers/{id}/counter-offers/{coId}/reject": { "patch": { "tags": [ "Offer" ], "summary": "拒绝还价", "description": "仅所属企业;拒绝后 Offer 保持 NEGOTIATING", "operationId": "rejectCounterOffer", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } }, { "name": "coId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/offers/{id}/remind": { "post": { "tags": [ "Offer" ], "summary": "手动提醒", "description": "仅所属企业;仅 SENT/NEGOTIATING 可提醒;相同提醒不重复创建", "operationId": "remind", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/offers/{id}/status": { "patch": { "tags": [ "Offer" ], "summary": "Offer 状态变更", "description": "DRAFT→SENT 企业;SENT/NEGOTIATING→ACCEPTED/REJECTED/NEGOTIATING 候选人;重复提交幂等", "operationId": "changeStatus", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OfferStatusRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/offers/{id}/timeline": { "get": { "tags": [ "Offer" ], "summary": "Offer 状态时间线", "description": "完整状态变更历史,含操作者、原因与请求 ID", "operationId": "timeline", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseListMapStringObject" } } } } } } }, "/profile/me": { "get": { "tags": [ "个人资料" ], "summary": "查询当前学生资料", "description": "查询当前登录学生(仅 STUDENT 角色)自己的学生资料。身份仅从 JWT/SecurityContext 获取,不接受 userId、studentUserId 等请求参数;本接口无 Path、Query、Body 参数。若尚未创建个人资料:HTTP 200,data 为空对象 {}(非 null),且不会自动创建数据库记录。当前未设置接口级限流。", "operationId": "getMyProfile", "responses": { "200": { "description": "成功;有资料返回资料对象,无资料返回空对象 {};message=ok", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseStudentProfileResponse" }, "examples": { "success-with-data": { "summary": "有资料", "description": "success-with-data", "value": { "code": 200, "message": "ok", "data": { "id": 1, "userId": 2, "realName": "张三", "education": "本科", "school": "某某大学", "graduationYear": 2026, "resumeUrl": "/uploads/resumes/2/resume.pdf", "skills": "[Java, Spring Boot]", "createdAt": "2026-08-24T10:00:00" }, "timestamp": "2026-08-24T10:00:00Z" } } } } } }, "401": { "description": "未登录、Token 缺失/非法/过期;运行时实际返回 code=401、message=not authenticated", "content": { "application/json": { "examples": { "unauthorized": { "description": "unauthorized", "value": { "code": 401, "message": "not authenticated", "timestamp": "2026-08-24T10:00:00Z" } } } } } }, "403": { "description": "已登录但不是 STUDENT 角色(COMPANY/ADMIN);code=2002、message=forbidden", "content": { "application/json": { "examples": { "forbidden": { "description": "forbidden", "value": { "code": 2002, "message": "forbidden", "data": null, "timestamp": "2026-08-24T10:00:00Z" } } } } } } }, "security": [ { "bearerAuth": [] } ] }, "put": { "tags": [ "个人资料" ], "summary": "更新学生资料", "description": "仅更新传入的非 null 字段;不存在则自动创建", "operationId": "updateMyProfile", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StudentProfileUpdateRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/profile/me/candidate-percentile": { "get": { "tags": [ "求职者评分卡" ], "summary": "查询百分位", "description": "仅 STUDENT;返回自己在候选人中的评分百分位", "operationId": "getPercentile", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseCandidatePercentileResponse" } } } }, "401": { "description": "未登录", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "403": { "description": "非 STUDENT 角色", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } } } } }, "/profile/me/candidate-score-card": { "get": { "tags": [ "求职者评分卡" ], "summary": "查询求职者评分卡", "description": "仅 STUDENT;返回自己的评价聚合卡", "operationId": "getScoreCard", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseCandidateScoreCardResponse" } } } }, "401": { "description": "未登录", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "403": { "description": "非 STUDENT 角色", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } } } } }, "/profile/me/candidate-score-trend": { "get": { "tags": [ "求职者评分卡" ], "summary": "查询评分趋势", "description": "仅 STUDENT;返回最近月份的反馈趋势", "operationId": "getTrend_1", "parameters": [ { "name": "months", "in": "query", "description": "统计月数,默认 6,范围 1-24", "required": false, "schema": { "type": "integer", "format": "int32", "default": 6 } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseCandidateScoreTrendResponse" } } } }, "400": { "description": "参数不合法", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseCandidateScoreTrendResponse" } } } }, "401": { "description": "未登录", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "403": { "description": "非 STUDENT 角色", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } } } } }, "/profile/me/candidate-scoring": { "get": { "tags": [ "求职者评分体系" ], "summary": "综合评分卡", "description": "仅 STUDENT;返回本人 8 维评分、综合分、权重与状态", "operationId": "getOverview", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseCandidateScoringOverviewResponse" } } } } } } }, "/profile/me/candidate-scoring/appeals": { "get": { "tags": [ "评分治理" ], "summary": "我的申诉列表", "description": "仅 STUDENT 本人", "operationId": "listMyAppeals", "parameters": [ { "name": "status", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 0 } }, { "name": "size", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 20 } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } }, "post": { "tags": [ "评分治理" ], "summary": "提交评分申诉", "description": "仅 STUDENT 本人;同一学生+维度+周期 PENDING/APPROVED 唯一", "operationId": "createAppeal", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateAppealRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseAppealResponse" } } } } } } }, "/profile/me/candidate-scoring/appeals/{appealId}": { "get": { "tags": [ "评分治理" ], "summary": "申诉详情", "description": "本人或 ADMIN", "operationId": "getAppeal", "parameters": [ { "name": "appealId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseAppealResponse" } } } } } } }, "/profile/me/candidate-scoring/appeals/{appealId}/cancel": { "post": { "tags": [ "评分治理" ], "summary": "撤销申诉", "description": "仅本人;仅 PENDING 可撤销", "operationId": "cancelAppeal", "parameters": [ { "name": "appealId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseAppealResponse" } } } } } } }, "/profile/me/candidate-scoring/dimensions/{dimension}": { "get": { "tags": [ "求职者评分体系" ], "summary": "单维度明细", "description": "仅 STUDENT;返回某维度分项、归因与数据源;非法 dimension 返回 400", "operationId": "getDimensionDetail", "parameters": [ { "name": "dimension", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseDimensionScoreDetailResponse" } } } } } } }, "/profile/me/candidate-scoring/trend": { "get": { "tags": [ "求职者评分体系" ], "summary": "评分趋势", "description": "仅 STUDENT;基于快照按月返回综合分与维度分(months 1-24)", "operationId": "getTrend", "parameters": [ { "name": "months", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 6 } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseCandidateScoringTrendResponse" } } } } } } }, "/profile/me/career-progress": { "get": { "tags": [ "求职进度" ], "summary": "统一求职进度聚合", "description": "只读学生端接口:汇总当前学生的投递分页、岗位摘要、下一场面试、最近已提交结构化面试评分、可展示 Offer、同岗位竞争力排名,以及待办/通知计数(仅计数,不含通知标题/正文/详情)。仅 STUDENT 可访问,身份仅从 JWT/SecurityContext 获取,不接受 userId/studentUserId/candidateId 参数;COMPANY/ADMIN 返回 403/2002,未登录返回 401,参数非法返回 400/1001。通知详情仍由既有 /notifications 提供。", "operationId": "getCareerProgress", "parameters": [ { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 0 } }, { "name": "size", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 20 } }, { "name": "status", "in": "query", "required": false, "schema": { "type": "string", "enum": [ "SUBMITTED", "VIEWED", "INTERVIEW", "HIRED", "REJECTED", "WITHDRAWN" ] } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseCareerProgressResponse" } } } }, "400": { "description": "page/size/status 参数非法", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "401": { "description": "未登录", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "403": { "description": "非 STUDENT 角色", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } } }, "security": [ { "bearerAuth": [] } ] } }, "/profile/me/deletion": { "get": { "tags": [ "account-deletion-controller" ], "operationId": "getStatus", "parameters": [], "responses": { "200": { "description": "success", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseAccountDeletionResponse" } } } }, "401": { "description": "error", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } } } }, "post": { "tags": [ "account-deletion-controller" ], "operationId": "initiate", "parameters": [], "responses": { "200": { "description": "success", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseAccountDeletionResponse" } } } }, "401": { "description": "error", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "403": { "description": "error", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "409": { "description": "error", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } } } } }, "/profile/me/deletion/cancel": { "post": { "tags": [ "account-deletion-controller" ], "operationId": "cancelAccountDeletion", "parameters": [], "responses": { "200": { "description": "success", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseAccountDeletionResponse" } } } }, "401": { "description": "error", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "403": { "description": "error", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "409": { "description": "error", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } } } } }, "/profile/me/data-export-tasks": { "get": { "tags": [ "personal-data-export-controller" ], "summary": "查询个人数据导出任务列表", "description": "仅本人;按创建时间倒序分页;status 可选:PENDING/PROCESSING/COMPLETED/FAILED/EXPIRED/CANCELLED", "operationId": "listDataExportTasks", "parameters": [ { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "default": 0 } }, { "name": "size", "in": "query", "required": false, "schema": { "type": "integer", "default": 20 } }, { "name": "status", "in": "query", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "success", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponsePageResponseDataExportTaskResponse" } } } }, "401": { "description": "error", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "403": { "description": "error", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "409": { "description": "error", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } } } }, "post": { "tags": [ "personal-data-export-controller" ], "summary": "创建个人数据导出任务", "description": "异步生成 ZIP;同 idempotencyKey 重放返回原任务;注销 PENDING/COMPLETED 禁止创建", "operationId": "createDataExportTask", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateDataExportRequest" } } }, "required": false }, "responses": { "200": { "description": "success", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseDataExportTaskResponse" } } } }, "401": { "description": "error", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "403": { "description": "error", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "409": { "description": "error", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } } } } }, "/profile/me/data-export-tasks/{taskId}": { "get": { "tags": [ "personal-data-export-controller" ], "summary": "查询个人数据导出任务详情", "description": "仅本人;不暴露 storageKey 与内部字段", "operationId": "getDataExportTask", "parameters": [ { "name": "taskId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "success", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseDataExportTaskResponse" } } } }, "401": { "description": "error", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "403": { "description": "error", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "404": { "description": "error", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } } } } }, "/profile/me/data-export-tasks/{taskId}/download": { "get": { "tags": [ "personal-data-export-controller" ], "summary": "下载个人数据导出 ZIP", "description": "仅本人且 COMPLETED 未过期;attachment;需 JWT", "operationId": "downloadDataExportTask", "parameters": [ { "name": "taskId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "success", "content": { "application/zip": { "schema": { "type": "string", "format": "binary" } } } }, "401": { "description": "error", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "403": { "description": "error", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "409": { "description": "error", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } } } } }, "/profile/me/match-rule": { "get": { "tags": [ "双向匹配阈值" ], "summary": "查询学生匹配阈值", "description": "未配置返回默认 60", "operationId": "getStudentRule", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } }, "put": { "tags": [ "双向匹配阈值" ], "summary": "更新学生匹配阈值", "description": "requiredHrScore 0-100;首次更新创建配置", "operationId": "updateStudentRule", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StudentMatchRuleRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/profile/me/preferences": { "get": { "tags": [ "求职偏好" ], "summary": "查询求职偏好", "description": "仅 STUDENT;无记录时返回空偏好对象", "operationId": "getPreferences", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } }, "put": { "tags": [ "求职偏好" ], "summary": "保存求职偏好", "description": "仅 STUDENT;upsert,完全替换传入字段", "operationId": "savePreferences", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StudentPreferenceRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/profile/me/privacy": { "get": { "tags": [ "privacy-settings-controller" ], "operationId": "getMyPrivacySettings", "parameters": [], "responses": { "200": { "description": "成功;无记录时返回默认对象(PRIVATE/contactVisible=false/version=0)", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponsePrivacySettingsResponse" } } } }, "401": { "description": "未登录", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "403": { "description": "非 STUDENT 角色", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } } } }, "put": { "tags": [ "privacy-settings-controller" ], "operationId": "updateMyPrivacySettings", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PrivacySettingsUpdateRequest" } } }, "required": true }, "responses": { "200": { "description": "成功;返回更新后的隐私设置对象", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponsePrivacySettingsResponse" } } } }, "400": { "description": "请求体校验失败(缺少必填字段或非法枚举)", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "401": { "description": "未登录", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "403": { "description": "非 STUDENT 角色", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "409": { "description": "乐观锁版本冲突(9201)", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } } } } }, "/profile/me/resume": { "get": { "tags": [ "个人资料" ], "summary": "下载简历", "description": "下载当前学生上传的简历文件,仅 STUDENT 角色", "operationId": "downloadResume", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "type": "string", "format": "byte" } } } } } }, "post": { "tags": [ "个人资料" ], "summary": "上传简历", "description": "仅 STUDENT 角色;PDF/DOC/DOCX,≤10MB;上传新简历时替换旧文件", "operationId": "uploadResume", "requestBody": { "content": { "multipart/form-data": { "schema": { "type": "object", "properties": { "file": { "type": "string", "format": "binary" } }, "required": [ "file" ] } } } }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } }, "delete": { "tags": [ "个人资料" ], "summary": "删除简历", "description": "删除当前学生的简历文件并清空 resumeUrl,仅 STUDENT 角色", "operationId": "deleteResume", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/profile/me/resume-versions": { "get": { "tags": [ "简历版本" ], "summary": "简历版本列表", "description": "本人 ACTIVE 版本,version_no 倒序", "operationId": "list", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseListMapStringObject" } } } } } }, "post": { "tags": [ "简历版本" ], "summary": "创建简历版本", "description": "仅本人(STUDENT);PDF/DOC/DOCX ≤10MB;可附版本名", "operationId": "create_1", "parameters": [ { "name": "name", "in": "query", "required": false, "schema": { "type": "string" } } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "type": "object", "properties": { "file": { "type": "string", "format": "binary" } }, "required": [ "file" ] } } } }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/profile/me/resume-versions/{id}": { "get": { "tags": [ "简历版本" ], "summary": "简历版本详情", "description": "仅本人可查看;他人 403,不存在 404", "operationId": "get", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } }, "put": { "tags": [ "简历版本" ], "summary": "修改简历版本", "description": "本人;可选重命名 + 可选替换文件(替换时删除旧文件)", "operationId": "update", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } }, { "name": "name", "in": "query", "required": false, "schema": { "type": "string" } } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "type": "object", "properties": { "file": { "type": "string", "format": "binary" } } } } } }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } }, "delete": { "tags": [ "简历版本" ], "summary": "删除简历版本", "description": "默认版本需先设其他默认;导出进行中不可删;删除文件并移除记录", "operationId": "delete", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/profile/me/resume-versions/{id}/default": { "post": { "tags": [ "简历版本" ], "summary": "设为默认简历", "description": "同用户最多一个默认;已默认幂等;并发冲突 409", "operationId": "setDefault", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/profile/me/resume-versions/{id}/export": { "post": { "tags": [ "简历版本" ], "summary": "创建简历导出任务", "description": "异步复制该版本文件到导出目录;返回任务状态", "operationId": "createExportTask", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/profile/me/review-weights": { "get": { "tags": [ "student-review-weight-controller" ], "operationId": "getMyWeights", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseReviewWeightResponse" } } } }, "401": { "description": "未登录", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "403": { "description": "非 STUDENT 角色", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } } } }, "put": { "tags": [ "student-review-weight-controller" ], "operationId": "saveWeights", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SaveWeightRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseReviewWeightResponse" } } } }, "401": { "description": "未登录", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "403": { "description": "非 STUDENT 角色", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } } } } }, "/resume-export-tasks/{taskId}": { "get": { "tags": [ "简历版本" ], "summary": "导出任务状态", "description": "仅本人可查询;SUCCESS 含输出文件,FAILED 含失败原因", "operationId": "getExportTask", "parameters": [ { "name": "taskId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/resume-export-tasks/{taskId}/download": { "get": { "tags": [ "简历版本" ], "summary": "下载导出产物", "description": "仅本人且任务 SUCCESS 可下载;attachment;不暴露内部路径", "operationId": "downloadExportTask", "parameters": [ { "name": "taskId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "type": "string", "format": "byte" } } } } } } }, "/review-weight-templates": { "get": { "tags": [ "student-review-weight-controller" ], "operationId": "getTemplates", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseListWeightTemplateResponse" } } } }, "401": { "description": "未登录", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } } } } }, "/interviews/{interviewId}/score": { "put": { "tags": [ "结构化面试评分" ], "summary": "保存评分草稿", "description": "企业 owner 为已完成的面试保存/更新草稿;草稿阶段五个维度可为空;overallScore 由服务端计算;SUBMITTED 后再次 PUT 返回 409/9503", "operationId": "saveInterviewScore", "parameters": [ { "name": "interviewId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InterviewScoreSaveRequest" } } }, "required": true }, "responses": { "200": { "description": "success", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseInterviewScoreResponse" } } } }, "400": { "description": "非法维度或推荐值", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "401": { "description": "未登录", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "403": { "description": "非企业/跨企业/非岗位 owner", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "404": { "description": "面试不存在 8401", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "409": { "description": "未完成 9502 / 已提交 9503 / 并发冲突 9501", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } } } }, "get": { "tags": [ "结构化面试评分" ], "summary": "查看评分", "description": "企业 owner 可看 DRAFT/SUBMITTED;目标学生仅可看 SUBMITTED;无评分返回 404/9504", "operationId": "getInterviewScore", "parameters": [ { "name": "interviewId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "success", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseInterviewScoreResponse" } } } }, "400": { "description": "请求体校验失败", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "401": { "description": "未登录", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "403": { "description": "非目标学生 / 跨企业 / 非岗位 owner / ADMIN", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "404": { "description": "无评分 9504 / 面试不存在 8401", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "409": { "description": "未完成 9502", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } } } } }, "/interviews/{interviewId}/score/submit": { "post": { "tags": [ "结构化面试评分" ], "summary": "提交评分", "description": "将 DRAFT 提交为 SUBMITTED,提交后不可逆;并发冲突 409;重复提交幂等返回原评分", "operationId": "submitInterviewScore", "parameters": [ { "name": "interviewId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "success", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseInterviewScoreResponse" } } } }, "400": { "description": "缺维度 1001", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "401": { "description": "未登录", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "403": { "description": "非企业/跨企业/非岗位 owner", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "404": { "description": "面试不存在 8401", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "409": { "description": "未完成 9502 / 并发冲突 9501", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } } } } }, "/interviews/{interviewId}/score/history": { "get": { "tags": [ "结构化面试评分" ], "summary": "评分历史", "description": "企业 owner 可查看全部历史;目标学生仅在 SUBMITTED 后可见;无历史返回 200 空数组;不返回内部用户标识", "operationId": "getInterviewScoreHistory", "parameters": [ { "name": "interviewId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "success", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseListInterviewScoreHistoryItem" } } } }, "401": { "description": "未登录", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "403": { "description": "非目标学生 / 跨企业 / 非岗位 owner / ADMIN", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "404": { "description": "面试不存在 8401", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "409": { "description": "未完成 9502", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } } } } }, "/reports": { "post": { "tags": [ "举报与屏蔽" ], "summary": "提交举报", "description": "targetType=USER 必填 targetUserId;MESSAGE 必填 messageId;reportedUserId 由服务端推导。同 reporter+idempotencyKey+相同请求体返回原举报 200;不同请求体 409/9606;同目标同分类已有 PENDING 409/9603。限流:每用户每小时 10 次,超限 429/9609。", "operationId": "createReport", "security": [ { "bearerAuth": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateReportRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseReportResponse" } } } }, "400": { "description": "BAD_REQUEST(1001)/举报自己 9602/理由缺失 9607", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "401": { "description": "未登录", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "403": { "description": "无权访问消息(2002,不泄露消息是否存在)", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "409": { "description": "重复举报 9603 / 幂等冲突 9606", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "429": { "description": "频率超限 9609", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } } } } }, "/reports/me": { "get": { "tags": [ "举报与屏蔽" ], "summary": "我的举报列表", "description": "仅返回当前用户创建的举报;身份来自 JWT;不返回举报人内部信息/phone/email/passwordHash/resumeUrl/消息全文;支持 status/page/size。", "operationId": "listMyReports", "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "status", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 0 } }, { "name": "size", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 20 } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponsePageResponseReportResponse" } } } }, "401": { "description": "未登录", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } } } } }, "/reports/{id}": { "get": { "tags": [ "举报与屏蔽" ], "summary": "举报详情(本人/ADMIN)", "description": "当前举报人本人或 ADMIN 可查看;其他 403/2002;非 ADMIN 不显示举报人内部 ID/手机号/邮箱;MESSAGE 仅返回脱敏 messagePreview。", "operationId": "getReportDetail", "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseReportResponse" } } } }, "401": { "description": "未登录", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "403": { "description": "非本人非 ADMIN(2002)", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "404": { "description": "举报不存在(9601)", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } } } } }, "/blocks/{blockedUserId}": { "put": { "tags": [ "举报与屏蔽" ], "summary": "屏蔽用户", "description": "屏蔽自己 400/9608;目标不存在复用用户不存在错误码;已存在返回 200 不新增;不影响系统通知/投递/Offer/面试/评分/评价。", "operationId": "blockUser", "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "blockedUserId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseBlockRelationResponse" } } } }, "400": { "description": "屏蔽自己 9608", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "401": { "description": "未登录", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } } } }, "delete": { "tags": [ "举报与屏蔽" ], "summary": "解除屏蔽", "description": "幂等:不存在时返回 200 不报错。", "operationId": "unblockUser", "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "blockedUserId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK(幂等)", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "401": { "description": "未登录", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } } } } }, "/blocks/me": { "get": { "tags": [ "举报与屏蔽" ], "summary": "我的屏蔽列表", "description": "仅返回当前用户主动屏蔽的用户;不返回对方手机号/邮箱/密码/简历地址;支持 page/size。", "operationId": "listMyBlocks", "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 0 } }, { "name": "size", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 20 } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponsePageResponseBlockRelationResponse" } } } }, "401": { "description": "未登录", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } } } } }, "/admin/reports": { "get": { "tags": [ "举报管理" ], "summary": "举报列表(ADMIN)", "description": "仅 ADMIN;COMPANY/STUDENT/未登录分别 403/403/401;支持 status/targetType/category/page/size;响应脱敏。", "operationId": "adminListReports", "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "status", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "targetType", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "category", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 0 } }, { "name": "size", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 20 } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponsePageResponseReportResponse" } } } }, "401": { "description": "未登录", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "403": { "description": "非 ADMIN", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } } } } }, "/admin/reports/{id}": { "get": { "tags": [ "举报管理" ], "summary": "举报详情(ADMIN)", "description": "仅 ADMIN;可见类型/分类/理由/脱敏证据 URL/MESSAGE 脱敏内容/会话最小信息/处理历史;不返回密码/JWT/手机号/邮箱/resumeUrl。", "operationId": "adminGetReport", "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseReportResponse" } } } }, "401": { "description": "未登录", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "403": { "description": "非 ADMIN", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "404": { "description": "举报不存在(9601)", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } } } } }, "/admin/reports/{id}/decision": { "post": { "tags": [ "举报管理" ], "summary": "举报处理决定(ADMIN)", "description": "仅 ADMIN;decision 仅 RESOLVED/REJECTED;REJECTED 必填 note;仅 PENDING 可处理,重复 409/9604,非法流转 409/9605;处理后发送一条 REPORT_DECISION 通知。", "operationId": "decideReport", "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReportDecisionRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseReportResponse" } } } }, "400": { "description": "参数错误(REJECTED 缺 note)", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "401": { "description": "未登录", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "403": { "description": "非 ADMIN", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "404": { "description": "举报不存在(9601)", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "409": { "description": "重复决定 9604 / 非法流转 9605", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } } } } }, "/abilities/types": { "get": { "tags": [ "四维能力测评" ], "operationId": "listAbilityTypes", "summary": "能力测评类型列表", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseAbilityTypeResponse" } } } }, "401": { "description": "未登录" }, "403": { "description": "Forbidden" } } } }, "/abilities/attempts": { "post": { "tags": [ "四维能力测评" ], "operationId": "createAbilityAttempt", "summary": "创建能力测评答卷", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateAbilityAttemptRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseAbilityAttemptResponse" } } } }, "401": { "description": "未登录" }, "403": { "description": "Forbidden" }, "404": { "description": "9801" }, "409": { "description": "9808/9809/9810" }, "429": { "description": "9811" } } } }, "/abilities/attempts/{attemptId}": { "get": { "tags": [ "四维能力测评" ], "operationId": "getAbilityAttempt", "summary": "getAbilityAttempt", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseAbilityAttemptResponse" } } } }, "401": { "description": "未登录" }, "403": { "description": "Forbidden" }, "404": { "description": "404" }, "409": { "description": "409" } } } }, "/abilities/attempts/{attemptId}/answers": { "patch": { "tags": [ "四维能力测评" ], "operationId": "saveAbilityAnswers", "summary": "saveAbilityAnswers", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseAbilityAttemptResponse" } } } }, "401": { "description": "未登录" }, "403": { "description": "Forbidden" }, "404": { "description": "404" }, "409": { "description": "409" } }, "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SaveAbilityAnswersRequest" } } }, "required": true } } }, "/abilities/attempts/{attemptId}/submit": { "post": { "tags": [ "四维能力测评" ], "operationId": "submitAbilityAttempt", "summary": "submitAbilityAttempt", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseAbilityResultResponse" } } } }, "401": { "description": "未登录" }, "403": { "description": "Forbidden" }, "404": { "description": "404" }, "409": { "description": "409" } } } }, "/abilities/attempts/{attemptId}/result": { "get": { "tags": [ "四维能力测评" ], "operationId": "getAbilityResult", "summary": "getAbilityResult", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseAbilityResultResponse" } } } }, "401": { "description": "未登录" }, "403": { "description": "Forbidden" }, "404": { "description": "404" }, "409": { "description": "409" } } } }, "/abilities/me": { "get": { "tags": [ "四维能力测评" ], "operationId": "listMyAbilityAttempts", "summary": "我的能力测评历史", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponsePageResponseAbilityHistoryItem" } } } }, "401": { "description": "未登录" }, "403": { "description": "Forbidden" } } } }, "/admin/scoring/risk/overview": { "get": { "tags": [ "风险治理" ], "operationId": "riskOverview", "summary": "风险概览(ADMIN)", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseRiskOverviewResponse" } } } } }, "parameters": [ { "name": "from", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "to", "in": "query", "required": false, "schema": { "type": "string" } } ] } }, "/admin/scoring/risk/trend": { "get": { "tags": [ "风险治理" ], "operationId": "riskTrend", "summary": "风险趋势(ADMIN)", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseRiskTrendResponse" } } } } }, "parameters": [ { "name": "bucket", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "from", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "to", "in": "query", "required": false, "schema": { "type": "string" } } ] } }, "/admin/scoring/risk/distribution": { "get": { "tags": [ "风险治理" ], "operationId": "riskDistribution", "summary": "风险分布(ADMIN)", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseRiskDistributionResponse" } } } } }, "parameters": [ { "name": "from", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "to", "in": "query", "required": false, "schema": { "type": "string" } } ] } }, "/admin/scoring/risk/events": { "get": { "tags": [ "风险治理" ], "operationId": "riskEvents", "summary": "风险事件分页(ADMIN)", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponsePageResponseRiskEventResponse" } } } } }, "parameters": [ { "name": "page", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "size", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "status", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "severity", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "ruleCode", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "from", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "to", "in": "query", "required": false, "schema": { "type": "string" } } ] } }, "/admin/scoring/risk/rules": { "get": { "tags": [ "风险治理" ], "operationId": "riskRules", "summary": "风险规则列表(ADMIN)", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseListRiskRuleResponse" } } } } } } }, "/admin/scoring/risk/rules/{ruleCode}": { "put": { "tags": [ "风险治理" ], "operationId": "riskUpdateRule", "summary": "更新风险规则(ADMIN)", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RiskRuleUpdateRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseRiskRuleResponse" } } } } } } }, "/admin/scoring/risk/events/{eventId}/actions": { "post": { "tags": [ "风险治理" ], "operationId": "riskActionEvent", "summary": "风险事件人工操作(ADMIN)", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RiskEventActionRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseRiskEventResponse" } } } } } } }, "/job-recommendation-taxonomies": { "get": { "tags": [ "岗位推荐" ], "operationId": "recommendationTaxonomies", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseListTaxonomyResponse" } } } } } } }, "/profile/me/job-recommendations": { "get": { "tags": [ "岗位推荐" ], "operationId": "myJobRecommendations", "parameters": [ { "name": "page", "in": "query", "schema": { "type": "integer" } }, { "name": "size", "in": "query", "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponsePageJobRecommendationItem" } } } } } } }, "/profile/me/job-recommendations/{jobId}/feedback": { "post": { "tags": [ "岗位推荐" ], "operationId": "createRecommendationFeedback", "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RecommendationFeedbackRequest" } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseRecommendationFeedbackResponse" } } } } } }, "delete": { "tags": [ "岗位推荐" ], "operationId": "revokeNotInterestedFeedback", "parameters": [ { "name": "expectedVersion", "in": "query", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK" } } } }, "/companies/me/jobs/{jobId}/recommendation-profile": { "get": { "tags": [ "岗位推荐" ], "operationId": "companyRecommendationProfile", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseRecommendationProfileResponse" } } } } } }, "put": { "tags": [ "岗位推荐" ], "operationId": "updateCompanyRecommendationProfile", "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RecommendationProfileRequest" } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseRecommendationProfileResponse" } } } } } } }, "/admin/job-recommendation-profiles": { "get": { "tags": [ "岗位推荐" ], "operationId": "adminRecommendationProfiles", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponsePageRecommendationProfileResponse" } } } } } } }, "/admin/job-recommendation-profiles/{jobId}/decision": { "post": { "tags": [ "岗位推荐" ], "operationId": "decideRecommendationProfile", "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RecommendationDecisionRequest" } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseRecommendationProfileResponse" } } } } } } }, "/companies/me/job-reviews": { "get": { "tags": [ "企业评价管理" ], "operationId": "listCompanyJobReviews", "parameters": [ { "name": "jobId", "in": "query", "schema": { "type": "integer", "format": "int64" } }, { "name": "rating", "in": "query", "schema": { "type": "integer" } }, { "name": "reviewModerationStatus", "in": "query", "schema": { "type": "string" } }, { "name": "replyStatus", "in": "query", "schema": { "type": "string" } }, { "name": "createdFrom", "in": "query", "schema": { "type": "string", "format": "date-time" } }, { "name": "createdTo", "in": "query", "schema": { "type": "string", "format": "date-time" } }, { "name": "page", "in": "query", "schema": { "type": "integer", "default": 0 } }, { "name": "size", "in": "query", "schema": { "type": "integer", "default": 20 } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseReviewReplyPageResponse" } } } } } } }, "/companies/me/job-reviews/{reviewId}": { "get": { "tags": [ "企业评价管理" ], "operationId": "getCompanyJobReview", "parameters": [ { "name": "reviewId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseCompanyReviewDetailResponse" } } } } } } }, "/companies/me/job-reviews/{reviewId}/reply": { "post": { "tags": [ "企业评价管理" ], "operationId": "createCompanyReviewReply", "parameters": [ { "name": "reviewId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateCompanyReviewReplyRequest" } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseCompanyReviewReplyResponse" } } } } } }, "put": { "tags": [ "企业评价管理" ], "operationId": "reviseCompanyReviewReply", "parameters": [ { "name": "reviewId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateCompanyReviewReplyRequest" } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseCompanyReviewReplyResponse" } } } } } } }, "/admin/review-replies/pending": { "get": { "tags": [ "官方回复审核" ], "operationId": "listPendingReviewReplies", "parameters": [ { "name": "companyId", "in": "query", "schema": { "type": "integer", "format": "int64" } }, { "name": "jobId", "in": "query", "schema": { "type": "integer", "format": "int64" } }, { "name": "riskLevel", "in": "query", "schema": { "type": "string" } }, { "name": "createdFrom", "in": "query", "schema": { "type": "string", "format": "date-time" } }, { "name": "createdTo", "in": "query", "schema": { "type": "string", "format": "date-time" } }, { "name": "page", "in": "query", "schema": { "type": "integer", "default": 0 } }, { "name": "size", "in": "query", "schema": { "type": "integer", "default": 20 } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseAdminReviewReplyPageResponse" } } } } } } }, "/admin/review-replies/{replyId}/decision": { "post": { "tags": [ "官方回复审核" ], "operationId": "decideReviewReply", "parameters": [ { "name": "replyId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReviewReplyDecisionRequest" } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseAdminReviewReplyResponse" } } } } } } }, "/profile/me/talent-discovery": { "get": { "tags": [ "企业人才发现" ], "summary": "查询人才发现授权", "responses": { "200": { "description": "成功", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseTalentDiscoveryPreferenceResponse" } } } } }, "security": [ { "bearerAuth": [] } ] }, "put": { "tags": [ "企业人才发现" ], "summary": "更新人才发现授权", "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TalentDiscoveryPreferenceUpdateRequest" } } } }, "responses": { "200": { "description": "成功", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseTalentDiscoveryPreferenceResponse" } } } } }, "security": [ { "bearerAuth": [] } ] } }, "/companies/me/jobs/{jobId}/talent-recommendations": { "get": { "tags": [ "企业人才发现" ], "summary": "查询岗位人才发现推荐", "parameters": [ { "name": "jobId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } }, { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 0, "minimum": 0 } }, { "name": "size", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "default": 20, "minimum": 1, "maximum": 50 } } ], "responses": { "200": { "description": "成功", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseTalentDiscoveryPageResponse" } } } } }, "security": [ { "bearerAuth": [] } ] } }, "/companies/me/jobs/{jobId}/talent-invitations": { "post": { "tags": [ "企业人才邀约" ], "security": [ { "bearerAuth": [] } ], "summary": "创建人才邀约", "parameters": [ { "name": "jobId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateTalentInvitationRequest" } } } }, "responses": { "200": { "description": "成功", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseCompanyTalentInvitationResponse" } } } } } } }, "/companies/me/talent-invitations": { "get": { "tags": [ "企业人才邀约" ], "security": [ { "bearerAuth": [] } ], "summary": "企业邀约列表", "parameters": [ { "name": "page", "in": "query", "schema": { "type": "integer", "format": "int32", "default": 0, "minimum": 0 } }, { "name": "size", "in": "query", "schema": { "type": "integer", "format": "int32", "default": 20, "minimum": 1, "maximum": 50 } } ], "responses": { "200": { "description": "成功", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseCompanyTalentInvitationPageResponse" } } } } } } }, "/companies/me/talent-invitations/{invitationId}": { "get": { "tags": [ "企业人才邀约" ], "security": [ { "bearerAuth": [] } ], "summary": "企业邀约详情", "parameters": [ { "name": "invitationId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "成功", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseCompanyTalentInvitationResponse" } } } } } } }, "/profile/me/talent-invitations": { "get": { "tags": [ "企业人才邀约" ], "security": [ { "bearerAuth": [] } ], "summary": "学生收到的邀约列表", "parameters": [ { "name": "page", "in": "query", "schema": { "type": "integer", "format": "int32", "default": 0, "minimum": 0 } }, { "name": "size", "in": "query", "schema": { "type": "integer", "format": "int32", "default": 20, "minimum": 1, "maximum": 50 } } ], "responses": { "200": { "description": "成功", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseStudentTalentInvitationPageResponse" } } } } } } }, "/profile/me/talent-invitations/{invitationId}": { "get": { "tags": [ "企业人才邀约" ], "security": [ { "bearerAuth": [] } ], "summary": "学生邀约详情", "parameters": [ { "name": "invitationId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "成功", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseStudentTalentInvitationResponse" } } } } } } }, "/profile/me/talent-invitations/{invitationId}/decision": { "post": { "tags": [ "企业人才邀约" ], "security": [ { "bearerAuth": [] } ], "summary": "处理人才邀约", "parameters": [ { "name": "invitationId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TalentInvitationDecisionRequest" } } } }, "responses": { "200": { "description": "成功", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseStudentTalentInvitationResponse" } } } } } } }, "/admin/scoring/fairness/overview": { "get": { "summary": "评分完整性概览(ADMIN)", "parameters": [ { "name": "period", "in": "query", "required": true, "schema": { "type": "string", "pattern": "^\\d{4}-\\d{2}$" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseFairnessResponseOverview" } } } }, "401": { "description": "未登录" }, "403": { "description": "非 ADMIN" }, "400": { "description": "非法 period" } } } }, "/admin/scoring/fairness/dimensions": { "get": { "summary": "评分维度分布(ADMIN)", "parameters": [ { "name": "period", "in": "query", "required": true, "schema": { "type": "string", "pattern": "^\\d{4}-\\d{2}$" } }, { "name": "dimension", "in": "query", "required": false, "schema": { "type": "string", "enum": [ "EDUCATION", "INTERNSHIP", "ABILITY", "COMPLIANCE", "STABILITY", "GROWTH", "INTEGRITY", "ACTIVITY" ] } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseFairnessResponseDimensions" } } } }, "401": { "description": "未登录" }, "403": { "description": "非 ADMIN" }, "400": { "description": "非法参数" } } } }, "/admin/scoring/fairness/drift": { "get": { "summary": "评分历史漂移(ADMIN)", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseFairnessResponseUnavailable" } } } }, "401": { "description": "未登录" }, "403": { "description": "非 ADMIN" } } } }, "/admin/scoring/fairness/ranking-stability": { "get": { "summary": "排名稳定性(ADMIN)", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseFairnessResponseUnavailable" } } } }, "401": { "description": "未登录" }, "403": { "description": "非 ADMIN" } } } }, "/admin/scoring/fairness/appeals": { "get": { "summary": "申诉纠错聚合(ADMIN)", "parameters": [ { "name": "from", "in": "query", "required": false, "schema": { "type": "string", "format": "date" } }, { "name": "to", "in": "query", "required": false, "schema": { "type": "string", "format": "date" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseFairnessResponseAppeals" } } } }, "401": { "description": "未登录" }, "403": { "description": "非 ADMIN" }, "400": { "description": "非法日期范围" } } } }, "/auth/refresh": { "post": { "tags": [ "认证" ], "summary": "刷新 Token", "description": "使用 Refresh Token 换取新的 Access/Refresh Token 对;旧 Refresh Token 立即失效", "operationId": "refresh", "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RefreshTokenRequest" } } } }, "responses": { "200": { "description": "成功", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseTokenPairResponse" } } } } } } }, "/auth/logout": { "post": { "tags": [ "认证" ], "summary": "登出", "description": "撤销当前登录会话;需要 Access Token,不接受任何请求体", "operationId": "logout", "responses": { "200": { "description": "成功", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringString" } } } } } } }, "/company/candidates/{applicationId}/resume": { "get": { "tags": [ "投递" ], "summary": "企业下载候选人简历", "description": "按候选人隐私设置授权后返回简历文件流;不返回存储路径、学生 ID 或联系方式", "operationId": "downloadCandidateResume", "parameters": [ { "name": "applicationId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "type": "string", "format": "byte" } } } } } } }, "/auth/password/set": { "post": { "tags": [ "认证" ], "summary": "首次设置密码", "operationId": "setPassword", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PasswordSetRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponsePasswordOperationResponse" } } } } } } }, "/auth/password/reset": { "post": { "tags": [ "认证" ], "summary": "短信找回并重置密码", "operationId": "resetPassword", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PasswordResetRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponsePasswordOperationResponse" } } } } } } }, "/auth/password/login": { "post": { "tags": [ "认证" ], "summary": "手机号密码登录", "description": "使用手机号和密码登录,返回 Access/Refresh Token;不自动创建账号", "operationId": "passwordLogin", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PasswordLoginRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponseMapStringObject" } } } } } } }, "/auth/password/change": { "post": { "tags": [ "认证" ], "summary": "修改密码", "operationId": "changePassword", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PasswordChangeRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ApiResponsePasswordOperationResponse" } } } } } } } }, "components": { "schemas": { "TaxonomyResponse": { "type": "object", "properties": { "code": { "type": "string" }, "parentCode": { "type": "string" }, "type": { "type": "string" }, "displayName": { "type": "string" } } }, "RecommendationFeedbackRequest": { "type": "object", "required": [ "feedbackType", "idempotencyKey", "expectedVersion" ], "properties": { "feedbackType": { "type": "string" }, "reasonType": { "type": "string" }, "idempotencyKey": { "type": "string" }, "expectedVersion": { "type": "integer", "format": "int64" } } }, "RecommendationProfileRequest": { "type": "object", "required": [ "industryCode", "jobFamilyCode", "enabled", "expectedVersion" ], "properties": { "industryCode": { "type": "string" }, "jobFamilyCode": { "type": "string" }, "riasecWeights": { "type": "object", "additionalProperties": { "type": "integer" } }, "abilityExpectations": { "type": "object", "additionalProperties": { "type": "integer" } }, "enabled": { "type": "boolean" }, "expectedVersion": { "type": "integer", "format": "int64" } } }, "RecommendationDecisionRequest": { "type": "object", "required": [ "decision", "expectedVersion" ], "properties": { "decision": { "type": "string", "enum": [ "APPROVE", "REJECT" ] }, "reasonCode": { "type": "string" }, "expectedVersion": { "type": "integer", "format": "int64" } } }, "RecommendationProfileResponse": { "type": "object", "properties": { "jobId": { "type": "integer", "format": "int64" }, "industryCode": { "type": "string" }, "jobFamilyCode": { "type": "string" }, "riasecWeights": { "type": "object", "additionalProperties": { "type": "integer" } }, "abilityExpectations": { "type": "object", "additionalProperties": { "type": "integer" } }, "enabled": { "type": "boolean" }, "reviewStatus": { "type": "string" }, "reviewReason": { "type": "string" }, "version": { "type": "integer", "format": "int64" }, "updatedAt": { "type": "string", "format": "date-time" } } }, "RecommendationFeedbackResponse": { "type": "object", "properties": { "jobId": { "type": "integer", "format": "int64" }, "feedbackType": { "type": "string" }, "reasonType": { "type": "string" }, "status": { "type": "string" }, "version": { "type": "integer", "format": "int64" } } }, "JobRecommendationItem": { "type": "object", "properties": { "jobId": { "type": "integer", "format": "int64" }, "title": { "type": "string" }, "city": { "type": "string" }, "employmentType": { "type": "string" }, "salaryMin": { "type": "integer" }, "salaryMax": { "type": "integer" }, "mode": { "type": "string", "enum": [ "PERSONALIZED", "FALLBACK" ] }, "score": { "type": "number" }, "reasons": { "type": "array", "items": { "type": "string" } } } }, "ApiResponseListTaxonomyResponse": { "type": "object", "properties": { "code": { "type": "integer" }, "message": { "type": "string" }, "data": { "type": "array", "items": { "$ref": "#/components/schemas/TaxonomyResponse" } } } }, "ApiResponseRecommendationFeedbackResponse": { "type": "object", "properties": { "code": { "type": "integer" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/RecommendationFeedbackResponse" } } }, "ApiResponseRecommendationProfileResponse": { "type": "object", "properties": { "code": { "type": "integer" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/RecommendationProfileResponse" } } }, "ApiResponsePageJobRecommendationItem": { "type": "object", "properties": { "code": { "type": "integer" }, "message": { "type": "string" }, "data": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/JobRecommendationItem" } }, "total": { "type": "integer" }, "page": { "type": "integer" }, "size": { "type": "integer" }, "totalPages": { "type": "integer" } } } } }, "ApiResponsePageRecommendationProfileResponse": { "type": "object", "properties": { "code": { "type": "integer" }, "message": { "type": "string" }, "data": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/RecommendationProfileResponse" } }, "total": { "type": "integer" }, "page": { "type": "integer" }, "size": { "type": "integer" }, "totalPages": { "type": "integer" } } } } }, "CompanyReviewJobResponse": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64" }, "title": { "type": "string" } } }, "CompanyReviewReplyResponse": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64" }, "content": { "type": "string" }, "status": { "type": "string" }, "version": { "type": "integer", "format": "int64" }, "updatedAt": { "type": "string", "format": "date-time" }, "rejectionReason": { "type": "string", "nullable": true } } }, "CompanyReviewItemResponse": { "type": "object", "properties": { "reviewId": { "type": "integer", "format": "int64" }, "job": { "$ref": "#/components/schemas/CompanyReviewJobResponse" }, "rating": { "type": "integer" }, "content": { "type": "string" }, "tags": { "type": "array", "items": { "type": "string" } }, "dimensionScores": { "type": "object", "additionalProperties": { "type": "integer" } }, "reviewStatus": { "type": "string" }, "reviewCreatedAt": { "type": "string", "format": "date-time" }, "reply": { "$ref": "#/components/schemas/CompanyReviewReplyResponse" } } }, "CompanyReviewDetailResponse": { "allOf": [ { "$ref": "#/components/schemas/CompanyReviewItemResponse" } ] }, "ReviewReplyPageResponse": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/CompanyReviewItemResponse" } }, "total": { "type": "integer", "format": "int64" }, "page": { "type": "integer" }, "size": { "type": "integer" }, "totalPages": { "type": "integer" } } }, "CreateCompanyReviewReplyRequest": { "type": "object", "required": [ "content", "idempotencyKey" ], "properties": { "content": { "type": "string", "minLength": 1, "maxLength": 500 }, "idempotencyKey": { "type": "string", "format": "uuid", "maxLength": 64 } } }, "UpdateCompanyReviewReplyRequest": { "type": "object", "required": [ "content", "expectedVersion" ], "properties": { "content": { "type": "string", "minLength": 1, "maxLength": 500 }, "expectedVersion": { "type": "integer", "format": "int64", "minimum": 0 } } }, "ReviewReplyDecisionRequest": { "type": "object", "required": [ "decision" ], "properties": { "decision": { "type": "string", "enum": [ "APPROVE", "REJECT" ] }, "reason": { "type": "string", "maxLength": 500 } } }, "AdminReviewReplyResponse": { "type": "object", "properties": { "replyId": { "type": "integer", "format": "int64" }, "reviewId": { "type": "integer", "format": "int64" }, "jobId": { "type": "integer", "format": "int64" }, "jobTitle": { "type": "string" }, "companyId": { "type": "integer", "format": "int64" }, "companyName": { "type": "string" }, "rating": { "type": "integer" }, "reviewContent": { "type": "string" }, "reviewModerationStatus": { "type": "string" }, "replyContent": { "type": "string" }, "replyStatus": { "type": "string" }, "version": { "type": "integer", "format": "int64" }, "riskScore": { "type": "number" }, "riskLevel": { "type": "string" }, "reasonCodes": { "type": "array", "items": { "type": "string" } }, "createdAt": { "type": "string", "format": "date-time" } } }, "AdminReviewReplyPageResponse": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/AdminReviewReplyResponse" } }, "total": { "type": "integer", "format": "int64" }, "page": { "type": "integer" }, "size": { "type": "integer" }, "totalPages": { "type": "integer" } } }, "ApiResponseReviewReplyPageResponse": { "type": "object", "properties": { "code": { "type": "integer" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/ReviewReplyPageResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseCompanyReviewDetailResponse": { "type": "object", "properties": { "code": { "type": "integer" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/CompanyReviewDetailResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseCompanyReviewReplyResponse": { "type": "object", "properties": { "code": { "type": "integer" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/CompanyReviewReplyResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseAdminReviewReplyPageResponse": { "type": "object", "properties": { "code": { "type": "integer" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/AdminReviewReplyPageResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseAdminReviewReplyResponse": { "type": "object", "properties": { "code": { "type": "integer" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/AdminReviewReplyResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "AccountDeletionResponse": { "type": "object", "properties": { "userId": { "type": "integer", "format": "int64", "example": 2 }, "status": { "type": "string", "enum": [ "NONE", "PENDING", "COMPLETED" ], "example": "PENDING", "description": "注销状态:NONE/PENDING/COMPLETED" }, "requestedAt": { "type": "string", "format": "date-time", "nullable": true }, "effectiveAt": { "type": "string", "format": "date-time", "nullable": true }, "cancelledAt": { "type": "string", "format": "date-time", "nullable": true }, "completedAt": { "type": "string", "format": "date-time", "nullable": true }, "version": { "type": "integer", "format": "int64", "example": 0 } } }, "AdminDashboardOverviewResponse": { "type": "object", "properties": { "totalCompanies": { "type": "integer", "format": "int32" }, "totalJobs": { "type": "integer", "format": "int32" }, "totalCandidates": { "type": "integer", "format": "int32" }, "avgCandidateScore": { "type": "number" }, "topCompanies": { "type": "array", "items": { "$ref": "#/components/schemas/CompanyScoreItem" } } } }, "ApiResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": {}, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "CareerProgressResponse": { "type": "object", "properties": { "todo": { "$ref": "#/components/schemas/ProgressTodoSummary" }, "applications": { "$ref": "#/components/schemas/PaginatedApplications" }, "generatedAt": { "type": "string", "format": "date-time" } } }, "ProgressTodoSummary": { "type": "object", "properties": { "pendingInterviewResponseCount": { "type": "integer", "format": "int64" }, "upcomingConfirmedInterviewCount": { "type": "integer", "format": "int64" }, "pendingOfferResponseCount": { "type": "integer", "format": "int64" }, "unreadNotificationCount": { "type": "integer", "format": "int64" }, "unreadReportDecisionCount": { "type": "integer", "format": "int64" } } }, "PaginatedApplications": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/CareerProgressItem" } }, "total": { "type": "integer", "format": "int64" }, "page": { "type": "integer", "format": "int32" }, "size": { "type": "integer", "format": "int32" }, "totalPages": { "type": "integer", "format": "int32" } } }, "CareerProgressItem": { "type": "object", "properties": { "applicationId": { "type": "integer", "format": "int64" }, "applicationStatus": { "type": "string" }, "appliedAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "job": { "$ref": "#/components/schemas/JobSummary" }, "nextInterview": { "$ref": "#/components/schemas/InterviewSummary" }, "latestSubmittedInterviewScore": { "$ref": "#/components/schemas/ScoreSummary" }, "offer": { "$ref": "#/components/schemas/OfferSummary" }, "competition": { "$ref": "#/components/schemas/CompetitionSummary" } } }, "JobSummary": { "type": "object", "properties": { "jobId": { "type": "integer", "format": "int64" }, "title": { "type": "string" }, "companyName": { "type": "string" }, "city": { "type": "string" }, "employmentType": { "type": "string" }, "jobStatus": { "type": "string" } } }, "InterviewSummary": { "type": "object", "properties": { "interviewId": { "type": "integer", "format": "int64" }, "roundNo": { "type": "integer", "format": "int32" }, "title": { "type": "string" }, "interviewType": { "type": "string" }, "startAt": { "type": "string", "format": "date-time" }, "endAt": { "type": "string", "format": "date-time" }, "status": { "type": "string" } } }, "ScoreSummary": { "type": "object", "properties": { "interviewId": { "type": "integer", "format": "int64" }, "overallScore": { "type": "number" }, "recommendation": { "type": "string" }, "submittedAt": { "type": "string", "format": "date-time" } } }, "OfferSummary": { "type": "object", "properties": { "offerId": { "type": "integer", "format": "int64" }, "status": { "type": "string" }, "title": { "type": "string" }, "expireAt": { "type": "string", "format": "date-time" }, "onboardingDate": { "type": "string", "format": "date" } } }, "CompetitionSummary": { "type": "object", "properties": { "eligible": { "type": "boolean" }, "rank": { "type": "integer", "format": "int32" }, "cohortSize": { "type": "integer", "format": "int32" }, "overallScore": { "type": "number" }, "percentile": { "type": "number" }, "status": { "type": "string" }, "mySnapshotPeriod": { "type": "string" }, "rulesVersion": { "type": "string" } } }, "ApiResponseCareerProgressResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32", "example": 200 }, "message": { "type": "string", "example": "ok" }, "data": { "$ref": "#/components/schemas/CareerProgressResponse" }, "requestId": { "type": "string", "example": "req-1" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseAccountDeletionResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32", "example": 200 }, "message": { "type": "string", "example": "ok" }, "data": { "$ref": "#/components/schemas/AccountDeletionResponse" }, "requestId": { "type": "string", "example": "req-1" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseAdminDashboardOverviewResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/AdminDashboardOverviewResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseAppealResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/AppealResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseCandidateDetailView": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/CandidateDetailView" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseCandidateFeedbackResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/CandidateFeedbackResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseCandidateListResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/CandidateListResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseCandidatePercentileResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/CandidatePercentileResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseCandidateRankingDetailResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/CandidateRankingDetailResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseCandidateRankingListResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/CandidateRankingListResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseCandidateScoreCardResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/CandidateScoreCardResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseCandidateScoreTrendResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/CandidateScoreTrendResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseCandidateScoringOverviewResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/CandidateScoringOverviewResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseCandidateScoringTrendResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/CandidateScoringTrendResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseCompanyCandidateScoringResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/CompanyCandidateScoringResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseCompanyPublicView": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/CompanyPublicView" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseDashboardOverviewResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/DashboardOverviewResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseDimensionScoreDetailResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/DimensionScoreDetailResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseJobRankingItem": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/JobRankingItem" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseJobRankingListResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/JobRankingListResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseListAppealHistoryItem": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "type": "array", "items": { "$ref": "#/components/schemas/AppealHistoryItem" } }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseListMapStringObject": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "type": "array", "items": { "type": "object", "additionalProperties": {} } }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseListSnapshotHistoryItem": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "type": "array", "items": { "$ref": "#/components/schemas/SnapshotHistoryItem" } }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseListWeightTemplateResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "type": "array", "items": { "$ref": "#/components/schemas/WeightTemplateResponse" } }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseMapStringObject": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "type": "object", "additionalProperties": {} }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseMapStringString": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "type": "object", "additionalProperties": { "type": "string" } }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponsePersonalizedScoreResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/PersonalizedScoreResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponsePrivacySettingsResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32", "example": 200 }, "message": { "type": "string", "example": "ok" }, "data": { "$ref": "#/components/schemas/PrivacySettingsResponse" }, "requestId": { "type": "string", "example": "req-1" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseReviewWeightResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/ReviewWeightResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseScoreTrendResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/ScoreTrendResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "AppealDecisionRequest": { "type": "object", "properties": { "decision": { "type": "string", "minLength": 1 }, "reason": { "type": "string" } }, "required": [ "decision" ] }, "AppealHistoryItem": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64" }, "fromStatus": { "type": "string" }, "toStatus": { "type": "string" }, "actorUserId": { "type": "integer", "format": "int64" }, "actorRole": { "type": "string" }, "reason": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" } } }, "AppealResponse": { "type": "object", "properties": { "appealId": { "type": "integer", "format": "int64" }, "candidateId": { "type": "integer", "format": "int64" }, "dimension": { "type": "string" }, "period": { "type": "string" }, "status": { "type": "string" }, "reason": { "type": "string" }, "decision": { "type": "string" }, "decisionReason": { "type": "string" }, "reviewerId": { "type": "integer", "format": "int64" }, "reviewedAt": { "type": "string", "format": "date-time" }, "rollbackAt": { "type": "string", "format": "date-time" }, "scoreAtAppeal": { "type": "number" }, "snapshotVersionAtAppeal": { "type": "integer", "format": "int64" }, "rulesVersion": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } } }, "ApplicationCreateRequest": { "type": "object", "properties": { "jobId": { "type": "integer", "format": "int64" } }, "required": [ "jobId" ] }, "ApplicationStatusRequest": { "type": "object", "properties": { "status": { "type": "string", "minLength": 1, "pattern": "^(VIEWED|INTERVIEW|REJECTED|HIRED)$" } }, "required": [ "status" ] }, "CandidateDetailView": { "type": "object", "properties": { "applicationId": { "type": "integer", "format": "int64" }, "jobId": { "type": "integer", "format": "int64" }, "jobTitle": { "type": "string" }, "jobCity": { "type": "string" }, "jobEmploymentType": { "type": "string" }, "status": { "type": "string" }, "coverLetter": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "candidateName": { "type": "string" }, "candidateAvatarUrl": { "type": "string" }, "candidateBio": { "type": "string" }, "candidateLocation": { "type": "string" }, "candidateSchool": { "type": "string" }, "candidateEducation": { "type": "string" }, "candidateGraduationYear": { "type": "integer", "format": "int32" }, "candidateSkills": { "type": "array", "items": { "type": "string" } } } }, "CandidateFeedbackRequest": { "type": "object", "properties": { "rating": { "type": "integer", "format": "int32", "maximum": 5, "minimum": 1 }, "content": { "type": "string", "maxLength": 1000, "minLength": 0 }, "tags": { "type": "array", "items": { "type": "string", "maxLength": 50, "minLength": 1 }, "maxItems": 10, "minItems": 0 } }, "required": [ "content", "rating" ] }, "CandidateFeedbackResponse": { "type": "object", "description": "脱敏后的候选人反馈", "properties": { "id": { "type": "integer", "format": "int64", "description": "反馈 ID", "example": 1 }, "applicationId": { "type": "integer", "format": "int64", "description": "投递 ID", "example": 31 }, "rating": { "type": "integer", "format": "int32", "description": "评分,范围 1-5", "example": 5 }, "content": { "type": "string", "description": "反馈内容", "example": "沟通良好" }, "tags": { "type": "array", "description": "反馈标签", "items": { "type": "string" } }, "createdAt": { "type": "string", "format": "date-time", "description": "创建时间", "example": "2026-08-25T10:00:00" }, "updatedAt": { "type": "string", "format": "date-time", "description": "更新时间", "example": "2026-08-25T10:00:00" } } }, "CandidateFeedbackSummary": { "type": "object", "properties": { "totalCount": { "type": "integer", "format": "int32" }, "averageRating": { "type": "number" }, "ratingDistribution": { "type": "object", "additionalProperties": { "type": "integer", "format": "int32" } }, "tags": { "type": "array", "items": { "$ref": "#/components/schemas/TagCount" } } } }, "CandidateItemView": { "type": "object", "properties": { "applicationId": { "type": "integer", "format": "int64" }, "jobId": { "type": "integer", "format": "int64" }, "jobTitle": { "type": "string" }, "status": { "type": "string" }, "candidateName": { "type": "string" }, "candidateSchool": { "type": "string" }, "candidateEducation": { "type": "string" }, "candidateGraduationYear": { "type": "integer", "format": "int32" }, "candidateAvatarUrl": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } } }, "CandidateListResponse": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/CandidateItemView" } }, "total": { "type": "integer", "format": "int64" }, "page": { "type": "integer", "format": "int32" }, "size": { "type": "integer", "format": "int32" }, "totalPages": { "type": "integer", "format": "int32" } } }, "CandidateMatchSignals": { "type": "object", "properties": { "candidateInterestScore": { "$ref": "#/components/schemas/MatchSignal" }, "hrSuitabilityScore": { "$ref": "#/components/schemas/MatchSignal" } } }, "CandidatePercentileResponse": { "type": "object", "properties": { "candidateId": { "type": "integer", "format": "int64" }, "status": { "type": "string" }, "scoreType": { "type": "string" }, "score": { "type": "number" }, "percentile": { "type": "number" }, "cohortSize": { "type": "integer", "format": "int32" }, "sampleCount": { "type": "integer", "format": "int32" }, "minimumSampleCount": { "type": "integer", "format": "int32" } } }, "CandidateRankingDetailResponse": { "type": "object", "properties": { "applicationId": { "type": "integer", "format": "int64" }, "jobId": { "type": "integer", "format": "int64" }, "candidateName": { "type": "string" }, "candidateSchool": { "type": "string" }, "overallScore": { "type": "number" }, "percentile": { "type": "number" }, "cohortSize": { "type": "integer", "format": "int32" }, "dimensionScores": { "type": "array", "items": { "$ref": "#/components/schemas/DimensionScoreItem" } } } }, "CandidateRankingItem": { "type": "object", "properties": { "applicationId": { "type": "integer", "format": "int64" }, "jobId": { "type": "integer", "format": "int64" }, "candidateName": { "type": "string" }, "candidateSchool": { "type": "string" }, "overallScore": { "type": "number" }, "percentile": { "type": "number" }, "sampleCount": { "type": "integer", "format": "int32" } } }, "CandidateRankingListResponse": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/CandidateRankingItem" } }, "total": { "type": "integer", "format": "int64" }, "page": { "type": "integer", "format": "int32" }, "size": { "type": "integer", "format": "int32" }, "totalPages": { "type": "integer", "format": "int32" } } }, "CandidateScoreCardResponse": { "type": "object", "properties": { "candidateId": { "type": "integer", "format": "int64" }, "status": { "type": "string" }, "overallScore": { "type": "number" }, "sampleCount": { "type": "integer", "format": "int32" }, "feedbackSummary": { "$ref": "#/components/schemas/CandidateFeedbackSummary" }, "matchSignals": { "$ref": "#/components/schemas/CandidateMatchSignals" }, "unsupportedDimensions": { "type": "array", "items": { "type": "string" } }, "generatedAt": { "type": "string", "format": "date-time" } } }, "CandidateScoreTrendItem": { "type": "object", "properties": { "month": { "type": "string" }, "feedbackCount": { "type": "integer", "format": "int32" }, "averageRating": { "type": "number" }, "ratingScore": { "type": "number" } } }, "CandidateScoreTrendResponse": { "type": "object", "properties": { "candidateId": { "type": "integer", "format": "int64" }, "months": { "type": "integer", "format": "int32" }, "items": { "type": "array", "items": { "$ref": "#/components/schemas/CandidateScoreTrendItem" } } } }, "CandidateScoringOverviewResponse": { "type": "object", "properties": { "candidateId": { "type": "integer", "format": "int64" }, "status": { "type": "string" }, "overallScore": { "type": "number" }, "weights": { "type": "object", "additionalProperties": { "type": "number" } }, "dimensions": { "type": "array", "items": { "$ref": "#/components/schemas/DimensionItem" } }, "rulesVersion": { "type": "string" }, "generatedAt": { "type": "string", "format": "date-time" }, "explanationVersion": { "type": "string", "description": "解释契约版本,与评分规则版本独立" }, "coverage": { "$ref": "#/components/schemas/CandidateScoringCoverage" }, "comparabilityNotice": { "type": "string" } } }, "CandidateScoringTrendResponse": { "type": "object", "properties": { "candidateId": { "type": "integer", "format": "int64" }, "months": { "type": "integer", "format": "int32" }, "items": { "type": "array", "items": { "$ref": "#/components/schemas/TrendItem" } } } }, "CompanyCandidateScoringResponse": { "type": "object", "properties": { "applicationId": { "type": "integer", "format": "int64" }, "overallScore": { "type": "number" }, "status": { "type": "string" }, "dimensions": { "type": "array", "items": { "$ref": "#/components/schemas/CompanyDimensionItem" } }, "generatedAt": { "type": "string", "format": "date-time" }, "rulesVersion": { "type": "string" } } }, "CompanyCreateRequest": { "type": "object", "properties": { "name": { "type": "string", "maxLength": 100, "minLength": 0 }, "logoUrl": { "type": "string" }, "description": { "type": "string" }, "industry": { "type": "string" }, "website": { "type": "string" }, "address": { "type": "string" } }, "required": [ "name" ] }, "CompanyDimensionItem": { "type": "object", "properties": { "dimension": { "type": "string" }, "score": { "type": "number" }, "status": { "type": "string" } } }, "CompanyMatchRuleRequest": { "type": "object", "properties": { "requiredCandidateScore": { "type": "integer", "format": "int32", "maximum": 100, "minimum": 0 } }, "required": [ "requiredCandidateScore" ] }, "CompanyPublicView": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64" }, "name": { "type": "string" }, "logoUrl": { "type": "string" }, "description": { "type": "string" }, "industry": { "type": "string" }, "verified": { "type": "boolean" } } }, "CompanyScoreItem": { "type": "object", "properties": { "companyId": { "type": "integer", "format": "int64" }, "companyName": { "type": "string" }, "avgCandidateScore": { "type": "number" }, "jobCount": { "type": "integer", "format": "int32" } } }, "CompanyUpdateRequest": { "type": "object", "properties": { "name": { "type": "string", "maxLength": 120, "minLength": 0 }, "logoUrl": { "type": "string", "maxLength": 500, "minLength": 0 }, "description": { "type": "string" }, "industry": { "type": "string", "maxLength": 80, "minLength": 0 }, "website": { "type": "string", "maxLength": 255, "minLength": 0 }, "address": { "type": "string", "maxLength": 255, "minLength": 0 } }, "required": [ "name" ] }, "CounterOfferCreateRequest": { "type": "object", "properties": { "proposedSalaryMin": { "type": "integer", "format": "int32", "minimum": 0 }, "proposedSalaryMax": { "type": "integer", "format": "int32", "minimum": 0 }, "proposedOnboardingDate": { "type": "string", "format": "date" }, "reason": { "type": "string", "maxLength": 2000, "minLength": 0 } } }, "CreateAppealRequest": { "type": "object", "properties": { "dimension": { "type": "string", "minLength": 1 }, "period": { "type": "string", "minLength": 1 }, "reason": { "type": "string" }, "idempotencyKey": { "type": "string", "maxLength": 64, "minLength": 0 } }, "required": [ "dimension", "period" ] }, "CreateConversationRequest": { "type": "object", "properties": { "participantUserId": { "type": "integer", "format": "int64" } }, "required": [ "participantUserId" ] }, "DashboardOverviewResponse": { "type": "object", "properties": { "companyId": { "type": "integer", "format": "int64" }, "totalJobs": { "type": "integer", "format": "int32" }, "publishedJobs": { "type": "integer", "format": "int32" }, "avgJobScore": { "type": "number" }, "totalCandidates": { "type": "integer", "format": "int32" }, "avgCandidateScore": { "type": "number" }, "scoreDistribution": { "type": "object", "additionalProperties": { "type": "integer", "format": "int32" } }, "updatedAt": { "type": "string", "format": "date-time" } } }, "DataSourceItem": { "type": "object", "properties": { "source": { "type": "string" }, "time": { "type": "string", "format": "date-time" }, "note": { "type": "string" } } }, "DimensionItem": { "type": "object", "properties": { "dimension": { "type": "string" }, "score": { "type": "number" }, "status": { "type": "string" }, "weight": { "type": "number" }, "summary": { "type": "string" } } }, "DimensionScoreDetailResponse": { "type": "object", "properties": { "dimension": { "type": "string" }, "score": { "type": "number" }, "status": { "type": "string" }, "subScores": { "type": "array", "items": { "$ref": "#/components/schemas/SubScore" } }, "reasons": { "type": "array", "items": { "type": "string" } }, "dataSources": { "type": "array", "items": { "$ref": "#/components/schemas/DataSourceItem" } }, "updatedAt": { "type": "string", "format": "date-time" }, "rulesVersion": { "type": "string" }, "displayName": { "type": "string" }, "whatItMeasures": { "type": "string" }, "interpretation": { "type": "string" }, "limitations": { "type": "array", "items": { "type": "string" } }, "evidenceLevel": { "type": "string", "enum": [ "DIRECT_RULE", "SELF_REPORTED", "BEHAVIOR_PROXY", "UNVALIDATED_PROXY" ] }, "ruleContributions": { "type": "array", "items": { "$ref": "#/components/schemas/CandidateScoringRuleContribution" } }, "improvementActions": { "type": "array", "items": { "type": "string" } }, "explanationVersion": { "type": "string" }, "validity": { "$ref": "#/components/schemas/CandidateScoringValidity" }, "calculatedAt": { "type": "string", "format": "date-time" } } }, "DimensionScoreItem": { "type": "object", "properties": { "dimension": { "type": "string" }, "score": { "type": "number" }, "status": { "type": "string" } } }, "InterviewCancelRequest": { "type": "object", "properties": { "reason": { "type": "string" } } }, "InterviewCreateRequest": { "type": "object", "properties": { "roundNo": { "type": "integer", "format": "int32" }, "title": { "type": "string", "maxLength": 200, "minLength": 0 }, "interviewType": { "type": "string", "minLength": 1 }, "startAt": { "type": "string", "format": "date-time" }, "endAt": { "type": "string", "format": "date-time" }, "timezone": { "type": "string" }, "meetingUrl": { "type": "string" }, "address": { "type": "string" }, "interviewerName": { "type": "string", "maxLength": 100, "minLength": 0 }, "notes": { "type": "string" } }, "required": [ "endAt", "interviewType", "startAt", "title" ] }, "InterviewRespondRequest": { "type": "object", "properties": { "action": { "type": "string", "minLength": 1 }, "reason": { "type": "string" } }, "required": [ "action" ] }, "InterviewUpdateRequest": { "type": "object", "properties": { "title": { "type": "string" }, "startAt": { "type": "string", "format": "date-time" }, "endAt": { "type": "string", "format": "date-time" }, "timezone": { "type": "string" }, "meetingUrl": { "type": "string" }, "address": { "type": "string" }, "interviewerName": { "type": "string" }, "notes": { "type": "string" }, "timeRangeValid": { "type": "boolean" } } }, "JobCreateRequest": { "type": "object", "properties": { "title": { "type": "string", "maxLength": 120, "minLength": 0 }, "description": { "type": "string", "minLength": 1 }, "requirements": { "type": "string" }, "city": { "type": "string", "maxLength": 80, "minLength": 0 }, "employmentType": { "type": "string", "maxLength": 30, "minLength": 0 }, "salaryMin": { "type": "integer", "format": "int32" }, "salaryMax": { "type": "integer", "format": "int32" } }, "required": [ "city", "description", "employmentType", "title" ] }, "JobRankingItem": { "type": "object", "properties": { "jobId": { "type": "integer", "format": "int64" }, "title": { "type": "string" }, "city": { "type": "string" }, "employmentType": { "type": "string" }, "avgRating": { "type": "number" }, "reviewCount": { "type": "integer", "format": "int32" }, "rank": { "type": "integer", "format": "int32" }, "cohortSize": { "type": "integer", "format": "int32" }, "dimensionAverages": { "type": "object", "additionalProperties": { "type": "number" } } } }, "JobRankingListResponse": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/JobRankingItem" } }, "total": { "type": "integer", "format": "int64" }, "page": { "type": "integer", "format": "int32" }, "size": { "type": "integer", "format": "int32" }, "totalPages": { "type": "integer", "format": "int32" } } }, "JobReviewCreateRequest": { "type": "object", "properties": { "rating": { "type": "integer", "format": "int32", "maximum": 5, "minimum": 1 }, "content": { "type": "string", "maxLength": 1000, "minLength": 0 }, "tags": { "type": "array", "items": { "type": "string", "maxLength": 50, "minLength": 1 }, "maxItems": 10, "minItems": 0 }, "dimensionScores": { "type": "object", "additionalProperties": { "type": "integer", "format": "int32" } } }, "required": [ "content", "rating" ] }, "JobReviewUpdateRequest": { "type": "object", "properties": { "rating": { "type": "integer", "format": "int32", "maximum": 5, "minimum": 1 }, "content": { "type": "string", "maxLength": 1000, "minLength": 1 }, "tags": { "type": "array", "items": { "type": "string", "maxLength": 50, "minLength": 1 }, "maxItems": 10, "minItems": 0 }, "status": { "type": "string", "pattern": "^(PUBLISHED|HIDDEN)$" }, "dimensionScores": { "type": "object", "additionalProperties": { "type": "integer", "format": "int32" } } } }, "JobStatusRequest": { "type": "object", "properties": { "status": { "type": "string", "minLength": 1, "pattern": "^(PUBLISHED|CLOSED)$" } }, "required": [ "status" ] }, "JobUpdateRequest": { "type": "object", "properties": { "title": { "type": "string", "maxLength": 120, "minLength": 0 }, "description": { "type": "string" }, "requirements": { "type": "string" }, "city": { "type": "string", "maxLength": 80, "minLength": 0 }, "employmentType": { "type": "string", "maxLength": 30, "minLength": 0 }, "salaryMin": { "type": "integer", "format": "int32" }, "salaryMax": { "type": "integer", "format": "int32" } } }, "LoginRequest": { "type": "object", "properties": { "phone": { "type": "string", "minLength": 1, "pattern": "[0-9]{11}" }, "code": { "type": "string", "minLength": 1, "pattern": "[0-9]{6}" }, "purpose": { "type": "string" } }, "required": [ "code", "phone" ] }, "MatchSignal": { "type": "object", "properties": { "average": { "type": "number" }, "sampleCount": { "type": "integer", "format": "int32" } } }, "OfferCreateRequest": { "type": "object", "properties": { "applicationId": { "type": "integer", "format": "int64" }, "title": { "type": "string", "maxLength": 120, "minLength": 0 }, "salaryMin": { "type": "integer", "format": "int32", "minimum": 0 }, "salaryMax": { "type": "integer", "format": "int32", "minimum": 0 }, "salaryCurrency": { "type": "string", "maxLength": 10, "minLength": 0 }, "salaryPeriod": { "type": "string", "pattern": "^(MONTH|YEAR|HOUR)$" }, "workCity": { "type": "string", "maxLength": 80, "minLength": 0 }, "employmentType": { "type": "string", "pattern": "^(FULL_TIME|PART_TIME|INTERN|INTERNSHIP)$" }, "probationMonths": { "type": "integer", "format": "int32", "minimum": 0 }, "benefits": { "type": "string", "maxLength": 2000, "minLength": 0 }, "description": { "type": "string", "maxLength": 5000, "minLength": 0 }, "expireAt": { "type": "string", "format": "date-time" }, "onboardingDate": { "type": "string", "format": "date" }, "baseSalary": { "type": "integer", "format": "int32", "minimum": 0 }, "housingAllowance": { "type": "integer", "format": "int32", "minimum": 0 }, "annualBonusMonths": { "type": "integer", "format": "int32", "minimum": 0 }, "otherAllowances": { "type": "string", "maxLength": 1000, "minLength": 0 } }, "required": [ "applicationId", "description", "expireAt", "title", "workCity" ] }, "OfferStatusRequest": { "type": "object", "properties": { "status": { "type": "string", "minLength": 1, "pattern": "^(SENT|NEGOTIATING|ACCEPTED|REJECTED|EXPIRED|WITHDRAWN)$" }, "reason": { "type": "string", "maxLength": 255, "minLength": 0 } }, "required": [ "status" ] }, "OfferUpdateRequest": { "type": "object", "properties": { "title": { "type": "string", "maxLength": 120, "minLength": 0 }, "salaryMin": { "type": "integer", "format": "int32", "minimum": 0 }, "salaryMax": { "type": "integer", "format": "int32", "minimum": 0 }, "salaryCurrency": { "type": "string", "maxLength": 10, "minLength": 0 }, "salaryPeriod": { "type": "string", "pattern": "^(MONTH|YEAR|HOUR)$" }, "workCity": { "type": "string", "maxLength": 80, "minLength": 0 }, "employmentType": { "type": "string", "pattern": "^(FULL_TIME|PART_TIME|INTERN|INTERNSHIP)$" }, "probationMonths": { "type": "integer", "format": "int32", "minimum": 0 }, "benefits": { "type": "string", "maxLength": 2000, "minLength": 0 }, "description": { "type": "string", "maxLength": 5000, "minLength": 0 }, "expireAt": { "type": "string", "format": "date-time" }, "onboardingDate": { "type": "string", "format": "date" }, "baseSalary": { "type": "integer", "format": "int32", "minimum": 0 }, "housingAllowance": { "type": "integer", "format": "int32", "minimum": 0 }, "annualBonusMonths": { "type": "integer", "format": "int32", "minimum": 0 }, "otherAllowances": { "type": "string", "maxLength": 1000, "minLength": 0 } } }, "PersonalizedScoreResponse": { "type": "object", "properties": { "jobId": { "type": "integer", "format": "int64" }, "score": { "type": "number" }, "status": { "type": "string" }, "source": { "type": "string" }, "templateCode": { "type": "string" }, "configuredWeights": { "type": "object", "additionalProperties": { "type": "number" } }, "effectiveWeights": { "type": "object", "additionalProperties": { "type": "number" } }, "dimensionScores": { "type": "object", "additionalProperties": { "type": "number" } }, "coveredWeight": { "type": "number" }, "missingDimensions": { "type": "array", "items": { "type": "string" } } } }, "PrivacySettingsResponse": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64", "example": 1, "nullable": true }, "studentUserId": { "type": "integer", "format": "int64", "example": 2 }, "resumeVisibility": { "$ref": "#/components/schemas/ResumeVisibility", "description": "简历可见性(PRIVATE/APPLIED_COMPANIES/VERIFIED_COMPANIES)", "example": "APPLIED_COMPANIES" }, "contactVisible": { "type": "boolean", "example": true }, "version": { "type": "integer", "format": "int64", "example": 0 }, "createdAt": { "type": "string", "format": "date-time", "nullable": true }, "updatedAt": { "type": "string", "format": "date-time", "nullable": true } } }, "PrivacySettingsUpdateRequest": { "type": "object", "required": [ "resumeVisibility", "contactVisible" ], "properties": { "resumeVisibility": { "$ref": "#/components/schemas/ResumeVisibility", "description": "简历可见性(必填)", "example": "APPLIED_COMPANIES" }, "contactVisible": { "type": "boolean", "description": "联系方式是否对企业可见(必填)", "example": true }, "version": { "type": "integer", "format": "int64", "description": "乐观锁版本号(可选)", "example": 0 } } }, "ResumeVisibility": { "type": "string", "enum": [ "PRIVATE", "APPLIED_COMPANIES", "VERIFIED_COMPANIES" ], "description": "简历可见性:PRIVATE 私有;APPLIED_COMPANIES 仅对企业有效投递可见;VERIFIED_COMPANIES 仅对认证企业可见", "example": "PRIVATE" }, "ReviewDecisionRequest": { "type": "object", "properties": { "decision": { "type": "string", "minLength": 1, "pattern": "^(APPROVED|REJECTED)$" }, "reason": { "type": "string", "maxLength": 500, "minLength": 0 } }, "required": [ "decision" ] }, "ReviewWeightResponse": { "type": "object", "properties": { "source": { "type": "string" }, "templateCode": { "type": "string" }, "configuredWeights": { "type": "object", "additionalProperties": { "type": "number" } }, "updatedAt": { "type": "string", "format": "date-time" } } }, "SaveWeightRequest": { "type": "object", "properties": { "templateCode": { "type": "string" }, "weights": { "type": "object", "additionalProperties": { "type": "number" } } } }, "ScoreRequest": { "type": "object", "properties": { "score": { "type": "integer", "format": "int32", "maximum": 100, "minimum": 0 } }, "required": [ "score" ] }, "ScoreTrendResponse": { "type": "object", "properties": { "companyId": { "type": "integer", "format": "int64" }, "months": { "type": "integer", "format": "int32" }, "items": { "type": "array", "items": { "$ref": "#/components/schemas/TrendItem" } } } }, "SendMessageRequest": { "type": "object", "properties": { "conversationId": { "type": "integer", "format": "int64" }, "content": { "type": "string", "maxLength": 2000, "minLength": 0 } }, "required": [ "content", "conversationId" ] }, "SnapshotHistoryItem": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64" }, "appealId": { "type": "integer", "format": "int64" }, "action": { "type": "string" }, "dimension": { "type": "string" }, "period": { "type": "string" }, "beforeScore": { "type": "number" }, "afterScore": { "type": "number" }, "beforeVersion": { "type": "integer", "format": "int64" }, "afterVersion": { "type": "integer", "format": "int64" }, "beforeRulesVersion": { "type": "string" }, "afterRulesVersion": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" } } }, "StudentMatchRuleRequest": { "type": "object", "properties": { "requiredHrScore": { "type": "integer", "format": "int32", "maximum": 100, "minimum": 0 } }, "required": [ "requiredHrScore" ] }, "StudentPreferenceRequest": { "type": "object", "properties": { "expectedSalaryMin": { "type": "integer", "format": "int32", "minimum": 0 }, "expectedSalaryMax": { "type": "integer", "format": "int32", "minimum": 0 }, "preferredCities": { "type": "array", "items": { "type": "string", "maxLength": 100, "minLength": 1 }, "maxItems": 20, "minItems": 0 }, "employmentTypes": { "type": "array", "items": { "type": "string", "maxLength": 100, "minLength": 1 }, "maxItems": 20, "minItems": 0 }, "preferredIndustries": { "type": "array", "items": { "type": "string", "maxLength": 100, "minLength": 1 }, "maxItems": 20, "minItems": 0 }, "preferredJobTypes": { "type": "array", "items": { "type": "string", "maxLength": 100, "minLength": 1 }, "maxItems": 20, "minItems": 0 }, "remoteAllowed": { "type": "boolean" }, "salaryRangeValid": { "type": "boolean" } } }, "StudentProfileUpdateRequest": { "type": "object", "properties": { "realName": { "type": "string", "maxLength": 50, "minLength": 0 }, "bio": { "type": "string" }, "location": { "type": "string", "maxLength": 100, "minLength": 0 }, "education": { "type": "string", "maxLength": 100, "minLength": 0 }, "school": { "type": "string", "maxLength": 150, "minLength": 0 }, "graduationYear": { "type": "integer", "format": "int32" }, "resumeUrl": { "type": "string", "maxLength": 500, "minLength": 0 }, "skills": { "type": "array", "items": { "type": "string" } } } }, "SubScore": { "type": "object", "properties": { "name": { "type": "string" }, "score": { "type": "number" }, "weight": { "type": "number" }, "description": { "type": "string" } } }, "TagCount": { "type": "object", "properties": { "name": { "type": "string" }, "count": { "type": "integer", "format": "int32" } } }, "TrendItem": { "type": "object", "properties": { "period": { "type": "string" }, "overallScore": { "type": "number" }, "rulesVersion": { "type": "string" }, "dimensions": { "type": "object", "additionalProperties": { "type": "number" } } } }, "VerificationDecisionRequest": { "type": "object", "properties": { "decision": { "type": "string", "minLength": 1 }, "reason": { "type": "string" } }, "required": [ "decision" ] }, "VerificationSubmitRequest": { "type": "object", "properties": { "materialsJson": { "type": "string", "minLength": 1 } }, "required": [ "materialsJson" ] }, "WeightTemplateResponse": { "type": "object", "properties": { "code": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" }, "weights": { "type": "object", "additionalProperties": { "type": "number" } } } }, "InterviewScoreSaveRequest": { "type": "object", "properties": { "technicalScore": { "type": "integer", "minimum": 1, "maximum": 5, "nullable": true }, "communicationScore": { "type": "integer", "minimum": 1, "maximum": 5, "nullable": true }, "problemSolvingScore": { "type": "integer", "minimum": 1, "maximum": 5, "nullable": true }, "roleFitScore": { "type": "integer", "minimum": 1, "maximum": 5, "nullable": true }, "professionalismScore": { "type": "integer", "minimum": 1, "maximum": 5, "nullable": true }, "recommendation": { "type": "string", "enum": [ "STRONG_HIRE", "HIRE", "NEUTRAL", "NO_HIRE" ], "nullable": true, "description": "企业手动选择,不根据 overallScore 自动推导" }, "comment": { "type": "string", "nullable": true } }, "description": "评分草稿保存请求;overallScore 由服务端计算,客户端不得传入" }, "InterviewScoreResponse": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64" }, "interviewId": { "type": "integer", "format": "int64" }, "applicationId": { "type": "integer", "format": "int64" }, "status": { "type": "string", "enum": [ "DRAFT", "SUBMITTED" ] }, "technicalScore": { "type": "integer", "nullable": true }, "communicationScore": { "type": "integer", "nullable": true }, "problemSolvingScore": { "type": "integer", "nullable": true }, "roleFitScore": { "type": "integer", "nullable": true }, "professionalismScore": { "type": "integer", "nullable": true }, "overallScore": { "type": "number", "format": "decimal", "nullable": true, "description": "由服务端 BigDecimal 计算:(t+c+ps+rf+p)/5,保留两位小数 HALF_UP" }, "recommendation": { "type": "string", "enum": [ "STRONG_HIRE", "HIRE", "NEUTRAL", "NO_HIRE" ], "nullable": true }, "comment": { "type": "string", "nullable": true }, "submittedAt": { "type": "string", "format": "date-time", "nullable": true }, "version": { "type": "integer", "format": "int64" }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } }, "description": "面试评分响应(脱敏:不返回 companyUserId/studentUserId/evaluatorUserId/手机号/邮箱)" }, "ApiResponseInterviewScoreResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/InterviewScoreResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "InterviewScoreHistoryItem": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64" }, "scoreId": { "type": "integer", "format": "int64" }, "interviewId": { "type": "integer", "format": "int64" }, "fromStatus": { "type": "string", "enum": [ "DRAFT", "SUBMITTED" ], "nullable": true }, "toStatus": { "type": "string", "enum": [ "DRAFT", "SUBMITTED" ] }, "actorRole": { "type": "string", "example": "COMPANY" }, "snapshot": { "type": "object", "additionalProperties": {} }, "createdAt": { "type": "string", "format": "date-time" } }, "description": "评分历史条目(脱敏:不返回 actorUserId/手机号/邮箱)" }, "ApiResponseListInterviewScoreHistoryItem": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "type": "array", "items": { "$ref": "#/components/schemas/InterviewScoreHistoryItem" } }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "CreateReportRequest": { "type": "object", "properties": { "targetType": { "type": "string", "enum": [ "USER", "MESSAGE" ], "description": "举报目标类型;USER 必填 targetUserId,MESSAGE 必填 messageId" }, "targetUserId": { "type": "integer", "format": "int64", "description": "targetType=USER 时必填" }, "messageId": { "type": "integer", "format": "int64", "description": "targetType=MESSAGE 时必填" }, "category": { "type": "string", "maxLength": 40, "description": "举报分类,如 HARASSMENT" }, "reason": { "type": "string", "minLength": 1, "maxLength": 1000 }, "evidenceUrls": { "type": "array", "items": { "type": "string", "maxLength": 500 }, "description": "最多 5 个,仅 http/https,最多 500 字符" }, "idempotencyKey": { "type": "string", "maxLength": 64, "description": "幂等键(可选)" } } }, "ReportDecisionRequest": { "type": "object", "properties": { "decision": { "type": "string", "enum": [ "RESOLVED", "REJECTED" ] }, "note": { "type": "string", "maxLength": 1000, "description": "REJECTED 必填" } } }, "ReportResponse": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64" }, "targetType": { "type": "string", "enum": [ "USER", "MESSAGE" ] }, "targetUserId": { "type": "integer", "format": "int64" }, "messageId": { "type": "integer", "format": "int64" }, "reportedUserId": { "type": "integer", "format": "int64" }, "category": { "type": "string" }, "reason": { "type": "string" }, "evidenceUrls": { "type": "array", "items": { "type": "string" } }, "status": { "type": "string", "enum": [ "PENDING", "RESOLVED", "REJECTED" ] }, "decision": { "type": "string", "enum": [ "RESOLVED", "REJECTED" ] }, "decisionNote": { "type": "string" }, "decidedAt": { "type": "string", "format": "date-time" }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "messagePreview": { "type": "string", "description": "MESSAGE 举报的脱敏消息预览,不返回会话其他敏感内容" }, "reportedUser": { "$ref": "#/components/schemas/ReportResponseReportedUser" }, "history": { "type": "array", "items": { "$ref": "#/components/schemas/ReportResponseDecisionHistoryItem" } } } }, "ReportResponseReportedUser": { "type": "object", "properties": { "userId": { "type": "integer", "format": "int64" }, "nickname": { "type": "string" }, "role": { "type": "string" } } }, "ReportResponseDecisionHistoryItem": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64" }, "fromStatus": { "type": "string" }, "toStatus": { "type": "string" }, "actorUserId": { "type": "integer", "format": "int64" }, "actorRole": { "type": "string" }, "note": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" } } }, "BlockRelationResponse": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64" }, "blockedUserId": { "type": "integer", "format": "int64" }, "nickname": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" } } }, "ApiResponseReportResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/ReportResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponsePageResponseReportResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/ReportResponse" } }, "totalElements": { "type": "integer", "format": "int64" }, "page": { "type": "integer", "format": "int32" }, "size": { "type": "integer", "format": "int32" } } }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseBlockRelationResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/BlockRelationResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponsePageResponseBlockRelationResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/BlockRelationResponse" } }, "totalElements": { "type": "integer", "format": "int64" }, "page": { "type": "integer", "format": "int32" }, "size": { "type": "integer", "format": "int32" } } }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "CreateAbilityAttemptRequest": { "type": "object", "required": [ "typeCode" ], "properties": { "typeCode": { "type": "string" }, "idempotencyKey": { "type": "string", "maxLength": 64 } } }, "SaveAbilityAnswersRequest": { "type": "object", "required": [ "answers" ], "properties": { "answers": { "type": "array", "items": { "$ref": "#/components/schemas/AbilityAnswerItem" } } } }, "AbilityAnswerItem": { "type": "object", "required": [ "attemptQuestionId", "selectedOptionId" ], "properties": { "attemptQuestionId": { "type": "integer", "format": "int64" }, "selectedOptionId": { "type": "string", "maxLength": 4 } } }, "AbilityTypeResponse": { "type": "object", "properties": { "typeCode": { "type": "string" }, "displayName": { "type": "string" }, "description": { "type": "string" }, "questionCount": { "type": "integer", "format": "int32" }, "attemptQuestionCount": { "type": "integer", "format": "int32" }, "timeLimitMinutes": { "type": "integer", "format": "int32" }, "resultValidDays": { "type": "integer", "format": "int32" }, "status": { "type": "string" } } }, "AbilityAttemptResponse": { "type": "object", "properties": { "attemptId": { "type": "integer", "format": "int64" }, "status": { "type": "string" }, "answeredCount": { "type": "integer", "format": "int32" }, "totalQuestions": { "type": "integer", "format": "int32" }, "completionRate": { "type": "number" }, "startedAt": { "type": "string", "format": "date-time", "nullable": true }, "expiresAt": { "type": "string", "format": "date-time", "nullable": true }, "remainingSeconds": { "type": "integer", "format": "int64", "nullable": true }, "questions": { "type": "array", "items": { "$ref": "#/components/schemas/AbilityAttemptQuestionView" } } } }, "AbilityAttemptQuestionView": { "type": "object", "properties": { "attemptQuestionId": { "type": "integer", "format": "int64" }, "position": { "type": "integer", "format": "int32" }, "itemType": { "type": "string" }, "stem": { "type": "string" }, "options": { "type": "array", "items": { "$ref": "#/components/schemas/AbilityOptionView" } }, "selectedOptionId": { "type": "string" } } }, "AbilityOptionView": { "type": "object", "properties": { "optionId": { "type": "string" }, "text": { "type": "string" } } }, "AbilityResultResponse": { "type": "object", "properties": { "attemptId": { "type": "integer", "format": "int64" }, "typeCode": { "type": "string" }, "status": { "type": "string" }, "validityStatus": { "type": "string" }, "validUntil": { "type": "string", "format": "date-time", "nullable": true }, "dimensionScores": { "type": "array", "items": { "$ref": "#/components/schemas/AbilityDimensionScore" } }, "overallScore": { "type": "number" }, "weaknesses": { "type": "array", "items": { "$ref": "#/components/schemas/AbilityWeakness" } }, "improvementAreas": { "type": "array", "items": { "$ref": "#/components/schemas/AbilityImprovementArea" } }, "radar": { "type": "array", "items": { "$ref": "#/components/schemas/AbilityRadarEntry" } }, "answeredCount": { "type": "integer", "format": "int32" }, "completionRate": { "type": "number" }, "questionFeedback": { "type": "array", "items": { "$ref": "#/components/schemas/AbilityQuestionFeedback" } }, "questionSetVersion": { "type": "string" }, "rulesVersion": { "type": "string" }, "generatedAt": { "type": "string", "format": "date-time" }, "disclaimer": { "type": "string" } } }, "AbilityDimensionScore": { "type": "object", "properties": { "code": { "type": "string" }, "score": { "type": "number" }, "answeredCount": { "type": "integer", "format": "int32" } } }, "AbilityWeakness": { "type": "object", "properties": { "code": { "type": "string" }, "score": { "type": "number" } } }, "AbilityImprovementArea": { "type": "object", "properties": { "dimension": { "type": "string" }, "currentScore": { "type": "number" }, "summary": { "type": "string" }, "actions": { "type": "array", "items": { "type": "string" } } } }, "AbilityRadarEntry": { "type": "object", "properties": { "code": { "type": "string" }, "value": { "type": "number" } } }, "AbilityQuestionFeedback": { "type": "object", "properties": { "attemptQuestionId": { "type": "integer", "format": "int64" }, "position": { "type": "integer", "format": "int32" }, "stem": { "type": "string" }, "selectedOptionId": { "type": "string" }, "awardedScore": { "type": "integer", "format": "int32" }, "maxScore": { "type": "integer", "format": "int32" }, "explanation": { "type": "string" } } }, "AbilityHistoryItem": { "type": "object", "properties": { "attemptId": { "type": "integer", "format": "int64" }, "typeCode": { "type": "string" }, "status": { "type": "string" }, "validityStatus": { "type": "string" }, "overallScore": { "type": "number" }, "answeredCount": { "type": "integer", "format": "int32" }, "completionRate": { "type": "number" }, "startedAt": { "type": "string", "format": "date-time", "nullable": true }, "expiresAt": { "type": "string", "format": "date-time", "nullable": true }, "completedAt": { "type": "string", "format": "date-time", "nullable": true }, "validUntil": { "type": "string", "format": "date-time", "nullable": true } } }, "ApiResponseAbilityTypeResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/AbilityTypeResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseAbilityAttemptResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/AbilityAttemptResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseAbilityResultResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/AbilityResultResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponsePageResponseAbilityHistoryItem": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/AbilityHistoryItem" } }, "totalElements": { "type": "integer", "format": "int64" }, "page": { "type": "integer", "format": "int32" }, "size": { "type": "integer", "format": "int32" } } }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "RiskRuleResponse": { "type": "object", "properties": { "ruleCode": { "type": "string" }, "sourceAction": { "type": "string" }, "thresholdCount": { "type": "integer", "format": "int32" }, "windowMinutes": { "type": "integer", "format": "int32" }, "severity": { "type": "string" }, "enabled": { "type": "boolean" }, "version": { "type": "integer", "format": "int64" } } }, "RiskEventResponse": { "type": "object", "properties": { "eventId": { "type": "integer", "format": "int64" }, "ruleCode": { "type": "string" }, "sourceAction": { "type": "string" }, "severity": { "type": "string" }, "status": { "type": "string" }, "occurrenceCount": { "type": "integer", "format": "int32" }, "windowStartedAt": { "type": "string", "format": "date-time" }, "windowEndedAt": { "type": "string", "format": "date-time" }, "detectedAt": { "type": "string", "format": "date-time" }, "version": { "type": "integer", "format": "int64" } } }, "RiskSeverityCount": { "type": "object", "properties": { "severity": { "type": "string" }, "count": { "type": "integer", "format": "int64" } } }, "RiskRuleCount": { "type": "object", "properties": { "ruleCode": { "type": "string" }, "count": { "type": "integer", "format": "int64" } } }, "RiskOverviewResponse": { "type": "object", "properties": { "openCount": { "type": "integer", "format": "int64" }, "bySeverity": { "type": "array", "items": { "$ref": "#/components/schemas/RiskSeverityCount" } }, "byRule": { "type": "array", "items": { "$ref": "#/components/schemas/RiskRuleCount" } }, "lastDetectedAt": { "type": "string", "format": "date-time", "nullable": true } } }, "RiskTrendPoint": { "type": "object", "properties": { "time": { "type": "string", "format": "date-time" }, "count": { "type": "integer", "format": "int64" } } }, "RiskTrendResponse": { "type": "object", "properties": { "bucket": { "type": "string" }, "items": { "type": "array", "items": { "$ref": "#/components/schemas/RiskTrendPoint" } } } }, "RiskDistributionRow": { "type": "object", "properties": { "ruleCode": { "type": "string" }, "severity": { "type": "string" }, "count": { "type": "integer", "format": "int64" } } }, "RiskDistributionResponse": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/RiskDistributionRow" } } } }, "RiskRuleUpdateRequest": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "thresholdCount": { "type": "integer", "format": "int32" }, "windowMinutes": { "type": "integer", "format": "int32" }, "severity": { "type": "string" }, "expectedVersion": { "type": "integer", "format": "int64" } }, "required": [ "enabled", "thresholdCount", "windowMinutes", "severity", "expectedVersion" ] }, "RiskEventActionRequest": { "type": "object", "properties": { "action": { "type": "string" }, "reasonCode": { "type": "string" }, "expectedVersion": { "type": "integer", "format": "int64" } }, "required": [ "action", "reasonCode", "expectedVersion" ] }, "ApiResponseRiskOverviewResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/RiskOverviewResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseRiskTrendResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/RiskTrendResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseRiskDistributionResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/RiskDistributionResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponsePageResponseRiskEventResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/RiskEventResponse" } }, "totalElements": { "type": "integer", "format": "int64" }, "page": { "type": "integer", "format": "int32" }, "size": { "type": "integer", "format": "int32" } } }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseListRiskRuleResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "type": "array", "items": { "$ref": "#/components/schemas/RiskRuleResponse" } }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseRiskRuleResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/RiskRuleResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseRiskEventResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/RiskEventResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "TalentDiscoveryPreferenceResponse": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "version": { "type": "integer", "format": "int64" }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } } }, "TalentDiscoveryPreferenceUpdateRequest": { "type": "object", "required": [ "enabled" ], "properties": { "enabled": { "type": "boolean" }, "expectedVersion": { "type": "integer", "format": "int64", "minimum": 0 } } }, "TalentDiscoveryCandidateResponse": { "type": "object", "properties": { "candidateKey": { "type": "string" }, "candidateLabel": { "type": "string" }, "city": { "type": "string" }, "education": { "type": "string" }, "graduationYear": { "type": "integer", "format": "int32" }, "skills": { "type": "array", "items": { "type": "string" } }, "fitBand": { "type": "string", "enum": [ "HIGH", "MEDIUM", "BASIC" ] }, "summary": { "type": "string" }, "signalsAvailable": { "type": "array", "items": { "type": "string", "enum": [ "PREFERENCE", "RIASEC", "ABILITY" ] } } } }, "TalentDiscoveryPageResponse": { "type": "object", "properties": { "mode": { "type": "string", "enum": [ "PERSONALIZED", "UNAVAILABLE", "NO_ELIGIBLE_CANDIDATE" ] }, "items": { "type": "array", "items": { "$ref": "#/components/schemas/TalentDiscoveryCandidateResponse" } }, "total": { "type": "integer", "format": "int64" }, "page": { "type": "integer", "format": "int32" }, "size": { "type": "integer", "format": "int32" }, "totalPages": { "type": "integer", "format": "int32" }, "message": { "type": "string" } } }, "ApiResponseTalentDiscoveryPreferenceResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/TalentDiscoveryPreferenceResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseTalentDiscoveryPageResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/TalentDiscoveryPageResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "CreateTalentInvitationRequest": { "type": "object", "required": [ "candidateKey", "message", "idempotencyKey" ], "properties": { "candidateKey": { "type": "string", "maxLength": 128 }, "message": { "type": "string", "minLength": 1, "maxLength": 300 }, "idempotencyKey": { "type": "string", "format": "uuid", "maxLength": 64 } } }, "TalentInvitationDecisionRequest": { "type": "object", "required": [ "decision", "expectedVersion" ], "properties": { "decision": { "type": "string", "enum": [ "ACCEPT", "REJECT" ] }, "expectedVersion": { "type": "integer", "format": "int64", "minimum": 0 } } }, "CompanyTalentInvitationResponse": { "type": "object", "properties": { "invitationId": { "type": "integer", "format": "int64" }, "jobId": { "type": "integer", "format": "int64" }, "jobTitle": { "type": "string" }, "candidateLabel": { "type": "string" }, "message": { "type": "string" }, "status": { "type": "string", "enum": [ "PENDING", "ACCEPTED", "REJECTED", "EXPIRED" ] }, "createdAt": { "type": "string", "format": "date-time" }, "expiresAt": { "type": "string", "format": "date-time" }, "decidedAt": { "type": "string", "format": "date-time" }, "conversationId": { "type": "integer", "format": "int64" } } }, "StudentTalentInvitationResponse": { "type": "object", "properties": { "invitationId": { "type": "integer", "format": "int64" }, "companyId": { "type": "integer", "format": "int64" }, "companyName": { "type": "string" }, "jobId": { "type": "integer", "format": "int64" }, "jobTitle": { "type": "string" }, "jobCity": { "type": "string" }, "message": { "type": "string" }, "status": { "type": "string", "enum": [ "PENDING", "ACCEPTED", "REJECTED", "EXPIRED" ] }, "version": { "type": "integer", "format": "int64" }, "createdAt": { "type": "string", "format": "date-time" }, "expiresAt": { "type": "string", "format": "date-time" }, "decidedAt": { "type": "string", "format": "date-time" }, "conversationId": { "type": "integer", "format": "int64" } } }, "TalentInvitationPageResponseCompanyTalentInvitationResponse": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/CompanyTalentInvitationResponse" } }, "total": { "type": "integer", "format": "int64" }, "page": { "type": "integer", "format": "int32" }, "size": { "type": "integer", "format": "int32" }, "totalPages": { "type": "integer", "format": "int32" } } }, "TalentInvitationPageResponseStudentTalentInvitationResponse": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/StudentTalentInvitationResponse" } }, "total": { "type": "integer", "format": "int64" }, "page": { "type": "integer", "format": "int32" }, "size": { "type": "integer", "format": "int32" }, "totalPages": { "type": "integer", "format": "int32" } } }, "ApiResponseCompanyTalentInvitationResponse": { "type": "object", "properties": { "code": { "type": "integer" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/CompanyTalentInvitationResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseStudentTalentInvitationResponse": { "type": "object", "properties": { "code": { "type": "integer" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/StudentTalentInvitationResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseCompanyTalentInvitationPageResponse": { "type": "object", "properties": { "code": { "type": "integer" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/TalentInvitationPageResponseCompanyTalentInvitationResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseStudentTalentInvitationPageResponse": { "type": "object", "properties": { "code": { "type": "integer" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/TalentInvitationPageResponseStudentTalentInvitationResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "FairnessResponseDistribution": { "type": "object", "properties": { "sampleSize": { "type": "integer" }, "mean": { "type": "number" }, "median": { "type": "number" }, "p10": { "type": "number" }, "p25": { "type": "number" }, "p75": { "type": "number" }, "p90": { "type": "number" }, "min": { "type": "number" }, "max": { "type": "number" }, "standardDeviation": { "type": "number" }, "buckets": { "type": "object", "additionalProperties": { "type": "integer" } }, "concentrationRate": { "type": "number" }, "riskLevel": { "type": "string" }, "availability": { "type": "string" }, "reason": { "type": "string" } } }, "FairnessResponseDimensionMetric": { "type": "object", "properties": { "dimension": { "type": "string" }, "populationSize": { "type": "integer" }, "rowCount": { "type": "integer" }, "missingRowCount": { "type": "integer" }, "validSampleSize": { "type": "integer" }, "confidence": { "type": "string" }, "missingRowRate": { "type": "number" }, "nullScoreRate": { "type": "number" }, "validCoverage": { "type": "number" }, "statusCounts": { "type": "object", "additionalProperties": { "type": "integer" } }, "versionCounts": { "type": "object", "additionalProperties": { "type": "integer" } }, "inconsistentRecordCount": { "type": "integer" }, "unknownStatusCount": { "type": "integer" }, "outOfRangeScoreCount": { "type": "integer" }, "unknownRulesVersionCount": { "type": "integer" }, "distribution": { "$ref": "#/components/schemas/FairnessResponseDistribution" }, "distributionsByRulesVersion": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/FairnessResponseDistribution" } }, "availability": { "type": "string" }, "reason": { "type": "string" } } }, "FairnessResponseOverview": { "type": "object", "properties": { "basis": { "type": "string" }, "scope": { "type": "string" }, "period": { "type": "string" }, "capturedAt": { "type": "string", "format": "date-time" }, "populationSize": { "type": "integer" }, "computableSnapshotRatio": { "type": "number" }, "confidence": { "type": "string" }, "riskLevel": { "type": "string" }, "versionCounts": { "type": "object", "additionalProperties": { "type": "integer" } }, "mixedVersionCount": { "type": "integer" }, "unknownVersionCount": { "type": "integer" }, "distribution": { "$ref": "#/components/schemas/FairnessResponseDistribution" }, "distributionsByRulesVersion": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/FairnessResponseDistribution" } }, "coherentVersionSubset": { "type": "array", "items": { "type": "string" } }, "availability": { "type": "string" }, "reason": { "type": "string" } } }, "FairnessResponseDimensions": { "type": "object", "properties": { "basis": { "type": "string" }, "scope": { "type": "string" }, "period": { "type": "string" }, "capturedAt": { "type": "string", "format": "date-time" }, "dimensions": { "type": "array", "items": { "$ref": "#/components/schemas/FairnessResponseDimensionMetric" } }, "availability": { "type": "string" }, "reason": { "type": "string" } } }, "FairnessResponseUnavailable": { "type": "object", "properties": { "availability": { "type": "string", "enum": [ "UNAVAILABLE" ] }, "reason": { "type": "string" }, "capturedAt": { "type": "string", "format": "date-time" } } }, "FairnessResponseAppeals": { "type": "object", "properties": { "basis": { "type": "string" }, "from": { "type": "string", "format": "date" }, "to": { "type": "string", "format": "date" }, "capturedAt": { "type": "string", "format": "date-time" }, "appealCount": { "type": "integer", "description": "申诉事件数;与按独立候选人数统计的其他字段区分" }, "sampleSize": { "type": "integer" }, "statusCounts": { "type": "object", "additionalProperties": { "type": "integer" } }, "statusEventCounts": { "type": "object", "additionalProperties": { "type": "integer" } }, "statusCandidateCounts": { "type": "object", "additionalProperties": { "type": "integer" } }, "confidence": { "type": "string" }, "approvedEverCount": { "type": "integer" }, "approvalRate": { "type": "number" }, "rollbackExecutionRate": { "type": "number" }, "duplicateAppealCount": { "type": "integer" }, "duplicateAppealRate": { "type": "number" }, "comparableRollbackCount": { "type": "integer", "description": "可比 ROLLBACK 历史行数;仅唯一历史且分数/规则版本合法的申诉" }, "comparableRollbackCandidateCount": { "type": "integer", "description": "可比回滚历史对应的独立候选人数;同一候选人的多份合法申诉只计一人" }, "changedCount": { "type": "integer" }, "changedCandidateCount": { "type": "integer" }, "actualScoreChangeRate": { "type": "number" }, "meanDelta": { "type": "number" }, "meanAbsoluteDelta": { "type": "number" }, "duplicateRollbackHistoryCount": { "type": "integer" }, "invalidScoreRollbackCount": { "type": "integer" }, "ruleVersionChangedRollbackCount": { "type": "integer" }, "reasonCounts": { "type": "object", "additionalProperties": { "type": "integer" } }, "availability": { "type": "string" }, "reason": { "type": "string" }, "exposureAppealRateAvailability": { "type": "string" }, "exposureAppealRateReason": { "type": "string" } } }, "ApiResponseFairnessResponseOverview": { "type": "object", "properties": { "code": { "type": "integer" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/FairnessResponseOverview" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseFairnessResponseDimensions": { "type": "object", "properties": { "code": { "type": "integer" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/FairnessResponseDimensions" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseFairnessResponseUnavailable": { "type": "object", "properties": { "code": { "type": "integer" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/FairnessResponseUnavailable" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseFairnessResponseAppeals": { "type": "object", "properties": { "code": { "type": "integer" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/FairnessResponseAppeals" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "CandidateScoringCoverage": { "type": "object", "properties": { "computableDimensions": { "type": "integer", "format": "int32" }, "totalDimensions": { "type": "integer", "format": "int32" }, "includedDimensions": { "type": "array", "items": { "type": "string" } }, "excludedDimensions": { "type": "array", "items": { "$ref": "#/components/schemas/CandidateScoringExcludedDimension" } } } }, "CandidateScoringExcludedDimension": { "type": "object", "properties": { "dimension": { "type": "string" }, "status": { "type": "string" }, "reason": { "type": "string" } } }, "CandidateScoringRuleContribution": { "type": "object", "properties": { "ruleCode": { "type": "string" }, "outcome": { "type": "string", "enum": [ "APPLIED", "NOT_APPLIED", "MISSING", "EXPIRED", "UNAVAILABLE" ] }, "contribution": { "type": "number", "nullable": true }, "maxContribution": { "type": "number", "nullable": true }, "label": { "type": "string" }, "observation": { "type": "string" }, "explanation": { "type": "string" } } }, "CandidateScoringValidity": { "type": "object", "properties": { "completedAt": { "type": "string", "format": "date-time" }, "validUntil": { "type": "string", "format": "date-time" }, "expired": { "type": "boolean" } } }, "StudentProfileResponse": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64" }, "userId": { "type": "integer", "format": "int64" }, "realName": { "type": "string" }, "bio": { "type": "string" }, "location": { "type": "string" }, "education": { "type": "string" }, "school": { "type": "string" }, "graduationYear": { "type": "integer", "format": "int32" }, "resumeUrl": { "type": "string" }, "skills": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" } } }, "CreateDataExportRequest": { "type": "object", "properties": { "format": { "type": "string" }, "idempotencyKey": { "type": "string", "maxLength": 64 } } }, "DataExportTaskResponse": { "type": "object", "properties": { "taskId": { "type": "integer", "format": "int64" }, "status": { "type": "string" }, "format": { "type": "string" }, "requestedAt": { "type": "string", "format": "date-time" }, "startedAt": { "type": "string", "format": "date-time" }, "completedAt": { "type": "string", "format": "date-time" }, "expiresAt": { "type": "string", "format": "date-time" }, "sizeBytes": { "type": "integer", "format": "int64" }, "downloadAvailable": { "type": "boolean" }, "errorCode": { "type": "string" } } }, "ApiResponseStudentProfileResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/StudentProfileResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseDataExportTaskResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/DataExportTaskResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "MessageResponse": { "type": "object", "description": "脱敏消息响应;TALENT_INVITATION 使用 senderScope 而非 senderUserId", "properties": { "id": { "type": "integer", "format": "int64" }, "conversationId": { "type": "integer", "format": "int64" }, "senderUserId": { "type": "integer", "format": "int64" }, "senderScope": { "type": "string" }, "content": { "type": "string" }, "status": { "type": "string", "enum": [ "SENT", "RECALLED" ] }, "recalledAt": { "type": "string", "format": "date-time" }, "createdAt": { "type": "string", "format": "date-time" }, "isRead": { "type": "boolean" } } }, "MessagePageResponse": { "type": "object", "description": "脱敏消息分页响应", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/MessageResponse" } }, "total": { "type": "integer", "format": "int64" }, "page": { "type": "integer", "format": "int32" }, "size": { "type": "integer", "format": "int32" }, "totalPages": { "type": "integer", "format": "int32" } } }, "ApiResponseMessagePageResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/MessagePageResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponseMessageResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/MessageResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "ApiResponsePageResponseDataExportTaskResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/DataExportTaskResponse" } }, "totalElements": { "type": "integer", "format": "int64" }, "page": { "type": "integer", "format": "int32" }, "size": { "type": "integer", "format": "int32" } } }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "RefreshTokenRequest": { "type": "object", "required": [ "refreshToken" ], "properties": { "refreshToken": { "type": "string", "minLength": 1, "maxLength": 4096 } } }, "TokenPairResponse": { "type": "object", "properties": { "accessToken": { "type": "string" }, "refreshToken": { "type": "string" }, "expiresIn": { "type": "integer", "format": "int64" } } }, "ApiResponseTokenPairResponse": { "type": "object", "properties": { "code": { "type": "integer" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/TokenPairResponse" } } }, "PasswordSetRequest": { "type": "object", "properties": { "smsCode": { "type": "string", "minLength": 1 }, "newPassword": { "type": "string", "minLength": 1 } }, "required": [ "newPassword", "smsCode" ] }, "PasswordResetRequest": { "type": "object", "properties": { "phone": { "type": "string", "minLength": 1, "pattern": "[0-9]{11}" }, "smsCode": { "type": "string", "minLength": 1 }, "newPassword": { "type": "string", "minLength": 1 } }, "required": [ "newPassword", "phone", "smsCode" ] }, "PasswordLoginRequest": { "type": "object", "properties": { "phone": { "type": "string", "minLength": 1, "pattern": "[0-9]{11}" }, "password": { "type": "string", "minLength": 1 } }, "required": [ "password", "phone" ] }, "PasswordChangeRequest": { "type": "object", "properties": { "currentPassword": { "type": "string", "minLength": 1 }, "newPassword": { "type": "string", "minLength": 1 } }, "required": [ "currentPassword", "newPassword" ] }, "PasswordOperationResponse": { "type": "object", "properties": { "passwordConfigured": { "type": "boolean" }, "reauthenticationRequired": { "type": "boolean" } } }, "ApiResponsePasswordOperationResponse": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "data": { "$ref": "#/components/schemas/PasswordOperationResponse" }, "requestId": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } } }, "securitySchemes": { "bearerAuth": { "type": "http", "description": "通过 /auth/login 获取的 Access Token,请求头格式:Authorization: Bearer <token>", "scheme": "bearer", "bearerFormat": "JWT" } } } }