# 通知公告|任务拆解清单(MVP) 更新时间:2025-10-19 ## 后端(ruoyi-manage) - [ ] Domain:`Notice`、`NoticeScope`、`NoticeAttachment`、`NoticeRead`(含审计/软删字段) - [ ] Mapper 接口与 XML:分页查询(含可见范围 OR 过滤)、详情聚合、附件与范围的级联维护 - [ ] Service:`INoticeService`、`NoticeServiceImpl`(发布/撤回/置顶、阅读回执、编辑计数、幂等、事务) - [ ] Controller:`/manage/notice` 路由,权限注解与参数校验(JSR-303) - [ ] 可见范围过滤:基于当前用户的 角色/部门/岗位(与 `sys_role/sys_dept/sys_post` 逻辑关联) - [ ] 过期策略:`includeExpired=false` 默认过滤;详情标注 `expired` - [ ] OSS 附件校验:白名单与大小上限(20MB) - [ ] 单元测试:成功/失败/权限 三类场景;阅读回执与置顶/撤回链路 ## 前端(frontend) - [ ] API 封装:`src/api/notice.ts`(list/get/add/update/remove/publish/retract/pin) - [ ] 管理视图:`src/views/manage/notice/index.vue`(表格、筛选、置顶、发布/撤回、删除) - [ ] 编辑弹窗/页:支持富文本(复用 RuoYi 富文本组件)、附件列表(OSS 上传 URL)、可见范围选择器(角色/部门/岗位多选) - [ ] 列表已读标识:根据 `read` 字段展示标签或高亮 - [ ] 详情页:渲染 `contentHtml`、附件下载、过期标注 - [ ] 权限按钮:`v-hasPermi` 对齐后端 `@PreAuthorize` ## 菜单与权限(RuoYi 后台) - [ ] 新增目录与菜单:`通知公告` → `公告管理`(路由 `/manage/notice`) - [ ] 按钮权限:`manage:notice:list|get|add|edit|remove|publish|pin` - [ ] 角色授权:将按钮分配给 `staff` 与 `admin/super_admin`;`user/major_lead/librarian` 只读 ## 文档与验证 - [x] 需求文档:`docs/requirements/通知公告.md` - [x] SQL 草案:`book-mis.sql` - [x] API 文档:`docs/api/通知公告.md` - [x] Apifox 指南:`docs/apifox/通知公告.md` - [ ] 模块报告(ER/流程/权限矩阵/限制) ## 提交建议 - 首次提交:生成后端骨架 + 前端 API 封装与基础列表页(占位视图),保证可运行 - 后续迭代:逐步补齐编辑/附件/范围选择器与测试用例