|
@@ -1,12 +1,14 @@
|
|
|
package user
|
|
|
|
|
|
import (
|
|
|
+ "bytes"
|
|
|
"encoding/json"
|
|
|
logger "eta/eta_mini_ht_api/common/component/log"
|
|
|
userDao "eta/eta_mini_ht_api/models/user"
|
|
|
"fmt"
|
|
|
"strconv"
|
|
|
"strings"
|
|
|
+ "text/template"
|
|
|
)
|
|
|
|
|
|
type MessageDTO struct {
|
|
@@ -28,6 +30,8 @@ const (
|
|
|
ReportMessageTemplate = "您关注的研究员%v更新了一篇报告"
|
|
|
VideoMessageTemplate = "您关注的研究员%v更新了一个视频"
|
|
|
AudioMessageTemplate = "您关注的研究员%v更新了一个音频"
|
|
|
+
|
|
|
+ RefundMessageTemplate = "订单:{{.ProductOrderNo}},姓名:{{.RealName}},退款{{.Result}}!"
|
|
|
)
|
|
|
|
|
|
type MessageInfo struct {
|
|
@@ -53,6 +57,8 @@ func CreateMessage(meta MetaInfoDTO) (err error) {
|
|
|
message = fmt.Sprintf(VideoMessageTemplate, content.AuthorName)
|
|
|
case userDao.AudioSourceType:
|
|
|
message = fmt.Sprintf(AudioMessageTemplate, content.AuthorName)
|
|
|
+ case userDao.RefundSourceType:
|
|
|
+ message, _ = generateMessage(nil, RefundMessageTemplate)
|
|
|
}
|
|
|
for _, user := range users {
|
|
|
id, _ := strconv.Atoi(user)
|
|
@@ -74,7 +80,17 @@ func CreateMessage(meta MetaInfoDTO) (err error) {
|
|
|
}
|
|
|
return
|
|
|
}
|
|
|
-
|
|
|
+func generateMessage(data interface{}, tmpl string) (message string, err error) {
|
|
|
+ t := template.Must(template.New("messageTemplate").Parse(tmpl))
|
|
|
+ var buffer bytes.Buffer
|
|
|
+ err = t.Execute(&buffer, data)
|
|
|
+ if err != nil {
|
|
|
+ logger.Error("生成消息模板失败:%v", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ message = buffer.String()
|
|
|
+ return
|
|
|
+}
|
|
|
func NeedNotice(userId int, analystId int) bool {
|
|
|
return userDao.NeedNotice(userId, analystId)
|
|
|
}
|