fix: template mesage send
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
package v2
|
package v2
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"message-nest/models"
|
"message-nest/models"
|
||||||
"message-nest/pkg/app"
|
"message-nest/pkg/app"
|
||||||
@@ -21,6 +22,11 @@ type SendMessageByTemplateReq struct {
|
|||||||
Recipients []string `json:"recipients" label:"接收者列表"`
|
Recipients []string `json:"recipients" label:"接收者列表"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type TemplatePlaceholder struct {
|
||||||
|
Key string `json:"key"`
|
||||||
|
Default string `json:"default"`
|
||||||
|
}
|
||||||
|
|
||||||
// DoSendMessageByTemplate 使用模板发送消息
|
// DoSendMessageByTemplate 使用模板发送消息
|
||||||
func DoSendMessageByTemplate(c *gin.Context) {
|
func DoSendMessageByTemplate(c *gin.Context) {
|
||||||
var (
|
var (
|
||||||
@@ -54,6 +60,24 @@ func DoSendMessageByTemplate(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 填充默认占位符
|
||||||
|
if template.Placeholders != "" {
|
||||||
|
var placeholderDefs []TemplatePlaceholder
|
||||||
|
if err := json.Unmarshal([]byte(template.Placeholders), &placeholderDefs); err == nil {
|
||||||
|
if req.Placeholders == nil {
|
||||||
|
req.Placeholders = make(map[string]interface{})
|
||||||
|
}
|
||||||
|
for _, def := range placeholderDefs {
|
||||||
|
// 如果请求中没有该占位符,且配置了默认值,则使用默认值
|
||||||
|
if _, exists := req.Placeholders[def.Key]; !exists && def.Default != "" {
|
||||||
|
req.Placeholders[def.Key] = def.Default
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
logrus.Errorf("解析模板占位符配置失败: %v", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 替换占位符
|
// 替换占位符
|
||||||
textContent := replacePlaceholders(template.TextTemplate, req.Placeholders)
|
textContent := replacePlaceholders(template.TextTemplate, req.Placeholders)
|
||||||
htmlContent := replacePlaceholders(template.HTMLTemplate, req.Placeholders)
|
htmlContent := replacePlaceholders(template.HTMLTemplate, req.Placeholders)
|
||||||
|
|||||||
Reference in New Issue
Block a user