@@ -89,43 +89,53 @@ func (r *DingNotificationBuilder) Build(m *models.WebhookMessage) (*models.DingT
89
89
}
90
90
91
91
func (r * DingNotificationBuilder ) BuildWeChat (m * models.WebhookMessage ) (* models.WeChatNotification , error ) {
92
- if r .target .Mention != nil {
93
- m .AtMobiles = append (m .AtMobiles , r .target .Mention .Mobiles ... )
94
- }
95
-
96
92
content , err := r .renderText (m )
97
93
if err != nil {
98
94
return nil , err
99
95
}
100
96
97
+ // Build mention
98
+ if r .target .Mention != nil {
99
+ if r .target .Mention .All {
100
+ content = fmt .Sprintf ("%s\n %s " , content , "<@all>" )
101
+ } else {
102
+ var m string
103
+ for _ , mobile := range r .target .Mention .Mobiles {
104
+ m += fmt .Sprintf ("<@%s> " , mobile )
105
+ }
106
+ content = fmt .Sprintf ("%s\n %s" , content , m )
107
+ }
108
+ }
109
+
101
110
notification := & models.WeChatNotification {
102
111
MessageType : "markdown" ,
103
112
Markdown : & models.WeChatNotificationMarkdown {
104
113
Content : content ,
105
114
},
106
115
}
107
116
108
- // Build mention
109
- if r .target .Mention != nil {
110
- notification .At = & models.DingTalkNotificationAt {
111
- IsAtAll : r .target .Mention .All ,
112
- AtMobiles : r .target .Mention .Mobiles ,
113
- }
114
- }
115
-
116
117
return notification , nil
117
118
}
118
119
119
120
func (r * DingNotificationBuilder ) BuildLark (m * models.WebhookMessage ) (* models.LarkNotification , error ) {
120
- if r .target .Mention != nil {
121
- m .AtMobiles = append (m .AtMobiles , r .target .Mention .Mobiles ... )
122
- }
123
-
124
121
content , err := r .renderText (m )
125
122
if err != nil {
126
123
return nil , err
127
124
}
128
125
126
+ // Build mention
127
+ if r .target .Mention != nil {
128
+ if r .target .Mention .All {
129
+ content = fmt .Sprintf ("%s\n %s " , content , "<at id=all></at>" )
130
+ } else {
131
+ var m string
132
+ for _ , mobile := range r .target .Mention .Mobiles {
133
+ m += fmt .Sprintf ("<at id=%s></at> " , mobile )
134
+ }
135
+ content = fmt .Sprintf ("%s %s" , content , m )
136
+ }
137
+ }
138
+
129
139
notification := & models.LarkNotification {
130
140
MessageType : "interactive" ,
131
141
Card : models.LarkNotificationCard {
@@ -138,14 +148,6 @@ func (r *DingNotificationBuilder) BuildLark(m *models.WebhookMessage) (*models.L
138
148
},
139
149
}
140
150
141
- // Build mention
142
- if r .target .Mention != nil {
143
- notification .At = & models.DingTalkNotificationAt {
144
- IsAtAll : r .target .Mention .All ,
145
- AtMobiles : r .target .Mention .Mobiles ,
146
- }
147
- }
148
-
149
151
return notification , nil
150
152
}
151
153
0 commit comments