feat: 更新多个模块以支持新的数据结构和日志格式

This commit is contained in:
TsMask
2025-02-20 10:08:27 +08:00
parent 045a2b6b01
commit f3c33b31ac
272 changed files with 13246 additions and 15885 deletions

View File

@@ -0,0 +1,194 @@
package repository
import (
"strings"
"time"
"be.ems/src/framework/database/db"
"be.ems/src/framework/logger"
"be.ems/src/modules/network_data/model"
)
// 实例化数据层 Alarm 结构体
var NewAlarm = &Alarm{}
// Alarm 告警 数据层处理
type Alarm struct{}
// SelectByPage 分页查询集合
func (r Alarm) SelectByPage(query model.AlarmQuery) ([]model.Alarm, int64) {
tx := db.DB("").Model(&model.Alarm{})
// 查询条件拼接
if query.NeType != "" {
tx = tx.Where("ne_type = ?", query.NeType)
}
if query.NeID != "" {
tx = tx.Where("ne_id = ?", query.NeID)
}
if query.NeName != "" {
tx = tx.Where("ne_name = ?", query.NeName)
}
if query.PvFlag != "" {
tx = tx.Where("pv_flag = ?", query.PvFlag)
}
if query.AlarmCode != "" {
tx = tx.Where("alarm_code = ?", query.AlarmCode)
}
if query.AlarmType != "" {
tx = tx.Where("alarm_type in (?)", strings.Split(query.AlarmType, ","))
}
if query.AlarmStatus != "" {
tx = tx.Where("alarm_status = ?", query.AlarmStatus)
}
if query.OrigSeverity != "" {
tx = tx.Where("orig_severity in (?)", strings.Split(query.OrigSeverity, ","))
}
if query.BeginTime != 0 {
tx = tx.Where("event_time >= ?", query.BeginTime)
}
if query.EndTime != 0 {
tx = tx.Where("event_time <= ?", query.EndTime)
}
// 查询结果
var total int64 = 0
rows := []model.Alarm{}
// 查询数量为0直接返回
if err := tx.Count(&total).Error; err != nil || total <= 0 {
return rows, total
}
// 排序
if query.SortField != "" {
sortField := query.SortField
if query.SortOrder == "desc" {
sortField = sortField + " desc"
}
tx = tx.Order(sortField)
}
// 查询数据分页
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())
return rows, total
}
return rows, total
}
// Select 查询集合
func (r Alarm) Select(param model.Alarm) []model.Alarm {
tx := db.DB("").Model(&model.Alarm{})
// 查询条件拼接
if param.NeType != "" {
tx = tx.Where("ne_type = ?", param.NeType)
}
if param.NeId != "" {
tx = tx.Where("ne_id = ?", param.NeId)
}
if param.NeName != "" {
tx = tx.Where("ne_name = ?", param.NeName)
}
if param.AlarmCode > 0 {
tx = tx.Where("alarm_code = ?", param.AlarmCode)
}
if param.AlarmType != "" {
tx = tx.Where("alarm_type = ?", param.AlarmType)
}
if param.AlarmId != "" {
tx = tx.Where("alarm_id = ?", param.AlarmId)
}
if param.OrigSeverity != "" {
eventTypes := strings.Split(param.OrigSeverity, ",")
tx = tx.Where("orig_severity in (%s)", eventTypes)
}
if param.PvFlag != "" {
tx = tx.Where("pv_flag = ?", param.PvFlag)
}
// 查询数据
rows := []model.Alarm{}
if err := tx.Find(&rows).Error; err != nil {
logger.Errorf("query find err => %v", err.Error())
return rows
}
return rows
}
// SelectByIds 通过ID查询
func (r Alarm) SelectByIds(ids []int64) []model.Alarm {
rows := []model.Alarm{}
if len(ids) <= 0 {
return rows
}
tx := db.DB("").Model(&model.Alarm{})
// 构建查询条件
tx = tx.Where("id in ?", ids)
// 查询数据
if err := tx.Find(&rows).Error; err != nil {
logger.Errorf("query find err => %v", err.Error())
return rows
}
return rows
}
// Insert 新增信息 返回新增数据ID
func (r Alarm) Insert(param model.Alarm) int64 {
if param.Timestamp == 0 {
param.Timestamp = time.Now().UnixMilli()
}
// 执行插入
if err := db.DB("").Create(&param).Error; err != nil {
logger.Errorf("insert err => %v", err.Error())
return 0
}
return param.ID
}
// Update 修改信息 返回受影响的行数
func (r Alarm) Update(param model.Alarm) int64 {
if param.ID <= 0 {
return 0
}
tx := db.DB("").Model(&model.Alarm{})
// 构建查询条件
tx = tx.Where("id = ?", param.ID)
tx = tx.Omit("id", "timestamp")
// 执行更新
if err := tx.Updates(param).Error; err != nil {
logger.Errorf("update err => %v", err.Error())
return 0
}
return tx.RowsAffected
}
// DeleteByIds 批量删除信息
func (r Alarm) DeleteByIds(ids []int64) int64 {
if len(ids) <= 0 {
return 0
}
tx := db.DB("").Where("id in ?", ids)
if err := tx.Delete(&model.Alarm{}).Error; err != nil {
logger.Errorf("delete err => %v", err.Error())
return 0
}
return tx.RowsAffected
}
// SelectAlarmSeqLast 查询网元告警最后一条序号
func (r Alarm) SelectAlarmSeqLast(neType, neId string) int64 {
tx := db.DB("").Model(&model.Alarm{})
tx = tx.Where("ne_type=? and ne_id=?", neType, neId)
tx = tx.Select("alarm_seq").Order("alarm_seq DESC")
// 查询数据
var alarmSeq int64 = 0
if err := tx.Limit(1).Find(&alarmSeq).Error; err != nil {
logger.Errorf("query find err => %v", err.Error())
return alarmSeq
}
return alarmSeq
}

View File

@@ -0,0 +1,169 @@
package repository
import (
"time"
"be.ems/src/framework/database/db"
"be.ems/src/framework/logger"
"be.ems/src/modules/network_data/model"
)
// 实例化数据层 AlarmEvent 结构体
var NewAlarmEvent = &AlarmEvent{}
// AlarmEvent 告警 数据层处理
type AlarmEvent struct{}
// SelectByPage 分页查询集合
func (r AlarmEvent) SelectByPage(query model.AlarmEventQuery) ([]model.AlarmEvent, int64) {
tx := db.DB("").Model(&model.AlarmEvent{})
// 查询条件拼接
if query.NeType != "" {
tx = tx.Where("ne_type = ?", query.NeType)
}
if query.NeID != "" {
tx = tx.Where("ne_id = ?", query.NeID)
}
if query.AlarmCode != "" {
tx = tx.Where("alarm_code = ?", query.AlarmCode)
}
if query.AlarmStatus != "" {
tx = tx.Where("alarm_status = ?", query.AlarmStatus)
}
if query.BeginTime != 0 {
tx = tx.Where("event_time >= ?", query.BeginTime)
}
if query.EndTime != 0 {
tx = tx.Where("event_time <= ?", query.EndTime)
}
// 查询结果
var total int64 = 0
rows := []model.AlarmEvent{}
// 查询数量为0直接返回
if err := tx.Count(&total).Error; err != nil || total <= 0 {
return rows, total
}
// 排序
if query.SortField != "" {
sortField := query.SortField
if query.SortOrder == "desc" {
sortField = sortField + " desc"
}
tx = tx.Order(sortField)
}
// 查询数据分页
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())
return rows, total
}
return rows, total
}
// Select 查询集合
func (r AlarmEvent) Select(param model.AlarmEvent) []model.AlarmEvent {
tx := db.DB("").Model(&model.AlarmEvent{})
// 查询条件拼接
if param.NeType != "" {
tx = tx.Where("ne_type = ?", param.NeType)
}
if param.NeId != "" {
tx = tx.Where("ne_id = ?", param.NeId)
}
if param.AlarmId != "" {
tx = tx.Where("alarm_id = ?", param.AlarmId)
}
if param.AlarmCode != 0 {
tx = tx.Where("alarm_code = ?", param.AlarmCode)
}
if param.AlarmStatus != "" {
tx = tx.Where("alarm_status = ?", param.AlarmStatus)
}
// 查询数据
rows := []model.AlarmEvent{}
if err := tx.Find(&rows).Error; err != nil {
logger.Errorf("query find err => %v", err.Error())
return rows
}
return rows
}
// SelectByIds 通过ID查询
func (r AlarmEvent) SelectByIds(ids []int64) []model.AlarmEvent {
rows := []model.AlarmEvent{}
if len(ids) <= 0 {
return rows
}
tx := db.DB("").Model(&model.AlarmEvent{})
// 构建查询条件
tx = tx.Where("id in ?", ids)
// 查询数据
if err := tx.Find(&rows).Error; err != nil {
logger.Errorf("query find err => %v", err.Error())
return rows
}
return rows
}
// Insert 新增信息 返回新增数据ID
func (r AlarmEvent) Insert(param model.AlarmEvent) int64 {
if param.Timestamp == 0 {
param.Timestamp = time.Now().UnixMilli()
}
// 执行插入
if err := db.DB("").Create(&param).Error; err != nil {
logger.Errorf("insert err => %v", err.Error())
return 0
}
return param.ID
}
// Update 修改信息 返回受影响的行数
func (r AlarmEvent) Update(param model.AlarmEvent) int64 {
if param.ID <= 0 {
return 0
}
tx := db.DB("").Model(&model.AlarmEvent{})
// 构建查询条件
tx = tx.Where("id = ?", param.ID)
tx = tx.Omit("id", "timestamp")
// 执行更新
if err := tx.Updates(param).Error; err != nil {
logger.Errorf("update err => %v", err.Error())
return 0
}
return tx.RowsAffected
}
// DeleteByIds 批量删除信息
func (r AlarmEvent) DeleteByIds(ids []int64) int64 {
if len(ids) <= 0 {
return 0
}
tx := db.DB("").Where("id in ?", ids)
if err := tx.Delete(&model.AlarmEvent{}).Error; err != nil {
logger.Errorf("delete err => %v", err.Error())
return 0
}
return tx.RowsAffected
}
// SelectAlarmEventSeqLast 查询网元告警最后一条序号
func (r AlarmEvent) SelectAlarmEventSeqLast(neType, neId string) int64 {
tx := db.DB("").Model(&model.AlarmEvent{})
tx = tx.Where("ne_type=? and ne_id=?", neType, neId)
tx = tx.Select("alarm_seq").Order("alarm_seq DESC")
// 查询数据
var AlarmEventSeq int64 = 0
if err := tx.Limit(1).Find(&AlarmEventSeq).Error; err != nil {
logger.Errorf("query find err => %v", err.Error())
return AlarmEventSeq
}
return AlarmEventSeq
}

