feat: 消息推送自定义模板与独立设置页
后端:
- 新增通知模板表与实体、DTO、Repository、NotificationTemplateService
- 支持 {{variable}} 模板语法,提供模板类型与变量接口
- TelegramNotificationService 改为通过模板渲染发送(ORDER_SUCCESS/ORDER_FAILED/ORDER_FILTERED/CRYPTO_TAIL_SUCCESS/REDEEM_SUCCESS/REDEEM_NO_RETURN)
- 模板 CRUD、重置默认、测试发送接口
- 补全订单过滤相关 i18n key(zh/en/zh-TW)
前端:
- 消息推送设置抽离为独立页 /system-settings/notification
- 系统设置概览改为入口卡片,侧栏增加「消息推送设置」菜单
- NotificationSettingsPage: 机器人配置 + 模板配置双卡片布局(与概览一致)
- 模板配置支持选择类型、编辑内容、变量面板(点击复制、悬停说明)、保存/重置/测试
- 多语言 key 补全(notificationSettings.templates.*、templateTypes.*)
Made-with: Cursor
This commit is contained in:
@@ -1167,7 +1167,42 @@
|
||||
"getChatIdsFailed": "Failed to get Chat IDs",
|
||||
"getChatIdsNoToken": "Please enter Bot Token first",
|
||||
"getChatIdsNoMessage": "Chat ID not found, please send a message to the bot first (e.g., /start), then retry",
|
||||
"getChatIdsButton": "Get Chat ID"
|
||||
"getChatIdsButton": "Get Chat ID",
|
||||
"botConfig": "Bot Configuration",
|
||||
"templateConfig": "Template Configuration",
|
||||
"templates": {
|
||||
"title": "Message Template Configuration",
|
||||
"templateType": "Template Type",
|
||||
"templateContent": "Template Content",
|
||||
"isDefault": "Default Template",
|
||||
"isCustom": "Custom Template",
|
||||
"resetToDefault": "Reset to Default",
|
||||
"resetConfirm": "Are you sure you want to reset to default? Your custom content will be lost.",
|
||||
"resetSuccess": "Reset successfully",
|
||||
"resetFailed": "Reset failed",
|
||||
"saveSuccess": "Saved successfully",
|
||||
"saveFailed": "Save failed",
|
||||
"testSuccess": "Test message sent successfully, please check Telegram",
|
||||
"testFailed": "Failed to send test message",
|
||||
"variables": "Available Variables",
|
||||
"clickToCopy": "Click to copy",
|
||||
"copied": "Copied",
|
||||
"commonVariables": "Common Variables",
|
||||
"orderVariables": "Order Variables",
|
||||
"copyTradingVariables": "Copy Trading Variables",
|
||||
"redeemVariables": "Redeem Variables",
|
||||
"errorVariables": "Error Variables",
|
||||
"filterVariables": "Filter Variables",
|
||||
"strategyVariables": "Strategy Variables"
|
||||
},
|
||||
"templateTypes": {
|
||||
"ORDER_SUCCESS": "Order Success",
|
||||
"ORDER_FAILED": "Order Failed",
|
||||
"ORDER_FILTERED": "Order Filtered",
|
||||
"CRYPTO_TAIL_SUCCESS": "Crypto Spread Strategy Success",
|
||||
"REDEEM_SUCCESS": "Position Redeem Success",
|
||||
"REDEEM_NO_RETURN": "Position Settled (No Return)"
|
||||
}
|
||||
},
|
||||
"telegramConfig": {
|
||||
"title": "Telegram Configuration Guide",
|
||||
|
||||
@@ -1167,7 +1167,42 @@
|
||||
"getChatIdsFailed": "获取 Chat IDs 失败",
|
||||
"getChatIdsNoToken": "请先填写 Bot Token",
|
||||
"getChatIdsNoMessage": "未找到 Chat ID,请先向机器人发送一条消息(如 /start),然后重试",
|
||||
"getChatIdsButton": "获取 Chat ID"
|
||||
"getChatIdsButton": "获取 Chat ID",
|
||||
"botConfig": "机器人配置",
|
||||
"templateConfig": "模板配置",
|
||||
"templates": {
|
||||
"title": "消息模板配置",
|
||||
"templateType": "模板类型",
|
||||
"templateContent": "模板内容",
|
||||
"isDefault": "默认模板",
|
||||
"isCustom": "自定义模板",
|
||||
"resetToDefault": "重置为默认",
|
||||
"resetConfirm": "确定要重置为默认模板吗?您的自定义内容将丢失。",
|
||||
"resetSuccess": "重置成功",
|
||||
"resetFailed": "重置失败",
|
||||
"saveSuccess": "保存成功",
|
||||
"saveFailed": "保存失败",
|
||||
"testSuccess": "测试消息发送成功,请检查 Telegram",
|
||||
"testFailed": "测试消息发送失败",
|
||||
"variables": "可用变量",
|
||||
"clickToCopy": "点击复制",
|
||||
"copied": "已复制",
|
||||
"commonVariables": "通用变量",
|
||||
"orderVariables": "订单变量",
|
||||
"copyTradingVariables": "跟单变量",
|
||||
"redeemVariables": "赎回变量",
|
||||
"errorVariables": "错误变量",
|
||||
"filterVariables": "过滤变量",
|
||||
"strategyVariables": "策略变量"
|
||||
},
|
||||
"templateTypes": {
|
||||
"ORDER_SUCCESS": "订单成功通知",
|
||||
"ORDER_FAILED": "订单失败通知",
|
||||
"ORDER_FILTERED": "订单过滤通知",
|
||||
"CRYPTO_TAIL_SUCCESS": "加密价差策略成功通知",
|
||||
"REDEEM_SUCCESS": "仓位赎回成功通知",
|
||||
"REDEEM_NO_RETURN": "仓位结算(无收益)通知"
|
||||
}
|
||||
},
|
||||
"telegramConfig": {
|
||||
"title": "Telegram 配置说明",
|
||||
|
||||
@@ -1167,7 +1167,42 @@
|
||||
"getChatIdsFailed": "獲取 Chat IDs 失敗",
|
||||
"getChatIdsNoToken": "請先填寫 Bot Token",
|
||||
"getChatIdsNoMessage": "未找到 Chat ID,請先向機器人發送一條消息(如 /start),然後重試",
|
||||
"getChatIdsButton": "獲取 Chat ID"
|
||||
"getChatIdsButton": "獲取 Chat ID",
|
||||
"botConfig": "機器人配置",
|
||||
"templateConfig": "模板配置",
|
||||
"templates": {
|
||||
"title": "消息模板配置",
|
||||
"templateType": "模板類型",
|
||||
"templateContent": "模板內容",
|
||||
"isDefault": "默認模板",
|
||||
"isCustom": "自定義模板",
|
||||
"resetToDefault": "重置為默認",
|
||||
"resetConfirm": "確定要重置為默認模板嗎?您的自定義內容將丟失。",
|
||||
"resetSuccess": "重置成功",
|
||||
"resetFailed": "重置失敗",
|
||||
"saveSuccess": "保存成功",
|
||||
"saveFailed": "保存失敗",
|
||||
"testSuccess": "測試消息發送成功,請檢查 Telegram",
|
||||
"testFailed": "測試消息發送失敗",
|
||||
"variables": "可用變量",
|
||||
"clickToCopy": "點擊複製",
|
||||
"copied": "已複製",
|
||||
"commonVariables": "通用變量",
|
||||
"orderVariables": "訂單變量",
|
||||
"copyTradingVariables": "跟單變量",
|
||||
"redeemVariables": "贖回變量",
|
||||
"errorVariables": "錯誤變量",
|
||||
"filterVariables": "過濾變量",
|
||||
"strategyVariables": "策略變量"
|
||||
},
|
||||
"templateTypes": {
|
||||
"ORDER_SUCCESS": "訂單成功通知",
|
||||
"ORDER_FAILED": "訂單失敗通知",
|
||||
"ORDER_FILTERED": "訂單過濾通知",
|
||||
"CRYPTO_TAIL_SUCCESS": "加密價差策略成功通知",
|
||||
"REDEEM_SUCCESS": "倉位贖回成功通知",
|
||||
"REDEEM_NO_RETURN": "倉位結算(無收益)通知"
|
||||
}
|
||||
},
|
||||
"telegramConfig": {
|
||||
"title": "Telegram 配置說明",
|
||||
|
||||
Reference in New Issue
Block a user