# API 文档:删除语言接口 ## 元数据 - **需求编号**:2026-01-26-002-08-05 - **创建时间**:2026-01-26 - **创建人**:SSOT 架构师 - **父需求**:2026-01-26-002-08-语言管理功能 - **状态**:已完成 ## 功能概述 删除一种或多种语言。 ## 接口信息 ### 基本信息 - **接口名称**:删除语言 - **接口功能**:删除已存在的语言(支持批量删除) - **请求方式**:DELETE - **请求路径**:`/system/language/{ids}` - **权限要求**:`system:language:remove` ### 请求参数 | 参数名 | 类型 | 必选 | 说明 | 示例值 | |--------|------|------|------|--------| | ids | Long[] | 是 | 语言 ID 数组(路径参数) | 1,2,3 | ### 响应参数 | 参数名 | 类型 | 说明 | |--------|------|------| | code | Integer | 状态码(200 成功) | | msg | String | 提示信息 | ### 请求示例 ```http DELETE /system/language/1,2,3 ``` ### 响应示例 ```json { "code": 200, "msg": "删除成功" } ``` ## 错误码 | 错误码 | 说明 | 处理建议 | |--------|------|----------| | 400 | 请求参数错误 | 检查请求参数是否正确 | | 401 | 未登录或登录已过期 | 重新登录 | | 403 | 无权限访问 | 联系管理员分配权限 | | 404 | 语言不存在 | 检查语言 ID 是否正确 | | 409 | 不能删除默认语言 | 先设置其他语言为默认语言 | | 500 | 服务器内部错误 | 联系技术支持 | ## 业务规则 1. **删除规则**: - 支持批量删除多个语言 - 必须提供至少一个有效的语言 ID 2. **数据权限**: - 需要登录用户 - 需要具备 `system:language:remove` 权限 3. **删除限制**: - 不能删除默认语言 - 不能删除正在被用户使用的语言 - 不能删除系统保留的语言(如 zh-CN、en-US) 4. **删除后处理**: - 清除语言列表缓存 - 清除语言详情缓存 - 删除对应的国际化资源文件 - 记录操作日志 5. **级联处理**: - 删除语言后,使用该语言的用户会自动切换到系统默认语言 - 删除语言后,该语言的翻译资源会被删除 ## 缓存策略 - **缓存类型**:Redis - **缓存更新**: - 删除语言后清除该语言的缓存 - 清除所有语言列表缓存 - 清除缓存键模式:`system:language:*` ## 注意事项 1. 删除语言是不可逆操作,请谨慎操作 2. 删除语言前,建议先确认是否有用户正在使用该语言 3. 删除语言后,该语言的翻译资源也会被删除,无法恢复 4. 删除默认语言会失败,需要先设置其他语言为默认语言 5. 建议在删除语言前,先停用该语言,观察一段时间后再删除 6. 批量删除时,如果其中一个语言删除失败,整个操作会回滚