add: multi-tenant

This commit is contained in:
2024-06-06 11:27:42 +08:00
parent 6ce288c3ef
commit 82420a8445
14 changed files with 1253 additions and 9 deletions

View File

@@ -208,7 +208,7 @@ func (r *RepoUdmSubUser) ClearAndInsert(neID string, subArr []model.UdmSubUser)
batch := subArr[i:end]
// multi-tenancy
r.SetTenantName(batch)
r.SetTenantName(&batch)
// 调用 InsertMulti 函数将批量数据插入数据库
results, err := datasource.DefaultDB().Table("u_sub_user").InsertMulti(batch)
@@ -253,7 +253,7 @@ func (r *RepoUdmSubUser) Inserts(subUser []model.UdmSubUser) int64 {
batch := subUser[i:end]
// multi-tenancy
r.SetTenantName(batch)
r.SetTenantName(&batch)
// 调用 InsertMulti 函数将批量数据插入数据库
results, err := datasource.DefaultDB().Table("u_sub_user").InsertMulti(batch)
@@ -285,7 +285,7 @@ func (r *RepoUdmSubUser) Insert4G(neID string, subUser model.UdmSubUser) int64 {
// multi-tenancy
subUserSlice := []model.UdmSubUser{subUser}
r.SetTenantName(subUserSlice)
r.SetTenantName(&subUserSlice)
results, err := datasource.DefaultDB().Table("u_sub_user").Insert(subUser)
if err == nil {
@@ -475,15 +475,18 @@ func (r *RepoUdmSubUser) Deletes(neID, imsi, num string) int64 {
}
// multi-tenancy solution, get tenant_name by imsi
func (r *RepoUdmSubUser) SetTenantName(subArr []model.UdmSubUser) {
for s := 0; s < len(subArr); s++ {
func (r *RepoUdmSubUser) SetTenantName(subArr *[]model.UdmSubUser) {
for s := 0; s < len(*subArr); s++ {
var tenantName string
err := datasource.DefaultDB().Table("sys_tenant_map").
Where("mapping_type='udm_sub' and mapping_key='?'", subArr[s].Imsi).Cols("tenant_name").Find(tenantName)
Where("mapping_type='udm_sub' and mapping_key='?'", (*subArr)[s].Imsi).Cols("tenant_name").Find(tenantName)
if err != nil {
log.Errorf("Find tenant_name err => %v", err)
continue
}
subArr[s].TenantName = tenantName
if tenantName != "" {
log.Infof("tenantName=%s imsi=%s", tenantName, (*subArr)[s].Imsi)
}
(*subArr)[s].TenantName = tenantName
}
}