Files
ledgerly-docs/dev/notifications.md
T
rosercode 8bfdde24f2 docs: 定时通知补充飞书自定义机器人渠道说明
定时通知新增飞书渠道后同步文档:使用文档补充飞书渠道的配置方式与示例截图,开发文档补充 FEISHU 渠道类型与发送器实现,并在功能概览、技术栈等处同步“飞书”。

变更内容:
- guide/notifications.md 增加飞书渠道配置项与获取路径,新增飞书渠道配置示例图
- dev/notifications.md 渠道表新增 FEISHU(post 富文本、可选加签),补充 webhookUrl/secret 与 hasSecret 脱敏说明
- guide/introduction.md、guide/settings.md、index.md、dev/architecture.md 同步“飞书”
- scripts/ts/capture-elements.ts 新增 captureChannelFeishu 并纳入 main 全量调用
2026-10-13 12:52:43 +08:00

2.2 KiB

定时通知

系统提供账单导入定时提醒,支持多渠道推送,并记录发送日志。

调度

  • 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
FEISHU 飞书自定义机器人 Webhook,post 富文本(标题保留为卡片标题、正文按行分段),可选加签(timestamp + HMAC-SHA256),校验 code / StatusCode

发送器采用工厂模式:NotificationSender 接口 + NotificationSenderFactory 按类型分发,AbstractHttpNotificationSender 封装 JSON/表单 POST。

配置与日志

  • t_notification_config:启用开关、周期、每月日期、每周星期、提醒时间、最近发送时间。
  • t_notification_channel:类型、名称、启用、配置 JSON(SMTP 账号、Server 酱 SendKey 或飞书 webhookUrl / secret)。邮箱密码与飞书密钥留空表示不修改,返回时脱敏,NotificationChannelVO 以 hasPassword / hasSecret 标记是否已配置。
  • t_notification_log:每次发送的结果(成功/失败、渠道类型、说明),面板展示最近 20 条。

接口

NotificationController 提供:配置读写、渠道增删改查与测试、立即发送、发送日志查询。

通知内容

提醒正文会提示导入新账单,并附带 AppConfig.notificationUrl 配置的链接地址(通常指向账单导入页)。

相关文档