From e02362283f1ee78ef14d8df83ac81d8af6944dba Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Tue, 14 Oct 2025 14:34:49 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=95=B0=E6=8D=AE=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=E6=9D=A1=E4=BB=B6=E6=8E=92=E5=BA=8F=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../network_data/repository/cdr_event.go | 62 ++++--------------- .../network_data/repository/kpi_c_report.go | 12 ++-- .../network_data/repository/kpi_report.go | 12 ++-- .../network_data/repository/udm_auth.go | 12 ++-- .../network_data/repository/udm_extend.go | 21 ++++--- .../network_data/repository/udm_sub.go | 12 ++-- .../network_data/repository/udm_voip.go | 14 ++--- .../network_data/repository/udm_volte_ims.go | 14 ++--- .../network_data/repository/ue_event.go | 62 ++++--------------- .../network_element/repository/ne_host.go | 27 ++++---- 10 files changed, 79 insertions(+), 169 deletions(-) diff --git a/src/modules/network_data/repository/cdr_event.go b/src/modules/network_data/repository/cdr_event.go index ae9cae73..e269e7b3 100644 --- a/src/modules/network_data/repository/cdr_event.go +++ b/src/modules/network_data/repository/cdr_event.go @@ -2,7 +2,6 @@ package repository import ( "fmt" - "sort" "strings" "time" @@ -99,59 +98,22 @@ func (r CDREvent) SelectByPage(neType string, query map[string]string) ([]model. tx = tx.Offset(int(pageNum * pageSize)).Limit(int(pageSize)) } + // 排序 + if v, ok := query["sortField"]; ok && v != "" { + sortOrder := "asc" + if o, ok := query["sortOrder"]; ok && o != "" { + if o != "asc" { + sortOrder = "desc" + } + } + tx = tx.Order(fmt.Sprintf("%s %s", v, sortOrder)) + } + // 查询数据 if err := tx.Find(&rows).Error; err != nil { logger.Errorf("query err => %v", err) + return rows, total } - - // 排序 - if v, ok := query["sortField"]; ok && v != "" { - sortField := v - sortOrder := "asc" - if o, ok := query["sortOrder"]; ok && o != "" { - if o == "desc" { - sortOrder = "desc" - } else { - sortOrder = "asc" - } - } - sort.SliceStable(rows, func(i, j int) bool { - // 支持的排序字段映射 - fieldGetters := map[string]func(*model.CDREvent) any{ - "id": func(row *model.CDREvent) any { return row.ID }, - "timestamp": func(row *model.CDREvent) any { return row.Timestamp }, - // 可添加更多支持的字段 - } - - // 获取字段 getter 函数 - getter, ok := fieldGetters[sortField] - if !ok { - // 非法字段,使用默认排序(id升序) - return rows[i].ID < rows[j].ID - } - - // 获取比较值 - valI, valJ := getter(&rows[i]), getter(&rows[j]) - - // 根据字段类型进行比较 - switch v := valI.(type) { - case int64: - if sortOrder == "desc" { - return v > valJ.(int64) - } - return v < valJ.(int64) - case string: - if sortOrder == "desc" { - return v > valJ.(string) - } - return v < valJ.(string) - default: - // 不支持的字段类型,使用默认排序 - return rows[i].ID < rows[j].ID - } - }) - } - return rows, total } diff --git a/src/modules/network_data/repository/kpi_c_report.go b/src/modules/network_data/repository/kpi_c_report.go index f87a7c51..5280c730 100644 --- a/src/modules/network_data/repository/kpi_c_report.go +++ b/src/modules/network_data/repository/kpi_c_report.go @@ -164,22 +164,20 @@ func (r KpiCReport) TitleSelectByPage(query map[string]string) ([]model.KpiCTitl // 排序 if v, ok := query["sortField"]; ok && v != "" { - sortSql := v + sortOrder := "asc" if o, ok := query["sortOrder"]; ok && o != "" { - if o == "desc" { - sortSql += " desc " - } else { - sortSql += " asc " + if o != "asc" { + sortOrder = "desc" } } - tx = tx.Order(sortSql) + tx = tx.Order(fmt.Sprintf("%s %s", v, sortOrder)) } // 查询数据 if err := tx.Find(&rows).Error; err != nil { logger.Errorf("query err => %v", err) + return rows, total } - return rows, total } diff --git a/src/modules/network_data/repository/kpi_report.go b/src/modules/network_data/repository/kpi_report.go index 1ff0b8b1..82e5fb75 100644 --- a/src/modules/network_data/repository/kpi_report.go +++ b/src/modules/network_data/repository/kpi_report.go @@ -188,22 +188,20 @@ func (r KpiReport) TitleSelectByPage(query map[string]string) ([]model.KpiTitle, // 排序 if v, ok := query["sortField"]; ok && v != "" { - sortSql := v + sortOrder := "asc" if o, ok := query["sortOrder"]; ok && o != "" { - if o == "desc" { - sortSql += " desc " - } else { - sortSql += " asc " + if o != "asc" { + sortOrder = "desc" } } - tx = tx.Order(sortSql) + tx = tx.Order(fmt.Sprintf("%s %s", v, sortOrder)) } // 查询数据 if err := tx.Find(&rows).Error; err != nil { logger.Errorf("query err => %v", err) + return rows, total } - return rows, total } diff --git a/src/modules/network_data/repository/udm_auth.go b/src/modules/network_data/repository/udm_auth.go index c665b9de..e9231a2d 100644 --- a/src/modules/network_data/repository/udm_auth.go +++ b/src/modules/network_data/repository/udm_auth.go @@ -57,22 +57,20 @@ func (r *UDMAuthUser) SelectPage(query map[string]string) ([]model.UDMAuthUser, // 排序 if v, ok := query["sortField"]; ok && v != "" { - sortSql := v + sortOrder := "asc" if o, ok := query["sortOrder"]; ok && o != "" { - if o == "desc" { - sortSql += " desc " - } else { - sortSql += " asc " + if o != "asc" { + sortOrder = "desc" } } - tx = tx.Order(sortSql) + tx = tx.Order(fmt.Sprintf("%s %s", v, sortOrder)) } // 查询数据 if err := tx.Find(&rows).Error; err != nil { logger.Errorf("query err => %v", err) + return rows, total } - return rows, total } diff --git a/src/modules/network_data/repository/udm_extend.go b/src/modules/network_data/repository/udm_extend.go index 00a4d73e..b027832f 100644 --- a/src/modules/network_data/repository/udm_extend.go +++ b/src/modules/network_data/repository/udm_extend.go @@ -34,21 +34,24 @@ func (r UDMExtend) SelectByPage(query map[string]string) ([]model.UDMExtend, int return rows, total } + // 分页 + pageNum, pageSize := db.PageNumSize(query["pageNum"], query["pageSize"]) + tx = tx.Offset(int(pageNum * pageSize)).Limit(int(pageSize)) + // 排序 if v, ok := query["sortField"]; ok && v != "" { - sortField := v + sortOrder := "asc" if o, ok := query["sortOrder"]; ok && o != "" { - sortField = sortField + " desc" + if o != "asc" { + sortOrder = "desc" + } } - tx = tx.Order(sortField) + tx = tx.Order(fmt.Sprintf("%s %s", v, sortOrder)) } - // 查询数据分页 - pageNum, pageSize := db.PageNumSize(query["pageNum"], query["pageSize"]) - tx = tx.Limit(pageSize).Offset(pageSize * pageNum) - err := tx.Find(&rows).Error - if err != nil { - logger.Errorf("query find err => %v", err.Error()) + // 查询数据 + if err := tx.Find(&rows).Error; err != nil { + logger.Errorf("query err => %v", err) return rows, total } return rows, total diff --git a/src/modules/network_data/repository/udm_sub.go b/src/modules/network_data/repository/udm_sub.go index 2a939045..977cd799 100644 --- a/src/modules/network_data/repository/udm_sub.go +++ b/src/modules/network_data/repository/udm_sub.go @@ -60,22 +60,20 @@ func (r *UDMSubUser) SelectPage(query map[string]string) ([]model.UDMSubUser, in // 排序 if v, ok := query["sortField"]; ok && v != "" { - sortSql := v + sortOrder := "asc" if o, ok := query["sortOrder"]; ok && o != "" { - if o == "desc" { - sortSql += " desc " - } else { - sortSql += " asc " + if o != "asc" { + sortOrder = "desc" } } - tx = tx.Order(sortSql) + tx = tx.Order(fmt.Sprintf("%s %s", v, sortOrder)) } // 查询数据 if err := tx.Find(&rows).Error; err != nil { logger.Errorf("query err => %v", err) + return rows, total } - return rows, total } diff --git a/src/modules/network_data/repository/udm_voip.go b/src/modules/network_data/repository/udm_voip.go index ada692aa..dfb5a0db 100644 --- a/src/modules/network_data/repository/udm_voip.go +++ b/src/modules/network_data/repository/udm_voip.go @@ -57,24 +57,20 @@ func (r UDMVOIPUser) SelectPage(query map[string]string) ([]model.UDMVOIPUser, i // 排序 if v, ok := query["sortField"]; ok && v != "" { - sortSql := v + sortOrder := "asc" if o, ok := query["sortOrder"]; ok && o != "" { - if o == "desc" { - sortSql += " desc " - } else { - sortSql += " asc " + if o != "asc" { + sortOrder = "desc" } } - tx = tx.Order(sortSql) - } else { - tx = tx.Order("username asc") + tx = tx.Order(fmt.Sprintf("%s %s", v, sortOrder)) } // 查询数据 if err := tx.Find(&rows).Error; err != nil { logger.Errorf("query err => %v", err) + return rows, total } - return rows, total } diff --git a/src/modules/network_data/repository/udm_volte_ims.go b/src/modules/network_data/repository/udm_volte_ims.go index 984ccc4c..0871d9b9 100644 --- a/src/modules/network_data/repository/udm_volte_ims.go +++ b/src/modules/network_data/repository/udm_volte_ims.go @@ -66,24 +66,20 @@ func (r UDMVolteIMSUser) SelectPage(query map[string]string) ([]model.UDMVolteIM // 排序 if v, ok := query["sortField"]; ok && v != "" { - sortSql := v + sortOrder := "asc" if o, ok := query["sortOrder"]; ok && o != "" { - if o == "desc" { - sortSql += " desc " - } else { - sortSql += " asc " + if o != "asc" { + sortOrder = "desc" } } - tx = tx.Order(sortSql) - } else { - tx = tx.Order("imsi asc") + tx = tx.Order(fmt.Sprintf("%s %s", v, sortOrder)) } // 查询数据 if err := tx.Find(&rows).Error; err != nil { logger.Errorf("query err => %v", err) + return rows, total } - return rows, total } diff --git a/src/modules/network_data/repository/ue_event.go b/src/modules/network_data/repository/ue_event.go index ef98e2f6..465f1e28 100644 --- a/src/modules/network_data/repository/ue_event.go +++ b/src/modules/network_data/repository/ue_event.go @@ -2,7 +2,6 @@ package repository import ( "fmt" - "sort" "strings" "time" @@ -61,58 +60,21 @@ func (r UEEvent) SelectByPage(neType string, query map[string]string) ([]model.U tx = tx.Offset(int(pageNum * pageSize)).Limit(int(pageSize)) } + // 排序 + if v, ok := query["sortField"]; ok && v != "" { + sortOrder := "asc" + if o, ok := query["sortOrder"]; ok && o != "" { + if o != "asc" { + sortOrder = "desc" + } + } + tx = tx.Order(fmt.Sprintf("%s %s", v, sortOrder)) + } + // 查询数据 if err := tx.Find(&rows).Error; err != nil { logger.Errorf("query err => %v", err) - } - - // 排序 - if v, ok := query["sortField"]; ok && v != "" { - sortField := v - sortOrder := "asc" - if o, ok := query["sortOrder"]; ok && o != "" { - if o == "desc" { - sortOrder = "desc" - } else { - sortOrder = "asc" - } - } - sort.SliceStable(rows, func(i, j int) bool { - // 支持的排序字段映射 - fieldGetters := map[string]func(*model.UEEvent) any{ - "id": func(row *model.UEEvent) any { return row.ID }, - "timestamp": func(row *model.UEEvent) any { return row.CreatedAt }, - "createdAt": func(row *model.UEEvent) any { return row.CreatedAt }, - // 可添加更多支持的字段 - } - - // 获取字段 getter 函数 - getter, ok := fieldGetters[sortField] - if !ok { - // 非法字段,使用默认排序(id升序) - return rows[i].ID < rows[j].ID - } - - // 获取比较值 - valI, valJ := getter(&rows[i]), getter(&rows[j]) - - // 根据字段类型进行比较 - switch v := valI.(type) { - case int64: - if sortOrder == "desc" { - return v > valJ.(int64) - } - return v < valJ.(int64) - case string: - if sortOrder == "desc" { - return v > valJ.(string) - } - return v < valJ.(string) - default: - // 不支持的字段类型,使用默认排序 - return rows[i].ID < rows[j].ID - } - }) + return rows, total } return rows, total } diff --git a/src/modules/network_element/repository/ne_host.go b/src/modules/network_element/repository/ne_host.go index c2102736..d89cc747 100644 --- a/src/modules/network_element/repository/ne_host.go +++ b/src/modules/network_element/repository/ne_host.go @@ -44,26 +44,25 @@ func (r NeHost) SelectByPage(query map[string]string) ([]model.NeHost, int64) { // 排序 if sv, ok := query["sortField"]; ok && sv != "" { - sortSql := fmt.Sprint(sv) - if sortSql == "updateTime" { - sortSql = "update_time" + sortField := fmt.Sprint(sv) + if sortField == "updateTime" { + sortField = "update_time" } - if sortSql == "createTime" { - sortSql = "create_time" + if sortField == "createTime" { + sortField = "create_time" } - if ov, ok := query["sortOrder"]; ok && ov != "" { - if fmt.Sprint(ov) == "desc" { - sortSql += " desc " - } else { - sortSql += " asc " + sortOrder := "asc" + if o, ok := query["sortOrder"]; ok && o != "" { + if o != "asc" { + sortOrder = "desc" } } - tx = tx.Order(sortSql) + tx = tx.Order(fmt.Sprintf("%s %s", sortField, sortOrder)) } - err := tx.Find(&rows).Error - if err != nil { - logger.Errorf("query find err => %v", err.Error()) + // 查询数据 + if err := tx.Find(&rows).Error; err != nil { + logger.Errorf("query err => %v", err) return rows, total } return rows, total