View File

@@ -0,0 +1,104 @@
package repository
import (
"time"
"be.ems/src/framework/database/db"
"be.ems/src/framework/logger"
"be.ems/src/modules/network_data/model"
)
// 实例化数据层 AlarmForwardLog 结构体
var NewAlarmForwardLog = &AlarmForwardLog{}
// AlarmForwardLog 基站状态记录表 数据层处理
type AlarmForwardLog struct{}
// SelectByPage 分页查询集合
func (r AlarmForwardLog) SelectByPage(query model.AlarmForwardLogQuery) ([]model.AlarmForwardLog, int64) {
tx := db.DB("").Model(&model.AlarmForwardLog{})
// 查询条件拼接
if query.NeType != "" {
tx = tx.Where("ne_type = ?", query.NeType)
}
if query.NeID != "" {
tx = tx.Where("ne_id = ?", query.NeID)
}
if query.BeginTime != 0 {
tx = tx.Where("create_time >= ?", query.BeginTime)
}
if query.EndTime != 0 {
tx = tx.Where("create_time <= ?", query.EndTime)
}
// 查询结果
var total int64 = 0
rows := []model.AlarmForwardLog{}
// 查询数量为0直接返回
if err := tx.Count(&total).Error; err != nil || total <= 0 {
return rows, total
}
// 排序
if query.SortField != "" {
sortField := query.SortField
if query.SortOrder == "desc" {
sortField = sortField + " desc"
}
tx = tx.Order(sortField)
}
// 查询数据分页
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())
return rows, total
}
return rows, total
}
// SelectByIds 通过ID查询
func (r AlarmForwardLog) SelectByIds(ids []int64) []model.AlarmForwardLog {
rows := []model.AlarmForwardLog{}
if len(ids) <= 0 {
return rows
}
tx := db.DB("").Model(&model.AlarmForwardLog{})
// 构建查询条件
tx = tx.Where("id in ?", ids)
// 查询数据
if err := tx.Find(&rows).Error; err != nil {
logger.Errorf("query find err => %v", err.Error())
return rows
}
return rows
}
// DeleteByIds 批量删除信息
func (r AlarmForwardLog) DeleteByIds(ids []int64) int64 {
if len(ids) <= 0 {
return 0
}
tx := db.DB("").Where("id in ?", ids)
if err := tx.Delete(&model.AlarmForwardLog{}).Error; err != nil {
logger.Errorf("delete err => %v", err.Error())
return 0
}
return tx.RowsAffected
}
// Insert 新增信息
func (r AlarmForwardLog) Insert(param model.AlarmForwardLog) int64 {
if param.CreatedAt == 0 {
param.CreatedAt = time.Now().UnixMilli()
}
// 执行插入
if err := db.DB("").Create(&param).Error; err != nil {
logger.Errorf("insert err => %v", err.Error())
return 0
}
return param.ID
}

View File

@@ -0,0 +1,104 @@
package repository
import (
"time"
"be.ems/src/framework/database/db"
"be.ems/src/framework/logger"
"be.ems/src/modules/network_data/model"
)
// 实例化数据层 AlarmLog 结构体
var NewAlarmLog = &AlarmLog{}
// AlarmLog 基站状态记录表 数据层处理
type AlarmLog struct{}
// SelectByPage 分页查询集合
func (r AlarmLog) SelectByPage(query model.AlarmLogQuery) ([]model.AlarmLog, int64) {
tx := db.DB("").Model(&model.AlarmLog{})
// 查询条件拼接
if query.NeType != "" {
tx = tx.Where("ne_type = ?", query.NeType)
}
if query.NeID != "" {
tx = tx.Where("ne_id = ?", query.NeID)
}
if query.BeginTime != 0 {
tx = tx.Where("create_time >= ?", query.BeginTime)
}
if query.EndTime != 0 {
tx = tx.Where("create_time <= ?", query.EndTime)
}
// 查询结果
var total int64 = 0
rows := []model.AlarmLog{}
// 查询数量为0直接返回
if err := tx.Count(&total).Error; err != nil || total <= 0 {
return rows, total
}
// 排序
if query.SortField != "" {
sortField := query.SortField
if query.SortOrder == "desc" {
sortField = sortField + " desc"
}
tx = tx.Order(sortField)
}
// 查询数据分页
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())
return rows, total
}
return rows, total
}
// SelectByIds 通过ID查询
func (r AlarmLog) SelectByIds(ids []int64) []model.AlarmLog {
rows := []model.AlarmLog{}
if len(ids) <= 0 {
return rows
}
tx := db.DB("").Model(&model.AlarmLog{})
// 构建查询条件
tx = tx.Where("id in ?", ids)
// 查询数据
if err := tx.Find(&rows).Error; err != nil {
logger.Errorf("query find err => %v", err.Error())
return rows
}
return rows
}
// DeleteByIds 批量删除信息
func (r AlarmLog) DeleteByIds(ids []int64) int64 {
if len(ids) <= 0 {
return 0
}
tx := db.DB("").Where("id in ?", ids)
if err := tx.Delete(&model.AlarmLog{}).Error; err != nil {
logger.Errorf("delete err => %v", err.Error())
return 0
}
return tx.RowsAffected
}
// Insert 新增信息
func (r AlarmLog) Insert(param model.AlarmLog) int64 {
if param.CreatedAt == 0 {
param.CreatedAt = time.Now().UnixMilli()
}
// 执行插入
if err := db.DB("").Create(&param).Error; err != nil {
logger.Errorf("insert err => %v", err.Error())
return 0
}
return param.ID
}

View File

@@ -1,103 +0,0 @@
package repository
import (
"strings"
"be.ems/src/framework/datasource"
"be.ems/src/framework/logger"
"be.ems/src/modules/network_data/model"
)
// 实例化数据层 Alarm 结构体
var NewAlarm = &Alarm{}
// Alarm 告警 数据层处理
type Alarm struct{}
// SelectByPage 分页查询集合
func (r Alarm) SelectByPage(querys model.AlarmQuery) ([]model.Alarm, int64) {
tx := datasource.DB("").Model(&model.Alarm{})
// 查询条件拼接
if querys.NeType != "" {
tx = tx.Where("ne_type = ?", querys.NeType)
}
if querys.RmUID != "" {
tx = tx.Where("rm_uid = ?", querys.RmUID)
}
if querys.StartTime != "" {
startTime := querys.StartTime
if len(startTime) == 13 {
startTime = startTime[:10]
}
tx = tx.Where("timestamp >= ?", startTime)
}
if querys.EndTime != "" {
endTime := querys.EndTime
if len(endTime) == 13 {
endTime = endTime[:10]
}
tx = tx.Where("timestamp <= ?", endTime)
}
if querys.OrigSeverity != "" {
eventTypes := strings.Split(querys.OrigSeverity, ",")
tx = tx.Where("orig_severity in (%s)", eventTypes)
}
// 查询结果
var total int64 = 0
rows := []model.Alarm{}
// 查询数量为0直接返回
if err := tx.Count(&total).Error; err != nil || total <= 0 {
return rows, total
}
// 排序
if querys.SortField != "" {
sortField := querys.SortField
if querys.SortOrder == "desc" {
sortField = sortField + " desc"
}
tx = tx.Order(sortField)
}
// 查询数据分页
pageNum, pageSize := datasource.PageNumSize(querys.PageNum, querys.PageSize)
tx = tx.Limit(pageSize).Offset(pageSize * pageNum)
err := tx.Find(&rows).Error
if err != nil {
logger.Errorf("query find err => %v", err.Error())
return rows, total
}
return rows, total
}
// SelectByIds 通过ID查询
func (r *Alarm) SelectByIds(ids []string) []model.Alarm {
rows := []model.Alarm{}
if len(ids) <= 0 {
return rows
}
tx := datasource.DB("").Model(&model.Alarm{})
// 构建查询条件
tx = tx.Where("id in ?", ids)
// 查询数据
if err := tx.Find(&rows).Error; err != nil {
logger.Errorf("query find err => %v", err.Error())
return rows
}
return rows
}
// DeleteByIds 批量删除信息
func (r *Alarm) DeleteByIds(ids []string) int64 {
if len(ids) <= 0 {
return 0
}
tx := datasource.DB("").Where("id in ?", ids)
if err := tx.Delete(&model.Alarm{}).Error; err != nil {
logger.Errorf("delete err => %v", err.Error())
return 0
}
return tx.RowsAffected
}

View File

