Appearance
定时通知
系统提供账单导入定时提醒,支持多渠道推送,并记录发送日志。
调度
NotificationSchedulingConfig开启@EnableScheduling。NotificationScheduler每分钟检查一次(初始延迟 30 秒):对每个启用的通知配置判断「当前时间是否已到达触发点」(依据周期、提醒时间与星期/日期),到达且存在启用渠道时向所有渠道发送提醒,并更新last_sent_at。- 默认提醒周期为每月 1 日 09:00。
- 首次启用时会将
last_sent_at置为当前,避免启用后立即补发历史提醒。
渠道
NotificationChannelType 定义支持的渠道:
| 渠道 | 说明 |
|---|---|
EMAIL | 邮箱 SMTP(如 QQ 邮箱),动态构建 JavaMailSenderImpl,默认 smtp.qq.com:465 + SSL |
SERVERCHAN | Server 酱 Turbo,推送到个人微信,校验返回 code == 0 |
发送器采用工厂模式:NotificationSender 接口 + NotificationSenderFactory 按类型分发,AbstractHttpNotificationSender 封装 JSON/表单 POST。
配置与日志
t_notification_config:启用开关、周期、每月日期、每周星期、提醒时间、最近发送时间。t_notification_channel:类型、名称、启用、配置 JSON(SMTP 账号或 SendKey)。邮箱密码留空表示不修改,返回时脱敏。t_notification_log:每次发送的结果(成功/失败、渠道类型、说明),面板展示最近 20 条。
接口
NotificationController 提供:配置读写、渠道增删改查与测试、立即发送、发送日志查询。
通知内容
提醒正文会提示导入新账单,并附带 AppConfig.notificationUrl 配置的链接地址(通常指向账单导入页)。