UDM 用户信息接口补充读取数据库

This commit is contained in:
TsMask
2023-09-08 11:15:11 +08:00
parent 8e9cfd28f8
commit a4459cd61b
11 changed files with 394 additions and 194 deletions

View File

@@ -8,14 +8,8 @@ import (
"ems.agt/lib/core/redis"
)
// 实例化服务层 ServiceUdmUser 结构体
var NewServiceUdmUser = &ServiceUdmUser{}
// ServiceUdmUser UDM 服务层处理
type ServiceUdmUser struct{}
// phoneImsiList 获取所有imsi
func (r *ServiceUdmUser) phoneImsiList() map[string]string {
func phoneImsiList() map[string]string {
phoneKeys := redis.GetKeys("1*********")
phoneAndImsiArr := make(map[string]string, 0)
for _, phone := range phoneKeys {
@@ -25,10 +19,10 @@ func (r *ServiceUdmUser) phoneImsiList() map[string]string {
return phoneAndImsiArr
}
// ReadAusfList UDM鉴权用户
func (r *ServiceUdmUser) ReadAusfList() []model.UdmAusfUser {
phoneAndImsiArr := r.phoneImsiList()
user := []model.UdmAusfUser{}
// redisUdmAuthUserList UDM鉴权用户
func redisUdmAuthUserList() []model.UdmAuthUser {
phoneAndImsiArr := phoneImsiList()
user := []model.UdmAuthUser{}
for phone, imsi := range phoneAndImsiArr {
key := fmt.Sprintf("ausf:%s", imsi)
m := redis.GetHash(key)
@@ -37,8 +31,8 @@ func (r *ServiceUdmUser) ReadAusfList() []model.UdmAusfUser {
if _, ok := m["auth_success"]; ok {
status = "1"
}
a := model.UdmAusfUser{
Phone: phone,
a := model.UdmAuthUser{
Msisdn: phone,
Imsi: imsi,
Amf: m["amf"],
Status: status,
@@ -48,26 +42,27 @@ func (r *ServiceUdmUser) ReadAusfList() []model.UdmAusfUser {
}
user = append(user, a)
}
fmt.Println(len(user))
return user
}
// ReadSdList UDM签约用户
func (r *ServiceUdmUser) ReadSdList() []model.UdmSdUser {
phoneAndImsiArr := r.phoneImsiList()
user := []model.UdmSdUser{}
// redisUdmSubUserList UDM签约用户
func redisUdmSubUserList() []model.UdmSubUser {
phoneAndImsiArr := phoneImsiList()
user := []model.UdmSubUser{}
for phone, imsi := range phoneAndImsiArr {
key := fmt.Sprintf("udm-sd:%s", imsi)
m := redis.GetHash(key)
a := model.UdmSdUser{
Phone: phone,
a := model.UdmSubUser{
Imsi: imsi,
Msisdn: m["gpsi"],
SubData: m["sm-dat"],
}
if a.Msisdn == "" {
a.Msisdn = phone
}
if v, ok := m["am-dat"]; ok {
arr := strings.Split(v, ",")
a.SubUeAMBRTemp = arr[0]
@@ -84,7 +79,5 @@ func (r *ServiceUdmUser) ReadSdList() []model.UdmSdUser {
user = append(user, a)
}
fmt.Println(len(user))
return user
}

View File

@@ -0,0 +1,47 @@
package service
import (
"ems.agt/features/udm_user/repo"
"ems.agt/lib/core/datasource"
"ems.agt/lib/log"
)
// 实例化服务层 ServiceUdmAuthUser 结构体
var NewServiceUdmAuthUser = &ServiceUdmAuthUser{
repoAuthUser: *repo.NewRepoUdmAuthUser,
}
// ServiceUdmAuthUser UDM鉴权用户 服务层处理
type ServiceUdmAuthUser struct {
repoAuthUser repo.RepoUdmAuthUser
}
// AuthUserSave UDM鉴权用户-获取全部保存数据库
func (r *ServiceUdmAuthUser) AuthUserSave() int64 {
var num int64 = 0
authArr := redisUdmAuthUserList()
// 有数据才清空
if len(authArr) == 0 {
return num
}
_, err := datasource.ExecDB("", "TRUNCATE TABLE u_auth_user", nil)
if err != nil {
log.Errorf("TRUNCATE err => %v", err)
}
for _, u := range authArr {
results, err := datasource.DefaultDB().Table("u_auth_user").Insert(u)
if err != nil {
log.Errorf("Insert err => %v", err)
return 0
}
num += results
}
return num
}
// SubUserSave UDM签约用户-分页查询数据库
func (r *ServiceUdmAuthUser) AuthUserList(query map[string]any) map[string]any {
return r.repoAuthUser.SelectPage(query)
}

View File

@@ -0,0 +1,49 @@
package service
import (
"ems.agt/features/udm_user/repo"
"ems.agt/lib/core/datasource"
"ems.agt/lib/log"
)
// 实例化服务层 ServiceUdmSubUser 结构体
var NewServiceUdmSubUser = &ServiceUdmSubUser{
repoAuthUser: *repo.NewRepoUdmAuthUser,
repoSunUser: *repo.NewRepoUdmSubUser,
}
// ServiceUdmSubUser UDM签约用户 服务层处理
type ServiceUdmSubUser struct {
repoAuthUser repo.RepoUdmAuthUser
repoSunUser repo.RepoUdmSubUser
}
// SubUserSave UDM签约用户-获取全部保存数据库
func (r *ServiceUdmSubUser) SubUserSave() int64 {
var num int64 = 0
subArr := redisUdmSubUserList()
// 有数据才清空
if len(subArr) == 0 {
return num
}
_, err := datasource.ExecDB("", "TRUNCATE TABLE u_sub_user", nil)
if err != nil {
log.Errorf("TRUNCATE err => %v", err)
}
for _, u := range subArr {
results, err := datasource.DefaultDB().Table("u_sub_user").Insert(u)
if err != nil {
log.Errorf("Insert err => %v", err)
return 0
}
num += results
}
return num
}
// SubUserSave UDM签约用户-分页查询数据库
func (r *ServiceUdmSubUser) SubUserList(query map[string]any) map[string]any {
return r.repoSunUser.SelectPage(query)
}