1.8 KiB
1.8 KiB
流程列表项目删除与恢复后端实施计划
目标
在项目管理后端将删除改为业务逻辑删除,只更新 ccdi_project 主表状态与删除标记,不删除项目内上传记录、流水、标签结果、证据等关联数据。管理员范围按 admin 与 manager 执行,普通用户仅允许删除本人创建项目。
实施内容
- 项目状态新增
5-已删除,同步常量、实体注释、状态统计 VO、状态文案、初始化 SQL 与迁移 SQL。 - 项目删除接口保留原路径,入口权限允许拥有项目列表访问的用户进入,业务权限由
CcdiProjectAccessService判断:admin/manager可删除全部,普通用户仅可删除本人创建项目。 - 删除实现改为 Mapper 专用更新语句,仅设置
status='5'、del_flag='2'、update_by、update_time,不调用 MyBatis PlusdeleteById,不操作关联表。 - 新增恢复接口
POST /ccdi/project/{projectId}/restore,仅admin/manager可恢复status='5' AND del_flag='2'的项目,恢复为status='1'、del_flag='0'、is_archived=0。 - 列表查询增加
includeDeleted:默认只查del_flag='0'且排除status='5';仅管理员查询已删除列表时查del_flag='2' AND status='5'。 - 状态统计增加
status5,仅管理员返回已删除数量,普通用户返回 0。 - 详情、操作、归档、打标状态流转等链路对已删除项目按不可读或不可操作处理,异步状态更新不得覆盖已删除状态。
验证范围
后端定向测试覆盖删除只更新项目主表、恢复到已完成、普通入口可进入业务删除校验、默认列表与已删除列表条件、状态字典与迁移 SQL、已删除状态不可被异步打标状态覆盖。