feat: psap support ticket notification
This commit is contained in:
@@ -11,6 +11,7 @@ import (
|
||||
"be.ems/lib/config"
|
||||
"be.ems/lib/core/ctx"
|
||||
"be.ems/lib/dborm"
|
||||
"be.ems/lib/email"
|
||||
"be.ems/lib/log"
|
||||
"be.ems/lib/services"
|
||||
neService "be.ems/src/modules/network_element/service"
|
||||
@@ -115,6 +116,15 @@ func PostCDREventFrom(w http.ResponseWriter, r *http.Request) {
|
||||
// 选择下一个要分配的座席
|
||||
selectedAgent := mfService.SelectNextAgent(agentResp.Data, lastAgent)
|
||||
|
||||
// 获取分配座席的邮箱
|
||||
agentEmail := ""
|
||||
for _, agent := range agentResp.Data {
|
||||
if agent.Name == selectedAgent {
|
||||
agentEmail = agent.Email
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
// 创建回调工单
|
||||
var updatedAt *int64 = nil
|
||||
ticket := ueCallBackTicket.CallbackTicket{
|
||||
@@ -133,6 +143,12 @@ func PostCDREventFrom(w http.ResponseWriter, r *http.Request) {
|
||||
// services.ResponseInternalServerError500ProcessError(w, err)
|
||||
// return
|
||||
}
|
||||
// 新工单分配后发送邮件通知
|
||||
if agentEmail != "" {
|
||||
subject := "新工单分配通知"
|
||||
body := fmt.Sprintf("您被分配了一个新的回拨工单,主叫号码:%s", ticket.CallerNumber)
|
||||
go email.SendEmail(agentEmail, subject, body) // 异步发送
|
||||
}
|
||||
}
|
||||
|
||||
// MF网元类型特殊处理, 处理座席回拨的工单流转
|
||||
|
||||
@@ -5,6 +5,7 @@ import (
|
||||
"time"
|
||||
|
||||
"be.ems/lib/dborm"
|
||||
"be.ems/lib/email"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
@@ -347,6 +348,15 @@ func (s *CallbackTicketService) UpdateTicketToTimeout(ticket *CallbackTicket, or
|
||||
lastAgent := ticket.AgentName
|
||||
newAgent := s.SelectNextAgent(agents, lastAgent)
|
||||
|
||||
// 查找新座席邮箱
|
||||
newAgentEmail := ""
|
||||
for _, agent := range agents {
|
||||
if agent.Name == newAgent {
|
||||
newAgentEmail = agent.Email
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
// 3. 创建新工单
|
||||
newTicket := CallbackTicket{
|
||||
CallerNumber: ticket.CallerNumber,
|
||||
@@ -363,5 +373,12 @@ func (s *CallbackTicketService) UpdateTicketToTimeout(ticket *CallbackTicket, or
|
||||
return fmt.Errorf("创建新工单失败: %w", err)
|
||||
}
|
||||
|
||||
// 新工单分配后发送邮件通知
|
||||
if newAgentEmail != "" {
|
||||
subject := "新工单自动重建通知"
|
||||
body := fmt.Sprintf("您被分配了一个自动重建的回拨工单,主叫号码:%s", newTicket.CallerNumber)
|
||||
go email.SendEmail(newAgentEmail, subject, body)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user