fix: udm用户信息直接返回后存入数据库

This commit is contained in:
TsMask
2023-11-01 10:39:47 +08:00
parent 928448b548
commit 73f3d550a7

View File

@@ -254,20 +254,18 @@ func (s *UdmUserApi) UdmAuthUserInfo(w http.ResponseWriter, r *http.Request) {
ctx.JSON(w, 200, result.ErrMsg(err.Error())) ctx.JSON(w, 200, result.ErrMsg(err.Error()))
return return
} }
// 返回查询的用户信息
userInfo := model.UdmAuthUser{
Imsi: imsi,
Amf: data["amf"],
AlgoIndex: data["algo"],
Opc: data["opc"],
Ki: data["ki"],
}
// 查询数据库是否存在并存入
neId = "" neId = ""
var userInfo model.UdmAuthUser
list := s.authUser.List(model.UdmAuthUser{NeID: neId, Imsi: imsi}) list := s.authUser.List(model.UdmAuthUser{NeID: neId, Imsi: imsi})
if len(list) > 0 { if len(list) == 0 {
userInfo = list[0]
} else {
userInfo = model.UdmAuthUser{
Imsi: imsi,
Amf: data["amf"],
AlgoIndex: data["algo"],
Opc: data["opc"],
Ki: data["ki"],
}
s.authUser.Insert(neId, userInfo) s.authUser.Insert(neId, userInfo)
} }
ctx.JSON(w, 200, result.OkData(userInfo)) ctx.JSON(w, 200, result.OkData(userInfo))
@@ -655,40 +653,39 @@ func (s *UdmUserApi) UdmSubUserInfo(w http.ResponseWriter, r *http.Request) {
return return
} }
neId = "" // 返回查询的用户信息
var userInfo model.UdmSubUser cnType, _ := strconv.ParseInt(data["CNType"][:4], 0, 64)
list := s.subUser.List(model.UdmSubUser{NeID: neId, Imsi: imsi}) rat, _ := strconv.ParseInt(data["RAT"][:4], 0, 64)
if len(list) > 0 { userInfo := model.UdmSubUser{
userInfo = list[0] Imsi: imsi,
} else { Msisdn: data["MSISDN"],
cnType, _ := strconv.ParseInt(data["CNType"][:4], 0, 64) Ambr: data["AMBR"],
rat, _ := strconv.ParseInt(data["RAT"][:4], 0, 64) Arfb: data["AreaForbidden"],
userInfo = model.UdmSubUser{ Cn: fmt.Sprint(cnType),
Imsi: imsi, SmData: data["SM-Data(snssai+dnn[1..n])"],
Msisdn: data["MSISDN"], Sar: data["ServiceAreaRestriction"],
Ambr: data["AMBR"], Nssai: data["NSSAI"],
Arfb: data["AreaForbidden"], SmfSel: data["Smf-Selection"],
Cn: fmt.Sprint(cnType), Rat: fmt.Sprint(rat),
SmData: data["SM-Data(snssai+dnn[1..n])"], }
Sar: data["ServiceAreaRestriction"], // 1,64,24,65,def_eps,1,2,010200000000,-
Nssai: data["NSSAI"], if v, ok := data["EPS-Data"]; ok {
SmfSel: data["Smf-Selection"], userInfo.EpsDat = v
Rat: fmt.Sprint(rat), arr := strings.Split(v, ",")
} userInfo.EpsFlag = arr[0]
// 1,64,24,65,def_eps,1,2,010200000000,- userInfo.EpsOdb = arr[1]
if v, ok := data["EPS-Data"]; ok { userInfo.HplmnOdb = arr[2]
userInfo.EpsDat = v userInfo.Ard = arr[3]
arr := strings.Split(v, ",") userInfo.Epstpl = arr[4]
userInfo.EpsFlag = arr[0] userInfo.ContextId = arr[5]
userInfo.EpsOdb = arr[1] userInfo.ApnContext = arr[7]
userInfo.HplmnOdb = arr[2] userInfo.StaticIp = arr[8]
userInfo.Ard = arr[3] }
userInfo.Epstpl = arr[4]
userInfo.ContextId = arr[5]
userInfo.ApnContext = arr[7]
userInfo.StaticIp = arr[8]
}
// 查询数据库是否存在并存入
neId = ""
list := s.subUser.List(model.UdmSubUser{NeID: neId, Imsi: imsi})
if len(list) == 0 {
s.subUser.Insert(neId, userInfo) s.subUser.Insert(neId, userInfo)
} }
ctx.JSON(w, 200, result.OkData(userInfo)) ctx.JSON(w, 200, result.OkData(userInfo))