You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
130 lines
3.8 KiB
130 lines
3.8 KiB
package email |
|
|
|
import ( |
|
"fmt" |
|
"strconv" |
|
|
|
"go-common/app/job/main/videoup-report/model/email" |
|
"go-common/library/log" |
|
) |
|
|
|
//NotifyEmailTemplate 优质UP主/时政UP主/企业UP主/十万粉丝报备邮件 |
|
func (d *Dao) NotifyEmailTemplate(params map[string]string) (tpl *email.Template) { |
|
headers := map[string][]string{ |
|
email.FROM: {d.c.Mail.Username}, |
|
} |
|
|
|
//to |
|
typeIDStr := params["typeId"] |
|
if len(d.emailAddr[typeIDStr]) == 0 { |
|
log.Info("archive(%s) type(%s) don't config email address.", params["aid"], typeIDStr) |
|
return |
|
} |
|
headers[email.TO] = d.emailAddr[typeIDStr] |
|
|
|
//subject |
|
headers[email.SUBJECT] = []string{fmt.Sprintf("优质/十万粉稿件处理报备[%s]--操作人: %s[%s]", params["upName"], params["username"], params["department"])} |
|
//body |
|
body := ` |
|
稿件标题:%s |
|
up主:%s |
|
稿件链接:http://www.bilibili.com/video/av%s |
|
触发条件:%s |
|
处理操作:%s |
|
` |
|
body = fmt.Sprintf(body, params["title"], params["upName"], params["aid"], params["condition"], params["change"]) |
|
fromVideo, err := strconv.ParseBool(params["fromVideo"]) |
|
if err != nil { |
|
log.Error("NotifyEmailTemplate get email template: strconv.ParseBool error(%v) aid(%s) fromVideo(%s)", err, params["aid"], params["fromVideo"]) |
|
return |
|
} |
|
//视频追踪信息还没上线,先不写 |
|
if !fromVideo { |
|
body += fmt.Sprintf("稿件追踪:http://manager.bilibili.co/#!/archive_utils/arc-track?aid=%s", params["aid"]) |
|
} |
|
|
|
aid, _ := strconv.ParseInt(params["aid"], 10, 64) |
|
uid, _ := strconv.ParseInt(params["uid"], 10, 64) |
|
tpl = &email.Template{ |
|
Headers: headers, |
|
Body: body, |
|
ContentType: "text/plain", |
|
Type: email.EmailUP, |
|
AID: aid, |
|
UID: uid, |
|
Username: params["username"], |
|
Department: params["department"], |
|
} |
|
log.Info("NotifyEmailTemplate: email template(%+v)", tpl) |
|
return |
|
} |
|
|
|
//PrivateEmailTemplate 私单报备邮件模板 |
|
func (d *Dao) PrivateEmailTemplate(params map[string]string) (tpl *email.Template) { |
|
headers := map[string][]string{ |
|
email.FROM: {d.c.Mail.Username}, |
|
} |
|
|
|
//to |
|
to := d.PrivateAddr[params["typeId"]] |
|
if len(to) == 0 { |
|
log.Error("PrivateEmailTemplate lack email address config: typeId(%s), params(%v)", params["typeId"], params) |
|
return |
|
} |
|
headers[email.TO] = to |
|
|
|
//cc |
|
cc := d.PrivateAddr["CC"] |
|
if len(cc) > 0 { |
|
headers[email.CC] = cc |
|
} |
|
|
|
subject := fmt.Sprintf("私单稿件报备_%s_av%s", params["upName"], params["aid"]) |
|
headers[email.SUBJECT] = []string{subject} |
|
|
|
body := `稿件标题: %s |
|
稿件状态: %s |
|
禁止项状态: 排行禁止:%s ;动态禁止:%s ; 推荐禁止:%s |
|
UP主: %s |
|
粉丝量:%s |
|
操作人: %s [%s] |
|
备注: %s` |
|
body = fmt.Sprintf(body, params["arcTitle"], params["arcState"], params["noRankAttr"], params["noDynamicAttr"], params["noRecommendAttr"], |
|
params["upName"], params["upFans"], params["mngName"], params["mngDepartment"], params["note"]) |
|
|
|
aid, _ := strconv.ParseInt(params["aid"], 10, 64) |
|
uid, _ := strconv.ParseInt(params["uid"], 10, 64) |
|
tpl = &email.Template{ |
|
Headers: headers, |
|
Body: body, |
|
ContentType: "text/plain", |
|
Type: params["emailType"], |
|
AID: aid, |
|
UID: uid, |
|
Username: params["mngName"], |
|
Department: params["mngDepartment"], |
|
} |
|
log.Info("PrivateEmailTemplate: email template(%+v)", tpl) |
|
return |
|
} |
|
|
|
// MinitorNotifyTeamplate 审核监控报警邮件模板 |
|
func (d *Dao) MonitorNotifyTemplate(subject string, body string, toEmails []string) (tpl *email.Template) { |
|
headers := map[string][]string{ |
|
email.FROM: {d.c.Mail.Username}, |
|
} |
|
headers[email.TO] = toEmails |
|
headers[email.SUBJECT] = []string{subject} |
|
tpl = &email.Template{ |
|
Headers: headers, |
|
Body: body, |
|
ContentType: "text/plain", |
|
Type: email.EmailMonitor, |
|
AID: 0, |
|
UID: 0, |
|
Username: "", |
|
Department: "", |
|
} |
|
log.Info("MinitorNotifyTeamplate: email template(%+v)", tpl) |
|
return |
|
}
|
|
|