laoyang
47bba2646e
观影照片支持单张删除:编辑表单加 ✕ (#86)
用户:编辑观影记录的时候,那个图片应该可以被删除吧?现在没有删除按钮。
服务端早就有 Movie::deletePhoto()(连存储对象一起删,含视频 thumb_key),
网页端 movies/photo_del 也在用 —— 缺的只是 API 那一层暴露。
服务端:
- photos 子路由从"只 POST"扩为"POST 追加 + DELETE 删除";
- photo_id 走 query(dispatch 只解析到 parts[2],parts[3] 会被丢),
与 trips/<id>/nodes/attach 同口径;
- 删除前校验照片确实属于这条记录,否则 404 —— deletePhoto 内部遇到
错配是"删 0 行 + 静默成功",会让调用方以为删掉了;
- poster 仍只 POST(换海报是覆盖语义,清空请走 PATCH 空 poster_key)。
端上:
- FbMovieMedia 加 id(删除必须按 id,key 只用于取图);
- FbMovieRepo.deletePhoto() → DELETE + query;
- 编辑表单已有照片右上角加 ✕,文案改「已有 N 张(点 ✕ 可删)」;
- deletingPhotoId 防连点(第二次会 404,报错看着像功能坏了);
- 立即提交、不等「保存修改」,与网页 movies/photo_del 同口径;
不加二次确认,与旅程 removePhoto 和网页端一致。
验证:归属校验拦住越权(event_id 错配查询返回 false);临时图入库
5→4 张、库行消失、Storage::exists 由 true 变 false(驱动为 OSS);
真机 ✕ 角标 4 个等距、点掉一张后服务端 4→3、UI 变「已有 3 张」。
hvigorw assembleHap BUILD SUCCESSFUL。
⚠️ 事故:测试时删掉了用户一张真实照片(id=14),OSS 对象随之删除、
Storage::read 返回 404,无版本控制/无回收站/设备无缓存,无法恢复。
教训已写进记忆:验证删除功能绝不拿真实数据当被测对象。
2026-11-06 11:09:55 +08:00
..
2026-11-06 11:09:55 +08:00
2026-10-11 22:07:48 +08:00
2026-10-11 22:07:48 +08:00
2026-10-11 22:07:48 +08:00
2026-10-11 22:07:48 +08:00