fxkh-txl-service/module-sms
李一帆 6398fe6ea4 refactor: 重构了项目结构,拆分出parent,common,legacy,sms,aicc模块
- parent: 管理公共依赖
- common: 可公用的代码
- legacy: 原气象预警和责任人管理
- sms: 给防汛专家发送生日和节日短信
- aicc: 联通智能外呼,代码拆分出了模块,但是功能未调试
2025-10-30 15:23:03 +08:00
..
src/main/java/com/whdc/sms refactor: 重构了项目结构,拆分出parent,common,legacy,sms,aicc模块 2025-10-30 15:23:03 +08:00
README.md refactor: 重构了项目结构,拆分出parent,common,legacy,sms,aicc模块 2025-10-30 15:23:03 +08:00
pom.xml refactor: 重构了项目结构,拆分出parent,common,legacy,sms,aicc模块 2025-10-30 15:23:03 +08:00

README.md

SMS短信模块

模块概述

SMS模块提供生日短信和主题日短信的自动发送功能包括

  • 生日短信:自动检测当日生日的专家并发送祝福短信
  • 主题日短信:根据配置的主题日信息批量发送通知短信
  • 短信日志:记录所有短信发送状态和结果
  • 定时任务:自动化的发送和重置机制

重要:模块启用条件

SMS模块采用双重条件控制,必须同时满足以下条件才会启用:

1. 环境条件

spring:
  profiles:
    active: prod
  • 必须在生产环境中(prod profile
  • 其他环境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模块在非生产环境不会被加载
  • 定时任务默认禁用,需要显式配置启用
  • 这是出于安全考虑,避免意外发送短信

验证模块是否启用

  1. 查看启动日志

    SMS定时任务状态: 已启用  # 或 "已禁用"
    
  2. 检查Spring容器

    • 启用:SmsHelperScheduledTask 等bean被加载
    • 禁用这些bean不会被实例化
  3. 检查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. 定时任务未执行

症状:到达配置时间但未发送短信 排查

  • 确认 ScheduledTask bean被加载查看启动日志
  • 检查任务执行时间配置格式
  • 查看是否有异常日志

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 - 短信发送日志

安全提醒

  1. 生产环境专用SMS功能仅在生产环境启用
  2. 显式配置:必须显式配置才能启用,避免误操作
  3. 短信监控:定期检查短信发送日志,确保功能正常
  4. 配置保护:短信服务认证信息应妥善保管

联系方式

如有问题请联系开发团队。