- parent: 管理公共依赖 - common: 可公用的代码 - legacy: 原气象预警和责任人管理 - sms: 给防汛专家发送生日和节日短信 - aicc: 联通智能外呼,代码拆分出了模块,但是功能未调试 |
||
|---|---|---|
| .. | ||
| src/main/java/com/whdc/sms | ||
| README.md | ||
| pom.xml | ||
README.md
SMS短信模块
模块概述
SMS模块提供生日短信和主题日短信的自动发送功能,包括:
- 生日短信:自动检测当日生日的专家并发送祝福短信
- 主题日短信:根据配置的主题日信息批量发送通知短信
- 短信日志:记录所有短信发送状态和结果
- 定时任务:自动化的发送和重置机制
重要:模块启用条件
SMS模块采用双重条件控制,必须同时满足以下条件才会启用:
1. 环境条件
spring:
profiles:
active: prod
- 必须在生产环境中(
prodprofile) - 其他环境(dev、test等)不会加载SMS模块
2. 配置条件
enableModules:
sms:
enable: true # 必须显式设置为true
- 必须显式设置
enableModules.sms.enable=true - 默认值为
false,未配置时不会启用
完整启用配置示例
@SpringBootApplication
@Import({SmsModuleConfig.class})
public class Main {
public static void main(String[] args) {
SpringApplication.run(Main.class, args);
}
}
enableModules:
sms:
enable: true
sms:
url: http://your-sms-service-url:port/smtp/http/submit
userName: your-username
serviceCode: your-service-code
userPassword: your-password
功能配置
生日短信配置
- 配置位置:数据库表
sms_birthday - 关键配置:
status: 启用状态(1=启用,0=禁用)template: 短信模板,支持{姓名}占位符executionTmStr: 执行时间(格式:HH:mm:ss)
主题日短信配置
- 配置位置:数据库表
sms_holiday - 关键配置:
status: 启用状态subjectName: 主题名称template: 短信模板,支持{姓名}和{主题}占位符startDate/endDate: 活动日期范围executionTmStr: 执行时间
开发注意事项
默认行为
- SMS模块在非生产环境不会被加载
- 定时任务默认禁用,需要显式配置启用
- 这是出于安全考虑,避免意外发送短信
验证模块是否启用
-
查看启动日志:
SMS定时任务状态: 已启用 # 或 "已禁用" -
检查Spring容器:
- 启用:
SmsHelper、ScheduledTask等bean被加载 - 禁用:这些bean不会被实例化
- 启用:
-
检查Controller:
- 如果模块未启用,SMS相关的API接口将返回404
日志配置
建议在日志配置中添加SMS相关日志级别:
<!-- SMS模块日志 -->
<logger name="com.whdc.sms" level="INFO"/>
故障排查
常见问题
1. SMS模块未启用
症状:启动时看不到SMS相关日志,API返回404 排查:
- 检查
spring.profiles.active是否为prod - 检查
enableModules.sms.enable是否为true
2. 定时任务未执行
症状:到达配置时间但未发送短信 排查:
- 确认
ScheduledTaskbean被加载(查看启动日志) - 检查任务执行时间配置格式
- 查看是否有异常日志
3. 短信发送失败
症状:任务执行但短信未发送成功 排查:
- 检查短信服务配置(URL、认证信息)
- 查看短信日志表
sms_log中的错误信息 - 检查手机号码格式和状态
调试方法
1. 启用详细日志
logging:
level:
com.whdc.sms: DEBUG
org.springframework.scheduling: DEBUG
2. 手动触发测试
通过API接口手动测试短信发送功能:
POST /sms/birthday/get- 获取生日短信配置POST /sms/holiday/page- 查看主题日配置
数据库表说明
sms_birthday- 生日短信配置sms_holiday- 主题日短信配置sms_specialist- 专家信息(包含生日和手机号)sms_log- 短信发送日志
安全提醒
- 生产环境专用:SMS功能仅在生产环境启用
- 显式配置:必须显式配置才能启用,避免误操作
- 短信监控:定期检查短信发送日志,确保功能正常
- 配置保护:短信服务认证信息应妥善保管
联系方式
如有问题请联系开发团队。