feat: callback ticket features
This commit is contained in:
115
features/ue/mf_callback_ticket/model.go
Normal file
115
features/ue/mf_callback_ticket/model.go
Normal file
@@ -0,0 +1,115 @@
|
||||
package mf_callback_ticket
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type TicketStatus int
|
||||
|
||||
// TicketStatus 工单状态
|
||||
const (
|
||||
TicketStatusNull TicketStatus = iota // 未知状态
|
||||
TicketStatusNew
|
||||
TicketStatusInProgress
|
||||
// TicketStatusFailed
|
||||
TicketStatusNoAnswer1
|
||||
TicketStatusNoAnswer2
|
||||
// TicketStatusBusy
|
||||
// TicketStatusCancelled
|
||||
TicketStatusTimeout
|
||||
TicketStatusPending
|
||||
// TicketStatusAnswered
|
||||
// TicketStatusCompleted
|
||||
TicketStatusClosed
|
||||
)
|
||||
|
||||
func (ts TicketStatus) Enum() string {
|
||||
switch ts {
|
||||
case TicketStatusNull:
|
||||
return "NULL"
|
||||
case TicketStatusNew:
|
||||
return "NEW"
|
||||
case TicketStatusInProgress:
|
||||
return "IN_PROGRESS"
|
||||
case TicketStatusNoAnswer1:
|
||||
return "NO_ANSWER_1"
|
||||
case TicketStatusNoAnswer2:
|
||||
return "NO_ANSWER_2"
|
||||
case TicketStatusTimeout:
|
||||
return "TIMEOUT"
|
||||
case TicketStatusPending:
|
||||
return "PENDING"
|
||||
case TicketStatusClosed:
|
||||
return "CLOSED"
|
||||
// 如果没有匹配的状态,返回未知状态
|
||||
default:
|
||||
return "UNKNOWN"
|
||||
}
|
||||
}
|
||||
|
||||
func (ts TicketStatus) String() string {
|
||||
return fmt.Sprintf("%d", ts)
|
||||
}
|
||||
|
||||
// ParseCallTag 将字符串转换为 CallTag 枚举类型
|
||||
func ParseCallTag(s string) TicketStatus {
|
||||
if i, err := strconv.Atoi(s); err == nil {
|
||||
return TicketStatus(i)
|
||||
}
|
||||
// 如果转换失败,则按名称匹配(忽略大小写)
|
||||
switch strings.ToLower(s) {
|
||||
case "NULL":
|
||||
return TicketStatusNull
|
||||
case "NEW":
|
||||
return TicketStatusNew
|
||||
case "IN_PROGRESS":
|
||||
return TicketStatusInProgress
|
||||
case "NO_ANSWER_1":
|
||||
return TicketStatusNoAnswer1
|
||||
case "NO_ANSWER_2":
|
||||
return TicketStatusNoAnswer2
|
||||
case "TIMEOUT":
|
||||
return TicketStatusTimeout
|
||||
case "PENDING":
|
||||
return TicketStatusPending
|
||||
case "CLOSED":
|
||||
return TicketStatusClosed
|
||||
case "":
|
||||
// 如果字符串为空,则返回未知状态
|
||||
return TicketStatusNull
|
||||
default:
|
||||
// 默认返回未知状态
|
||||
return TicketStatusNull
|
||||
}
|
||||
}
|
||||
|
||||
// CallbackTicketQuery 查询条件结构体
|
||||
type CallbackTicketQuery struct {
|
||||
CallerNumber string `form:"callerNumber"`
|
||||
AgentName string `form:"agentName"`
|
||||
Status string `form:"status"`
|
||||
StartTime string `form:"startTime"` // 创建时间范围-起始
|
||||
EndTime string `form:"endTime"` // 创建时间范围-结束
|
||||
PageNum int `form:"pageNum" binding:"required"`
|
||||
PageSize int `form:"pageSize" binding:"required"`
|
||||
}
|
||||
|
||||
// @Description VoLTE用户信息
|
||||
type CallbackTicket struct {
|
||||
TicketId int64 `json:"ticketId" gorm:"column:ticket_id"` // 工单ID
|
||||
CallerNumber string `json:"callerNumber" gorm:"column:caller_number"` // 主叫号码
|
||||
CalleeNumber string `json:"calleeNumber" gorm:"column:callee_number"` // 被叫号码
|
||||
Status string `json:"status" gorm:"column:status"` // 工单状态
|
||||
AgentName string `json:"agentName" gorm:"column:agent_name"` // 坐席名称
|
||||
Comment string `json:"comment" gorm:"column:comment"` // 工单备注
|
||||
MsdData string `json:"msdData" gorm:"column:msd_data"` // MSD数据
|
||||
CreatedAt int64 `json:"createdAt" gorm:"column:created_at"` // 创建时间
|
||||
UpdatedAt *int64 `json:"updatedAt" gorm:"column:updated_at;autoUpdateTime:false"` // 更新时间
|
||||
}
|
||||
|
||||
// TableName 表名称
|
||||
func (*CallbackTicket) TableName() string {
|
||||
return "mf_callback_ticket"
|
||||
}
|
||||
Reference in New Issue
Block a user