feat(wm-notify): #26 消息通知模块(短信+Push+WebSocket+邮件+通知管理)
将原孤儿提交 bb3b49f9 的完整实现移植到基于 master 的干净分支,并修复若干问题。
实现内容(wm-notify 模块):
- channel 层: Notifier 接口 + Sms/Push/Email/WebSocket 4 渠道实现
- WebSocket: WebSocketHandler 会话管理 + Redis pub/sub 多实例推送 + 心跳
- 模板/日志: NotifyTemplate/NotifyLog 实体 + Mapper + Service(MyBatis-Plus)
- 通知分发: NotifyService 模板渲染 + 多渠道分发 + 失败重试(@Async)
- 管理 API: NotifyController + NotifyTemplateController + NotifyLogController
- DDL: notify_template/notify_log 表 + 默认模板数据
- 单元测试: NotifyServiceImplTest + NotifierValidateTest
适配 master 的修正:
- pom 改用 SB3 坐标(mybatis-plus-spring-boot3-starter/sa-token-spring-boot3)
- 去除重复的根 pom.xml 与 wm-common 基础类(复用 master 已有)
- javax.mail -> jakarta.mail(EmailNotifier 改用 JavaMailSender)
- fastjson2 -> Jackson(项目统一序列化方案)
- R.success/failed -> R.ok/fail(匹配 wm-common 的 R 类)
- @Async private sendAsync -> public dispatchAsync + @Lazy 自注入(修复异步失效)
- System.out.println -> slf4j logger
- 删除 master 上路径错误的 notify/NotificationTest.java(2处)
- Controller 路径统一为 /api/notify/*
API 符合设计文档 1.6。分支重建为干净单提交,覆盖原孤儿分支。