feat(biz_project+meeting): 项目+会议软删除级联, admin/manager 双角色可删

biz_project* 5 表级联 (project/plan/assign/sponsor_assign/rating) + 会议链
biz_meeting* 6 表级联 admin-only → admin/manager 可删

DB:
- 5 ALTER TABLE 加 is_deleted TINYINT DEFAULT 0 NOT NULL (biz_project/plan/assign/sponsor_assign/rating)
- biz_meeting* 6 表已有 is_deleted 列 (上轮已 ALTER)

Domain (10 文件):
- 5 个 biz_project* 加 isDeleted 字段
- 6 个 biz_meeting* 加 isDeleted 字段
- (audit_log 列名特殊: 使用 deleted 字段存操作类型, 不冲突)

Mapper 接口 (10 文件):
- 5 个 project mapper 加 softDeleteByProjectId / softDeleteByProjectNo
- 5 个 meeting mapper 加 softDeleteByMeetingId
- BizMeetingMapper 加 selectIdListByProjectId (级联调用)

Mapper XML (10 文件):
- 所有 SELECT 加 is_deleted=0 过滤 (含 JOIN 子查询)
- 加 softDeleteByXxx UPDATE (10 处)
- BizMeetingMapper.xml 的 plan LEFT JOIN 加 proj.is_deleted=0 防悬挂

Service (3 文件):
- IBizProjectService.softDeleteCascade/Batch (含会议链调用)
- IBizMeetingService.softDeleteCascade/Batch
- BizProjectServiceImpl / BizMeetingServiceImpl @Transactional(rollbackFor=Exception.class)

Controller (2 文件):
- BizProjectController.DELETE 改 admin+manager 可删
- BizMeetingController.DELETE 改 admin+manager 可删 (放宽权限)
This commit is contained in:
郭庆泰
2026-08-22 20:16:40 +08:00
parent da46a45682
commit 0eb5da6ea8
40 changed files with 367 additions and 45 deletions
@@ -13,6 +13,7 @@
<result property="createTime" column="create_time" />
<result property="sponsorUserName" column="sponsor_user_name" />
<result property="monitorUserName" column="monitor_user_name" />
<result property="isDeleted" column="is_deleted" />
</resultMap>
<insert id="insertAssign" parameterType="BizProjectSponsorAssign" useGeneratedKeys="true" keyProperty="id">
@@ -27,6 +28,11 @@
delete from biz_project_sponsor_assign where project_id = #{projectId}
</delete>
<!-- 软删除: 项目级联删除时按 project_id (String) 置 is_deleted=1 -->
<update id="softDeleteByProjectId" parameterType="String">
update biz_project_sponsor_assign set is_deleted = 1 where project_id = #{projectId}
</update>
<select id="selectByProjectId" resultMap="BaseResultMap">
SELECT a.*,
s.user_name AS sponsor_user_name,
@@ -34,7 +40,7 @@
FROM biz_project_sponsor_assign a
LEFT JOIN sys_user s ON a.sponsor_user_id = s.user_id
LEFT JOIN sys_user m ON a.monitor_user_id = m.user_id
WHERE a.project_id = #{projectId}
WHERE a.project_id = #{projectId} and a.is_deleted = 0
ORDER BY a.create_time DESC
</select>
</mapper>