Files
kt-financial-system/apps/backend
你的用户名 6108b9c5ed
Some checks failed
Deploy to Production / Build and Test (push) Has been cancelled
Deploy to Production / Deploy to Server (push) Has been cancelled
feat: 添加Telegram通知增强功能
 新增功能:
- 通知频率控制(防止消息轰炸)
- 消息去重机制(5分钟内相同内容不重复发送)
- 失败重试机制(最多3次重试)
- 通知历史记录(完整的发送日志)
- 优先级标识(低/普通/高/紧急)
- 批量通知支持(预留功能)

📊 数据库增强:
- telegram_notification_configs 新增字段:
  - priority: 通知优先级
  - rate_limit_seconds: 频率限制(秒)
  - batch_enabled: 批量通知开关
  - batch_interval_minutes: 批量间隔
  - retry_enabled: 重试开关
  - retry_max_attempts: 最大重试次数

- telegram_notification_history 新表:
  - 记录所有通知发送历史
  - 支持状态追踪(pending/sent/failed)
  - 支持重试计数
  - 支持错误信息记录

🔧 核心实现:
- telegram-bot-enhanced.ts: 增强版通知引擎
  - generateContentHash(): 内容hash生成
  - checkRateLimit(): 频率限制检查
  - isDuplicateMessage(): 消息去重
  - recordNotification(): 记录通知历史
  - updateNotificationStatus(): 更新通知状态
  - getPendingRetries(): 获取待重试通知
  - notifyTransactionEnhanced(): 增强版通知
  - retryFailedNotifications(): 失败重试

 测试结果:
- Bot Token: 8270297136:AAEek5CIO8RDudo8eqlg2vy4ilcyqQMoEQ8
- Chat ID: 1102887169
- Bot用户名: @ktcaiwubot
- 测试消息:  发送成功
2025-11-04 23:22:39 +08:00
..
2025-11-04 23:15:19 +08:00
2025-11-04 16:06:44 +08:00

@vben/backend-mock

Description

Vben Admin 数据 mock 服务,没有对接任何的数据库,所有数据都是模拟的,用于前端开发时提供数据支持。线上环境不再提供 mock 集成,可自行部署服务或者对接真实数据,由于 mock.js 等工具有一些限制,比如上传文件不行、无法模拟复杂的逻辑等,所以这里使用了真实的后端服务来实现。唯一麻烦的是本地需要同时启动后端服务和前端服务,但是这样可以更好的模拟真实环境。该服务不需要手动启动,已经集成在 vite 插件内,随应用一起启用。

Running the app

# development
$ pnpm run start

# production mode
$ pnpm run build

Telegram Webhook 集成

财务系统新增交易后可自动通知本地的 Telegram 机器人,默认会将交易数据通过以下 Webhook 发送:

  • http://192.168.9.28:8889/webhook/transaction
  • 认证密钥:ktapp.cc

如需自定义目标地址或密钥,可在运行前设置以下环境变量:

export TELEGRAM_WEBHOOK_URL="http://<bot-host>:8889/webhook/transaction"
export TELEGRAM_WEBHOOK_SECRET="自定义密钥"

也可以使用旧变量 FINANCE_BOT_WEBHOOK_URLFINANCE_BOT_WEBHOOK_SECRET 进行兼容配置。