fix: UDM用户获取sql查询问题

This commit is contained in:
TsMask
2023-09-12 16:13:04 +08:00
parent eb18ea22a4
commit a7a4819a0f
6 changed files with 26 additions and 23 deletions

View File

@@ -9,6 +9,7 @@ import (
"ems.agt/features/udm_user/model"
"ems.agt/features/udm_user/service"
"ems.agt/lib/core/conf"
"ems.agt/lib/core/file"
mmlclient "ems.agt/lib/core/mml_client"
"ems.agt/lib/core/utils/ctx"
@@ -250,7 +251,6 @@ func (s *UdmUserApi) UdmAuthUserInfo(w http.ResponseWriter, r *http.Request) {
list := s.authUser.List(model.UdmAuthUser{NeID: neId, Imsi: imsi})
if len(list) > 0 {
userInfo = list[0]
ctx.JSON(w, 200, result.OkData(list[0]))
} else {
userInfo = model.UdmAuthUser{
Imsi: imsi,
@@ -476,7 +476,7 @@ func (s *UdmUserApi) UdmAuthUserExport(w http.ResponseWriter, r *http.Request) {
list := s.authUser.List(model.UdmAuthUser{NeID: neId})
// 文件名
fileName := fmt.Sprintf("OMC_AUTH_USER_EXPORT_%s_%d.csv", neId, time.Now().UnixMilli())
filePath := fmt.Sprintf("/usr/local/omc/upload/mml/%s", fileName)
filePath := fmt.Sprintf("%s/upload/mml/%s", conf.Get("ne.omcdir"), fileName)
// 转换数据
data := [][]string{}
data = append(data, []string{"imsi", "ki", "amf", "algo", "opc", "status"})
@@ -510,8 +510,8 @@ func (s *UdmUserApi) UdmAuthUserImport(w http.ResponseWriter, r *http.Request) {
// 文件名
fileName := fmt.Sprintf("OMC_AUTH_USER_IMPORT_%s_%d.csv", neId, time.Now().UnixMilli())
filePath := fmt.Sprintf("/usr/local/omc/upload/mml/%s", fileName)
dstPath := "/home/agtuser/"
filePath := fmt.Sprintf("%s/upload/mml/%s", conf.Get("ne.omcdir"), fileName)
dstPath := conf.Get("mml.upload").(string)
// 输出保存文件
err = ctx.SaveUploadedFile(r, filePath)
if err != nil {
@@ -596,7 +596,6 @@ func (s *UdmUserApi) UdmSubUserInfo(w http.ResponseWriter, r *http.Request) {
list := s.subUser.List(model.UdmSubUser{NeID: neId, Imsi: imsi})
if len(list) > 0 {
userInfo = list[0]
ctx.JSON(w, 200, result.OkData(list[0]))
} else {
cnType, _ := strconv.ParseInt(data["CNType"][:4], 0, 64)
rat, _ := strconv.ParseInt(data["RAT"][:4], 0, 64)
@@ -614,6 +613,7 @@ func (s *UdmUserApi) UdmSubUserInfo(w http.ResponseWriter, r *http.Request) {
}
// 1,64,24,65,def_eps,1,2,010200000000,-
if v, ok := data["EPS-Data"]; ok {
userInfo.EpsDat = v
arr := strings.Split(v, ",")
userInfo.EpsFlag = arr[0]
userInfo.EpsOdb = arr[1]
@@ -980,7 +980,7 @@ func (s *UdmUserApi) UdmSubUserExport(w http.ResponseWriter, r *http.Request) {
list := s.subUser.List(model.UdmSubUser{NeID: neId})
// 文件名
fileName := fmt.Sprintf("OMC_AUTH_USER_EXPORT_%s_%d.csv", neId, time.Now().UnixMilli())
filePath := fmt.Sprintf("/usr/local/omc/upload/mml/%s", fileName)
filePath := fmt.Sprintf("%s/upload/mml/%s", conf.Get("ne.omcdir"), fileName)
// 转换数据
data := [][]string{}
data = append(data, []string{"imsi", "msisdn", "ambr", "arfb", "sar", "rat", "cn", "smf_sel", "sm_dat", "eps_dat"})
@@ -1014,8 +1014,8 @@ func (s *UdmUserApi) UdmSubUserImport(w http.ResponseWriter, r *http.Request) {
// 文件名
fileName := fmt.Sprintf("OMC_SUB_USER_IMPORT_%s_%d.csv", neId, time.Now().UnixMilli())
filePath := fmt.Sprintf("/usr/local/omc/upload/mml/%s", fileName)
dstPath := "/home/agtuser/"
filePath := fmt.Sprintf("%s/upload/mml/%s", conf.Get("ne.omcdir"), fileName)
dstPath := conf.Get("mml.upload").(string)
// 输出保存文件
err = ctx.SaveUploadedFile(r, filePath)
if err != nil {

View File

@@ -25,5 +25,5 @@ type UdmSubUser struct {
ApnContext string `json:"apnContext" xorm:"apn_context"`
StaticIp string `json:"staticIp" xorm:"static_ip"`
SubNum string `json:"subNum" xorm:"-"` // 批量数
SubNum string `json:"subNum,omitempty" xorm:"-"` // 批量数
}

View File

@@ -118,7 +118,7 @@ func (r *RepoUdmAuthUser) SelectList(auth model.UdmAuthUser) []model.UdmAuthUser
var conditions []string
var params []any
if auth.Imsi != "" {
conditions = append(conditions, "msisdn like concat(?, '%')")
conditions = append(conditions, "imsi = ?")
params = append(params, auth.Imsi)
}
if auth.NeID != "" {
@@ -207,8 +207,8 @@ func (r *RepoUdmAuthUser) Inserts(neID string, authUser model.UdmAuthUser, num s
func (r *RepoUdmAuthUser) Update(neID string, authUser model.UdmAuthUser) int64 {
// 查询先
var user model.UdmAuthUser
err := datasource.DefaultDB().Table("u_auth_user").Where("imsi = ? and ne_id = ?", authUser.Imsi, neID).Find(&user)
if err != nil {
has, err := datasource.DefaultDB().Table("u_auth_user").Where("imsi = ? and ne_id = ?", authUser.Imsi, neID).Get(&user)
if !has || err != nil {
return 0
}
@@ -225,7 +225,7 @@ func (r *RepoUdmAuthUser) Update(neID string, authUser model.UdmAuthUser) int64
user.Opc = authUser.Opc
}
results, err := datasource.DefaultDB().Table("u_auth_user").Update(user)
results, err := datasource.DefaultDB().Table("u_auth_user").Where("imsi = ? and ne_id = ?", user.Imsi, user.NeID).Update(user)
if err != nil {
return 0
}

View File

@@ -22,7 +22,7 @@ var NewRepoUdmSubUser = &RepoUdmSubUser{
"msisdn": "Msisdn",
"imsi": "Imsi",
"ambr": "Ambr",
"nssai": "Assai",
"nssai": "Nssai",
"rat": "Rat",
"arfb": "Arfb",
"sar": "Sar",
@@ -130,7 +130,7 @@ func (r *RepoUdmSubUser) SelectList(auth model.UdmSubUser) []model.UdmSubUser {
var conditions []string
var params []any
if auth.Imsi != "" {
conditions = append(conditions, "msisdn like concat(?, '%')")
conditions = append(conditions, "imsi = ?")
params = append(params, auth.Imsi)
}
if auth.NeID != "" {
@@ -257,8 +257,8 @@ func (r *RepoUdmSubUser) Insert4G(neID string, subUser model.UdmSubUser) int64 {
func (r *RepoUdmSubUser) Update(neID string, authUser model.UdmSubUser) int64 {
// 查询先
var user model.UdmSubUser
err := datasource.DefaultDB().Table("u_sub_user").Where("imsi = ? and ne_id = ?", authUser.Imsi, neID).Find(&user)
if err != nil {
has, err := datasource.DefaultDB().Table("u_sub_user").Where("imsi = ? and ne_id = ?", authUser.Imsi, neID).Get(&user)
if !has || err != nil {
return 0
}
@@ -290,7 +290,7 @@ func (r *RepoUdmSubUser) Update(neID string, authUser model.UdmSubUser) int64 {
user.EpsDat = authUser.EpsDat
}
results, err := datasource.DefaultDB().Table("u_sub_user").Update(user)
results, err := datasource.DefaultDB().Table("u_sub_user").Where("imsi = ? and ne_id = ?", user.Imsi, user.NeID).Update(user)
if err != nil {
return 0
}
@@ -315,8 +315,8 @@ func (r *RepoUdmSubUser) Update4GIP(neID string, subUser model.UdmSubUser) int64
// 查询先
var user model.UdmSubUser
err := datasource.DefaultDB().Table("u_sub_user").Where("imsi = ? and ne_id = ?", subUser.Imsi, neID).Find(&user)
if err == nil {
has, err := datasource.DefaultDB().Table("u_sub_user").Where("imsi = ? and ne_id = ?", subUser.Imsi, neID).Get(&user)
if has && err == nil {
// IP会自动递增
parts := strings.Split(subUser.StaticIp, ".")
lastPart := parts[3]
@@ -354,8 +354,8 @@ func (r *RepoUdmSubUser) UpdateSmData(neID string, subUser model.UdmSubUser) int
// 查询先
var user model.UdmSubUser
err := datasource.DefaultDB().Table("u_sub_user").Where("imsi = ? and ne_id = ?", subUser.Imsi, neID).Find(&user)
if err == nil {
has, err := datasource.DefaultDB().Table("u_sub_user").Where("imsi = ? and ne_id = ?", subUser.Imsi, neID).Get(&user)
if has && err == nil {
// IP会自动递增需提前规划好DNN对应的IP如dnn不需要绑定IP则不带此字段名
// parts := strings.Split(subUser.SmData, "&")
user.SmData = subUser.SmData

View File

@@ -56,6 +56,7 @@ func redisUdmSubUserList() []model.UdmSubUser {
a := model.UdmSubUser{
Imsi: imsi,
Msisdn: m["gpsi"],
SmfSel: m["smf-sel"],
SmData: m["sm-dat"], // 1-000001&cmnet&ims&3gnet
}
@@ -75,6 +76,7 @@ func redisUdmSubUserList() []model.UdmSubUser {
}
// 1,64,24,65,def_eps,1,2,010200000000,-
if v, ok := m["eps-dat"]; ok {
a.EpsDat = v
arr := strings.Split(v, ",")
a.EpsFlag = arr[0]
a.EpsOdb = arr[1]