From 17048e7248e6e81b02b6d48359608daef1f44a70 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Thu, 25 Sep 2025 15:37:13 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20UDM=E7=94=A8=E6=88=B7=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=88=9B=E5=BB=BA=E6=97=B6=E9=97=B4=E5=AD=97?= =?UTF-8?q?=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build/database/lite/install/udm_auth.sql | 3 +- build/database/lite/install/udm_sub.sql | 3 +- build/database/lite/install/udm_voip.sql | 1 + build/database/lite/install/udm_volte_ims.sql | 3 +- build/database/lite/upgrade/upg_udm_auth.sql | 29 +++++++++++ build/database/lite/upgrade/upg_udm_sub.sql | 52 +++++++++++++++++++ build/database/lite/upgrade/upg_udm_voip.sql | 25 +++++++++ .../lite/upgrade/upg_udm_volte_ims.sql | 32 ++++++++++++ build/database/std/install/udm_auth.sql | 3 +- build/database/std/install/udm_sub.sql | 3 +- build/database/std/install/udm_voip.sql | 1 + build/database/std/install/udm_volte_ims.sql | 3 +- build/database/std/upgrade/upg_udm_auth.sql | 8 ++- build/database/std/upgrade/upg_udm_sub.sql | 8 ++- build/database/std/upgrade/upg_udm_voip.sql | 6 +++ .../std/upgrade/upg_udm_volte_ims.sql | 8 ++- src/modules/network_data/model/udm_auth.go | 16 +++--- src/modules/network_data/model/udm_sub.go | 9 ++-- src/modules/network_data/model/udm_voip.go | 5 +- .../network_data/model/udm_volte_ims.go | 9 ++-- src/modules/network_data/service/udm_auth.go | 22 +++++--- src/modules/network_data/service/udm_sub.go | 22 +++++--- src/modules/network_data/service/udm_voip.go | 16 ++++-- .../network_data/service/udm_volte_ims.go | 20 +++++-- 24 files changed, 261 insertions(+), 46 deletions(-) create mode 100644 build/database/lite/upgrade/upg_udm_auth.sql create mode 100644 build/database/lite/upgrade/upg_udm_sub.sql create mode 100644 build/database/lite/upgrade/upg_udm_voip.sql create mode 100644 build/database/lite/upgrade/upg_udm_volte_ims.sql diff --git a/build/database/lite/install/udm_auth.sql b/build/database/lite/install/udm_auth.sql index 2f11e17f..39d08f30 100644 --- a/build/database/lite/install/udm_auth.sql +++ b/build/database/lite/install/udm_auth.sql @@ -4,8 +4,9 @@ DROP TABLE IF EXISTS "udm_auth"; CREATE TABLE "udm_auth" ( "id" integer NOT NULL, - "imsi" text(50) NOT NULL, + "create_time" integer, "ne_id" text(50), + "imsi" text(50) NOT NULL, "amf" text(50), "status" text(50), "ki" text(50), diff --git a/build/database/lite/install/udm_sub.sql b/build/database/lite/install/udm_sub.sql index 00e14ec8..893a204b 100644 --- a/build/database/lite/install/udm_sub.sql +++ b/build/database/lite/install/udm_sub.sql @@ -4,9 +4,10 @@ DROP TABLE IF EXISTS "udm_sub"; CREATE TABLE "udm_sub" ( "id" integer NOT NULL, + "create_time" integer, + "ne_id" text(50), "imsi" text(50) NOT NULL, "msisdn" text(50), - "ne_id" text(50), "am_dat" text(1500), "ambr" text(50), "nssai" text(50), diff --git a/build/database/lite/install/udm_voip.sql b/build/database/lite/install/udm_voip.sql index 6a3fdd67..37b0f693 100644 --- a/build/database/lite/install/udm_voip.sql +++ b/build/database/lite/install/udm_voip.sql @@ -4,6 +4,7 @@ DROP TABLE IF EXISTS "udm_voip"; CREATE TABLE "udm_voip" ( "id" integer NOT NULL, + "create_time" integer, "ne_id" text(50), "username" text(50), "password" text(128), diff --git a/build/database/lite/install/udm_volte_ims.sql b/build/database/lite/install/udm_volte_ims.sql index 8946b2a6..4629579d 100644 --- a/build/database/lite/install/udm_volte_ims.sql +++ b/build/database/lite/install/udm_volte_ims.sql @@ -4,9 +4,10 @@ DROP TABLE IF EXISTS "udm_volte_ims"; CREATE TABLE "udm_volte_ims" ( "id" integer NOT NULL, + "create_time" integer, + "ne_id" text(50), "imsi" text(50) NOT NULL, "msisdn" text(50), - "ne_id" text(50), "tag" text(50), "vni" text(128), PRIMARY KEY ("id") diff --git a/build/database/lite/upgrade/upg_udm_auth.sql b/build/database/lite/upgrade/upg_udm_auth.sql new file mode 100644 index 00000000..39d08f30 --- /dev/null +++ b/build/database/lite/upgrade/upg_udm_auth.sql @@ -0,0 +1,29 @@ +-- ---------------------------- +-- Table structure for udm_auth +-- ---------------------------- +DROP TABLE IF EXISTS "udm_auth"; +CREATE TABLE "udm_auth" ( + "id" integer NOT NULL, + "create_time" integer, + "ne_id" text(50), + "imsi" text(50) NOT NULL, + "amf" text(50), + "status" text(50), + "ki" text(50), + "algo_index" text(50), + "opc" text(50), + PRIMARY KEY ("id") +); + +-- ---------------------------- +-- Indexes structure for table udm_auth +-- ---------------------------- +CREATE UNIQUE INDEX "uk_auth_imsi_ne" +ON "udm_auth" ( + "imsi" ASC, + "ne_id" ASC +); + +-- ---------------------------- +-- Records of udm_auth +-- ---------------------------- diff --git a/build/database/lite/upgrade/upg_udm_sub.sql b/build/database/lite/upgrade/upg_udm_sub.sql new file mode 100644 index 00000000..893a204b --- /dev/null +++ b/build/database/lite/upgrade/upg_udm_sub.sql @@ -0,0 +1,52 @@ +-- ---------------------------- +-- Table structure for udm_sub +-- ---------------------------- +DROP TABLE IF EXISTS "udm_sub"; +CREATE TABLE "udm_sub" ( + "id" integer NOT NULL, + "create_time" integer, + "ne_id" text(50), + "imsi" text(50) NOT NULL, + "msisdn" text(50), + "am_dat" text(1500), + "ambr" text(50), + "nssai" text(50), + "rat" text(50), + "arfb" text(50), + "sar" text(50), + "cn_type" text(50), + "rfsp_index" text(50), + "reg_timer" text(50), + "ue_usage_type" text(50), + "active_time" text(50), + "mico" text(50), + "odb_ps" text(50), + "group_id" text(50), + "eps_dat" text(1500), + "eps_flag" text(50), + "eps_odb" text(50), + "hplmn_odb" text(50), + "ard" text(50), + "epstpl" text(50), + "context_id" text(50), + "apn_mum" text(50), + "apn_context" text(50), + "static_ip" text(50), + "sm_data" text(1500), + "smf_sel" text(50), + "cag" text(50), + PRIMARY KEY ("id") +); + +-- ---------------------------- +-- Indexes structure for table udm_sub +-- ---------------------------- +CREATE UNIQUE INDEX "uk_sub_imsi_ne" +ON "udm_sub" ( + "imsi" ASC, + "ne_id" ASC +); + +-- ---------------------------- +-- Records of udm_sub +-- ---------------------------- diff --git a/build/database/lite/upgrade/upg_udm_voip.sql b/build/database/lite/upgrade/upg_udm_voip.sql new file mode 100644 index 00000000..37b0f693 --- /dev/null +++ b/build/database/lite/upgrade/upg_udm_voip.sql @@ -0,0 +1,25 @@ +-- ---------------------------- +-- Table structure for udm_voip +-- ---------------------------- +DROP TABLE IF EXISTS "udm_voip"; +CREATE TABLE "udm_voip" ( + "id" integer NOT NULL, + "create_time" integer, + "ne_id" text(50), + "username" text(50), + "password" text(128), + PRIMARY KEY ("id") +); + +-- ---------------------------- +-- Indexes structure for table udm_voip +-- ---------------------------- +CREATE UNIQUE INDEX "uk_voip_user_ne" +ON "udm_voip" ( + "username" ASC, + "ne_id" ASC +); + +-- ---------------------------- +-- Records of udm_voip +-- ---------------------------- diff --git a/build/database/lite/upgrade/upg_udm_volte_ims.sql b/build/database/lite/upgrade/upg_udm_volte_ims.sql new file mode 100644 index 00000000..4629579d --- /dev/null +++ b/build/database/lite/upgrade/upg_udm_volte_ims.sql @@ -0,0 +1,32 @@ +-- ---------------------------- +-- Table structure for udm_volte_ims +-- ---------------------------- +DROP TABLE IF EXISTS "udm_volte_ims"; +CREATE TABLE "udm_volte_ims" ( + "id" integer NOT NULL, + "create_time" integer, + "ne_id" text(50), + "imsi" text(50) NOT NULL, + "msisdn" text(50), + "tag" text(50), + "vni" text(128), + PRIMARY KEY ("id") +); + +-- ---------------------------- +-- Indexes structure for table udm_volte_ims +-- ---------------------------- +CREATE INDEX "idx_volte_tag" +ON "udm_volte_ims" ( + "tag" ASC +); + +CREATE UNIQUE INDEX "uk_volte_imsi_ne" +ON "udm_volte_ims" ( + "imsi" ASC, + "msisdn" ASC, + "ne_id" ASC +); +-- ---------------------------- +-- Records of udm_volte_ims +-- ---------------------------- diff --git a/build/database/std/install/udm_auth.sql b/build/database/std/install/udm_auth.sql index 1f8c493f..8adf999f 100644 --- a/build/database/std/install/udm_auth.sql +++ b/build/database/std/install/udm_auth.sql @@ -5,8 +5,9 @@ DROP TABLE IF EXISTS `udm_auth`; CREATE TABLE `udm_auth` ( `id` int NOT NULL AUTO_INCREMENT COMMENT '主键', - `imsi` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'SIM卡/USIM卡ID', + `create_time` bigint NULL DEFAULT 0 COMMENT '创建时间', `ne_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'UDM网元标识', + `imsi` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'SIM卡/USIM卡ID', `amf` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'AMF', `status` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '状态', `ki` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'ki', diff --git a/build/database/std/install/udm_sub.sql b/build/database/std/install/udm_sub.sql index 7e9075ed..0852c8c9 100644 --- a/build/database/std/install/udm_sub.sql +++ b/build/database/std/install/udm_sub.sql @@ -5,9 +5,10 @@ DROP TABLE IF EXISTS `udm_sub`; CREATE TABLE `udm_sub` ( `id` int NOT NULL AUTO_INCREMENT COMMENT '主键', + `create_time` bigint NULL DEFAULT 0 COMMENT '创建时间', + `ne_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'UDM网元标识', `imsi` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'SIM卡/USIM卡ID', `msisdn` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '用户电话号码', - `ne_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'UDM网元标识', `am_dat` varchar(1500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'AmData', `ambr` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'AmData SubUeAMBRTemp', `nssai` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'AmData SubSNSSAITemp', diff --git a/build/database/std/install/udm_voip.sql b/build/database/std/install/udm_voip.sql index 37837eea..798475ea 100644 --- a/build/database/std/install/udm_voip.sql +++ b/build/database/std/install/udm_voip.sql @@ -5,6 +5,7 @@ DROP TABLE IF EXISTS `udm_voip`; CREATE TABLE `udm_voip` ( `id` int NOT NULL AUTO_INCREMENT COMMENT '主键', + `create_time` bigint NULL DEFAULT 0 COMMENT '创建时间', `ne_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'UDM网元标识', `username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '用户名', `password` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '密码', diff --git a/build/database/std/install/udm_volte_ims.sql b/build/database/std/install/udm_volte_ims.sql index b2debc57..c7b696df 100644 --- a/build/database/std/install/udm_volte_ims.sql +++ b/build/database/std/install/udm_volte_ims.sql @@ -5,9 +5,10 @@ DROP TABLE IF EXISTS `udm_volte_ims`; CREATE TABLE `udm_volte_ims` ( `id` int NOT NULL AUTO_INCREMENT COMMENT '主键', + `create_time` bigint NULL DEFAULT 0 COMMENT '创建时间', + `ne_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'UDM网元标识', `imsi` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'SIM卡/USIM卡ID', `msisdn` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '用户电话号码', - `ne_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'UDM网元标识', `tag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '0=VoIP, 1=VoLTE', `vni` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'VNI', PRIMARY KEY (`id`) USING BTREE, diff --git a/build/database/std/upgrade/upg_udm_auth.sql b/build/database/std/upgrade/upg_udm_auth.sql index e2d28cfd..0978d0d7 100644 --- a/build/database/std/upgrade/upg_udm_auth.sql +++ b/build/database/std/upgrade/upg_udm_auth.sql @@ -3,8 +3,9 @@ -- CREATE TABLE IF NOT EXISTS `udm_auth` ( `id` int NOT NULL AUTO_INCREMENT COMMENT '主键', - `imsi` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'SIM卡/USIM卡ID', + `create_time` bigint NULL DEFAULT 0 COMMENT '创建时间', `ne_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'UDM网元标识', + `imsi` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'SIM卡/USIM卡ID', `amf` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'AMF', `status` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '状态', `ki` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'ki', @@ -14,4 +15,9 @@ CREATE TABLE IF NOT EXISTS `udm_auth` ( UNIQUE KEY `uk_auth_imsi_ne` (`imsi`,`ne_id`) USING BTREE COMMENT 'imsi_neid唯一主键' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='UDM用户数据_鉴权'; +-- ---------------------------- +-- COLUMN for udm_auth +-- ---------------------------- +ALTER TABLE `udm_auth` ADD COLUMN `create_time` bigint NULL DEFAULT 0 COMMENT '创建时间' AFTER `id`; + -- Dump completed on 2025-02-14 15:26:56 diff --git a/build/database/std/upgrade/upg_udm_sub.sql b/build/database/std/upgrade/upg_udm_sub.sql index 257e2590..823923f4 100644 --- a/build/database/std/upgrade/upg_udm_sub.sql +++ b/build/database/std/upgrade/upg_udm_sub.sql @@ -3,9 +3,10 @@ -- CREATE TABLE IF NOT EXISTS `udm_sub` ( `id` int NOT NULL AUTO_INCREMENT COMMENT '主键', + `create_time` bigint NULL DEFAULT 0 COMMENT '创建时间', + `ne_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'UDM网元标识', `imsi` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'SIM卡/USIM卡ID', `msisdn` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '用户电话号码', - `ne_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'UDM网元标识', `am_dat` varchar(1500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'AmData', `ambr` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'AmData SubUeAMBRTemp', `nssai` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'AmData SubSNSSAITemp', @@ -37,4 +38,9 @@ CREATE TABLE IF NOT EXISTS `udm_sub` ( UNIQUE KEY `uk_sub_imsi_ne` (`imsi`,`ne_id`) USING BTREE COMMENT 'imsi_neid唯一主键' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='UDM用户数据_签约'; +-- ---------------------------- +-- COLUMN for udm_sub +-- ---------------------------- +ALTER TABLE `udm_sub` ADD COLUMN `create_time` bigint NULL DEFAULT 0 COMMENT '创建时间' AFTER `id`; + -- Dump completed on 2025-02-14 15:26:56 diff --git a/build/database/std/upgrade/upg_udm_voip.sql b/build/database/std/upgrade/upg_udm_voip.sql index 69408725..c75b4662 100644 --- a/build/database/std/upgrade/upg_udm_voip.sql +++ b/build/database/std/upgrade/upg_udm_voip.sql @@ -3,6 +3,7 @@ -- CREATE TABLE IF NOT EXISTS `udm_voip` ( `id` int NOT NULL AUTO_INCREMENT COMMENT '主键', + `create_time` bigint NULL DEFAULT 0 COMMENT '创建时间', `ne_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'UDM网元标识', `username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '用户名', `password` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '密码', @@ -10,4 +11,9 @@ CREATE TABLE IF NOT EXISTS `udm_voip` ( UNIQUE KEY `uk_voip_user_ne` (`username`,`ne_id`) USING BTREE COMMENT 'user_neid唯一主键' ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='UDM用户数据_VOIP'; +-- ---------------------------- +-- COLUMN for udm_voip +-- ---------------------------- +ALTER TABLE `udm_voip` ADD COLUMN `create_time` bigint NULL DEFAULT 0 COMMENT '创建时间' AFTER `id`; + -- Dump completed on 2025-04-22 15:26:56 diff --git a/build/database/std/upgrade/upg_udm_volte_ims.sql b/build/database/std/upgrade/upg_udm_volte_ims.sql index e06ae33d..4d07abbe 100644 --- a/build/database/std/upgrade/upg_udm_volte_ims.sql +++ b/build/database/std/upgrade/upg_udm_volte_ims.sql @@ -3,9 +3,10 @@ -- CREATE TABLE IF NOT EXISTS `udm_volte_ims` ( `id` int NOT NULL AUTO_INCREMENT COMMENT '主键', + `create_time` bigint NULL DEFAULT 0 COMMENT '创建时间', + `ne_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'UDM网元标识', `imsi` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'SIM卡/USIM卡ID', `msisdn` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '用户电话号码', - `ne_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'UDM网元标识', `tag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '0=VoIP, 1=VoLTE', `vni` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'VNI', PRIMARY KEY (`id`) USING BTREE, @@ -13,4 +14,9 @@ CREATE TABLE IF NOT EXISTS `udm_volte_ims` ( KEY `idx_volte_tag` (`tag`) USING BTREE COMMENT 'tag索引' ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='UDM用户数据_VolteIMS用户'; +-- ---------------------------- +-- COLUMN for udm_volte_ims +-- ---------------------------- +ALTER TABLE `udm_volte_ims` ADD COLUMN `create_time` bigint NULL DEFAULT 0 COMMENT '创建时间' AFTER `id`; + -- Dump completed on 2025-04-22 15:26:56 diff --git a/src/modules/network_data/model/udm_auth.go b/src/modules/network_data/model/udm_auth.go index fed24077..1051c0a4 100644 --- a/src/modules/network_data/model/udm_auth.go +++ b/src/modules/network_data/model/udm_auth.go @@ -2,13 +2,15 @@ package model // UDMAuthUser UDM鉴权用户 udm_auth type UDMAuthUser struct { - ID string `json:"id" gorm:"column:id;primaryKey;autoIncrement"` // 默认ID - IMSI string `json:"imsi" gorm:"column:imsi"` // SIM卡/USIM卡ID - NeId string `json:"neId" gorm:"column:ne_id"` // UDM网元标识 - Amf string `json:"amf" gorm:"column:amf"` // AMF - Ki string `json:"ki" gorm:"column:ki"` // ki - AlgoIndex string `json:"algoIndex" gorm:"column:algo_index"` // algoIndex - Opc string `json:"opc" gorm:"column:opc"` // OPC + ID string `json:"id" gorm:"column:id;primaryKey;autoIncrement"` // 默认ID + CreateTime int64 `json:"createTime" gorm:"column:create_time"` // 创建时间 + NeId string `json:"neId" gorm:"column:ne_id"` // UDM网元标识 + IMSI string `json:"imsi" gorm:"column:imsi"` // SIM卡/USIM卡ID + + Amf string `json:"amf" gorm:"column:amf"` // AMF + Ki string `json:"ki" gorm:"column:ki"` // ki + AlgoIndex string `json:"algoIndex" gorm:"column:algo_index"` // algoIndex + Opc string `json:"opc" gorm:"column:opc"` // OPC } // TableName 表名称 diff --git a/src/modules/network_data/model/udm_sub.go b/src/modules/network_data/model/udm_sub.go index 9ff03c5f..0b800b02 100644 --- a/src/modules/network_data/model/udm_sub.go +++ b/src/modules/network_data/model/udm_sub.go @@ -2,10 +2,11 @@ package model // UDMSubUser UDM签约用户 udm_sub type UDMSubUser struct { - ID string `json:"id" gorm:"column:id;primaryKey;autoIncrement"` // 主键 - IMSI string `json:"imsi" gorm:"column:imsi"` // SIM卡/USIM卡ID - MSISDN string `json:"msisdn" gorm:"column:msisdn"` // 用户电话号码 - NeId string `json:"neId" gorm:"column:ne_id"` // UDM网元标识 + ID string `json:"id" gorm:"column:id;primaryKey;autoIncrement"` // 主键 + CreateTime int64 `json:"createTime" gorm:"column:create_time"` // 创建时间 + NeId string `json:"neId" gorm:"column:ne_id"` // UDM网元标识 + IMSI string `json:"imsi" gorm:"column:imsi"` // SIM卡/USIM卡ID + MSISDN string `json:"msisdn" gorm:"column:msisdn"` // 用户电话号码 AmDat string `json:"amDat" gorm:"column:am_dat"` // AmData UeAmbrTpl string `json:"ambr" gorm:"column:ambr"` // AmData SubUeAMBRTemp diff --git a/src/modules/network_data/model/udm_voip.go b/src/modules/network_data/model/udm_voip.go index 2fbd1ae9..cb268140 100644 --- a/src/modules/network_data/model/udm_voip.go +++ b/src/modules/network_data/model/udm_voip.go @@ -2,8 +2,9 @@ package model // UDMVOIPUser UDMVOIP用户 udm_voip type UDMVOIPUser struct { - ID string `json:"id" gorm:"column:id;primaryKey;autoIncrement"` // 主键 - NeId string `json:"neId" gorm:"column:ne_id"` // UDM网元标识 + ID string `json:"id" gorm:"column:id;primaryKey;autoIncrement"` // 主键 + CreateTime int64 `json:"createTime" gorm:"column:create_time"` // 创建时间 + NeId string `json:"neId" gorm:"column:ne_id"` // UDM网元标识 UserName string `json:"username" gorm:"column:username"` // 用户名 Password string `json:"password" gorm:"column:password"` // 密码 diff --git a/src/modules/network_data/model/udm_volte_ims.go b/src/modules/network_data/model/udm_volte_ims.go index 0dd4277b..709f11c2 100644 --- a/src/modules/network_data/model/udm_volte_ims.go +++ b/src/modules/network_data/model/udm_volte_ims.go @@ -2,10 +2,11 @@ package model // UDMVolteIMSUser UDMVolteIMS用户 udm_volte_ims type UDMVolteIMSUser struct { - ID string `json:"id" gorm:"column:id;primaryKey;autoIncrement"` // 主键 - IMSI string `json:"imsi" gorm:"column:imsi"` // SIM卡/USIM卡ID - MSISDN string `json:"msisdn" gorm:"column:msisdn"` // 用户电话号码 - NeId string `json:"neId" gorm:"column:ne_id"` // UDM网元标识 + ID string `json:"id" gorm:"column:id;primaryKey;autoIncrement"` // 主键 + CreateTime int64 `json:"createTime" gorm:"column:create_time"` // 创建时间 + NeId string `json:"neId" gorm:"column:ne_id"` // UDM网元标识 + IMSI string `json:"imsi" gorm:"column:imsi"` // SIM卡/USIM卡ID + MSISDN string `json:"msisdn" gorm:"column:msisdn"` // 用户电话号码 Tag string `json:"tag" gorm:"column:tag"` // 0=VoIP, 1=VoLTE VNI string `json:"vni" gorm:"column:vni"` // VNI diff --git a/src/modules/network_data/service/udm_auth.go b/src/modules/network_data/service/udm_auth.go index c8fcdc60..197bd7c2 100644 --- a/src/modules/network_data/service/udm_auth.go +++ b/src/modules/network_data/service/udm_auth.go @@ -4,8 +4,10 @@ import ( "fmt" "strconv" "strings" + "time" "be.ems/src/framework/database/redis" + "be.ems/src/framework/utils/date" "be.ems/src/modules/network_data/model" "be.ems/src/modules/network_data/repository" neService "be.ems/src/modules/network_element/service" @@ -63,13 +65,21 @@ func (r *UDMAuthUser) dataByRedis(imsi, neId string) []model.UDMAuthUser { if v, ok := m["amf"]; ok { amf = strings.Replace(v, "\r\n", "", 1) } + var createTime int64 = 0 + if v, ok := m["create_time"]; ok { + t := date.ParseStrToDate(v, date.YYYY_MM_DDTHH_MM_SSZ) + createTime = t.UnixMilli() + } else { + createTime = time.Now().UnixMilli() + } a := model.UDMAuthUser{ - IMSI: imsi, - Amf: amf, - Ki: m["ki"], - AlgoIndex: m["algo"], - Opc: m["opc"], - NeId: neId, + CreateTime: createTime, + NeId: neId, + IMSI: imsi, + Amf: amf, + Ki: m["ki"], + AlgoIndex: m["algo"], + Opc: m["opc"], } arr = append(arr, a) } diff --git a/src/modules/network_data/service/udm_sub.go b/src/modules/network_data/service/udm_sub.go index 2accef0b..32051e5d 100644 --- a/src/modules/network_data/service/udm_sub.go +++ b/src/modules/network_data/service/udm_sub.go @@ -4,8 +4,10 @@ import ( "fmt" "strconv" "strings" + "time" "be.ems/src/framework/database/redis" + "be.ems/src/framework/utils/date" "be.ems/src/modules/network_data/model" "be.ems/src/modules/network_data/repository" neService "be.ems/src/modules/network_element/service" @@ -59,14 +61,22 @@ func (r *UDMSubUser) dataByRedis(imsi, neId string) []model.UDMSubUser { if strings.Contains(imsi, "-") || !hasPrefix { continue } + var createTime int64 = 0 + if v, ok := m["create_time"]; ok { + t := date.ParseStrToDate(v, date.YYYY_MM_DDTHH_MM_SSZ) + createTime = t.UnixMilli() + } else { + createTime = time.Now().UnixMilli() + } a := model.UDMSubUser{ - IMSI: imsi, // udm-sd:360000100000130 - MSISDN: m["gpsi"], // 8612300000130 - NeId: neId, - SmfSel: m["smf-sel"], // def_snssai - SmData: m["sm-dat"], // 1-000001&cmnet&ims&3gnet - Cag: m["cag"], // def_cag + CreateTime: createTime, + NeId: neId, + IMSI: imsi, // udm-sd:360000100000130 + MSISDN: m["gpsi"], // 8612300000130 + SmfSel: m["smf-sel"], // def_snssai + SmData: m["sm-dat"], // 1-000001&cmnet&ims&3gnet + Cag: m["cag"], // def_cag } // def_ambr,def_nssai,0,def_arfb,def_sar,3,1,12000,1,1000,0,1,- diff --git a/src/modules/network_data/service/udm_voip.go b/src/modules/network_data/service/udm_voip.go index e03eed9c..ca5e3a18 100644 --- a/src/modules/network_data/service/udm_voip.go +++ b/src/modules/network_data/service/udm_voip.go @@ -4,8 +4,10 @@ import ( "fmt" "strconv" "strings" + "time" "be.ems/src/framework/database/redis" + "be.ems/src/framework/utils/date" "be.ems/src/modules/network_data/model" "be.ems/src/modules/network_data/repository" neService "be.ems/src/modules/network_element/service" @@ -54,11 +56,19 @@ func (r UDMVOIPUser) dataByRedis(username, neId string) []model.UDMVOIPUser { if strings.Contains(username, "-") || !hasPrefix { continue } + var createTime int64 = 0 + if v, ok := m["create_time"]; ok { + t := date.ParseStrToDate(v, date.YYYY_MM_DDTHH_MM_SSZ) + createTime = t.UnixMilli() + } else { + createTime = time.Now().UnixMilli() + } a := model.UDMVOIPUser{ - NeId: neId, - UserName: username, - Password: m["password"], + CreateTime: createTime, + NeId: neId, + UserName: username, + Password: m["password"], } arr = append(arr, a) } diff --git a/src/modules/network_data/service/udm_volte_ims.go b/src/modules/network_data/service/udm_volte_ims.go index 3d3032b9..c1297a3f 100644 --- a/src/modules/network_data/service/udm_volte_ims.go +++ b/src/modules/network_data/service/udm_volte_ims.go @@ -4,8 +4,10 @@ import ( "fmt" "strconv" "strings" + "time" "be.ems/src/framework/database/redis" + "be.ems/src/framework/utils/date" "be.ems/src/modules/network_data/model" "be.ems/src/modules/network_data/repository" neService "be.ems/src/modules/network_element/service" @@ -61,13 +63,21 @@ func (r UDMVolteIMSUser) dataByRedis(imsi, neId string) []model.UDMVolteIMSUser if len(impiParts) > 1 { vni = impiParts[1] } + var createTime int64 = 0 + if v, ok := m["create_time"]; ok { + t := date.ParseStrToDate(v, date.YYYY_MM_DDTHH_MM_SSZ) + createTime = t.UnixMilli() + } else { + createTime = time.Now().UnixMilli() + } a := model.UDMVolteIMSUser{ - NeId: neId, - IMSI: keys[1], - MSISDN: keys[2], - Tag: m["tag"], // volte = tag - VNI: vni, + CreateTime: createTime, + NeId: neId, + IMSI: keys[1], + MSISDN: keys[2], + Tag: m["tag"], // volte = tag + VNI: vni, } arr = append(arr, a) }