Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 9f3e66e

Browse files
committed
整理邮件模版。
1 parent 7e80400 commit 9f3e66e

File tree

3 files changed

+121
-7
lines changed

3 files changed

+121
-7
lines changed

‎apis/process/workOrder.go‎

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
"ferry/tools/app"
1313
"fmt"
1414
"strconv"
15+
"time"
1516

1617
"github.com/gin-gonic/gin"
1718
)
@@ -206,9 +207,22 @@ func CreateWorkOrder(c *gin.Context) {
206207
return
207208
}
208209

209-
go notify.SendNotify(noticeList, map[string]interface{}{
210-
"userList": sendToUserList,
211-
}, "您有一条待办工单,请及时处理。", "测试")
210+
// 发送通知
211+
go func() {
212+
bodyData := notify.BodyData{
213+
SendTo: map[string]interface{}{
214+
"userList": sendToUserList,
215+
},
216+
Subject: "您有一条待办工单,请及时处理。",
217+
Classify: noticeList,
218+
Id: workOrderValue.Id,
219+
Title: workOrderValue.Title,
220+
Creator: userInfo.NickName,
221+
Priority: workOrderValue.Priority,
222+
CreatedAt: time.Now().Format("2006年01月02日 15:04:05"),
223+
}
224+
bodyData.SendNotify()
225+
}()
212226
}
213227

214228
// 执行任务

‎pkg/notify/send.go‎

Lines changed: 60 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,82 @@
11
package notify
22

33
import (
4+
"bytes"
45
"ferry/models/system"
56
"ferry/pkg/notify/email"
7+
"os"
8+
"text/template"
9+
10+
log "github.com/sirupsen/logrus"
611
)
712

813
/*
914
@Author : lanyulei
1015
@同时发送多种通知方式
1116
*/
1217

13-
func SendNotify(classify []int, sendTo interface{}, subject, body string) {
18+
type BodyData struct {
19+
SendTo interface{} // 接受人
20+
Subject string // 标题
21+
Classify []int // 通知类型
22+
Id int // 工单ID
23+
Title string // 工单标题
24+
Creator string // 工单创建人
25+
Priority int // 工单优先级
26+
PriorityValue string // 工单优先级
27+
CreatedAt string // 工单创建时间
28+
Content string // 通知的内容
29+
}
30+
31+
func (b *BodyData) ParsingTemplate() (err error) {
32+
// 读取模版数据
33+
var (
34+
buf bytes.Buffer
35+
)
36+
37+
log.Info(os.Getwd())
38+
tmpl, err := template.ParseFiles("./pkg/notify/template/email.html")
39+
if err != nil {
40+
return
41+
}
42+
43+
err = tmpl.Execute(&buf, b)
44+
if err != nil {
45+
return
46+
}
47+
48+
b.Content = buf.String()
49+
50+
return
51+
}
52+
53+
func (b *BodyData) SendNotify() {
1454
var (
1555
emailList []string
56+
err error
1657
)
17-
for _, c := range classify {
58+
59+
switch b.Priority {
60+
case 1:
61+
b.PriorityValue = "正常"
62+
case 2:
63+
b.PriorityValue = "紧急"
64+
case 3:
65+
b.PriorityValue = "非常紧急"
66+
}
67+
68+
for _, c := range b.Classify {
1869
switch c {
1970
case 1: // 邮件
20-
for _, user := range sendTo.(map[string]interface{})["userList"].([]system.SysUser) {
71+
for _, user := range b.SendTo.(map[string]interface{})["userList"].([]system.SysUser) {
2172
emailList = append(emailList, user.Email)
2273
}
23-
go email.SendMail(emailList, subject, body)
74+
err = b.ParsingTemplate()
75+
if err != nil {
76+
log.Errorf("模版内容解析失败,%v", err.Error())
77+
return
78+
}
79+
go email.SendMail(emailList, b.Subject, b.Content)
2480
}
2581
}
2682
}

‎pkg/notify/template/email.html‎

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<title>ferry</title>
6+
</head>
7+
<body>
8+
<br>
9+
您有一条待办工单请及时处理,以下为工单详情:
10+
<br>
11+
<br>
12+
<table>
13+
<tr>
14+
<td style="text-align: right">标题:</td>
15+
<td>{{ .Title }}</td>
16+
</tr>
17+
<tr>
18+
<td style="text-align: right">申请人:</td>
19+
<td>{{ .Creator }}</td>
20+
</tr>
21+
<tr>
22+
<td style="text-align: right">优先级:</td>
23+
<td>{{ .PriorityValue }}</td>
24+
</tr>
25+
<tr>
26+
<td style="text-align: right">申请时间:</td>
27+
<td>{{ .CreatedAt }}</td>
28+
</tr>
29+
</table>
30+
31+
<br>
32+
<a href="" target="_blank">点击此处跳转工单详情</a>
33+
</body>
34+
<style>
35+
table {
36+
border: 1px solid #ccc;
37+
border-collapse:collapse;
38+
}
39+
td {
40+
padding: 10px 15px 10px 15px;
41+
border: 1px solid #ccc;
42+
}
43+
</style>
44+
</html>

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /