fix: 优化定时备份CDR文件名称标记neId
This commit is contained in:
1 parent
9dbe5a19f1
commit
3a3d4fb43b
5 files changed
+64
-84
No files matched your search
@@ -68,26 +68,58 @@ func (s *BackupExportCDRProcessor) Execute(data any) (any, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for _, v := range params.DataType {
|
for _, v := range params.DataType {
|
||||||
|
// 前 hour 小时
|
||||||
|
now := time.Now()
|
||||||
|
end := time.Date(now.Year(), now.Month(), now.Day(), now.Hour(), 0, 0, 0, now.Location())
|
||||||
|
start := end.Add(-time.Duration(params.Hour) * time.Hour)
|
||||||
switch v {
|
switch v {
|
||||||
case "ims":
|
case "ims":
|
||||||
neList := s.neInfoService.SelectList(neModel.NeInfo{NeType: "IMS"}, false, false)
|
neList := s.neInfoService.SelectList(neModel.NeInfo{NeType: "IMS"}, false, false)
|
||||||
for _, ne := range neList {
|
for _, ne := range neList {
|
||||||
result[ne.NeName] = s.exportIMS(params.Hour, ne.RmUID, params.FileType)
|
query := neDataModel.CDREventIMSQuery{
|
||||||
|
NeType: ne.NeType,
|
||||||
|
NeID: ne.NeId,
|
||||||
|
RmUID: ne.RmUID,
|
||||||
|
StartTime: start.UnixMilli(),
|
||||||
|
EndTime: end.UnixMilli(),
|
||||||
|
}
|
||||||
|
result[ne.NeName] = s.exportIMS(query, params.FileType)
|
||||||
}
|
}
|
||||||
case "smsc":
|
case "smsc":
|
||||||
neList := s.neInfoService.SelectList(neModel.NeInfo{NeType: "SMSC"}, false, false)
|
neList := s.neInfoService.SelectList(neModel.NeInfo{NeType: "SMSC"}, false, false)
|
||||||
for _, ne := range neList {
|
for _, ne := range neList {
|
||||||
result[ne.NeName] = s.exportSMSC(params.Hour, ne.RmUID, params.FileType)
|
query := neDataModel.CDREventSMSCQuery{
|
||||||
|
NeType: ne.NeType,
|
||||||
|
NeID: ne.NeId,
|
||||||
|
RmUID: ne.RmUID,
|
||||||
|
StartTime: start.UnixMilli(),
|
||||||
|
EndTime: end.UnixMilli(),
|
||||||
|
}
|
||||||
|
result[ne.NeName] = s.exportSMSC(query, params.FileType)
|
||||||
}
|
}
|
||||||
case "smf":
|
case "smf":
|
||||||
neList := s.neInfoService.SelectList(neModel.NeInfo{NeType: "SMF"}, false, false)
|
neList := s.neInfoService.SelectList(neModel.NeInfo{NeType: "SMF"}, false, false)
|
||||||
for _, ne := range neList {
|
for _, ne := range neList {
|
||||||
result[ne.NeName] = s.exportSMF(params.Hour, ne.RmUID, params.FileType)
|
query := neDataModel.CDREventSMFQuery{
|
||||||
|
NeType: ne.NeType,
|
||||||
|
NeID: ne.NeId,
|
||||||
|
RmUID: ne.RmUID,
|
||||||
|
StartTime: start.UnixMilli(),
|
||||||
|
EndTime: end.UnixMilli(),
|
||||||
|
}
|
||||||
|
result[ne.NeName] = s.exportSMF(query, params.FileType)
|
||||||
}
|
}
|
||||||
case "sgwc":
|
case "sgwc":
|
||||||
neList := s.neInfoService.SelectList(neModel.NeInfo{NeType: "SGWC"}, false, false)
|
neList := s.neInfoService.SelectList(neModel.NeInfo{NeType: "SGWC"}, false, false)
|
||||||
for _, ne := range neList {
|
for _, ne := range neList {
|
||||||
result[ne.NeName] = s.exportSGWC(params.Hour, ne.RmUID, params.FileType)
|
query := neDataModel.CDREventSGWCQuery{
|
||||||
|
NeType: ne.NeType,
|
||||||
|
NeID: ne.NeId,
|
||||||
|
RmUID: ne.RmUID,
|
||||||
|
StartTime: start.UnixMilli(),
|
||||||
|
EndTime: end.UnixMilli(),
|
||||||
|
}
|
||||||
|
result[ne.NeName] = s.exportSGWC(query, params.FileType)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -97,30 +129,17 @@ func (s *BackupExportCDRProcessor) Execute(data any) (any, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// exportIMS 导出IMS-CDR会话事件数据
|
// exportIMS 导出IMS-CDR会话事件数据
|
||||||
func (s BackupExportCDRProcessor) exportIMS(hour int, rmUID, fileType string) string {
|
func (s BackupExportCDRProcessor) exportIMS(query neDataModel.CDREventIMSQuery, fileType string) string {
|
||||||
// 前 hour 小时
|
|
||||||
now := time.Now()
|
|
||||||
end := time.Date(now.Year(), now.Month(), now.Day(), now.Hour(), 0, 0, 0, now.Location())
|
|
||||||
start := end.Add(-time.Duration(hour) * time.Hour)
|
|
||||||
|
|
||||||
language := "en"
|
language := "en"
|
||||||
query := neDataModel.CDREventIMSQuery{
|
|
||||||
SortField: "timestamp",
|
|
||||||
SortOrder: "asc",
|
|
||||||
RmUID: rmUID,
|
|
||||||
StartTime: start.UnixMilli(),
|
|
||||||
EndTime: end.UnixMilli(),
|
|
||||||
PageNum: 1,
|
|
||||||
PageSize: 1000_0000,
|
|
||||||
}
|
|
||||||
rows, total := s.imsCDREventService.SelectPage(query)
|
rows, total := s.imsCDREventService.SelectPage(query)
|
||||||
if total == 0 {
|
if total == 0 {
|
||||||
return "no data"
|
return "no data"
|
||||||
}
|
}
|
||||||
|
|
||||||
// 导出文件名称
|
// 导出文件名称
|
||||||
fileName := fmt.Sprintf("ims_cdr_event_export_%d_%s.%s", len(rows), date.ParseDateToStr(end, date.YYYYMMDDHHMMSS), fileType)
|
dateStr := date.ParseDateToStr(parse.Number(query.EndTime), date.YYYYMMDDHHMMSS)
|
||||||
filePath := filepath.Join(s.backupService.BACKUP_DIR, "/ims_cdr", fileName)
|
fileName := fmt.Sprintf("%s_%s_cdr_export_%d_%s.%s", strings.ToLower(query.NeType), query.NeID, len(rows), dateStr, fileType)
|
||||||
|
filePath := filepath.Join(s.backupService.BACKUP_DIR, fmt.Sprintf("/%s_cdr", strings.ToLower(query.NeType)), fileName)
|
||||||
if runtime.GOOS == "windows" {
|
if runtime.GOOS == "windows" {
|
||||||
filePath = fmt.Sprintf("C:%s", filePath)
|
filePath = fmt.Sprintf("C:%s", filePath)
|
||||||
}
|
}
|
||||||
@@ -390,30 +409,17 @@ func (s BackupExportCDRProcessor) exportIMS(hour int, rmUID, fileType string) st
|
|||||||
}
|
}
|
||||||
|
|
||||||
// exportSMSC 导出SMSC-CDR会话事件数据
|
// exportSMSC 导出SMSC-CDR会话事件数据
|
||||||
func (s BackupExportCDRProcessor) exportSMSC(hour int, rmUID, fileType string) string {
|
func (s BackupExportCDRProcessor) exportSMSC(query neDataModel.CDREventSMSCQuery, fileType string) string {
|
||||||
// 前 hour 小时
|
|
||||||
now := time.Now()
|
|
||||||
end := time.Date(now.Year(), now.Month(), now.Day(), now.Hour(), 0, 0, 0, now.Location())
|
|
||||||
start := end.Add(-time.Duration(hour) * time.Hour)
|
|
||||||
|
|
||||||
language := "en"
|
language := "en"
|
||||||
query := neDataModel.CDREventSMSCQuery{
|
|
||||||
SortField: "timestamp",
|
|
||||||
SortOrder: "asc",
|
|
||||||
RmUID: rmUID,
|
|
||||||
StartTime: start.UnixMilli(),
|
|
||||||
EndTime: end.UnixMilli(),
|
|
||||||
PageNum: 1,
|
|
||||||
PageSize: 1000_0000,
|
|
||||||
}
|
|
||||||
rows, total := s.smscCDREventService.SelectPage(query)
|
rows, total := s.smscCDREventService.SelectPage(query)
|
||||||
if total == 0 {
|
if total == 0 {
|
||||||
return "no data"
|
return "no data"
|
||||||
}
|
}
|
||||||
|
|
||||||
// 导出文件名称
|
// 导出文件名称
|
||||||
fileName := fmt.Sprintf("smsc_cdr_event_export_%d_%s.%s", len(rows), date.ParseDateToStr(end, date.YYYYMMDDHHMMSS), fileType)
|
dateStr := date.ParseDateToStr(parse.Number(query.EndTime), date.YYYYMMDDHHMMSS)
|
||||||
filePath := filepath.Join(s.backupService.BACKUP_DIR, "/smsc_cdr", fileName)
|
fileName := fmt.Sprintf("%s_%s_cdr_export_%d_%s.%s", strings.ToLower(query.NeType), query.NeID, len(rows), dateStr, fileType)
|
||||||
|
filePath := filepath.Join(s.backupService.BACKUP_DIR, fmt.Sprintf("/%s_cdr", strings.ToLower(query.NeType)), fileName)
|
||||||
if runtime.GOOS == "windows" {
|
if runtime.GOOS == "windows" {
|
||||||
filePath = fmt.Sprintf("C:%s", filePath)
|
filePath = fmt.Sprintf("C:%s", filePath)
|
||||||
}
|
}
|
||||||
@@ -611,29 +617,16 @@ func (s BackupExportCDRProcessor) exportSMSC(hour int, rmUID, fileType string) s
|
|||||||
}
|
}
|
||||||
|
|
||||||
// exportSMF 导出SMF-CDR会话事件数据
|
// exportSMF 导出SMF-CDR会话事件数据
|
||||||
func (s BackupExportCDRProcessor) exportSMF(hour int, rmUID, fileType string) string {
|
func (s BackupExportCDRProcessor) exportSMF(query neDataModel.CDREventSMFQuery, fileType string) string {
|
||||||
// 前 hour 小时
|
|
||||||
now := time.Now()
|
|
||||||
end := time.Date(now.Year(), now.Month(), now.Day(), now.Hour(), 0, 0, 0, now.Location())
|
|
||||||
start := end.Add(-time.Duration(hour) * time.Hour)
|
|
||||||
|
|
||||||
query := neDataModel.CDREventSMFQuery{
|
|
||||||
SortField: "timestamp",
|
|
||||||
SortOrder: "asc",
|
|
||||||
RmUID: rmUID,
|
|
||||||
StartTime: start.UnixMilli(),
|
|
||||||
EndTime: end.UnixMilli(),
|
|
||||||
PageNum: 1,
|
|
||||||
PageSize: 1000_0000,
|
|
||||||
}
|
|
||||||
rows, total := s.smfCDREventService.SelectPage(query)
|
rows, total := s.smfCDREventService.SelectPage(query)
|
||||||
if total == 0 {
|
if total == 0 {
|
||||||
return "no data"
|
return "no data"
|
||||||
}
|
}
|
||||||
|
|
||||||
// 导出文件名称
|
// 导出文件名称
|
||||||
fileName := fmt.Sprintf("smf_cdr_event_export_%d_%s.%s", len(rows), date.ParseDateToStr(end, date.YYYYMMDDHHMMSS), fileType)
|
dateStr := date.ParseDateToStr(parse.Number(query.EndTime), date.YYYYMMDDHHMMSS)
|
||||||
filePath := filepath.Join(s.backupService.BACKUP_DIR, "/smf_cdr", fileName)
|
fileName := fmt.Sprintf("%s_%s_cdr_export_%d_%s.%s", strings.ToLower(query.NeType), query.NeID, len(rows), dateStr, fileType)
|
||||||
|
filePath := filepath.Join(s.backupService.BACKUP_DIR, fmt.Sprintf("/%s_cdr", strings.ToLower(query.NeType)), fileName)
|
||||||
if runtime.GOOS == "windows" {
|
if runtime.GOOS == "windows" {
|
||||||
filePath = fmt.Sprintf("C:%s", filePath)
|
filePath = fmt.Sprintf("C:%s", filePath)
|
||||||
}
|
}
|
||||||
@@ -1023,29 +1016,16 @@ func (s BackupExportCDRProcessor) exportSMF(hour int, rmUID, fileType string) st
|
|||||||
}
|
}
|
||||||
|
|
||||||
// exportSGWC 导出SGWC-CDR会话事件数据
|
// exportSGWC 导出SGWC-CDR会话事件数据
|
||||||
func (s BackupExportCDRProcessor) exportSGWC(hour int, rmUID, fileType string) string {
|
func (s BackupExportCDRProcessor) exportSGWC(query neDataModel.CDREventSGWCQuery, fileType string) string {
|
||||||
// 前 hour 小时
|
|
||||||
now := time.Now()
|
|
||||||
end := time.Date(now.Year(), now.Month(), now.Day(), now.Hour(), 0, 0, 0, now.Location())
|
|
||||||
start := end.Add(-time.Duration(hour) * time.Hour)
|
|
||||||
|
|
||||||
query := neDataModel.CDREventSGWCQuery{
|
|
||||||
SortField: "timestamp",
|
|
||||||
SortOrder: "asc",
|
|
||||||
RmUID: rmUID,
|
|
||||||
StartTime: start.UnixMilli(),
|
|
||||||
EndTime: end.UnixMilli(),
|
|
||||||
PageNum: 1,
|
|
||||||
PageSize: 1000_0000,
|
|
||||||
}
|
|
||||||
rows, total := s.sgwcCDREventService.SelectPage(query)
|
rows, total := s.sgwcCDREventService.SelectPage(query)
|
||||||
if total == 0 {
|
if total == 0 {
|
||||||
return "no data"
|
return "no data"
|
||||||
}
|
}
|
||||||
|
|
||||||
// 导出文件名称
|
// 导出文件名称
|
||||||
fileName := fmt.Sprintf("sgwc_cdr_event_export_%d_%s.%s", len(rows), date.ParseDateToStr(end, date.YYYYMMDDHHMMSS), fileType)
|
dateStr := date.ParseDateToStr(parse.Number(query.EndTime), date.YYYYMMDDHHMMSS)
|
||||||
filePath := filepath.Join(s.backupService.BACKUP_DIR, "/sgwc_cdr", fileName)
|
fileName := fmt.Sprintf("%s_%s_cdr_export_%d_%s.%s", strings.ToLower(query.NeType), query.NeID, len(rows), dateStr, fileType)
|
||||||
|
filePath := filepath.Join(s.backupService.BACKUP_DIR, fmt.Sprintf("/%s_cdr", strings.ToLower(query.NeType)), fileName)
|
||||||
if runtime.GOOS == "windows" {
|
if runtime.GOOS == "windows" {
|
||||||
filePath = fmt.Sprintf("C:%s", filePath)
|
filePath = fmt.Sprintf("C:%s", filePath)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -273,11 +273,11 @@ func (r CDREventIMS) SelectByPage(querys model.CDREventIMSQuery) ([]model.CDREve
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 查询数据分页
|
// 查询数据分页
|
||||||
|
if querys.PageNum != 0 && querys.PageSize != 0 {
|
||||||
pageNum, pageSize := datasource.PageNumSize(querys.PageNum, querys.PageSize)
|
pageNum, pageSize := datasource.PageNumSize(querys.PageNum, querys.PageSize)
|
||||||
if pageNum == 0 && pageSize > int(total) {
|
|
||||||
pageSize = int(total)
|
|
||||||
}
|
|
||||||
tx = tx.Limit(pageSize).Offset(pageSize * pageNum)
|
tx = tx.Limit(pageSize).Offset(pageSize * pageNum)
|
||||||
|
}
|
||||||
|
|
||||||
err := tx.Find(&rows).Error
|
err := tx.Find(&rows).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Errorf("query find err => %v", err.Error())
|
logger.Errorf("query find err => %v", err.Error())
|
||||||
|
|||||||
@@ -56,11 +56,11 @@ func (r CDREventSGWC) SelectByPage(querys model.CDREventSGWCQuery) ([]model.CDRE
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 查询数据分页
|
// 查询数据分页
|
||||||
|
if querys.PageNum != 0 && querys.PageSize != 0 {
|
||||||
pageNum, pageSize := datasource.PageNumSize(querys.PageNum, querys.PageSize)
|
pageNum, pageSize := datasource.PageNumSize(querys.PageNum, querys.PageSize)
|
||||||
if pageNum == 0 && pageSize > int(total) {
|
|
||||||
pageSize = int(total)
|
|
||||||
}
|
|
||||||
tx = tx.Limit(pageSize).Offset(pageSize * pageNum)
|
tx = tx.Limit(pageSize).Offset(pageSize * pageNum)
|
||||||
|
}
|
||||||
|
|
||||||
err := tx.Find(&rows).Error
|
err := tx.Find(&rows).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Errorf("query find err => %v", err.Error())
|
logger.Errorf("query find err => %v", err.Error())
|
||||||
|
|||||||
@@ -254,11 +254,11 @@ func (r CDREventSMF) SelectByPage(querys model.CDREventSMFQuery) ([]model.CDREve
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 查询数据分页
|
// 查询数据分页
|
||||||
|
if querys.PageNum != 0 && querys.PageSize != 0 {
|
||||||
pageNum, pageSize := datasource.PageNumSize(querys.PageNum, querys.PageSize)
|
pageNum, pageSize := datasource.PageNumSize(querys.PageNum, querys.PageSize)
|
||||||
if pageNum == 0 && pageSize > int(total) {
|
|
||||||
pageSize = int(total)
|
|
||||||
}
|
|
||||||
tx = tx.Limit(pageSize).Offset(pageSize * pageNum)
|
tx = tx.Limit(pageSize).Offset(pageSize * pageNum)
|
||||||
|
}
|
||||||
|
|
||||||
err := tx.Find(&rows).Error
|
err := tx.Find(&rows).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Errorf("query find err => %v", err.Error())
|
logger.Errorf("query find err => %v", err.Error())
|
||||||
|
|||||||
@@ -277,11 +277,11 @@ func (r CDREventSMSC) SelectByPage(querys model.CDREventSMSCQuery) ([]model.CDRE
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 查询数据分页
|
// 查询数据分页
|
||||||
|
if querys.PageNum != 0 && querys.PageSize != 0 {
|
||||||
pageNum, pageSize := datasource.PageNumSize(querys.PageNum, querys.PageSize)
|
pageNum, pageSize := datasource.PageNumSize(querys.PageNum, querys.PageSize)
|
||||||
if pageNum == 0 && pageSize > int(total) {
|
|
||||||
pageSize = int(total)
|
|
||||||
}
|
|
||||||
tx = tx.Limit(pageSize).Offset(pageSize * pageNum)
|
tx = tx.Limit(pageSize).Offset(pageSize * pageNum)
|
||||||
|
}
|
||||||
|
|
||||||
err := tx.Find(&rows).Error
|
err := tx.Find(&rows).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Errorf("query find err => %v", err.Error())
|
logger.Errorf("query find err => %v", err.Error())
|
||||||
|
|||||||
Reference in new issue
Block a user