feat: 添加面试邀约删除接口及相关服务实现

This commit is contained in:
2026-07-23 16:41:57 +08:00
parent 397e36144a
commit ba9f32fd02
6 changed files with 354 additions and 0 deletions

View File

@@ -0,0 +1,92 @@
# 移动端面试邀约删除接口
## 1. 接口说明
求职者在移动端删除自己收到的面试邀约。接口同时支持单个删除和批量删除;服务端根据登录 Token 自动识别当前用户,客户端不需要也不能传递 `userId`
删除采用逻辑删除:记录会被标记为已删除,后续调用面试邀约列表接口时不会再返回该记录。
## 2. 接口地址
`DELETE /app/interview/{ids}`
## 3. 鉴权
请求头需携带已登录移动端用户的 Token
```http
Authorization: Bearer <移动端登录 Token>
```
未登录时,接口返回业务码 `500` 和提示信息“未登录”。
## 4. 路径参数
| 参数名 | 位置 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- | --- |
| ids | Path | Long / Long[] | 是 | 面试邀约 ID。单个 ID 直接传递;批量 ID 使用英文逗号 `,` 分隔。 |
## 5. 请求示例
### 5.1 删除单个面试邀约
```http
DELETE /app/interview/12
Authorization: Bearer <移动端登录 Token>
```
### 5.2 批量删除面试邀约
```http
DELETE /app/interview/12,13,14
Authorization: Bearer <移动端登录 Token>
```
### 5.3 cURL 示例
```bash
curl -X DELETE "https://<后端地址>/app/interview/12,13,14" \
-H "Authorization: Bearer <移动端登录 Token>"
```
## 6. 成功响应
`data` 为实际删除的面试邀约数量。
```json
{
"code": 200,
"msg": "操作成功",
"data": 3
}
```
## 7. 失败响应
### 7.1 未登录
```json
{
"code": 500,
"msg": "未登录"
}
```
### 7.2 没有可删除的邀约
当全部 ID 不存在、已删除,或均不属于当前登录用户时,实际删除数量为 `0`,接口返回:
```json
{
"code": 500,
"msg": "操作失败"
}
```
## 8. 删除规则
1. 服务端只会删除 `id` 在请求参数内且 `user_id` 等于当前登录用户 ID 的记录。
2. 传入他人的面试邀约 ID 不会删除他人的数据。
3. 批量请求中同时包含本人和他人的邀约时,仅删除本人的记录;成功响应中的 `data` 是实际删除数量,不会逐条返回未删除 ID 的原因。
4. 删除为逻辑删除,记录的 `del_flag` 更新为已删除标识,移动端列表 `GET /app/interview/list` 不再展示该记录。
5. 前端收到 `code: 200` 后应刷新面试邀约列表;若需要确保全部选中记录都已删除,可将响应中的 `data` 与本次提交的 ID 数量进行比较。