fix: UDM鉴权用户去除Msisdn字段
This commit is contained in:
@@ -3,7 +3,6 @@ package model
|
||||
// UdmAuthUser UDM鉴权用户
|
||||
type UdmAuthUser struct {
|
||||
ID string `json:"id" xorm:"pk 'id' autoincr"`
|
||||
Msisdn string `json:"msisdn" xorm:"msisdn"` // 相当手机号
|
||||
Imsi string `json:"imsi" xorm:"imsi"` // SIM卡号
|
||||
Amf string `json:"amf" xorm:"amf"` // ANF
|
||||
Status string `json:"status" xorm:"status"` // 状态
|
||||
|
||||
@@ -14,12 +14,11 @@ import (
|
||||
// 实例化数据层 RepoUdmAuthUser 结构体
|
||||
var NewRepoUdmAuthUser = &RepoUdmAuthUser{
|
||||
selectSql: `select
|
||||
id, msisdn, imsi, amf, status, ki, algo_index, opc, ne_id
|
||||
id, imsi, amf, status, ki, algo_index, opc, ne_id
|
||||
from u_auth_user`,
|
||||
|
||||
resultMap: map[string]string{
|
||||
"id": "ID",
|
||||
"msisdn": "Msisdn",
|
||||
"imsi": "Imsi",
|
||||
"amf": "Amf",
|
||||
"status": "Status",
|
||||
@@ -58,10 +57,6 @@ func (r *RepoUdmAuthUser) SelectPage(query map[string]any) map[string]any {
|
||||
// 查询条件拼接
|
||||
var conditions []string
|
||||
var params []any
|
||||
if v, ok := query["msisdn"]; ok && v != "" {
|
||||
conditions = append(conditions, "msisdn like concat(concat('%', ?), '%')")
|
||||
params = append(params, v)
|
||||
}
|
||||
if v, ok := query["imsi"]; ok && v != "" {
|
||||
conditions = append(conditions, "imsi like concat(concat('%', ?), '%')")
|
||||
params = append(params, v)
|
||||
@@ -77,18 +72,23 @@ func (r *RepoUdmAuthUser) SelectPage(query map[string]any) map[string]any {
|
||||
whereSql += " where " + strings.Join(conditions, " and ")
|
||||
}
|
||||
|
||||
result := map[string]any{
|
||||
"total": 0,
|
||||
"rows": []model.UdmAuthUser{},
|
||||
}
|
||||
|
||||
// 查询数量 长度为0直接返回
|
||||
totalSql := "select count(1) as 'total' from u_auth_user"
|
||||
totalRows, err := datasource.RawDB("", totalSql+whereSql, params)
|
||||
if err != nil {
|
||||
log.Errorf("total err => %v", err)
|
||||
return result
|
||||
}
|
||||
total := parse.Number(totalRows[0]["total"])
|
||||
if total == 0 {
|
||||
return map[string]any{
|
||||
"total": total,
|
||||
"rows": nil,
|
||||
}
|
||||
return result
|
||||
} else {
|
||||
result["total"] = total
|
||||
}
|
||||
|
||||
// 分页
|
||||
@@ -120,11 +120,8 @@ func (r *RepoUdmAuthUser) SelectPage(query map[string]any) map[string]any {
|
||||
}
|
||||
|
||||
// 转换实体
|
||||
rows := r.convertResultRows(results)
|
||||
return map[string]any{
|
||||
"total": total,
|
||||
"rows": rows,
|
||||
}
|
||||
result["rows"] = r.convertResultRows(results)
|
||||
return result
|
||||
}
|
||||
|
||||
// SelectList 根据实体查询
|
||||
|
||||
@@ -89,22 +89,23 @@ func (r *RepoUdmSubUser) SelectPage(query map[string]any) map[string]any {
|
||||
whereSql += " where " + strings.Join(conditions, " and ")
|
||||
}
|
||||
|
||||
result := map[string]any{
|
||||
"total": 0,
|
||||
"rows": []model.UdmAuthUser{},
|
||||
}
|
||||
|
||||
// 查询数量 长度为0直接返回
|
||||
totalSql := "select count(1) as 'total' from u_sub_user"
|
||||
totalRows, err := datasource.RawDB("", totalSql+whereSql, params)
|
||||
if err != nil {
|
||||
log.Errorf("total err => %v", err)
|
||||
return map[string]any{
|
||||
"total": 0,
|
||||
"rows": nil,
|
||||
}
|
||||
return result
|
||||
}
|
||||
total := parse.Number(totalRows[0]["total"])
|
||||
if total == 0 {
|
||||
return map[string]any{
|
||||
"total": total,
|
||||
"rows": nil,
|
||||
}
|
||||
return result
|
||||
} else {
|
||||
result["total"] = total
|
||||
}
|
||||
|
||||
// 分页
|
||||
@@ -133,14 +134,12 @@ func (r *RepoUdmSubUser) SelectPage(query map[string]any) map[string]any {
|
||||
results, err := datasource.RawDB("", querySql, params)
|
||||
if err != nil {
|
||||
log.Errorf("query err => %v", err)
|
||||
return result
|
||||
}
|
||||
|
||||
// 转换实体
|
||||
rows := r.convertResultRows(results)
|
||||
return map[string]any{
|
||||
"total": total,
|
||||
"rows": rows,
|
||||
}
|
||||
result["rows"] = r.convertResultRows(results)
|
||||
return result
|
||||
}
|
||||
|
||||
// SelectList 根据实体查询
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"ems.agt/features/udm_user/model"
|
||||
@@ -9,28 +8,30 @@ import (
|
||||
)
|
||||
|
||||
// phoneImsiList 获取所有imsi
|
||||
func phoneImsiList() map[string]string {
|
||||
phoneAndImsiArr := make(map[string]string, 0)
|
||||
phoneKeys, err := redis.GetKeys("udmuser", "1*********")
|
||||
if err != nil {
|
||||
return phoneAndImsiArr
|
||||
}
|
||||
for _, phone := range phoneKeys {
|
||||
imsi, err := redis.Get("udmuser", phone)
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
phoneAndImsiArr[phone] = imsi
|
||||
}
|
||||
return phoneAndImsiArr
|
||||
}
|
||||
// func phoneImsiList() map[string]string {
|
||||
// phoneAndImsiArr := make(map[string]string, 0)
|
||||
// phoneKeys, err := redis.GetKeys("udmuser", "1*********")
|
||||
// if err != nil {
|
||||
// return phoneAndImsiArr
|
||||
// }
|
||||
// for _, phone := range phoneKeys {
|
||||
// imsi, err := redis.Get("udmuser", phone)
|
||||
// if err != nil {
|
||||
// continue
|
||||
// }
|
||||
// phoneAndImsiArr[phone] = imsi
|
||||
// }
|
||||
// return phoneAndImsiArr
|
||||
// }
|
||||
|
||||
// redisUdmAuthUserList UDM鉴权用户
|
||||
func redisUdmAuthUserList() []model.UdmAuthUser {
|
||||
phoneAndImsiArr := phoneImsiList()
|
||||
user := []model.UdmAuthUser{}
|
||||
for phone, imsi := range phoneAndImsiArr {
|
||||
key := fmt.Sprintf("ausf:%s", imsi)
|
||||
ausfArr, err := redis.GetKeys("udmuser", "ausf:*")
|
||||
if err != nil {
|
||||
return user
|
||||
}
|
||||
for _, key := range ausfArr {
|
||||
m, err := redis.GetHash("udmuser", key)
|
||||
if err != nil {
|
||||
continue
|
||||
@@ -40,10 +41,13 @@ func redisUdmAuthUserList() []model.UdmAuthUser {
|
||||
if _, ok := m["auth_success"]; ok {
|
||||
status = "1"
|
||||
}
|
||||
amf := ""
|
||||
if v, ok := m["amf"]; ok {
|
||||
amf = strings.Replace(v, "\r\n", "", 1)
|
||||
}
|
||||
a := model.UdmAuthUser{
|
||||
Msisdn: phone,
|
||||
Imsi: imsi,
|
||||
Amf: m["amf"],
|
||||
Imsi: key[5:],
|
||||
Amf: amf,
|
||||
Status: status,
|
||||
Ki: m["ki"],
|
||||
AlgoIndex: m["algo"],
|
||||
@@ -56,26 +60,25 @@ func redisUdmAuthUserList() []model.UdmAuthUser {
|
||||
|
||||
// redisUdmSubUserList UDM签约用户
|
||||
func redisUdmSubUserList() []model.UdmSubUser {
|
||||
phoneAndImsiArr := phoneImsiList()
|
||||
// phoneAndImsiArr := phoneImsiList()
|
||||
user := []model.UdmSubUser{}
|
||||
for phone, imsi := range phoneAndImsiArr {
|
||||
key := fmt.Sprintf("udm-sd:%s", imsi)
|
||||
udmsdArr, err := redis.GetKeys("udmuser", "udm-sd:*")
|
||||
if err != nil {
|
||||
return user
|
||||
}
|
||||
for _, key := range udmsdArr {
|
||||
m, err := redis.GetHash("udmuser", key)
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
|
||||
a := model.UdmSubUser{
|
||||
Imsi: imsi,
|
||||
Msisdn: m["gpsi"],
|
||||
Imsi: key[7:],
|
||||
Msisdn: strings.TrimPrefix(m["gpsi"], "86"),
|
||||
SmfSel: m["smf-sel"],
|
||||
SmData: m["sm-dat"], // 1-000001&cmnet&ims&3gnet
|
||||
}
|
||||
|
||||
if a.Msisdn == "" {
|
||||
a.Msisdn = phone
|
||||
}
|
||||
|
||||
// def_ambr,def_nssai,0,def_arfb,def_sar,3,1,12000,1,1000,0,1,-
|
||||
if v, ok := m["am-dat"]; ok {
|
||||
arr := strings.Split(v, ",")
|
||||
|
||||
Reference in New Issue
Block a user