@@ -1,131 +0,0 @@
package repository
import (
"fmt"
"strings"
"be.ems/src/framework/datasource"
"be.ems/src/framework/logger"
"be.ems/src/modules/network_data/model"
)
// 实例化数据层 PerfKPI 结构体
var NewPerfKPI = &PerfKPI{}
// PerfKPI 性能统计 数据层处理
type PerfKPI struct{}
// SelectGoldKPI 通过网元指标数据信息
func (r *PerfKPI) SelectGoldKPI(query model.GoldKPIQuery, kpiIds []string) []map[string]any {
// 查询条件拼接
var conditions []string
var params []any
var tableName string = "kpi_report_"
if query.RmUID != "" {
conditions = append(conditions, "gk.rm_uid = ?")
params = append(params, query.RmUID)
}
if query.NeType != "" {
//conditions = append(conditions, "gk.ne_type = ?")
// params = append(params, query.NeType)
tableName += strings.ToLower(query.NeType)
}
if query.StartTime != "" {
conditions = append(conditions, "gk.created_at >= ?")
params = append(params, query.StartTime)
}
if query.EndTime != "" {
conditions = append(conditions, "gk.created_at <= ?")
params = append(params, query.EndTime)
}
// 构建查询条件语句
whereSql := ""
if len(conditions) > 0 {
whereSql += " where " + strings.Join(conditions, " and ")
}
// 查询字段列
var fields = []string{
// fmt.Sprintf("FROM_UNIXTIME(FLOOR(gk.created_at / (%d * 1000)) * %d) AS timeGroup", query.Interval, query.Interval),
fmt.Sprintf("CONCAT(FLOOR(gk.created_at / (%d * 1000)) * (%d * 1000)) AS timeGroup", query.Interval, query.Interval), // 时间戳毫秒
"min(CASE WHEN gk.index != '' THEN gk.index ELSE 0 END) AS startIndex",
"min(CASE WHEN gk.ne_type != '' THEN gk.ne_type ELSE 0 END) AS neType",
"min(CASE WHEN gk.ne_name != '' THEN gk.ne_name ELSE 0 END) AS neName",
}
for i, kid := range kpiIds {
// 特殊字段只取最后一次收到的非0值
if kid == "AMF.01" || kid == "UDM.01" || kid == "UDM.02" || kid == "UDM.03" || kid == "SMF.01" {
str := fmt.Sprintf("IFNULL(SUBSTRING_INDEX(GROUP_CONCAT( CASE WHEN JSON_EXTRACT(gk.kpi_values, '$[%d].kpi_id') = '%s' THEN JSON_EXTRACT(gk.kpi_values, '$[%d].value') END ), ',', 1), 0) AS '%s'", i, kid, i, kid)
fields = append(fields, str)
} else {
str := fmt.Sprintf("sum(CASE WHEN JSON_EXTRACT(gk.kpi_values, '$[%d].kpi_id') = '%s' THEN JSON_EXTRACT(gk.kpi_values, '$[%d].value') ELSE 0 END) AS '%s'", i, kid, i, kid)
fields = append(fields, str)
}
}
fieldsSql := strings.Join(fields, ",")
// 查询数据
if query.SortField == "" {
query.SortField = "timeGroup"
}
if query.SortOrder == "" {
query.SortOrder = "desc"
}
orderSql := fmt.Sprintf(" order by %s %s", query.SortField, query.SortOrder)
querySql := fmt.Sprintf("SELECT %s FROM %s gk %s GROUP BY timeGroup %s", fieldsSql, tableName, whereSql, orderSql)
results, err := datasource.RawDB("", querySql, params)
if err != nil {
logger.Errorf("query err => %v", err)
}
return results
}
// SelectGoldKPITitle 网元对应的指标名称
func (r *PerfKPI) SelectGoldKPITitle(neType string) []model.GoldKPITitle {
result := []model.GoldKPITitle{}
tx := datasource.DefaultDB().Table("kpi_title").Where("ne_type = ?", neType).Find(&result)
if err := tx.Error; err != nil {
logger.Errorf("Find err => %v", err)
}
return result
}
// SelectUPFTotalFlow 查询UPF总流量 N3上行 N6下行
func (r *PerfKPI) SelectUPFTotalFlow(neType, rmUID, startDate, endDate string) map[string]any {
// 查询条件拼接
var conditions []string
var params []any
if neType != "" {
conditions = append(conditions, "kupf.ne_type = ?")
params = append(params, neType)
}
if rmUID != "" {
conditions = append(conditions, "kupf.rm_uid = ?")
params = append(params, rmUID)
}
if startDate != "" {
conditions = append(conditions, "kupf.created_at >= ?")
params = append(params, startDate)
}
if endDate != "" {
conditions = append(conditions, "kupf.created_at <= ?")
params = append(params, endDate)
}
// 构建查询条件语句
whereSql := ""
if len(conditions) > 0 {
whereSql += " where " + strings.Join(conditions, " and ")
}
// 查询数据
querySql := `SELECT
sum( CASE WHEN JSON_EXTRACT(kupf.kpi_values, '$[2].kpi_id') = 'UPF.03' THEN JSON_EXTRACT(kupf.kpi_values, '$[2].value') ELSE 0 END ) AS 'up',
sum( CASE WHEN JSON_EXTRACT(kupf.kpi_values, '$[5].kpi_id') = 'UPF.06' THEN JSON_EXTRACT(kupf.kpi_values, '$[5].value') ELSE 0 END ) AS 'down'
FROM kpi_report_upf kupf`
results, err := datasource.RawDB("", querySql+whereSql, params)
if err != nil {
logger.Errorf("query err => %v", err)
}
return results[0]
}

View File

