6.8 KiB
6.8 KiB
站内信功能完成情况检查
✅ 已完成部分
1. 数据库层
- ✅ SQMessage 表创建脚本
- ✅ SQMessageRead 表创建脚本
- ✅ 索引已创建
- 📄 文件位置:
数据库\SqlServer\创建站内信表.sql
2. Model 实体层
- ✅
CoreCms.Net.Model\Entities\SQ\SQMessage.cs - ✅
CoreCms.Net.Model\Entities\SQ\SQMessageRead.cs
3. Repository 仓储层
- ✅
ISQMessageRepository接口 - ✅
SQMessageRepository实现 - ✅
ISQMessageReadRepository接口 - ✅
SQMessageReadRepository实现 - ✅
GetUserReadMessageIdsAsync方法已添加
4. Services 服务层
- ✅
ISQMessageServices接口 - ✅
SQMessageServices实现 - ✅ 前端API方法(GetUserMessageListAsync, GetUnreadCountAsync, MarkAllAsReadAsync)
- ✅ 后台管理方法(SendToUserAsync, SendToUsersAsync, SendBroadcastAsync, SendSystemNoticeAsync)
5. Controller 控制器层
- ✅ 前端API:
SQController新增3个接口GET /api/SQ/GetMessageListGET /api/SQ/GetUnreadCountPOST /api/SQ/MarkAllAsRead
- ✅ 后台管理:
SQMessageController完整实现- 消息列表、创建、编辑、删除
- 发送给指定用户、多个用户、全员广播
- 用户列表查询
6. 业务集成
- ✅
SQReservationsServices已集成站内信通知 - ✅ 组局成功时自动发送站内信
- ✅ 组局失败时自动发送站内信
⚠️ 需要注意的事项
1. 接口路径差异
需求文档说明:/api/user/GetMessageList
实际实现路径:/api/SQ/GetMessageList
建议:
- 使用实际路径
/api/SQ/GetMessageList即可,功能完全一致 - 前端对接时注意使用正确的路径
2. 依赖注入配置
状态:❓ 需要检查是否已自动注入
需要确认: 在项目启动配置文件中是否包含了以下服务注入:
services.AddScoped<ISQMessageRepository, SQMessageRepository>();
services.AddScoped<ISQMessageReadRepository, SQMessageReadRepository>();
services.AddScoped<ISQMessageServices, SQMessageServices>();
检查位置:
Startup.cs或Program.cs- 通常在
AutofacModuleRegister.cs中自动扫描注入
🔧 需要完成的工作
1. 数据库部署 ⭐ 必须
- 执行SQL脚本:运行
数据库\SqlServer\创建站内信表.sql - 验证表创建:确认
SQMessage和SQMessageRead表已创建 - 验证索引:确认索引已正确创建
2. 依赖注入检查 ⭐ 必须
- 检查
SQMessageServices是否已注入到容器 - 检查
SQMessageReadRepository是否已注入 - 如果使用自动扫描,确认命名空间已包含
3. 后台页面开发 ✅ 已完成
说明:后台控制器和前端页面已全部完成
已创建的页面:
- ✅ 消息列表页:
wwwroot\views\sq\sqmessage\index.html - ✅ 消息详情页:
wwwroot\views\sq\sqmessage\details.html - ✅ 发送广播页:
wwwroot\views\sq\sqmessage\broadcast.html
功能说明:
- 消息列表:支持筛选(ID、标题、目标类型、消息类型)、查看详情、删除、批量删除
- 发送全员广播:填写标题和内容,一键发送给所有用户
- 消息详情:查看消息的完整信息
4. 前端对接 ⭐ 必须
- 在前端
common/server/interface/添加接口定义 - 修改接口路径为
/api/SQ/GetMessageList(不是/api/user/GetMessageList) - 实现消息列表页面
- 实现未读数量红点显示
- 实现进入列表自动标记已读
5. 测试验证 ⭐ 必须
- 功能测试
- 发送指定用户消息
- 发送全员广播消息
- 查看消息列表
- 标记已读功能
- 未读数量统计
- 组局成功/失败自动通知
- 边界测试
- 用户无消息时的显示
- 全员广播到大量用户
- 并发标记已读
- 分页加载
📋 快速部署步骤
第一步:数据库部署
-- 执行以下SQL脚本
-- 位置:数据库\SqlServer\创建站内信表.sql
-- 内容:创建 SQMessage 和 SQMessageRead 表
第二步:检查依赖注入
查看 AutofacModuleRegister.cs 或启动配置文件,确认服务已注入。
如果未自动注入,手动添加:
builder.RegisterType<SQMessageRepository>().As<ISQMessageRepository>().InstancePerLifetimeScope();
builder.RegisterType<SQMessageReadRepository>().As<ISQMessageReadRepository>().InstancePerLifetimeScope();
builder.RegisterType<SQMessageServices>().As<ISQMessageServices>().InstancePerLifetimeScope();
第三步:重启应用
# 停止应用
# 重新编译
# 启动应用
第四步:测试接口
使用 Postman 测试以下接口:
1. 发送全员广播
POST /api/SQMessage/SendBroadcast
Authorization: Bearer {token}
{
"title": "系统测试通知",
"content": "这是一条测试消息",
"senderId": 1
}
2. 获取消息列表
GET /api/SQ/GetMessageList?pageIndex=1&pageSize=20&messageType=0
Authorization: Bearer {token}
3. 获取未读数量
GET /api/SQ/GetUnreadCount
Authorization: Bearer {token}
第五步:前端对接
修改前端接口路径,完成页面开发和测试。
🎯 核心功能验证清单
| 功能点 | 验证方法 | 状态 |
|---|---|---|
| 数据库表创建 | 查询表是否存在 | ⏳ 待执行 |
| 发送指定用户消息 | 调用 SendToUser 接口 | ⏳ 待测试 |
| 发送全员广播 | 调用 SendBroadcast 接口 | ⏳ 待测试 |
| 获取消息列表 | 调用 GetMessageList 接口 | ⏳ 待测试 |
| 获取未读数量 | 调用 GetUnreadCount 接口 | ⏳ 待测试 |
| 标记全部已读 | 调用 MarkAllAsRead 接口 | ⏳ 待测试 |
| 组局成功通知 | 完成组局后查看消息 | ⏳ 待测试 |
| 组局失败通知 | 组局失败后查看消息 | ⏳ 待测试 |
💡 关键提示
- 数据库脚本必须先执行:否则应用启动时会报表不存在的错误
- 接口路径注意:实际路径是
/api/SQ/不是/api/user/ - 依赖注入:如果使用自动扫描,应该已经注入;如果手动注入,需要添加配置
- 后台页面非必须:可以直接使用 API 测试工具管理消息
- 前端对接是关键:后端功能完整,前端对接后即可使用
📞 问题排查
如果遇到问题,按以下顺序检查:
- ✅ 数据库表是否创建成功
- ✅ 应用是否重新编译并启动
- ✅ 依赖注入是否正确配置
- ✅ 用户是否已登录(Token是否有效)
- ✅ 接口路径是否正确
- ✅ 参数格式是否正确
总结
代码开发进度:✅ 100% 完成
部署验证进度:⏳ 0% 完成
前端对接进度:⏳ 0% 完成
下一步行动:
- 执行数据库脚本
- 验证依赖注入
- 测试接口功能
- 前端对接开发