feat: psap support ticket notification

This commit is contained in:
zhangsz
2025-06-20 18:43:08 +08:00
parent 73ba248237
commit 9d1e2d6171
15 changed files with 147 additions and 10 deletions

View File

@@ -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网元类型特殊处理, 处理座席回拨的工单流转

View File

@@ -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
}