This commit is contained in:
2023-11-01 16:59:38 +08:00
8 changed files with 70 additions and 44 deletions

View File

@@ -98,3 +98,7 @@ DELETE FROM ne_license WHERE file_name IS NULL;
ALTER TABLE `omc_db`.`trace_data`
ADD COLUMN IF NOT EXISTS `length` int NULL AFTER `msg_direct`;
-- UDM签约存储长度不足
ALTER TABLE `omc_db`.`u_sub_user`
MODIFY COLUMN `sm_data` varchar(1500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'smData' AFTER `cn`,
MODIFY COLUMN `eps_dat` varchar(1500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'Eps' AFTER `smf_sel`;

View File

@@ -98,3 +98,7 @@ DELETE FROM ne_license WHERE file_name IS NULL;
ALTER TABLE `omc_db`.`trace_data`
ADD COLUMN IF NOT EXISTS `length` int NULL AFTER `msg_direct`;
-- UDM签约存储长度不足
ALTER TABLE `omc_db`.`u_sub_user`
MODIFY COLUMN `sm_data` varchar(1500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'smData' AFTER `cn`,
MODIFY COLUMN `eps_dat` varchar(1500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'Eps' AFTER `smf_sel`;

View File

@@ -254,18 +254,26 @@ func (s *UdmUserApi) UdmAuthUserInfo(w http.ResponseWriter, r *http.Request) {
ctx.JSON(w, 200, result.ErrMsg(err.Error()))
return
}
// 返回查询的用户信息
userInfo := model.UdmAuthUser{
Imsi: imsi,
Amf: data["amf"],
AlgoIndex: data["algo"],
Opc: data["opc"],
Ki: data["ki"],
}
// 查询数据库是否存在并存入
neId = ""
var userInfo model.UdmAuthUser
list := s.authUser.List(model.UdmAuthUser{NeID: neId, Imsi: imsi})
if len(list) == 0 {
if len(list) > 0 {
userInfo = list[0]
// 返回查询的用户信息
userInfo.Amf = data["amf"]
userInfo.AlgoIndex = data["algo"]
userInfo.Opc = data["opc"]
userInfo.Ki = data["ki"]
} else {
userInfo := model.UdmAuthUser{
Imsi: imsi,
Amf: data["amf"],
AlgoIndex: data["algo"],
Opc: data["opc"],
Ki: data["ki"],
}
s.authUser.Insert(neId, userInfo)
}
ctx.JSON(w, 200, result.OkData(userInfo))
@@ -653,39 +661,40 @@ func (s *UdmUserApi) UdmSubUserInfo(w http.ResponseWriter, r *http.Request) {
return
}
// 返回查询的用户信息
cnType, _ := strconv.ParseInt(data["CNType"][:4], 0, 64)
rat, _ := strconv.ParseInt(data["RAT"][:4], 0, 64)
userInfo := model.UdmSubUser{
Imsi: imsi,
Msisdn: data["MSISDN"],
Ambr: data["AMBR"],
Arfb: data["AreaForbidden"],
Cn: fmt.Sprint(cnType),
SmData: data["SM-Data(snssai+dnn[1..n])"],
Sar: data["ServiceAreaRestriction"],
Nssai: data["NSSAI"],
SmfSel: data["Smf-Selection"],
Rat: fmt.Sprint(rat),
}
// 1,64,24,65,def_eps,1,2,010200000000,-
if v, ok := data["EPS-Data"]; ok {
userInfo.EpsDat = v
arr := strings.Split(v, ",")
userInfo.EpsFlag = arr[0]
userInfo.EpsOdb = arr[1]
userInfo.HplmnOdb = arr[2]
userInfo.Ard = arr[3]
userInfo.Epstpl = arr[4]
userInfo.ContextId = arr[5]
userInfo.ApnContext = arr[7]
userInfo.StaticIp = arr[8]
}
// 查询数据库是否存在并存入
neId = ""
var userInfo model.UdmSubUser
list := s.subUser.List(model.UdmSubUser{NeID: neId, Imsi: imsi})
if len(list) == 0 {
if len(list) > 0 {
userInfo = list[0]
} else {
cnType, _ := strconv.ParseInt(data["CNType"][:4], 0, 64)
rat, _ := strconv.ParseInt(data["RAT"][:4], 0, 64)
userInfo := model.UdmSubUser{
Imsi: imsi,
Msisdn: data["MSISDN"],
Ambr: data["AMBR"],
Arfb: data["AreaForbidden"],
Cn: fmt.Sprint(cnType),
SmData: data["SM-Data(snssai+dnn[1..n])"],
Sar: data["ServiceAreaRestriction"],
Nssai: data["NSSAI"],
SmfSel: data["Smf-Selection"],
Rat: fmt.Sprint(rat),
}
// 1,64,24,65,def_eps,1,2,010200000000,-
if v, ok := data["EPS-Data"]; ok {
userInfo.EpsDat = v
arr := strings.Split(v, ",")
userInfo.EpsFlag = arr[0]
userInfo.EpsOdb = arr[1]
userInfo.HplmnOdb = arr[2]
userInfo.Ard = arr[3]
userInfo.Epstpl = arr[4]
userInfo.ContextId = arr[5]
userInfo.ApnContext = arr[7]
userInfo.StaticIp = arr[8]
}
s.subUser.Insert(neId, userInfo)
}
ctx.JSON(w, 200, result.OkData(userInfo))

View File

@@ -177,6 +177,7 @@ func (r *RepoUdmAuthUser) ClearAndInsert(neID string, authArr []model.UdmAuthUse
// 调用 InsertMulti 函数将批量数据插入数据库
results, err := datasource.DefaultDB().Table("u_auth_user").InsertMulti(batch)
if err != nil {
log.Errorf("InsertMulti err => %v", err)
continue
}
num += results

View File

@@ -196,6 +196,7 @@ func (r *RepoUdmSubUser) ClearAndInsert(neID string, subArr []model.UdmSubUser)
// 调用 InsertMulti 函数将批量数据插入数据库
results, err := datasource.DefaultDB().Table("u_sub_user").InsertMulti(batch)
if err != nil {
log.Errorf("InsertMulti err => %v", err)
continue
}
num += results

View File

@@ -34,6 +34,13 @@ func LogOperate(options collectlogs.Options) func(http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
startTime := time.Now()
// 只对前端发送的数据进行记录
appCodeStr := r.Header.Get("X-App-Code")
if appCodeStr == "" {
next.ServeHTTP(w, r)
return
}
// 函数名
funcName := runtime.FuncForPC(reflect.ValueOf(next).Pointer()).Name()
lastDotIndex := strings.LastIndex(funcName, "/")

View File

@@ -110,14 +110,14 @@ func init() {
Register("DELETE", dbrest.CustomXormExtDataUri, dbrest.ExtDatabaseDeleteData, nil)
// alarm restful Register
Register("POST", fm.UriAlarms, fm.PostAlarmFromNF, midware.LogOperate(collectlogs.OptionNew("Alarm", collectlogs.BUSINESS_TYPE_UPDATE)))
Register("POST", fm.UriAlarms, fm.PostAlarmFromNF, nil)
Register("Get", fm.UriAlarms, fm.GetAlarmFromNF, nil)
Register("POST", fm.CustomUriAlarms, fm.PostAlarmFromNF, nil)
Register("Get", fm.CustomUriAlarms, fm.GetAlarmFromNF, nil)
// performance restful Register
Register("POST", pm.PerformanceUri, pm.PostKPIReportFromNF, midware.LogOperate(collectlogs.OptionNew("KPIReport", collectlogs.BUSINESS_TYPE_INSERT)))
Register("POST", pm.PerformanceUri, pm.PostKPIReportFromNF, nil)
Register("POST", pm.MeasureTaskUri, pm.PostMeasureTaskToNF, midware.LogOperate(collectlogs.OptionNew("MeasureTask", collectlogs.BUSINESS_TYPE_INSERT)))
Register("PUT", pm.MeasureTaskUri, pm.PutMeasureTaskToNF, midware.LogOperate(collectlogs.OptionNew("MeasureTask", collectlogs.BUSINESS_TYPE_UPDATE)))
Register("DELETE", pm.MeasureTaskUri, pm.DeleteMeasureTaskToNF, midware.LogOperate(collectlogs.OptionNew("MeasureTask", collectlogs.BUSINESS_TYPE_DELETE)))

View File

@@ -36,7 +36,7 @@ func (r *MonitorImpl) SelectMonitorBase(query map[string]any) []model.MonitorBas
dbConn = dbConn.Where("ne_type = ? and ne_id = ?", query["neType"], query["neId"])
}
dbConn = dbConn.Where("create_time >= ? and create_time <= ?", query["startTime"], query["endTime"])
err := dbConn.Order("create_time desc").Find(&bases).Error
err := dbConn.Order("create_time asc").Find(&bases).Error
if err != nil {
logger.Errorf("SelectMonitorBase %v", err)
return bases
@@ -65,7 +65,7 @@ func (r *MonitorImpl) SelectMonitorIO(query map[string]any) []model.MonitorIO {
dbConn = dbConn.Where("ne_type = ? and ne_id = ?", query["neType"], query["neId"])
}
dbConn = dbConn.Where("create_time >= ? and create_time <= ?", query["startTime"], query["endTime"])
err := dbConn.Order("create_time desc").Find(&ios).Error
err := dbConn.Order("create_time asc").Find(&ios).Error
if err != nil {
logger.Errorf("SelectMonitorIO %v", err)
return ios
@@ -94,7 +94,7 @@ func (r *MonitorImpl) SelectMonitorNetwork(query map[string]any) []model.Monitor
dbConn = dbConn.Where("ne_type = ? and ne_id = ?", query["neType"], query["neId"])
}
dbConn = dbConn.Where("create_time >= ? and create_time <= ?", query["startTime"], query["endTime"])
err := dbConn.Order("create_time desc").Find(&networks).Error
err := dbConn.Order("create_time asc").Find(&networks).Error
if err != nil {
logger.Errorf("SelectMonitorNetwork %v", err)
return networks