feat: IMS导出功能增加呼叫结果和原因字段
This commit is contained in:
@@ -480,9 +480,9 @@ func (s BackupExportTableProcessor) exportIMS(hour int, columns []string, filePa
|
||||
}
|
||||
|
||||
// 呼叫类型
|
||||
callType := "sms"
|
||||
if col == "callType" || col == "call_type" {
|
||||
if v, ok := cdrJSON["callType"]; ok && v != nil {
|
||||
callType := "sms"
|
||||
callTypeLable := "SMS"
|
||||
if v, ok := cdrJSON["callType"]; ok && v != nil {
|
||||
callType = v.(string)
|
||||
@@ -517,16 +517,21 @@ func (s BackupExportTableProcessor) exportIMS(hour int, columns []string, filePa
|
||||
}
|
||||
// 呼叫结果 非短信都有code作为结果 sms短信都ok
|
||||
if col == "cause" {
|
||||
if v, ok := cdrJSON["cause"]; ok && v != nil {
|
||||
cause := fmt.Sprint(v)
|
||||
callResult := "Success"
|
||||
for _, v := range dictCDRSipCode {
|
||||
if cause == v.DataValue {
|
||||
callResult = i18n.TKey(language, v.DataLabel)
|
||||
break
|
||||
if callType == "sms" {
|
||||
arr[i] = "Success"
|
||||
continue
|
||||
} else {
|
||||
if v, ok := cdrJSON["cause"]; ok && v != nil {
|
||||
callResult := "Other"
|
||||
cause := fmt.Sprint(v)
|
||||
for _, v := range dictCDRSipCode {
|
||||
if cause == v.DataValue {
|
||||
callResult = i18n.TKey(language, v.DataLabel)
|
||||
break
|
||||
}
|
||||
}
|
||||
arr[i] = callResult
|
||||
}
|
||||
arr[i] = fmt.Sprintf("%v", callResult)
|
||||
}
|
||||
}
|
||||
// 呼叫时间
|
||||
|
||||
@@ -55,13 +55,16 @@ func (r CDREventIMS) ExportXlsx(rows []model.CDREventIMS, fileName, language str
|
||||
"C1": "Type",
|
||||
"D1": "Caller",
|
||||
"E1": "Called",
|
||||
"F1": "Result",
|
||||
"G1": "Duration",
|
||||
"H1": "Call Start Time",
|
||||
"I1": "Hangup Time",
|
||||
"F1": "Duration",
|
||||
"G1": "Result Code",
|
||||
"H1": "Result Cause",
|
||||
"I1": "Call Start Time",
|
||||
"J1": "Hangup Time",
|
||||
}
|
||||
// 读取字典数据 CDR SIP响应代码类别类型
|
||||
dictCDRSipCode := sysService.NewSysDictData.FindByType("cdr_sip_code")
|
||||
// 读取字典数据 CDR SIP响应代码类别类型原因
|
||||
dictCDRSipCodeCause := sysService.NewSysDictData.FindByType("cdr_sip_code_cause")
|
||||
// 读取字典数据 CDR 呼叫类型
|
||||
dictCDRCallType := sysService.NewSysDictData.FindByType("cdr_call_type")
|
||||
// 从第二行开始的数据
|
||||
@@ -109,12 +112,24 @@ func (r CDREventIMS) ExportXlsx(rows []model.CDREventIMS, fileName, language str
|
||||
}
|
||||
// 呼叫结果 非短信都有code作为结果 sms短信都ok
|
||||
callResult := "Other"
|
||||
if v, ok := cdrJSON["cause"]; ok && v != nil && callType != "sms" {
|
||||
cause := fmt.Sprint(v)
|
||||
for _, v := range dictCDRSipCode {
|
||||
if cause == v.DataValue {
|
||||
callResult = i18n.TKey(language, v.DataLabel)
|
||||
break
|
||||
callCause := "Call failure for other reason"
|
||||
if callType == "sms" {
|
||||
callResult = "Success"
|
||||
callCause = "Normal Send"
|
||||
} else {
|
||||
if v, ok := cdrJSON["cause"]; ok && v != nil {
|
||||
cause := fmt.Sprint(v)
|
||||
for _, v := range dictCDRSipCode {
|
||||
if cause == v.DataValue {
|
||||
callResult = i18n.TKey(language, v.DataLabel)
|
||||
break
|
||||
}
|
||||
}
|
||||
for _, v := range dictCDRSipCodeCause {
|
||||
if cause == v.DataValue {
|
||||
callCause = i18n.TKey(language, v.DataLabel)
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -143,10 +158,11 @@ func (r CDREventIMS) ExportXlsx(rows []model.CDREventIMS, fileName, language str
|
||||
"C" + idx: callTypeLable,
|
||||
"D" + idx: caller,
|
||||
"E" + idx: called,
|
||||
"F" + idx: callResult,
|
||||
"G" + idx: duration,
|
||||
"H" + idx: seizureTimeStr,
|
||||
"I" + idx: releaseTimeStr,
|
||||
"F" + idx: duration,
|
||||
"G" + idx: callResult,
|
||||
"H" + idx: callCause,
|
||||
"I" + idx: seizureTimeStr,
|
||||
"J" + idx: releaseTimeStr,
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user