@@ -4,7 +4,7 @@ import (
"fmt"
"strings"
"be.ems/src/framework/datasource"
"be.ems/src/framework/database/db"
"be.ems/src/framework/logger"
"be.ems/src/modules/network_data/model"
)
@@ -16,43 +16,35 @@ var NewCDREventIMS = &CDREventIMS{}
type CDREventIMS struct{}
// SelectByPage 分页查询集合
func (r CDREventIMS) SelectByPage(querys model.CDREventIMSQuery) ([]model.CDREventIMS, int64) {
tx := datasource.DB("").Model(&model.CDREventIMS{})
func (r CDREventIMS) SelectByPage(query model.CDREventIMSQuery) ([]model.CDREventIMS, int64) {
tx := db.DB("").Model(&model.CDREventIMS{})
// 查询条件拼接
if querys.NeType != "" {
tx = tx.Where("ne_type = ?", querys.NeType)
if query.NeType != "" {
tx = tx.Where("ne_type = ?", query.NeType)
}
if querys.RmUID != "" {
tx = tx.Where("rm_uid = ?", querys.RmUID)
if query.RmUID != "" {
tx = tx.Where("rm_uid = ?", query.RmUID)
}
if querys.StartTime != "" {
startTime := querys.StartTime
if len(startTime) == 13 {
startTime = startTime[:10]
}
tx = tx.Where("timestamp >= ?", startTime)
if query.BeginTime != 0 {
tx = tx.Where("timestamp >= ?", query.BeginTime)
}
if querys.EndTime != "" {
endTime := querys.EndTime
if len(endTime) == 13 {
endTime = endTime[:10]
}
tx = tx.Where("timestamp <= ?", endTime)
if query.EndTime != 0 {
tx = tx.Where("timestamp <= ?", query.EndTime)
}
if querys.CallerParty != "" {
tx = tx.Where("JSON_EXTRACT(cdr_json, '$.callerParty') = ?", querys.CallerParty)
if query.CallerParty != "" {
tx = tx.Where("JSON_EXTRACT(cdr_json, '$.callerParty') = ?", query.CallerParty)
}
if querys.CalledParty != "" {
tx = tx.Where("JSON_EXTRACT(cdr_json, '$.calledParty') = ?", querys.CalledParty)
if query.CalledParty != "" {
tx = tx.Where("JSON_EXTRACT(cdr_json, '$.calledParty') = ?", query.CalledParty)
}
if querys.RecordType != "" {
recordTypes := strings.Split(querys.RecordType, ",")
var queryStrArr []string
if query.RecordType != "" {
recordTypes := strings.Split(query.RecordType, ",")
var querytrArr []string
for _, recordType := range recordTypes {
queryStrArr = append(queryStrArr, fmt.Sprintf("JSON_EXTRACT(cdr_json, '$.recordType') = '%s'", recordType))
querytrArr = append(querytrArr, fmt.Sprintf("JSON_EXTRACT(cdr_json, '$.recordType') = '%s'", recordType))
}
tx = tx.Where(fmt.Sprintf("( %s )", strings.Join(queryStrArr, " OR ")))
tx = tx.Where(fmt.Sprintf("( %s )", strings.Join(querytrArr, " OR ")))
}
// 查询结果
@@ -65,16 +57,16 @@ func (r CDREventIMS) SelectByPage(querys model.CDREventIMSQuery) ([]model.CDREve
}
// 排序
if querys.SortField != "" {
sortField := querys.SortField
if querys.SortOrder == "desc" {
if query.SortField != "" {
sortField := query.SortField
if query.SortOrder == "desc" {
sortField = sortField + " desc"
}
tx = tx.Order(sortField)
}
// 查询数据分页
pageNum, pageSize := datasource.PageNumSize(querys.PageNum, querys.PageSize)
pageNum, pageSize := db.PageNumSize(query.PageNum, query.PageSize)
tx = tx.Limit(pageSize).Offset(pageSize * pageNum)
err := tx.Find(&rows).Error
if err != nil {
@@ -85,12 +77,12 @@ func (r CDREventIMS) SelectByPage(querys model.CDREventIMSQuery) ([]model.CDREve
}
// SelectByIds 通过ID查询
func (r *CDREventIMS) SelectByIds(ids []string) []model.CDREventIMS {
func (r *CDREventIMS) SelectByIds(ids []int64) []model.CDREventIMS {
rows := []model.CDREventIMS{}
if len(ids) <= 0 {
return rows
}
tx := datasource.DB("").Model(&model.CDREventIMS{})
tx := db.DB("").Model(&model.CDREventIMS{})
// 构建查询条件
tx = tx.Where("id in ?", ids)
// 查询数据
@@ -102,11 +94,11 @@ func (r *CDREventIMS) SelectByIds(ids []string) []model.CDREventIMS {
}
// DeleteByIds 批量删除信息
func (r *CDREventIMS) DeleteByIds(ids []string) int64 {
func (r *CDREventIMS) DeleteByIds(ids []int64) int64 {
if len(ids) <= 0 {
return 0
}
tx := datasource.DB("").Where("id in ?", ids)
tx := db.DB("").Where("id in ?", ids)
if err := tx.Delete(&model.CDREventIMS{}).Error; err != nil {
logger.Errorf("delete err => %v", err.Error())
return 0

View File

@@ -1,7 +1,7 @@
package repository
import (
"be.ems/src/framework/datasource"
"be.ems/src/framework/database/db"
"be.ems/src/framework/logger"
"be.ems/src/modules/network_data/model"
)
@@ -13,34 +13,26 @@ var NewCDREventSGWC = &CDREventSGWC{}
type CDREventSGWC struct{}
// SelectByPage 分页查询集合
func (r CDREventSGWC) SelectByPage(querys model.CDREventSGWCQuery) ([]model.CDREventSGWC, int64) {
tx := datasource.DB("").Model(&model.CDREventSGWC{})
func (r CDREventSGWC) SelectByPage(query model.CDREventSGWCQuery) ([]model.CDREventSGWC, int64) {
tx := db.DB("").Model(&model.CDREventSGWC{})
// 查询条件拼接
if querys.NeType != "" {
tx = tx.Where("ne_type = ?", querys.NeType)
if query.NeType != "" {
tx = tx.Where("ne_type = ?", query.NeType)
}
if querys.RmUID != "" {
tx = tx.Where("rm_uid = ?", querys.RmUID)
if query.RmUID != "" {
tx = tx.Where("rm_uid = ?", query.RmUID)
}
if querys.StartTime != "" {
startTime := querys.StartTime
if len(startTime) == 13 {
startTime = startTime[:10]
}
tx = tx.Where("timestamp >= ?", startTime)
if query.BeginTime != 0 {
tx = tx.Where("timestamp >= ?", query.BeginTime)
}
if querys.EndTime != "" {
endTime := querys.EndTime
if len(endTime) == 13 {
endTime = endTime[:10]
}
tx = tx.Where("timestamp <= ?", endTime)
if query.EndTime != 0 {
tx = tx.Where("timestamp <= ?", query.EndTime)
}
if querys.IMSI != "" {
tx = tx.Where("JSON_EXTRACT(cdr_json, '$.servedIMSI') = ?", querys.IMSI)
if query.IMSI != "" {
tx = tx.Where("JSON_EXTRACT(cdr_json, '$.servedIMSI') = ?", query.IMSI)
}
if querys.MSISDN != "" {
tx = tx.Where("JSON_EXTRACT(cdr_json, '$.servedMSISDN') = ?", querys.MSISDN)
if query.MSISDN != "" {
tx = tx.Where("JSON_EXTRACT(cdr_json, '$.servedMSISDN') = ?", query.MSISDN)
}
// 查询结果
@@ -53,16 +45,16 @@ func (r CDREventSGWC) SelectByPage(querys model.CDREventSGWCQuery) ([]model.CDRE
}
// 排序
if querys.SortField != "" {
sortField := querys.SortField
if querys.SortOrder == "desc" {
if query.SortField != "" {
sortField := query.SortField
if query.SortOrder == "desc" {
sortField = sortField + " desc"
}
tx = tx.Order(sortField)
}
// 查询数据分页
pageNum, pageSize := datasource.PageNumSize(querys.PageNum, querys.PageSize)
pageNum, pageSize := db.PageNumSize(query.PageNum, query.PageSize)
tx = tx.Limit(pageSize).Offset(pageSize * pageNum)
err := tx.Find(&rows).Error
if err != nil {
@@ -73,12 +65,12 @@ func (r CDREventSGWC) SelectByPage(querys model.CDREventSGWCQuery) ([]model.CDRE
}
// SelectByIds 通过ID查询
func (r *CDREventSGWC) SelectByIds(ids []string) []model.CDREventSGWC {
func (r *CDREventSGWC) SelectByIds(ids []int64) []model.CDREventSGWC {
rows := []model.CDREventSGWC{}
if len(ids) <= 0 {
return rows
}
tx := datasource.DB("").Model(&model.CDREventSGWC{})
tx := db.DB("").Model(&model.CDREventSGWC{})
// 构建查询条件
tx = tx.Where("id in ?", ids)
// 查询数据
@@ -90,11 +82,11 @@ func (r *CDREventSGWC) SelectByIds(ids []string) []model.CDREventSGWC {
}
// DeleteByIds 批量删除信息
func (r *CDREventSGWC) DeleteByIds(ids []string) int64 {
func (r *CDREventSGWC) DeleteByIds(ids []int64) int64 {
if len(ids) <= 0 {
return 0
}
tx := datasource.DB("").Where("id in ?", ids)
tx := db.DB("").Where("id in ?", ids)
if err := tx.Delete(&model.CDREventSGWC{}).Error; err != nil {
logger.Errorf("delete err => %v", err.Error())
return 0

View File

@@ -1,7 +1,7 @@
package repository
import (
"be.ems/src/framework/datasource"
"be.ems/src/framework/database/db"
"be.ems/src/framework/logger"
"be.ems/src/modules/network_data/model"
)
@@ -13,37 +13,29 @@ var NewCDREventSMF = &CDREventSMF{}
type CDREventSMF struct{}
// SelectByPage 分页查询集合
func (r CDREventSMF) SelectByPage(querys model.CDREventSMFQuery) ([]model.CDREventSMF, int64) {
tx := datasource.DB("").Model(&model.CDREventSMF{})
func (r CDREventSMF) SelectByPage(query model.CDREventSMFQuery) ([]model.CDREventSMF, int64) {
tx := db.DB("").Model(&model.CDREventSMF{})
// 查询条件拼接
if querys.NeType != "" {
tx = tx.Where("ne_type = ?", querys.NeType)
if query.NeType != "" {
tx = tx.Where("ne_type = ?", query.NeType)
}
if querys.RmUID != "" {
tx = tx.Where("rm_uid = ?", querys.RmUID)
if query.RmUID != "" {
tx = tx.Where("rm_uid = ?", query.RmUID)
}
if querys.StartTime != "" {
startTime := querys.StartTime
if len(startTime) == 13 {
startTime = startTime[:10]
}
tx = tx.Where("timestamp >= ?", startTime)
if query.BeginTime != 0 {
tx = tx.Where("timestamp >= ?", query.BeginTime)
}
if querys.EndTime != "" {
endTime := querys.EndTime
if len(endTime) == 13 {
endTime = endTime[:10]
}
tx = tx.Where("timestamp <= ?", endTime)
if query.EndTime != 0 {
tx = tx.Where("timestamp <= ?", query.EndTime)
}
if querys.RecordType != "" {
tx = tx.Where("JSON_EXTRACT(cdr_json, '$.recordType') = ?", querys.RecordType)
if query.RecordType != "" {
tx = tx.Where("JSON_EXTRACT(cdr_json, '$.recordType') = ?", query.RecordType)
}
if querys.SubscriberID != "" {
tx = tx.Where("JSON_EXTRACT(cdr_json, '$.subscriberIdentifier.subscriptionIDData') = ?", querys.SubscriberID)
if query.SubscriberID != "" {
tx = tx.Where("JSON_EXTRACT(cdr_json, '$.subscriberIdentifier.subscriptionIDData') = ?", query.SubscriberID)
}
if querys.DNN != "" {
tx = tx.Where("JSON_EXTRACT(cdr_json, '$.pDUSessionChargingInformation.dNNID') = ?", querys.DNN)
if query.DNN != "" {
tx = tx.Where("JSON_EXTRACT(cdr_json, '$.pDUSessionChargingInformation.dNNID') = ?", query.DNN)
}
// 查询结果
@@ -56,16 +48,16 @@ func (r CDREventSMF) SelectByPage(querys model.CDREventSMFQuery) ([]model.CDREve
}
// 排序
if querys.SortField != "" {
sortField := querys.SortField
if querys.SortOrder == "desc" {
if query.SortField != "" {
sortField := query.SortField
if query.SortOrder == "desc" {
sortField = sortField + " desc"
}
tx = tx.Order(sortField)
}
// 查询数据分页
pageNum, pageSize := datasource.PageNumSize(querys.PageNum, querys.PageSize)
pageNum, pageSize := db.PageNumSize(query.PageNum, query.PageSize)
tx = tx.Limit(pageSize).Offset(pageSize * pageNum)
err := tx.Find(&rows).Error
if err != nil {
@@ -76,12 +68,12 @@ func (r CDREventSMF) SelectByPage(querys model.CDREventSMFQuery) ([]model.CDREve
}
// SelectByIds 通过ID查询
func (r *CDREventSMF) SelectByIds(ids []string) []model.CDREventSMF {
func (r *CDREventSMF) SelectByIds(ids []int64) []model.CDREventSMF {
rows := []model.CDREventSMF{}
if len(ids) <= 0 {
return rows
}
tx := datasource.DB("").Model(&model.CDREventSMF{})
tx := db.DB("").Model(&model.CDREventSMF{})
// 构建查询条件
tx = tx.Where("id in ?", ids)
// 查询数据
@@ -93,11 +85,11 @@ func (r *CDREventSMF) SelectByIds(ids []string) []model.CDREventSMF {
}
// DeleteByIds 批量删除信息
func (r *CDREventSMF) DeleteByIds(ids []string) int64 {
func (r *CDREventSMF) DeleteByIds(ids []int64) int64 {
if len(ids) <= 0 {
return 0
}
tx := datasource.DB("").Where("id in ?", ids)
tx := db.DB("").Where("id in ?", ids)
if err := tx.Delete(&model.CDREventSMF{}).Error; err != nil {
logger.Errorf("delete err => %v", err.Error())
return 0

View File

@@ -4,7 +4,7 @@ import (
"fmt"
"strings"
"be.ems/src/framework/datasource"
"be.ems/src/framework/database/db"
"be.ems/src/framework/logger"
"be.ems/src/modules/network_data/model"
)
@@ -16,43 +16,35 @@ var NewCDREventSMSC = &CDREventSMSC{}
type CDREventSMSC struct{}
// SelectByPage 分页查询集合
func (r CDREventSMSC) SelectByPage(querys model.CDREventSMSCQuery) ([]model.CDREventSMSC, int64) {
tx := datasource.DB("").Model(&model.CDREventSMSC{})
func (r CDREventSMSC) SelectByPage(query model.CDREventSMSCQuery) ([]model.CDREventSMSC, int64) {
tx := db.DB("").Model(&model.CDREventSMSC{})
// 查询条件拼接
if querys.NeType != "" {
tx = tx.Where("ne_type = ?", querys.NeType)
if query.NeType != "" {
tx = tx.Where("ne_type = ?", query.NeType)
}
if querys.RmUID != "" {
tx = tx.Where("rm_uid = ?", querys.RmUID)
if query.RmUID != "" {
tx = tx.Where("rm_uid = ?", query.RmUID)
}
if querys.StartTime != "" {
startTime := querys.StartTime
if len(startTime) == 13 {
startTime = startTime[:10]
}
tx = tx.Where("timestamp >= ?", startTime)
if query.BeginTime != 0 {
tx = tx.Where("timestamp >= ?", query.BeginTime)
}
if querys.EndTime != "" {
endTime := querys.EndTime
if len(endTime) == 13 {
endTime = endTime[:10]
}
tx = tx.Where("timestamp <= ?", endTime)
if query.EndTime != 0 {
tx = tx.Where("timestamp <= ?", query.EndTime)
}
if querys.CallerParty != "" {
tx = tx.Where("JSON_EXTRACT(cdr_json, '$.callerParty') = ?", querys.CallerParty)
if query.CallerParty != "" {
tx = tx.Where("JSON_EXTRACT(cdr_json, '$.callerParty') = ?", query.CallerParty)
}
if querys.CalledParty != "" {
tx = tx.Where("JSON_EXTRACT(cdr_json, '$.calledParty') = ?", querys.CalledParty)
if query.CalledParty != "" {
tx = tx.Where("JSON_EXTRACT(cdr_json, '$.calledParty') = ?", query.CalledParty)
}
if querys.RecordType != "" {
recordTypes := strings.Split(querys.RecordType, ",")
var queryStrArr []string
if query.RecordType != "" {
recordTypes := strings.Split(query.RecordType, ",")
var querytrArr []string
for _, recordType := range recordTypes {
queryStrArr = append(queryStrArr, fmt.Sprintf("JSON_EXTRACT(cdr_json, '$.recordType') = '%s'", recordType))
querytrArr = append(querytrArr, fmt.Sprintf("JSON_EXTRACT(cdr_json, '$.recordType') = '%s'", recordType))
}
tx = tx.Where(fmt.Sprintf("( %s )", strings.Join(queryStrArr, " OR ")))
tx = tx.Where(fmt.Sprintf("( %s )", strings.Join(querytrArr, " OR ")))
}
// 查询结果
@@ -65,16 +57,16 @@ func (r CDREventSMSC) SelectByPage(querys model.CDREventSMSCQuery) ([]model.CDRE
}
// 排序
if querys.SortField != "" {
sortField := querys.SortField
if querys.SortOrder == "desc" {
if query.SortField != "" {
sortField := query.SortField
if query.SortOrder == "desc" {
sortField = sortField + " desc"
}
tx = tx.Order(sortField)
}
// 查询数据分页
pageNum, pageSize := datasource.PageNumSize(querys.PageNum, querys.PageSize)
pageNum, pageSize := db.PageNumSize(query.PageNum, query.PageSize)
tx = tx.Limit(pageSize).Offset(pageSize * pageNum)
err := tx.Find(&rows).Error
if err != nil {
@@ -85,12 +77,12 @@ func (r CDREventSMSC) SelectByPage(querys model.CDREventSMSCQuery) ([]model.CDRE
}
// SelectByIds 通过ID查询
func (r *CDREventSMSC) SelectByIds(ids []string) []model.CDREventSMSC {
func (r *CDREventSMSC) SelectByIds(ids []int64) []model.CDREventSMSC {
rows := []model.CDREventSMSC{}
if len(ids) <= 0 {
return rows
}
tx := datasource.DB("").Model(&model.CDREventSMSC{})
tx := db.DB("").Model(&model.CDREventSMSC{})
// 构建查询条件
tx = tx.Where("id in ?", ids)
// 查询数据
@@ -102,11 +94,11 @@ func (r *CDREventSMSC) SelectByIds(ids []string) []model.CDREventSMSC {
}
// DeleteByIds 批量删除信息
func (r *CDREventSMSC) DeleteByIds(ids []string) int64 {
func (r *CDREventSMSC) DeleteByIds(ids []int64) int64 {
if len(ids) <= 0 {
return 0
}
tx := datasource.DB("").Where("id in ?", ids)
tx := db.DB("").Where("id in ?", ids)
if err := tx.Delete(&model.CDREventSMSC{}).Error; err != nil {
logger.Errorf("delete err => %v", err.Error())
return 0

View File

@@ -0,0 +1,89 @@
package repository
import (
"fmt"
"strings"
"time"
"be.ems/src/framework/database/db"
"be.ems/src/framework/logger"
"be.ems/src/modules/network_data/model"
)
// 实例化数据层 KpiCReport 结构体
var NewKpiCReport = &KpiCReport{}
// KpiCReport 性能统计 数据层处理
type KpiCReport struct{}
// SelectGoldKPI 通过网元指标数据信息
func (r KpiCReport) SelectKPI(query model.KPIQuery) []model.KpiCReport {
rows := []model.KpiCReport{}
if query.NeType == "" {
return rows
}
tx := db.DB("").Model(&model.KpiCReport{})
// 表名
tableName := fmt.Sprintf("kpi_c_report_%s", strings.ToLower(query.NeType))
tx.Table(tableName)
// 构建查询条件
if query.RmUID != "" {
tx = tx.Where("rm_uid = ?", query.RmUID)
}
if query.BeginTime != 0 {
tx = tx.Where("created_at >= ?", query.BeginTime)
}
if query.EndTime != 0 {
tx = tx.Where("created_at <= ?", query.EndTime)
}
// 排序
if query.SortField == "" || query.SortField == "timeGroup" {
query.SortField = "created_at"
}
if query.SortOrder == "" {
query.SortOrder = "desc"
}
tx = tx.Order(fmt.Sprintf("%s %s", query.SortField, query.SortOrder))
// 查询数据
if err := tx.Find(&rows).Error; err != nil {
logger.Errorf("query find err => %v", err.Error())
return rows
}
return rows
}
// Insert 新增信息 返回新增数据ID
func (r KpiCReport) Insert(param model.KpiCReport) int64 {
if param.NeType == "" {
return 0
}
if param.CreatedAt == 0 {
param.CreatedAt = time.Now().UnixMilli()
}
// 表名
tableName := fmt.Sprintf("kpi_c_report_%s", strings.ToLower(param.NeType))
// 执行插入
if err := db.DB("").Table(tableName).Create(&param).Error; err != nil {
logger.Errorf("insert err => %v", err.Error())
return 0
}
return param.ID
}
// SelectKPITitle 网元对应的指标名称
func (r KpiCReport) SelectKPITitle(neType string) []model.KpiCTitle {
rows := []model.KpiCTitle{}
if neType == "" {
return rows
}
tx := db.DB("").Model(&model.KpiCTitle{})
// 构建查询条件
tx = tx.Where("ne_type =?", neType)
// 查询数据
if err := tx.Find(&rows).Error; err != nil {
logger.Errorf("query find err => %v", err.Error())
return rows
}
return rows
}

View File

@@ -0,0 +1,106 @@
package repository
import (
"fmt"
"strings"
"time"
"be.ems/src/framework/database/db"
"be.ems/src/framework/logger"
"be.ems/src/modules/network_data/model"
)
// 实例化数据层 KpiReport 结构体
var NewKpiReport = &KpiReport{}
// KpiReport 性能统计 数据层处理
type KpiReport struct{}
// SelectGoldKPI 通过网元指标数据信息
func (r KpiReport) SelectKPI(query model.KPIQuery) []model.KpiReport {
rows := []model.KpiReport{}
if query.NeType == "" {
return rows
}
tx := db.DB("").Model(&model.KpiReport{})
// 表名
tableName := fmt.Sprintf("kpi_report_%s", strings.ToLower(query.NeType))
tx = tx.Table(tableName)
// 构建查询条件
if query.RmUID != "" {
tx = tx.Where("rm_uid = ?", query.RmUID)
}
if query.BeginTime != 0 {
tx = tx.Where("created_at >= ?", query.BeginTime)
}
if query.EndTime != 0 {
tx = tx.Where("created_at <= ?", query.EndTime)
}
// 排序
if query.SortField == "" || query.SortField == "timeGroup" {
query.SortField = "created_at"
}
if query.SortOrder == "" {
query.SortOrder = "desc"
}
tx = tx.Order(fmt.Sprintf("%s %s", query.SortField, query.SortOrder))
// 查询数据
if err := tx.Find(&rows).Error; err != nil {
logger.Errorf("query find err => %v", err.Error())
return rows
}
return rows
}
// Insert 新增信息 返回新增数据ID
func (r KpiReport) Insert(param model.KpiReport) int64 {
if param.NeType == "" {
return 0
}
if param.CreatedAt == 0 {
param.CreatedAt = time.Now().UnixMilli()
}
// 表名
tableName := fmt.Sprintf("kpi_report_%s", strings.ToLower(param.NeType))
// 执行插入
if err := db.DB("").Table(tableName).Create(&param).Error; err != nil {
logger.Errorf("insert err => %v", err.Error())
return 0
}
return param.ID
}
// SelectKPITitle 网元对应的指标名称
func (r KpiReport) SelectKPITitle(neType string) []model.KpiTitle {
rows := []model.KpiTitle{}
if neType == "" {
return rows
}
tx := db.DB("").Model(&model.KpiTitle{})
// 构建查询条件
tx = tx.Where("ne_type =?", neType)
// 查询数据
if err := tx.Find(&rows).Error; err != nil {
logger.Errorf("query find err => %v", err.Error())
return rows
}
return rows
}
// SelectUPF 查询UPF数据 N3上行,N6下行
func (r KpiReport) SelectUPF(rmUID string, beginTime, endTime int64) []model.KpiReport {
tx := db.DB("").Model(&model.KpiReport{})
// 表名
tx = tx.Table("kpi_report_upf")
tx = tx.Where("rm_uid = ?", rmUID)
tx = tx.Where("created_at >= ?", beginTime)
tx = tx.Where("created_at <= ?", endTime)
// 查询数据
rows := []model.KpiReport{}
if err := tx.Select("kpi_values").Find(&rows).Error; err != nil {
logger.Errorf("query find err => %v", err.Error())
return rows
}
return rows
}

View File

@@ -3,7 +3,7 @@ package repository
import (
"time"
"be.ems/src/framework/datasource"
"be.ems/src/framework/database/db"
"be.ems/src/framework/logger"
"be.ems/src/modules/network_data/model"
)
@@ -16,7 +16,7 @@ type NBState struct{}
// SelectByPage 分页查询集合
func (r NBState) SelectByPage(query model.NBStateQuery) ([]model.NBState, int64) {
tx := datasource.DB("").Model(&model.NBState{})
tx := db.DB("").Model(&model.NBState{})
// 查询条件拼接
if query.NeType != "" {
tx = tx.Where("ne_type = ?", query.NeType)
@@ -64,7 +64,7 @@ func (r NBState) SelectByPage(query model.NBStateQuery) ([]model.NBState, int64)
}
// 查询数据分页
pageNum, pageSize := datasource.PageNumSize(query.PageNum, query.PageSize)
pageNum, pageSize := db.PageNumSize(query.PageNum, query.PageSize)
tx = tx.Limit(pageSize).Offset(pageSize * pageNum)
err := tx.Find(&rows).Error
if err != nil {
@@ -80,7 +80,7 @@ func (r NBState) SelectByIds(ids []string) []model.NBState {
if len(ids) <= 0 {
return rows
}
tx := datasource.DB("").Model(&model.NBState{})
tx := db.DB("").Model(&model.NBState{})
// 构建查询条件
tx = tx.Where("id in ?", ids)
// 查询数据
@@ -96,7 +96,7 @@ func (r NBState) DeleteByIds(ids []string) int64 {
if len(ids) <= 0 {
return 0
}
tx := datasource.DB("").Where("id in ?", ids)
tx := db.DB("").Where("id in ?", ids)
if err := tx.Delete(&model.NBState{}).Error; err != nil {
logger.Errorf("delete err => %v", err.Error())
return 0
@@ -108,7 +108,7 @@ func (r NBState) DeleteByIds(ids []string) int64 {
func (r NBState) Insert(param model.NBState) int64 {
param.CreateTime = time.Now().UnixMilli()
// 执行插入
if err := datasource.DB("").Create(&param).Error; err != nil {
if err := db.DB("").Create(&param).Error; err != nil {
logger.Errorf("insert err => %v", err.Error())
return 0
}

View File

@@ -1,9 +1,8 @@
package repository
import (
"be.ems/src/framework/datasource"
"be.ems/src/framework/database/db"
"be.ems/src/framework/logger"
"be.ems/src/framework/utils/repo"
"be.ems/src/modules/network_data/model"
)
@@ -17,7 +16,7 @@ type UDMAuthUser struct{}
func (r *UDMAuthUser) ClearAndInsert(neId string, uArr []model.UDMAuthUser) int64 {
// 不指定neID时用 TRUNCATE 清空表快
// _, err := datasource.ExecDB("", "TRUNCATE TABLE u_auth_user", nil)
result := datasource.DB("").Where("ne_id = ?", neId).Unscoped().Delete(&model.UDMAuthUser{})
result := db.DB("").Where("ne_id = ?", neId).Unscoped().Delete(&model.UDMAuthUser{})
if result.Error != nil {
logger.Errorf("Delete err => %v", result.Error)
}
@@ -25,8 +24,8 @@ func (r *UDMAuthUser) ClearAndInsert(neId string, uArr []model.UDMAuthUser) int6
}
// SelectPage 根据条件分页查询
func (r *UDMAuthUser) SelectPage(query map[string]any) (int64, []model.UDMAuthUser) {
tx := datasource.DB("").Model(&model.UDMAuthUser{})
func (r *UDMAuthUser) SelectPage(query map[string]string) (int64, []model.UDMAuthUser) {
tx := db.DB("").Model(&model.UDMAuthUser{})
// 查询条件拼接
if v, ok := query["imsi"]; ok && v != "" {
tx = tx.Where("imsi like concat(concat('%',?), '%')", v)
@@ -48,13 +47,13 @@ func (r *UDMAuthUser) SelectPage(query map[string]any) (int64, []model.UDMAuthUs
}
// 分页
pageNum, pageSize := repo.PageNumSize(query["pageNum"], query["pageSize"])
pageNum, pageSize := db.PageNumSize(query["pageNum"], query["pageSize"])
tx = tx.Offset(int(pageNum * pageSize)).Limit(int(pageSize))
// 排序
if v, ok := query["sortField"]; ok && v != "" {
sortSql := v.(string)
if o, ok := query["sortOrder"]; ok && o != nil && v != "" {
sortSql := v
if o, ok := query["sortOrder"]; ok && o != "" {
if o == "desc" {
sortSql += " desc "
} else {
@@ -74,7 +73,7 @@ func (r *UDMAuthUser) SelectPage(query map[string]any) (int64, []model.UDMAuthUs
// SelectList 根据实体查询
func (r *UDMAuthUser) SelectList(u model.UDMAuthUser) []model.UDMAuthUser {
tx := datasource.DB("").Model(&model.UDMAuthUser{})
tx := db.DB("").Model(&model.UDMAuthUser{})
// 查询条件拼接
if u.IMSI != "" {
tx = tx.Where("imsi = ?", u.IMSI)
@@ -93,7 +92,7 @@ func (r *UDMAuthUser) SelectList(u model.UDMAuthUser) []model.UDMAuthUser {
// SelectByIMSIAndNeID 通过imsi和ne_id查询
func (r *UDMAuthUser) SelectByIMSIAndNeID(imsi, neId string) model.UDMAuthUser {
tx := datasource.DB("").Model(&model.UDMAuthUser{})
tx := db.DB("").Model(&model.UDMAuthUser{})
item := model.UDMAuthUser{}
// 查询条件拼接
tx = tx.Where("imsi = ? and ne_id = ?", imsi, neId)
@@ -106,7 +105,7 @@ func (r *UDMAuthUser) SelectByIMSIAndNeID(imsi, neId string) model.UDMAuthUser {
// Insert 批量添加
func (r *UDMAuthUser) Inserts(uArr []model.UDMAuthUser) int64 {
tx := datasource.DB("").CreateInBatches(uArr, 3000)
tx := db.DB("").CreateInBatches(uArr, 3000)
if err := tx.Error; err != nil {
logger.Errorf("CreateInBatches err => %v", err)
}
@@ -115,7 +114,7 @@ func (r *UDMAuthUser) Inserts(uArr []model.UDMAuthUser) int64 {
// Delete 删除实体
func (r *UDMAuthUser) Delete(imsi, neId string) int64 {
tx := datasource.DefaultDB().Where("imsi = ? and ne_id = ?", imsi, neId).Delete(&model.UDMAuthUser{})
tx := db.DB("").Where("imsi = ? and ne_id = ?", imsi, neId).Delete(&model.UDMAuthUser{})
if err := tx.Error; err != nil {
logger.Errorf("Delete err => %v", err)
}
@@ -124,7 +123,7 @@ func (r *UDMAuthUser) Delete(imsi, neId string) int64 {
// DeletePrefixByIMSI 删除前缀匹配的实体
func (r *UDMAuthUser) DeletePrefixByIMSI(neId, imsi string) int64 {
tx := datasource.DefaultDB().Where("imsi like concat(?, '%') and ne_id = ?", imsi, neId).Delete(&model.UDMAuthUser{})
tx := db.DB("").Where("imsi like concat(?, '%') and ne_id = ?", imsi, neId).Delete(&model.UDMAuthUser{})
if err := tx.Error; err != nil {
logger.Errorf("DeletePrefixByIMSI err => %v", err)
}

View File

@@ -1,20 +1,20 @@
package repository
import (
"be.ems/src/framework/datasource"
"be.ems/src/framework/database/db"
"be.ems/src/framework/logger"
"be.ems/src/modules/network_data/model"
)
// 实例化数据层 UDMUserInfo 结构体
var NewUDMUserInfo = &UDMUserInfo{}
// 实例化数据层 UDMExtend 结构体
var NewUDMExtend = &UDMExtend{}
// UDMUserInfo UDM鉴权信息表 数据层处理
type UDMUserInfo struct{}
// UDMExtend UDM鉴权信息表 数据层处理
type UDMExtend struct{}
// SelectByPage 分页查询集合
func (r UDMUserInfo) SelectByPage(query map[string]string) ([]model.UDMUserInfo, int64) {
tx := datasource.DB("").Model(&model.UDMUserInfo{})
func (r UDMExtend) SelectByPage(query map[string]string) ([]model.UDMExtend, int64) {
tx := db.DB("").Model(&model.UDMExtend{})
// 查询条件拼接
if v, ok := query["imsi"]; ok && v != "" {
tx = tx.Where("imsi like concat(concat('%', ?), '%')", v)
@@ -25,7 +25,7 @@ func (r UDMUserInfo) SelectByPage(query map[string]string) ([]model.UDMUserInfo,
// 查询结果
var total int64 = 0
rows := []model.UDMUserInfo{}
rows := []model.UDMExtend{}
// 查询数量为0直接返回
if err := tx.Count(&total).Error; err != nil || total <= 0 {
@@ -42,7 +42,7 @@ func (r UDMUserInfo) SelectByPage(query map[string]string) ([]model.UDMUserInfo,
}
// 查询数据分页
pageNum, pageSize := datasource.PageNumSize(query["pageNum"], query["pageSize"])
pageNum, pageSize := db.PageNumSize(query["pageNum"], query["pageSize"])
tx = tx.Limit(pageSize).Offset(pageSize * pageNum)
err := tx.Find(&rows).Error
if err != nil {
@@ -53,8 +53,8 @@ func (r UDMUserInfo) SelectByPage(query map[string]string) ([]model.UDMUserInfo,
}
// SelectList 根据实体查询
func (r *UDMUserInfo) SelectList(u model.UDMUserInfo) []model.UDMUserInfo {
tx := datasource.DB("").Model(&model.UDMUserInfo{})
func (r *UDMExtend) SelectList(u model.UDMExtend) []model.UDMExtend {
tx := db.DB("").Model(&model.UDMExtend{})
// 构建查询条件
if u.IMSI != "" {
tx = tx.Where("imsi = ?", u.IMSI)
@@ -64,7 +64,7 @@ func (r *UDMUserInfo) SelectList(u model.UDMUserInfo) []model.UDMUserInfo {
}
tx = tx.Order("imsi asc")
// 查询数据
rows := []model.UDMUserInfo{}
rows := []model.UDMExtend{}
if err := tx.Find(&rows).Error; err != nil {
logger.Errorf("query find err => %v", err.Error())
return rows
@@ -73,8 +73,8 @@ func (r *UDMUserInfo) SelectList(u model.UDMUserInfo) []model.UDMUserInfo {
}
// SelectByIMSIAndNeID 通过imsi和ne_id查询 neId为%时模糊imsi查询
func (r *UDMUserInfo) SelectByIMSIAndNeID(imsi, neId string) model.UDMUserInfo {
tx := datasource.DB("").Model(&model.UDMUserInfo{})
func (r *UDMExtend) SelectByIMSIAndNeID(imsi, neId string) model.UDMExtend {
tx := db.DB("").Model(&model.UDMExtend{})
// 构建查询条件
if neId == "%" {
tx = tx.Where("imsi like concat(?, '%')", imsi)
@@ -82,19 +82,19 @@ func (r *UDMUserInfo) SelectByIMSIAndNeID(imsi, neId string) model.UDMUserInfo {
tx = tx.Where(" imsi = ? and ne_id = ?", imsi, neId)
}
// 查询数据
rows := []model.UDMUserInfo{}
rows := []model.UDMExtend{}
if err := tx.Limit(1).Find(&rows).Error; err != nil {
logger.Errorf("query find err => %v", err.Error())
}
if len(rows) > 0 {
return rows[0]
}
return model.UDMUserInfo{}
return model.UDMExtend{}
}
// Insert 批量添加
func (r *UDMUserInfo) Inserts(uArr []model.UDMUserInfo) int64 {
tx := datasource.DefaultDB().CreateInBatches(uArr, 3000)
func (r *UDMExtend) Inserts(uArr []model.UDMExtend) int64 {
tx := db.DB("").CreateInBatches(uArr, 3000)
if err := tx.Error; err != nil {
logger.Errorf("CreateInBatches err => %v", err)
}
@@ -102,14 +102,14 @@ func (r *UDMUserInfo) Inserts(uArr []model.UDMUserInfo) int64 {
}
// Delete 删除实体 neId为%时模糊imsi前缀
func (r *UDMUserInfo) Delete(imsi, neId string) int64 {
tx := datasource.DefaultDB()
func (r *UDMExtend) Delete(imsi, neId string) int64 {
tx := db.DB("")
if neId == "%" {
tx = tx.Where("imsi like concat(?, '%')", imsi)
} else {
tx = tx.Where(" imsi = ? and ne_id = ?", imsi, neId)
}
tx = tx.Delete(&model.UDMUserInfo{})
tx = tx.Delete(&model.UDMExtend{})
if err := tx.Error; err != nil {
logger.Errorf("Delete err => %v", err)
}

View File

@@ -1,9 +1,8 @@
package repository
import (
"be.ems/src/framework/datasource"
"be.ems/src/framework/database/db"
"be.ems/src/framework/logger"
"be.ems/src/framework/utils/repo"
"be.ems/src/modules/network_data/model"
)
@@ -17,7 +16,7 @@ type UDMSubUser struct{}
func (r *UDMSubUser) ClearAndInsert(neId string, u []model.UDMSubUser) int64 {
// 不指定neID时用 TRUNCATE 清空表快
// _, err := datasource.ExecDB("", "TRUNCATE TABLE u_sub_user", nil)
result := datasource.DB("").Where("ne_id = ?", neId).Unscoped().Delete(&model.UDMSubUser{})
result := db.DB("").Where("ne_id = ?", neId).Unscoped().Delete(&model.UDMSubUser{})
if result.Error != nil {
logger.Errorf("Delete err => %v", result.Error)
}
@@ -25,8 +24,8 @@ func (r *UDMSubUser) ClearAndInsert(neId string, u []model.UDMSubUser) int64 {
}
// SelectPage 根据条件分页查询字典类型
func (r *UDMSubUser) SelectPage(query map[string]any) (int64, []model.UDMSubUser) {
tx := datasource.DB("").Model(&model.UDMSubUser{})
func (r *UDMSubUser) SelectPage(query map[string]string) (int64, []model.UDMSubUser) {
tx := db.DB("").Model(&model.UDMSubUser{})
// 查询条件拼接
if v, ok := query["imsi"]; ok && v != "" {
tx = tx.Where("imsi like concat(concat('%', ?), '%')", v)
@@ -51,13 +50,13 @@ func (r *UDMSubUser) SelectPage(query map[string]any) (int64, []model.UDMSubUser
}
// 分页
pageNum, pageSize := repo.PageNumSize(query["pageNum"], query["pageSize"])
pageNum, pageSize := db.PageNumSize(query["pageNum"], query["pageSize"])
tx = tx.Offset(int(pageNum * pageSize)).Limit(int(pageSize))
// 排序
if v, ok := query["sortField"]; ok && v != "" {
sortSql := v.(string)
if o, ok := query["sortOrder"]; ok && o != nil && v != "" {
sortSql := v
if o, ok := query["sortOrder"]; ok && o != "" {
if o == "desc" {
sortSql += " desc "
} else {
@@ -77,7 +76,7 @@ func (r *UDMSubUser) SelectPage(query map[string]any) (int64, []model.UDMSubUser
// SelectList 根据实体查询
func (r *UDMSubUser) SelectList(u model.UDMSubUser) []model.UDMSubUser {
tx := datasource.DB("").Model(&model.UDMSubUser{})
tx := db.DB("").Model(&model.UDMSubUser{})
// 查询条件拼接
if u.IMSI != "" {
tx = tx.Where("imsi = ?", u.IMSI)
@@ -96,7 +95,7 @@ func (r *UDMSubUser) SelectList(u model.UDMSubUser) []model.UDMSubUser {
// SelectByIMSIAndNeID 通过imsi和ne_id查询
func (r *UDMSubUser) SelectByIMSIAndNeID(imsi, neId string) model.UDMSubUser {
tx := datasource.DB("").Model(&model.UDMSubUser{})
tx := db.DB("").Model(&model.UDMSubUser{})
item := model.UDMSubUser{}
// 查询条件拼接
tx = tx.Where("imsi = ? and ne_id = ?", imsi, neId)
@@ -109,7 +108,7 @@ func (r *UDMSubUser) SelectByIMSIAndNeID(imsi, neId string) model.UDMSubUser {
// Insert 批量添加
func (r *UDMSubUser) Inserts(uArr []model.UDMSubUser) int64 {
tx := datasource.DB("").CreateInBatches(uArr, 2000)
tx := db.DB("").CreateInBatches(uArr, 2000)
if err := tx.Error; err != nil {
logger.Errorf("CreateInBatches err => %v", err)
}
@@ -118,7 +117,7 @@ func (r *UDMSubUser) Inserts(uArr []model.UDMSubUser) int64 {
// Delete 删除实体
func (r *UDMSubUser) Delete(imsi, neId string) int64 {
tx := datasource.DefaultDB().Where("imsi = ? and ne_id = ?", imsi, neId).Delete(&model.UDMSubUser{})
tx := db.DB("").Where("imsi = ? and ne_id = ?", imsi, neId).Delete(&model.UDMSubUser{})
if err := tx.Error; err != nil {
logger.Errorf("Delete err => %v", err)
}
@@ -127,7 +126,7 @@ func (r *UDMSubUser) Delete(imsi, neId string) int64 {
// DeletePrefixByIMSI 删除前缀匹配的实体
func (r *UDMSubUser) DeletePrefixByIMSI(imsiPrefix, neId string) int64 {
tx := datasource.DefaultDB().Where("imsi like concat(?, '%') and ne_id = ?", imsiPrefix, neId).Delete(&model.UDMSubUser{})
tx := db.DB("").Where("imsi like concat(?, '%') and ne_id = ?", imsiPrefix, neId).Delete(&model.UDMSubUser{})
if err := tx.Error; err != nil {
logger.Errorf("DeletePrefixByIMSI err => %v", err)
}

View File

@@ -3,7 +3,7 @@ package repository
import (
"strings"
"be.ems/src/framework/datasource"
"be.ems/src/framework/database/db"
"be.ems/src/framework/logger"
"be.ems/src/modules/network_data/model"
)
@@ -15,35 +15,27 @@ var NewUEEventAMF = &UEEventAMF{}
type UEEventAMF struct{}
// SelectByPage 分页查询集合
func (r UEEventAMF) SelectByPage(querys model.UEEventAMFQuery) ([]model.UEEventAMF, int64) {
tx := datasource.DB("").Model(&model.UEEventAMF{})
func (r UEEventAMF) SelectByPage(query model.UEEventAMFQuery) ([]model.UEEventAMF, int64) {
tx := db.DB("").Model(&model.UEEventAMF{})
// 查询条件拼接
if querys.NeType != "" {
tx = tx.Where("ne_type = ?", querys.NeType)
if query.NeType != "" {
tx = tx.Where("ne_type = ?", query.NeType)
}
if querys.RmUID != "" {
tx = tx.Where("rm_uid = ?", querys.RmUID)
if query.RmUID != "" {
tx = tx.Where("rm_uid = ?", query.RmUID)
}
if querys.StartTime != "" {
startTime := querys.StartTime
if len(startTime) == 13 {
startTime = startTime[:10]
}
tx = tx.Where("timestamp >= ?", startTime)
if query.BeginTime != 0 {
tx = tx.Where("timestamp >= ?", query.BeginTime)
}
if querys.EndTime != "" {
endTime := querys.EndTime
if len(endTime) == 13 {
endTime = endTime[:10]
}
tx = tx.Where("timestamp <= ?", endTime)
if query.EndTime != 0 {
tx = tx.Where("timestamp <= ?", query.EndTime)
}
if querys.EventType != "" {
eventTypes := strings.Split(querys.EventType, ",")
if query.EventType != "" {
eventTypes := strings.Split(query.EventType, ",")
tx = tx.Where("event_type in ?", eventTypes)
}
if querys.IMSI != "" {
tx = tx.Where("JSON_EXTRACT(event_json, '$.imsi') = ?", querys.IMSI)
if query.IMSI != "" {
tx = tx.Where("JSON_EXTRACT(event_json, '$.imsi') = ?", query.IMSI)
}
// 查询结果
@@ -56,16 +48,16 @@ func (r UEEventAMF) SelectByPage(querys model.UEEventAMFQuery) ([]model.UEEventA
}
// 排序
if querys.SortField != "" {
sortField := querys.SortField
if querys.SortOrder == "desc" {
if query.SortField != "" {
sortField := query.SortField
if query.SortOrder == "desc" {
sortField = sortField + " desc"
}
tx = tx.Order(sortField)
}
// 查询数据分页
pageNum, pageSize := datasource.PageNumSize(querys.PageNum, querys.PageSize)
pageNum, pageSize := db.PageNumSize(query.PageNum, query.PageSize)
tx = tx.Limit(pageSize).Offset(pageSize * pageNum)
err := tx.Find(&rows).Error
if err != nil {
@@ -76,12 +68,12 @@ func (r UEEventAMF) SelectByPage(querys model.UEEventAMFQuery) ([]model.UEEventA
}
// SelectByIds 通过ID查询
func (r UEEventAMF) SelectByIds(ids []string) []model.UEEventAMF {
func (r UEEventAMF) SelectByIds(ids []int64) []model.UEEventAMF {
rows := []model.UEEventAMF{}
if len(ids) <= 0 {
return rows
}
tx := datasource.DB("").Model(&model.UEEventAMF{})
tx := db.DB("").Model(&model.UEEventAMF{})
// 构建查询条件
tx = tx.Where("id in ?", ids)
// 查询数据
@@ -93,11 +85,11 @@ func (r UEEventAMF) SelectByIds(ids []string) []model.UEEventAMF {
}
// DeleteByIds 批量删除信息
func (r UEEventAMF) DeleteByIds(ids []string) int64 {
func (r UEEventAMF) DeleteByIds(ids []int64) int64 {
if len(ids) <= 0 {
return 0
}
tx := datasource.DB("").Where("id in ?", ids)
tx := db.DB("").Where("id in ?", ids)
if err := tx.Delete(&model.UEEventAMF{}).Error; err != nil {
logger.Errorf("delete err => %v", err.Error())
return 0

View File

@@ -3,7 +3,7 @@ package repository
import (
"strings"
"be.ems/src/framework/datasource"
"be.ems/src/framework/database/db"
"be.ems/src/framework/logger"
"be.ems/src/modules/network_data/model"
)
@@ -15,35 +15,27 @@ var NewUEEventMME = &UEEventMME{}
type UEEventMME struct{}
// SelectByPage 分页查询集合
func (r UEEventMME) SelectByPage(querys model.UEEventMMEQuery) ([]model.UEEventMME, int64) {
tx := datasource.DB("").Model(&model.UEEventMME{})
func (r UEEventMME) SelectByPage(query model.UEEventMMEQuery) ([]model.UEEventMME, int64) {
tx := db.DB("").Model(&model.UEEventMME{})
// 查询条件拼接
if querys.NeType != "" {
tx = tx.Where("ne_type = ?", querys.NeType)
if query.NeType != "" {
tx = tx.Where("ne_type = ?", query.NeType)
}
if querys.RmUID != "" {
tx = tx.Where("rm_uid = ?", querys.RmUID)
if query.RmUID != "" {
tx = tx.Where("rm_uid = ?", query.RmUID)
}
if querys.StartTime != "" {
startTime := querys.StartTime
if len(startTime) == 13 {
startTime = startTime[:10]
}
tx = tx.Where("timestamp >= ?", startTime)
if query.BeginTime != 0 {
tx = tx.Where("timestamp >= ?", query.BeginTime)
}
if querys.EndTime != "" {
endTime := querys.EndTime
if len(endTime) == 13 {
endTime = endTime[:10]
}
tx = tx.Where("timestamp <= ?", endTime)
if query.EndTime != 0 {
tx = tx.Where("timestamp <= ?", query.EndTime)
}
if querys.EventType != "" {
eventTypes := strings.Split(querys.EventType, ",")
if query.EventType != "" {
eventTypes := strings.Split(query.EventType, ",")
tx = tx.Where("event_type in ?", eventTypes)
}
if querys.IMSI != "" {
tx = tx.Where("JSON_EXTRACT(event_json, '$.imsi') = ?", querys.IMSI)
if query.IMSI != "" {
tx = tx.Where("JSON_EXTRACT(event_json, '$.imsi') = ?", query.IMSI)
}
// 查询结果
@@ -56,16 +48,16 @@ func (r UEEventMME) SelectByPage(querys model.UEEventMMEQuery) ([]model.UEEventM
}
// 排序
if querys.SortField != "" {
sortField := querys.SortField
if querys.SortOrder == "desc" {
if query.SortField != "" {
sortField := query.SortField
if query.SortOrder == "desc" {
sortField = sortField + " desc"
}
tx = tx.Order(sortField)
}
// 查询数据分页
pageNum, pageSize := datasource.PageNumSize(querys.PageNum, querys.PageSize)
pageNum, pageSize := db.PageNumSize(query.PageNum, query.PageSize)
tx = tx.Limit(pageSize).Offset(pageSize * pageNum)
err := tx.Find(&rows).Error
if err != nil {
@@ -76,12 +68,12 @@ func (r UEEventMME) SelectByPage(querys model.UEEventMMEQuery) ([]model.UEEventM
}
// SelectByIds 通过ID查询
func (r UEEventMME) SelectByIds(ids []string) []model.UEEventMME {
func (r UEEventMME) SelectByIds(ids []int64) []model.UEEventMME {
rows := []model.UEEventMME{}
if len(ids) <= 0 {
return rows
}
tx := datasource.DB("").Model(&model.UEEventMME{})
tx := db.DB("").Model(&model.UEEventMME{})
// 构建查询条件
tx = tx.Where("id in ?", ids)
// 查询数据
@@ -93,11 +85,11 @@ func (r UEEventMME) SelectByIds(ids []string) []model.UEEventMME {
}
// DeleteByIds 批量删除信息
func (r UEEventMME) DeleteByIds(ids []string) int64 {
func (r UEEventMME) DeleteByIds(ids []int64) int64 {
if len(ids) <= 0 {
return 0
}
tx := datasource.DB("").Where("id in ?", ids)
tx := db.DB("").Where("id in ?", ids)
if err := tx.Delete(&model.UEEventMME{}).Error; err != nil {
logger.Errorf("delete err => %v", err.Error())
return 0