# 通知公告模块 ## 功能概述 管理系统内部通知公告的发布、已读/未读状态管理。支持全员公告和指定用户通知。 ## 通知类型 | 类型 | 说明 | |------|------| | `type=0` | 全员公告(仅平台管理员可发) | | `type>0` | 指定用户通知 | ## 核心流程 ```mermaid graph TB A[管理员发送通知] --> B{type=0?} B -->|是| C[全员公告
所有管理员可见] B -->|否| D[指定用户通知
仅选中用户可见] C --> E[用户查看已读] D --> E E --> F{全部已读?} F -->|是| G[通知状态标记为已读] F -->|否| H[保持未读状态] ``` ## 数据模型 | 模型 | 表名 | 说明 | |------|------|------| | `AdminNoticeModel` | `xk_admin_notice` | 通知主体(标题、内容、类型、发布人) | | `AdminNoticeRelationsModel` | `xk_admin_notice_relations` | 通知-用户关联(已读状态) | ### 通知字段 | 字段 | 说明 | |------|------| | `title` | 通知标题 | | `detail` | 摘要 | | `content` | 详细内容 | | `type` | 通知类型(0=全员) | | `edit_type` | 编辑类型 | | `user_id` | 发布人 ID | | `status` | 全局已读状态(0=未全读, 1=全部已读) | ## 对应 API | 方法 | 路径 | 说明 | |------|------|------| | GET | `api/admin/notice/list` | 通知列表(当前用户) | | GET | `api/admin/notice/detail` | 通知详情(自动标记已读) | | POST | `api/admin/notice/read` | 标记单条已读 | | POST | `api/admin/notice/read-all` | 全部已读 | | POST | `api/admin/notice/send` | 发送通知 | | GET | `api/admin/notice/user-option` | 接收人下拉列表 | ## 关联类 | 类 | 路径 | 说明 | |----|------|------| | `NoticeController` | `app/Service/admin/notice/NoticeController.php` | 控制器 | | `NoticeService` | `app/Service/admin/notice/NoticeService.php` | 服务层 | | `SendToUserNoticeJob` | `app/Jobs/admin/notices/SendToUserNoticeJob.php` | 异步发送 Job |