feat: UDM用户数据补充添加创建时间字段datatime

This commit is contained in:
TsMask
2025-09-22 18:26:05 +08:00
parent 5846631d3f
commit 302a0494a7
20 changed files with 140 additions and 25 deletions

View File

@@ -14,6 +14,7 @@ CREATE TABLE `u_auth_user` (
`algo_index` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'algoIndex',
`opc` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'OPC',
`create_time` bigint(20) DEFAULT 0 COMMENT '创建时间',
`created_at` datetime NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uk_imsi_ne` (`imsi`,`ne_id`) USING BTREE COMMENT 'imsi_neid唯一主键',
KEY `idx_ne` (`ne_id`) USING BTREE COMMENT 'neid索引'

View File

@@ -28,6 +28,8 @@ CREATE TABLE `u_ims_user` (
`msisdn` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '',
`tag` tinyint(4) NULL DEFAULT NULL COMMENT '0: VoIP, 1: VoLTE',
`vni` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '',
`create_time` bigint(20) DEFAULT 0 COMMENT '创建时间',
`created_at` datetime NULL DEFAULT current_timestamp(),
`tenant_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'multi-tenancy refer to sys_tenant.tenant_id',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_imsi_msisdn_neid`(`imsi`, `msisdn`, `ne_id`) USING BTREE COMMENT 'imsi_msisdn_neid'

View File

@@ -41,6 +41,8 @@ CREATE TABLE `u_sub_user` (
`sm_data` varchar(1500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'smData',
`smf_sel` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'smfSel',
`cag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'CAG',
`create_time` bigint(20) DEFAULT 0 COMMENT '创建时间',
`created_at` datetime NULL DEFAULT current_timestamp(),
`tenant_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'multi-tenancy refer to sys_tenant.tenant_id',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uk_imsi_ne` (`imsi`,`ne_id`) USING BTREE COMMENT 'imsi_neid唯一主键',

View File

@@ -26,6 +26,8 @@ CREATE TABLE `u_voip_auth` (
`ne_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`password` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '',
`create_time` bigint(20) DEFAULT 0 COMMENT '创建时间',
`created_at` datetime NULL DEFAULT current_timestamp(),
`tenant_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'multi-tenancy refer to sys_tenant.tenant_id',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_user_name`(`user_name`) USING BTREE

View File

@@ -12,6 +12,7 @@ CREATE TABLE IF NOT EXISTS `u_auth_user` (
`algo_index` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'algoIndex',
`opc` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'OPC',
`create_time` bigint(20) DEFAULT 0 COMMENT '创建时间',
`created_at` datetime NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `imsi_ne` (`imsi`,`ne_id`) USING BTREE COMMENT 'imsi_neid唯一主键'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='UDM鉴权用户';
@@ -26,5 +27,6 @@ ALTER TABLE `u_auth_user` MODIFY COLUMN IF EXISTS `ki` varchar(50) CHARACTER SET
ALTER TABLE `u_auth_user` MODIFY COLUMN IF EXISTS `algo_index` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT 'algoIndex' AFTER `ki`;
ALTER TABLE `u_auth_user` MODIFY COLUMN IF EXISTS `opc` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT 'OPC' AFTER `algo_index`;
ALTER TABLE `u_auth_user` ADD COLUMN IF NOT EXISTS `create_time` bigint(20) NULL DEFAULT 0 COMMENT '创建时间' AFTER `opc`;
ALTER TABLE `u_auth_user` ADD COLUMN IF NOT EXISTS `created_at` datetime NULL DEFAULT current_timestamp() COMMENT '创建时间' AFTER `create_time`;
ALTER TABLE `u_auth_user` DROP COLUMN IF EXISTS `msisdn`;
ALTER TABLE `u_auth_user` ADD INDEX IF NOT EXISTS `idx_ne`(`ne_id`) USING BTREE COMMENT 'neid索引';

View File

@@ -27,9 +27,14 @@ CREATE TABLE IF NOT EXISTS `u_ims_user` (
`msisdn` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '',
`tag` tinyint(4) NULL DEFAULT NULL COMMENT '0: VoIP, 1: VoLTE',
`vni` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '',
`create_time` bigint(20) DEFAULT 0 COMMENT '创建时间',
`created_at` datetime NULL DEFAULT current_timestamp(),
`tenant_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'multi-tenancy refer to sys_tenant.tenant_id',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_imsi_msisdn_neid`(`imsi`, `msisdn`, `ne_id`) USING BTREE COMMENT 'imsi_msisdn_neid'
) ENGINE = InnoDB AUTO_INCREMENT = 379066 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'UDM' ROW_FORMAT = Dynamic;
ALTER TABLE `u_ims_user` ADD COLUMN IF NOT EXISTS `create_time` bigint(20) NULL DEFAULT 0 COMMENT '创建时间' AFTER `vni`;
ALTER TABLE `u_ims_user` ADD COLUMN IF NOT EXISTS `created_at` datetime NULL DEFAULT current_timestamp() COMMENT '创建时间' AFTER `create_time`;
SET FOREIGN_KEY_CHECKS = 1;

View File

@@ -37,6 +37,8 @@ CREATE TABLE IF NOT EXISTS `u_sub_user` (
`sm_data` varchar(1500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'smData',
`smf_sel` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'smfSel',
`cag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'CAG',
`create_time` bigint(20) DEFAULT 0 COMMENT '创建时间',
`created_at` datetime NULL DEFAULT current_timestamp(),
`tenant_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'multi-tenancy refer to sys_tenant.tenant_id',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `imsi_ne` (`imsi`,`ne_id`) USING BTREE COMMENT 'imsi_ne唯一索引'
@@ -72,6 +74,8 @@ ALTER TABLE `u_sub_user` MODIFY COLUMN IF EXISTS `static_ip` varchar(50) CHARACT
ALTER TABLE `u_sub_user` MODIFY COLUMN IF EXISTS `sm_data` varchar(1500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT 'smData' AFTER `static_ip`;
ALTER TABLE `u_sub_user` MODIFY COLUMN IF EXISTS `smf_sel` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT 'smfSel' AFTER `sm_data`;
ALTER TABLE `u_sub_user` DROP COLUMN IF EXISTS `cn`;
ALTER TABLE `u_sub_user` ADD COLUMN IF NOT EXISTS `create_time` bigint(20) NULL DEFAULT 0 COMMENT '创建时间' AFTER `cag`;
ALTER TABLE `u_sub_user` ADD COLUMN IF NOT EXISTS `created_at` datetime NULL DEFAULT current_timestamp() COMMENT '创建时间' AFTER `create_time`;
-- multi-tenancy
ALTER TABLE `u_sub_user` ADD COLUMN IF NOT EXISTS `tenant_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'multi-tenancy refer to sys_tenant.tenant_id' AFTER `cag`;

View File

@@ -25,9 +25,14 @@ CREATE TABLE IF NOT EXISTS `u_voip_auth` (
`ne_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`password` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '',
`create_time` bigint(20) DEFAULT 0 COMMENT '创建时间',
`created_at` datetime NULL DEFAULT current_timestamp(),
`tenant_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'multi-tenancy refer to sys_tenant.tenant_id',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_user_name`(`user_name`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 19570 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'UDM' ROW_FORMAT = Dynamic;
ALTER TABLE `u_voip_auth` ADD COLUMN IF NOT EXISTS `create_time` bigint(20) NULL DEFAULT 0 COMMENT '创建时间' AFTER `password`;
ALTER TABLE `u_voip_auth` ADD COLUMN IF NOT EXISTS `created_at` datetime NULL DEFAULT current_timestamp() COMMENT '创建时间' AFTER `create_time`;
SET FOREIGN_KEY_CHECKS = 1;

View File

@@ -65,6 +65,8 @@ type IMSUser struct {
Tag CallTag `json:"tag" gorm:"column:tag"` // tag: 0=VoIP, 1=VoLTE
VNI string `json:"vni" gorm:"column:vni"` // VNI
CreateTime int64 `json:"createTime" gorm:"column:create_time"` // 创建时间
CreatedAt string `json:"createdAt" gorm:"column:created_at"` // 创建时间
TenantID string `json:"tenantID" gorm:"column:tenant_id"`
TenantName string `json:"tenantName" gorm:"-"`
}

View File

@@ -7,6 +7,8 @@ type VoIPAuth struct {
UserName string `json:"userName" gorm:"column:user_name"` // SIM卡/USIM卡ID
Password string `json:"password" gorm:"column:password"` // 用户电话号码
CreateTime int64 `json:"createTime" gorm:"column:create_time"` // 创建时间
CreatedAt string `json:"createdAt" gorm:"column:created_at"` // 创建时间
TenantID string `json:"tenantID" gorm:"column:tenant_id"`
TenantName string `json:"tenantName" gorm:"-"`
}

View File

@@ -4,10 +4,12 @@ import (
"fmt"
"strconv"
"strings"
"time"
"be.ems/features/ue/model"
"be.ems/features/ue/repository"
"be.ems/src/framework/database/redis"
"be.ems/src/framework/utils/date"
neService "be.ems/src/modules/network_element/service"
)
@@ -60,13 +62,26 @@ func (r *IMSUserService) dataByRedis(imsi, neId string) []model.IMSUser {
if len(impiParts) > 1 {
vni = impiParts[1]
}
var createTime int64 = 0
var createdAt string = ""
if v, ok := m["create_time"]; ok {
t := date.ParseStrToDate(v, date.YYYY_MM_DDTHH_MM_SSZ)
createTime = t.UnixMilli()
createdAt = t.Format(date.YYYY_MM_DD_HH_MM_SS)
} else {
now := time.Now()
createTime = now.UnixMilli()
createdAt = now.Format(date.YYYY_MM_DD_HH_MM_SS)
}
a := model.IMSUser{
NeId: neId,
IMSI: keys[1], // volte:360000100000130:8612300000130
MSISDN: keys[2], // 8612300000130
Tag: model.ParseCallTag(m["tag"]), // volte = tag
VNI: vni, // ims.mnc001.mcc110.3gppnetwork.org
NeId: neId,
IMSI: keys[1], // volte:360000100000130:8612300000130
MSISDN: keys[2], // 8612300000130
Tag: model.ParseCallTag(m["tag"]), // volte = tag
VNI: vni, // ims.mnc001.mcc110.3gppnetwork.org
CreateTime: createTime,
CreatedAt: createdAt,
}
arr = append(arr, a)
}

View File

@@ -4,10 +4,12 @@ import (
"fmt"
"strconv"
"strings"
"time"
"be.ems/features/ue/model"
"be.ems/features/ue/repository"
"be.ems/src/framework/database/redis"
"be.ems/src/framework/utils/date"
neService "be.ems/src/modules/network_element/service"
)
@@ -53,11 +55,24 @@ func (r *VoIPAuthService) dataByRedis(userName, neId string) []model.VoIPAuth {
if len(KeyParts) > 1 {
userName = KeyParts[1]
}
var createTime int64 = 0
var createdAt string = ""
if v, ok := m["create_time"]; ok {
t := date.ParseStrToDate(v, date.YYYY_MM_DDTHH_MM_SSZ)
createTime = t.UnixMilli()
createdAt = t.Format(date.YYYY_MM_DD_HH_MM_SS)
} else {
now := time.Now()
createTime = now.UnixMilli()
createdAt = now.Format(date.YYYY_MM_DD_HH_MM_SS)
}
a := model.VoIPAuth{
NeId: neId,
UserName: userName, // userName
Password: m["password"], //
NeId: neId,
UserName: userName, // userName
Password: m["password"], //
CreateTime: createTime,
CreatedAt: createdAt,
}
arr = append(arr, a)
}

View File

@@ -10,6 +10,7 @@ type UDMAuthUser struct {
AlgoIndex string `json:"algoIndex" gorm:"column:algo_index"` // algoIndex
Opc string `json:"opc" gorm:"column:opc"` // OPC
CreateTime int64 `json:"createTime" gorm:"column:create_time"` // 创建时间
CreatedAt string `json:"createdAt" gorm:"column:created_at"` // 创建时间
}
// TableName 表名称

View File

@@ -37,6 +37,8 @@ type UDMSubUser struct {
SmfSel string `json:"smfSel" gorm:"column:smf_sel"` // smfSel
Cag string `json:"cag" gorm:"column:cag"` // CAG
CreateTime int64 `json:"createTime" gorm:"column:create_time"` // 创建时间
CreatedAt string `json:"createdAt" gorm:"column:created_at"` // 创建时间
TenantID string `json:"tenantID" gorm:"column:tenant_id"`
TenantName string `json:"tenantName" gorm:"-"`

View File

@@ -7,6 +7,9 @@ type UDMVOIPUser struct {
UserName string `json:"username" gorm:"column:user_name"` // 用户名
Password string `json:"password" gorm:"column:password"` // 密码
CreateTime int64 `json:"createTime" gorm:"column:create_time"` // 创建时间
CreatedAt string `json:"createdAt" gorm:"column:created_at"` // 创建时间
}
// TableName 表名称

View File

@@ -7,8 +7,10 @@ type UDMVolteIMSUser struct {
MSISDN string `json:"msisdn" gorm:"column:msisdn"` // 用户电话号码
NeId string `json:"neId" gorm:"column:ne_id"` // UDM网元标识
Tag string `json:"tag" gorm:"column:tag"` // 0=VoIP, 1=VoLTE
VNI string `json:"vni" gorm:"column:vni"` // VNI
Tag string `json:"tag" gorm:"column:tag"` // 0=VoIP, 1=VoLTE
VNI string `json:"vni" gorm:"column:vni"` // VNI
CreateTime int64 `json:"createTime" gorm:"column:create_time"` // 创建时间
CreatedAt string `json:"createdAt" gorm:"column:created_at"` // 创建时间
}
// TableName 表名称

View File

@@ -66,11 +66,15 @@ func (r *UDMAuthUser) dataByRedis(imsi, neId string) []model.UDMAuthUser {
amf = strings.Replace(v, "\r\n", "", 1)
}
var createTime int64 = 0
var createdAt string = ""
if v, ok := m["create_time"]; ok {
t := date.ParseStrToDate(v, date.YYYY_MM_DDTHH_MM_SSZ)
createTime = t.UnixMilli()
createdAt = t.Format(date.YYYY_MM_DD_HH_MM_SS)
} else {
createTime = time.Now().UnixMilli()
now := time.Now()
createTime = now.UnixMilli()
createdAt = now.Format(date.YYYY_MM_DD_HH_MM_SS)
}
a := model.UDMAuthUser{
IMSI: imsi,
@@ -80,6 +84,7 @@ func (r *UDMAuthUser) dataByRedis(imsi, neId string) []model.UDMAuthUser {
Opc: m["opc"],
NeId: neId,
CreateTime: createTime,
CreatedAt: createdAt,
}
arr = append(arr, a)
}

View File

@@ -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,27 @@ func (r *UDMSubUser) dataByRedis(imsi, neId string) []model.UDMSubUser {
if strings.Contains(imsi, "-") || !hasPrefix {
continue
}
var createTime int64 = 0
var createdAt string = ""
if v, ok := m["create_time"]; ok {
t := date.ParseStrToDate(v, date.YYYY_MM_DDTHH_MM_SSZ)
createTime = t.UnixMilli()
createdAt = t.Format(date.YYYY_MM_DD_HH_MM_SS)
} else {
now := time.Now()
createTime = now.UnixMilli()
createdAt = now.Format(date.YYYY_MM_DD_HH_MM_SS)
}
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
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,
CreatedAt: createdAt,
}
// def_ambr,def_nssai,0,def_arfb,def_sar,3,1,12000,1,1000,0,1,-

View File

@@ -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,24 @@ func (r UDMVOIPUser) dataByRedis(username, neId string) []model.UDMVOIPUser {
if strings.Contains(username, "-") || !hasPrefix {
continue
}
var createTime int64 = 0
var createdAt string = ""
if v, ok := m["create_time"]; ok {
t := date.ParseStrToDate(v, date.YYYY_MM_DDTHH_MM_SSZ)
createTime = t.UnixMilli()
createdAt = t.Format(date.YYYY_MM_DD_HH_MM_SS)
} else {
now := time.Now()
createTime = now.UnixMilli()
createdAt = now.Format(date.YYYY_MM_DD_HH_MM_SS)
}
a := model.UDMVOIPUser{
NeId: neId,
UserName: username,
Password: m["password"],
NeId: neId,
UserName: username,
Password: m["password"],
CreateTime: createTime,
CreatedAt: createdAt,
}
arr = append(arr, a)
}

View File

@@ -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,26 @@ func (r UDMVolteIMSUser) dataByRedis(imsi, neId string) []model.UDMVolteIMSUser
if len(impiParts) > 1 {
vni = impiParts[1]
}
var createTime int64 = 0
var createdAt string = ""
if v, ok := m["create_time"]; ok {
t := date.ParseStrToDate(v, date.YYYY_MM_DDTHH_MM_SSZ)
createTime = t.UnixMilli()
createdAt = t.Format(date.YYYY_MM_DD_HH_MM_SS)
} else {
now := time.Now()
createTime = now.UnixMilli()
createdAt = now.Format(date.YYYY_MM_DD_HH_MM_SS)
}
a := model.UDMVolteIMSUser{
NeId: neId,
IMSI: keys[1],
MSISDN: keys[2],
Tag: m["tag"], // volte = tag
VNI: vni,
NeId: neId,
IMSI: keys[1],
MSISDN: keys[2],
Tag: m["tag"], // volte = tag
VNI: vni,
CreateTime: createTime,
CreatedAt: createdAt,
}
arr = append(arr, a)
}