fix: 优化定时备份CDR文件名称标记neId
This commit is contained in:
1 parent
9dbe5a19f1
commit
3a3d4fb43b
5 files changed
+68
-88
No files matched your search
@@ -68,26 +68,58 @@ func (s *BackupExportCDRProcessor) Execute(data any) (any, error) {
|
||||
}
|
||||
|
||||
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 {
|
||||
case "ims":
|
||||
neList := s.neInfoService.SelectList(neModel.NeInfo{NeType: "IMS"}, false, false)
|
||||
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":
|
||||
neList := s.neInfoService.SelectList(neModel.NeInfo{NeType: "SMSC"}, false, false)
|
||||
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":
|
||||
neList := s.neInfoService.SelectList(neModel.NeInfo{NeType: "SMF"}, false, false)
|
||||
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":
|
||||
neList := s.neInfoService.SelectList(neModel.NeInfo{NeType: "SGWC"}, false, false)
|
||||
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会话事件数据
|
||||
func (s BackupExportCDRProcessor) exportIMS(hour int, rmUID, 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)
|
||||
|
||||
func (s BackupExportCDRProcessor) exportIMS(query neDataModel.CDREventIMSQuery, fileType string) string {
|
||||
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)
|
||||
if total == 0 {
|
||||
return "no data"
|
||||
}
|
||||
|
||||
// 导出文件名称
|
||||
fileName := fmt.Sprintf("ims_cdr_event_export_%d_%s.%s", len(rows), date.ParseDateToStr(end, date.YYYYMMDDHHMMSS), fileType)
|
||||
filePath := filepath.Join(s.backupService.BACKUP_DIR, "/ims_cdr", fileName)
|
||||
dateStr := date.ParseDateToStr(parse.Number(query.EndTime), date.YYYYMMDDHHMMSS)
|
||||
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" {
|
||||
filePath = fmt.Sprintf("C:%s", filePath)
|
||||
}
|
||||
@@ -390,30 +409,17 @@ func (s BackupExportCDRProcessor) exportIMS(hour int, rmUID, fileType string) st
|
||||
}
|
||||
|
||||
// exportSMSC 导出SMSC-CDR会话事件数据
|
||||
func (s BackupExportCDRProcessor) exportSMSC(hour int, rmUID, 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)
|
||||
|
||||
func (s BackupExportCDRProcessor) exportSMSC(query neDataModel.CDREventSMSCQuery, fileType string) string {
|
||||
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)
|
||||
if total == 0 {
|
||||
return "no data"
|
||||
}
|
||||
|
||||
// 导出文件名称
|
||||
fileName := fmt.Sprintf("smsc_cdr_event_export_%d_%s.%s", len(rows), date.ParseDateToStr(end, date.YYYYMMDDHHMMSS), fileType)
|
||||
filePath := filepath.Join(s.backupService.BACKUP_DIR, "/smsc_cdr", fileName)
|
||||
dateStr := date.ParseDateToStr(parse.Number(query.EndTime), date.YYYYMMDDHHMMSS)
|
||||
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" {
|
||||
filePath = fmt.Sprintf("C:%s", filePath)
|
||||
}
|
||||
@@ -611,29 +617,16 @@ func (s BackupExportCDRProcessor) exportSMSC(hour int, rmUID, fileType string) s
|
||||
}
|
||||
|
||||
// exportSMF 导出SMF-CDR会话事件数据
|
||||
func (s BackupExportCDRProcessor) exportSMF(hour int, rmUID, 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,
|
||||
}
|
||||
func (s BackupExportCDRProcessor) exportSMF(query neDataModel.CDREventSMFQuery, fileType string) string {
|
||||
rows, total := s.smfCDREventService.SelectPage(query)
|
||||
if total == 0 {
|
||||
return "no data"
|
||||
}
|
||||
|
||||
// 导出文件名称
|
||||
fileName := fmt.Sprintf("smf_cdr_event_export_%d_%s.%s", len(rows), date.ParseDateToStr(end, date.YYYYMMDDHHMMSS), fileType)
|
||||
filePath := filepath.Join(s.backupService.BACKUP_DIR, "/smf_cdr", fileName)
|
||||
dateStr := date.ParseDateToStr(parse.Number(query.EndTime), date.YYYYMMDDHHMMSS)
|
||||
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" {
|
||||
filePath = fmt.Sprintf("C:%s", filePath)
|
||||
}
|
||||
@@ -1023,29 +1016,16 @@ func (s BackupExportCDRProcessor) exportSMF(hour int, rmUID, fileType string) st
|
||||
}
|
||||
|
||||
// exportSGWC 导出SGWC-CDR会话事件数据
|
||||
func (s BackupExportCDRProcessor) exportSGWC(hour int, rmUID, 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,
|
||||
}
|
||||
func (s BackupExportCDRProcessor) exportSGWC(query neDataModel.CDREventSGWCQuery, fileType string) string {
|
||||
rows, total := s.sgwcCDREventService.SelectPage(query)
|
||||
if total == 0 {
|
||||
return "no data"
|
||||
}
|
||||
|
||||
// 导出文件名称
|
||||
fileName := fmt.Sprintf("sgwc_cdr_event_export_%d_%s.%s", len(rows), date.ParseDateToStr(end, date.YYYYMMDDHHMMSS), fileType)
|
||||
filePath := filepath.Join(s.backupService.BACKUP_DIR, "/sgwc_cdr", fileName)
|
||||
dateStr := date.ParseDateToStr(parse.Number(query.EndTime), date.YYYYMMDDHHMMSS)
|
||||
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" {
|
||||
filePath = fmt.Sprintf("C:%s", filePath)
|
||||
}
|
||||
|
||||
@@ -273,11 +273,11 @@ func (r CDREventIMS) SelectByPage(querys model.CDREventIMSQuery) ([]model.CDREve
|
||||
}
|
||||
|
||||
// 查询数据分页
|
||||
pageNum, pageSize := datasource.PageNumSize(querys.PageNum, querys.PageSize)
|
||||
if pageNum == 0 && pageSize > int(total) {
|
||||
pageSize = int(total)
|
||||
if querys.PageNum != 0 && querys.PageSize != 0 {
|
||||
pageNum, pageSize := datasource.PageNumSize(querys.PageNum, querys.PageSize)
|
||||
tx = tx.Limit(pageSize).Offset(pageSize * pageNum)
|
||||
}
|
||||
tx = tx.Limit(pageSize).Offset(pageSize * pageNum)
|
||||
|
||||
err := tx.Find(&rows).Error
|
||||
if err != nil {
|
||||
logger.Errorf("query find err => %v", err.Error())
|
||||
|
||||
@@ -56,11 +56,11 @@ func (r CDREventSGWC) SelectByPage(querys model.CDREventSGWCQuery) ([]model.CDRE
|
||||
}
|
||||
|
||||
// 查询数据分页
|
||||
pageNum, pageSize := datasource.PageNumSize(querys.PageNum, querys.PageSize)
|
||||
if pageNum == 0 && pageSize > int(total) {
|
||||
pageSize = int(total)
|
||||
if querys.PageNum != 0 && querys.PageSize != 0 {
|
||||
pageNum, pageSize := datasource.PageNumSize(querys.PageNum, querys.PageSize)
|
||||
tx = tx.Limit(pageSize).Offset(pageSize * pageNum)
|
||||
}
|
||||
tx = tx.Limit(pageSize).Offset(pageSize * pageNum)
|
||||
|
||||
err := tx.Find(&rows).Error
|
||||
if err != nil {
|
||||
logger.Errorf("query find err => %v", err.Error())
|
||||
|
||||
@@ -254,11 +254,11 @@ func (r CDREventSMF) SelectByPage(querys model.CDREventSMFQuery) ([]model.CDREve
|
||||
}
|
||||
|
||||
// 查询数据分页
|
||||
pageNum, pageSize := datasource.PageNumSize(querys.PageNum, querys.PageSize)
|
||||
if pageNum == 0 && pageSize > int(total) {
|
||||
pageSize = int(total)
|
||||
if querys.PageNum != 0 && querys.PageSize != 0 {
|
||||
pageNum, pageSize := datasource.PageNumSize(querys.PageNum, querys.PageSize)
|
||||
tx = tx.Limit(pageSize).Offset(pageSize * pageNum)
|
||||
}
|
||||
tx = tx.Limit(pageSize).Offset(pageSize * pageNum)
|
||||
|
||||
err := tx.Find(&rows).Error
|
||||
if err != nil {
|
||||
logger.Errorf("query find err => %v", err.Error())
|
||||
|
||||
@@ -277,11 +277,11 @@ func (r CDREventSMSC) SelectByPage(querys model.CDREventSMSCQuery) ([]model.CDRE
|
||||
}
|
||||
|
||||
// 查询数据分页
|
||||
pageNum, pageSize := datasource.PageNumSize(querys.PageNum, querys.PageSize)
|
||||
if pageNum == 0 && pageSize > int(total) {
|
||||
pageSize = int(total)
|
||||
if querys.PageNum != 0 && querys.PageSize != 0 {
|
||||
pageNum, pageSize := datasource.PageNumSize(querys.PageNum, querys.PageSize)
|
||||
tx = tx.Limit(pageSize).Offset(pageSize * pageNum)
|
||||
}
|
||||
tx = tx.Limit(pageSize).Offset(pageSize * pageNum)
|
||||
|
||||
err := tx.Find(&rows).Error
|
||||
if err != nil {
|
||||
logger.Errorf("query find err => %v", err.Error())
|
||||
|
||||
Reference in new issue
Block a user