验证状态:已源码核验、未联调;适用基线:Web
7fe6dd10、services89bd222c;核验日期:2026-09-12
按 translationId 删除一条翻译词条(逻辑删除)。当前 Web 翻译列表行内删除使用本操作。
| 页面/功能 | 角色或空间分支 | 调用证据 |
|---|---|---|
| 列表行内删除 | 前端入口要求 administrator 或 configuration-translation:delete(route.tsx:30-33);且只对不属于当前租户前缀的行显示删除(route.tsx:312) |
app/routes/($lng).$spaceId.configuration.translation._index/route.tsx:373-389 |
| 项 | 值 |
|---|---|
| operationId | http-delete-main-service-system-api-configuration-translation-removebyid-4a07dd36 |
| method + path | DELETE /main-service/system-api/configuration/translation/removeById |
| base URL | 当前 Web 使用同源相对 URL |
| headers | Accept: application/json;charset=UTF-8;Authorization: Bearer <token> |
| 序列化 | query 由 qs.stringify(params, { arrayFormat: "repeat" }) 构造(translationApi.ts:6) |
需要有效登录态,并满足 administrator 角色或 configuration-translation:delete(TranslationController.java:88)。数据行受租户拦截器约束。认证与空间。
| JSON 路径/参数 | JSON 类型 | 位置 | 必填 | 可空 | 默认值 | 枚举/范围/单位 | 说明 | 字段证据 |
|---|---|---|---|---|---|---|---|---|
id |
string | query | 是 | 否 | 无 | @NotBlank("id Cannot be empty.") |
翻译主键 | TranslationController.java:90-92 |
| JSON 路径 | JSON 类型 | 出现条件 | 可空 | 枚举/范围/单位 | 说明 | 字段证据 |
|---|---|---|---|---|---|---|
timestamp/status/error/localizedError/path |
同信封 | JSON 响应 | — | — | 成功 status=200 |
gt-common-core/src/main/java/tech/gt/api/ApiResult.java |
extraData |
object | 成功 | 否 | — | 恒为 {} |
同上 |
data |
boolean | 业务完成 | 否 | — | removeById 结果;逻辑删除置 delete_time(@TableLogic,Translation.java:372-374),不可当 affected-rows 用 |
TranslationController.java:93;TranslationService.java:43-46 |
副作用链:TranslationListener 无 remove 专用通道;删除走 removeById 后,视图刷新依赖后续写通道的 requestPublishInNextRound 或 TRANSLATION_INSERT 全量发布。删除后视图何时移除该词条的触发链未由本仓源码闭合(见缺口)。
status=200 表示逻辑删除已执行;列表页 onSuccess 后 reload 重读。最终翻译视图的移除时机是异步且触发链未闭合的。
按已核验契约构造的示例,不是真实联调记录。
请求:DELETE /main-service/system-api/configuration/translation/removeById?id=tr-01
成功响应:
认证失败/权限失败/请求校验失败。逻辑删除可按同参数重试;删除不存在的 id 亦返回成功语义(removeById 对未命中行返回 false 不抛错——与票 15 八族 remove 的现行行为一致)。
无长连接资源。删除后列表页 reload(route.tsx:376-388)。
删除触发最终翻译视图刷新的通道未由本仓源码闭合(Listener 只有 save/insert/updateById/importList 四个消费方法),视图中已删词条的移除时机缺证。 仅完成双仓静态源码核验,未执行真实 HTTP、数据库联调。
| 结论 | 状态 | 仓库/基线 | 路径、符号及定位 | 内容指纹(脏文件) |
|---|---|---|---|---|
| Web 方法、路径、序列化与消费 | 已源码核验 | web 7fe6dd10 |
translationApi.ts:6 configurationTranslationRemoveByIdApi;route.tsx:373-389 |
证据文件与 HEAD 一致 |
| 权限、输入、输出和完成语义 | 已源码核验 | services 89bd222c |
TranslationController.java:89 removeById;TranslationService.java:43-46;Translation.java:372-374 @TableLogic |
证据文件与 HEAD 一致 |
| 视图刷新触发链 | 缺口 | services 89bd222c |
TranslationListener.java:52-114(无 remove 通道) |
证据文件与 HEAD 一致 |
| 真实部署联调 | 未执行 | — | 未发送请求 | — |