diff --git a/src/modules/network_data/controller/ims.go b/src/modules/network_data/controller/ims.go index 3286a616..680db049 100644 --- a/src/modules/network_data/controller/ims.go +++ b/src/modules/network_data/controller/ims.go @@ -164,12 +164,13 @@ func (s *IMSController) CDRExport(c *gin.Context) { "A1": "ID", "B1": "Record Behavior", "C1": "Type", - "D1": "Caller", - "E1": "Called", - "F1": "Duration", - "G1": "Result", - "H1": "Time", - "I1": "Tenant Name", // for multi-tenancy + "D1": "Called", + "E1": "Result", + "F1": "Caller", + "G1": "Duration", + "H1": "Call Start Time", + "I1": "Hangup Time", + "J1": "Tenant Name", // for multi-tenancy } // 读取字典数据 CDR SIP响应代码类别类型 dictCDRSipCode := sysService.NewSysDictData.SelectDictDataByType("cdr_sip_code") @@ -229,13 +230,22 @@ func (s *IMSController) CDRExport(c *gin.Context) { } } } - // 取时间 - timeStr := "" + // 呼叫时间 + seizureTimeStr := "" + if v, ok := cdrJSON["seizureTime"]; ok && v != nil { + if seizureTime := parse.Number(v); seizureTime > 0 { + seizureTimeStr = date.ParseDateToStr(seizureTime, date.YYYY_MM_DDTHH_MM_SSZ) + } else { + seizureTimeStr = v.(string) + } + } + // 挂断时间 + releaseTimeStr := "" if v, ok := cdrJSON["releaseTime"]; ok && v != nil { if releaseTime := parse.Number(v); releaseTime > 0 { - timeStr = date.ParseDateToStr(releaseTime, date.YYYY_MM_DDTHH_MM_SSZ) + releaseTimeStr = date.ParseDateToStr(releaseTime, date.YYYY_MM_DDTHH_MM_SSZ) } else { - timeStr = v.(string) + releaseTimeStr = v.(string) } } // for multi-tenant, get tenant name @@ -245,12 +255,13 @@ func (s *IMSController) CDRExport(c *gin.Context) { "A" + idx: row.ID, "B" + idx: recordType, "C" + idx: callTypeLable, - "D" + idx: caller, - "E" + idx: called, - "F" + idx: duration, - "G" + idx: callResult, - "H" + idx: timeStr, - "I" + idx: tenantName, + "D" + idx: called, + "E" + idx: callResult, + "F" + idx: caller, + "G" + idx: duration, + "H" + idx: seizureTimeStr, + "I" + idx: releaseTimeStr, + "J" + idx: tenantName, }) }