feat: UDM数据批量导入拼减少防止溢出限制
This commit is contained in:
@@ -16,7 +16,7 @@ import (
|
|||||||
// 实例化数据层 IMSUserRepository 结构体
|
// 实例化数据层 IMSUserRepository 结构体
|
||||||
var NewIMSUserRepository = &IMSUserRepository{
|
var NewIMSUserRepository = &IMSUserRepository{
|
||||||
selectSql: `select
|
selectSql: `select
|
||||||
s.id, s.ne_id, s.imsi, s.msisdn, s.tag, s.vni,
|
s.id, s.ne_id, s.imsi, s.msisdn, s.tag, s.vni, s.create_time, s.created_at,
|
||||||
t.tenant_id, t.tenant_name
|
t.tenant_id, t.tenant_name
|
||||||
from u_ims_user s
|
from u_ims_user s
|
||||||
left join sys_tenant t on t.tenant_id = s.tenant_id and t.status = 1`,
|
left join sys_tenant t on t.tenant_id = s.tenant_id and t.status = 1`,
|
||||||
@@ -29,6 +29,8 @@ var NewIMSUserRepository = &IMSUserRepository{
|
|||||||
"tag": "Tag",
|
"tag": "Tag",
|
||||||
"vni": "VNI",
|
"vni": "VNI",
|
||||||
|
|
||||||
|
"create_time": "CreateTime",
|
||||||
|
"created_at": "CreatedAt",
|
||||||
"tenant_id": "TenantID",
|
"tenant_id": "TenantID",
|
||||||
"tenant_name": "TenantName", // Tenant name for multi-tenancy
|
"tenant_name": "TenantName", // Tenant name for multi-tenancy
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ import (
|
|||||||
// 实例化数据层 VoIPAuthRepository 结构体
|
// 实例化数据层 VoIPAuthRepository 结构体
|
||||||
var NewVoIPAuthRepository = &VoIPAuthRepository{
|
var NewVoIPAuthRepository = &VoIPAuthRepository{
|
||||||
selectSql: `select
|
selectSql: `select
|
||||||
s.id, s.ne_id, s.user_name, s.password,
|
s.id, s.ne_id, s.user_name, s.password, s.create_time, s.created_at,
|
||||||
t.tenant_id, t.tenant_name
|
t.tenant_id, t.tenant_name
|
||||||
from u_voip_auth s
|
from u_voip_auth s
|
||||||
left join sys_tenant t on t.tenant_id = s.tenant_id and t.status = 1`,
|
left join sys_tenant t on t.tenant_id = s.tenant_id and t.status = 1`,
|
||||||
@@ -27,6 +27,8 @@ var NewVoIPAuthRepository = &VoIPAuthRepository{
|
|||||||
"user_name": "UserName",
|
"user_name": "UserName",
|
||||||
"password": "Password",
|
"password": "Password",
|
||||||
|
|
||||||
|
"create_time": "CreateTime",
|
||||||
|
"created_at": "CreatedAt",
|
||||||
"tenant_id": "TenantID",
|
"tenant_id": "TenantID",
|
||||||
"tenant_name": "TenantName", // Tenant name for multi-tenancy
|
"tenant_name": "TenantName", // Tenant name for multi-tenancy
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import (
|
|||||||
|
|
||||||
// 实例化数据层 UDMAuthUser 结构体
|
// 实例化数据层 UDMAuthUser 结构体
|
||||||
var NewUDMAuthUser = &UDMAuthUser{
|
var NewUDMAuthUser = &UDMAuthUser{
|
||||||
selectSql: `select id, imsi, ne_id, amf, status, ki, algo_index, opc, create_time from u_auth_user`,
|
selectSql: `select id, imsi, ne_id, amf, status, ki, algo_index, opc, create_time, created_at from u_auth_user`,
|
||||||
|
|
||||||
resultMap: map[string]string{
|
resultMap: map[string]string{
|
||||||
"id": "ID",
|
"id": "ID",
|
||||||
@@ -25,6 +25,7 @@ var NewUDMAuthUser = &UDMAuthUser{
|
|||||||
"algo_index": "AlgoIndex",
|
"algo_index": "AlgoIndex",
|
||||||
"opc": "Opc",
|
"opc": "Opc",
|
||||||
"create_time": "CreateTime",
|
"create_time": "CreateTime",
|
||||||
|
"created_at": "CreatedAt",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -189,7 +190,7 @@ func (r *UDMAuthUser) SelectByIMSIAndNeID(imsi, neId string) model.UDMAuthUser {
|
|||||||
|
|
||||||
// Insert 批量添加
|
// Insert 批量添加
|
||||||
func (r *UDMAuthUser) Inserts(uArr []model.UDMAuthUser) int64 {
|
func (r *UDMAuthUser) Inserts(uArr []model.UDMAuthUser) int64 {
|
||||||
tx := datasource.DefaultDB().CreateInBatches(uArr, 3000)
|
tx := datasource.DefaultDB().CreateInBatches(uArr, 2000)
|
||||||
if err := tx.Error; err != nil {
|
if err := tx.Error; err != nil {
|
||||||
logger.Errorf("CreateInBatches err => %v", err)
|
logger.Errorf("CreateInBatches err => %v", err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ var NewUDMSub = &UDMSubUser{
|
|||||||
s.id, s.imsi, s.msisdn, s.ne_id,
|
s.id, s.imsi, s.msisdn, s.ne_id,
|
||||||
s.am_dat, s.ambr, s.nssai, s.rat, s.arfb, s.sar, s.cn_type, s.rfsp_index, s.reg_timer, s.ue_usage_type, s.active_time, s.mico, s.odb_ps, s.group_id,
|
s.am_dat, s.ambr, s.nssai, s.rat, s.arfb, s.sar, s.cn_type, s.rfsp_index, s.reg_timer, s.ue_usage_type, s.active_time, s.mico, s.odb_ps, s.group_id,
|
||||||
s.eps_dat, s.eps_flag, s.eps_odb, s.hplmn_odb, s.ard, s.epstpl, s.context_id, s.apn_mum, s.apn_context, s.static_ip,
|
s.eps_dat, s.eps_flag, s.eps_odb, s.hplmn_odb, s.ard, s.epstpl, s.context_id, s.apn_mum, s.apn_context, s.static_ip,
|
||||||
s.sm_data, s.smf_sel, s.cag,
|
s.sm_data, s.smf_sel, s.cag, s.create_time, s.created_at,
|
||||||
t.tenant_id, t.tenant_name
|
t.tenant_id, t.tenant_name
|
||||||
from u_sub_user s
|
from u_sub_user s
|
||||||
left join sys_tenant t on t.tenant_id = s.tenant_id and t.status = 1`,
|
left join sys_tenant t on t.tenant_id = s.tenant_id and t.status = 1`,
|
||||||
@@ -60,6 +60,8 @@ var NewUDMSub = &UDMSubUser{
|
|||||||
"smf_sel": "SmfSel",
|
"smf_sel": "SmfSel",
|
||||||
"cag": "Cag",
|
"cag": "Cag",
|
||||||
|
|
||||||
|
"create_time": "CreateTime",
|
||||||
|
"created_at": "CreatedAt",
|
||||||
"tenant_id": "TenantID",
|
"tenant_id": "TenantID",
|
||||||
"tenant_name": "TenantName", // Tenant name for multi-tenancy
|
"tenant_name": "TenantName", // Tenant name for multi-tenancy
|
||||||
},
|
},
|
||||||
@@ -262,7 +264,7 @@ func (r *UDMSubUser) Inserts(uArr []model.UDMSubUser) int64 {
|
|||||||
// multi-tenancy
|
// multi-tenancy
|
||||||
r.SetTenantID(&uArr)
|
r.SetTenantID(&uArr)
|
||||||
|
|
||||||
tx := datasource.DefaultDB().CreateInBatches(uArr, 2000)
|
tx := datasource.DefaultDB().CreateInBatches(uArr, 1000)
|
||||||
if err := tx.Error; err != nil {
|
if err := tx.Error; err != nil {
|
||||||
logger.Errorf("CreateInBatches err => %v", err)
|
logger.Errorf("CreateInBatches err => %v", err)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user