From 34e609be9c8b78ff8840d93eeda40d9de39a58fa Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Wed, 1 Nov 2023 15:20:52 +0800 Subject: [PATCH 1/4] =?UTF-8?q?fix:=20UDM=E7=AD=BE=E7=BA=A6=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=AD=98=E5=82=A8=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- database/upgrade/zupgrade.sql | 4 ++++ database/upgvue3/zupgrade.sql | 4 ++++ features/udm_user/repo/repo_udm_auth_user.go | 1 + features/udm_user/repo/repo_udm_sub_user.go | 1 + 4 files changed, 10 insertions(+) diff --git a/database/upgrade/zupgrade.sql b/database/upgrade/zupgrade.sql index dd45fba1..76628d04 100644 --- a/database/upgrade/zupgrade.sql +++ b/database/upgrade/zupgrade.sql @@ -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`; diff --git a/database/upgvue3/zupgrade.sql b/database/upgvue3/zupgrade.sql index dd45fba1..76628d04 100644 --- a/database/upgvue3/zupgrade.sql +++ b/database/upgvue3/zupgrade.sql @@ -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`; diff --git a/features/udm_user/repo/repo_udm_auth_user.go b/features/udm_user/repo/repo_udm_auth_user.go index 1f3bf672..1f0c63fa 100644 --- a/features/udm_user/repo/repo_udm_auth_user.go +++ b/features/udm_user/repo/repo_udm_auth_user.go @@ -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 diff --git a/features/udm_user/repo/repo_udm_sub_user.go b/features/udm_user/repo/repo_udm_sub_user.go index 202a53a9..d7f5ead9 100644 --- a/features/udm_user/repo/repo_udm_sub_user.go +++ b/features/udm_user/repo/repo_udm_sub_user.go @@ -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 From 93d46f9095aa9d18963eeaf5b9339ffe0bc498af Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Wed, 1 Nov 2023 15:21:41 +0800 Subject: [PATCH 2/4] =?UTF-8?q?fxi:=20=E9=89=B4=E6=9D=83=E7=94=A8=E6=88=B7?= =?UTF-8?q?KI/OPC=E4=BF=A1=E6=81=AF=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- features/udm_user/api_udm_user.go | 87 +++++++++++++++++-------------- 1 file changed, 48 insertions(+), 39 deletions(-) diff --git a/features/udm_user/api_udm_user.go b/features/udm_user/api_udm_user.go index 5216e297..2a61b010 100644 --- a/features/udm_user/api_udm_user.go +++ b/features/udm_user/api_udm_user.go @@ -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)) From 5d8ebf413ca6a615c26a504e3b0f505b772990a1 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Wed, 1 Nov 2023 15:49:35 +0800 Subject: [PATCH 3/4] =?UTF-8?q?fix:=20=E5=8E=BB=E9=99=A4=E9=9D=9E=E5=89=8D?= =?UTF-8?q?=E7=AB=AF=E6=93=8D=E4=BD=9C=E8=AE=B0=E5=BD=95=E6=93=8D=E4=BD=9C?= =?UTF-8?q?=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/midware/operate_log.go | 7 +++++++ lib/routes/routes.go | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/midware/operate_log.go b/lib/midware/operate_log.go index 440faa62..c1f5cf30 100644 --- a/lib/midware/operate_log.go +++ b/lib/midware/operate_log.go @@ -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, "/") diff --git a/lib/routes/routes.go b/lib/routes/routes.go index 469d8f00..edda7df8 100644 --- a/lib/routes/routes.go +++ b/lib/routes/routes.go @@ -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))) From 67c78ba9a1a2a3d42ff1f6b5b278d0acb274c06a Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Wed, 1 Nov 2023 15:50:02 +0800 Subject: [PATCH 4/4] =?UTF-8?q?fix:=20=E7=9B=91=E6=8E=A7=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=8D=87=E5=BA=8F=E8=BE=93=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/monitor/repository/monitor.impl.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/modules/monitor/repository/monitor.impl.go b/src/modules/monitor/repository/monitor.impl.go index c113be63..5c94abd9 100644 --- a/src/modules/monitor/repository/monitor.impl.go +++ b/src/modules/monitor/repository/monitor.impl.go @@ -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