From ff5bbccfffad18cf9dbcb2bee5120a65eafab748 Mon Sep 17 00:00:00 2001 From: simonzhangsz Date: Wed, 24 Jul 2024 10:00:07 +0800 Subject: [PATCH] fix: pcc user info issue --- features/ue/ue.go | 79 +++++------------------------------------------ 1 file changed, 8 insertions(+), 71 deletions(-) diff --git a/features/ue/ue.go b/features/ue/ue.go index 1472e2ab..272c1577 100644 --- a/features/ue/ue.go +++ b/features/ue/ue.go @@ -479,7 +479,7 @@ func GetIMSUEInfoFromNF(w http.ResponseWriter, r *http.Request) { // Get UEInfo from NF/NFs, PCF Online users func GetPCFUEInfoFromNF(w http.ResponseWriter, r *http.Request) { - log.Debug("GetUEInfoFromNF processing... ") + log.Debug("GetPCFUEInfoFromNF processing... ") neId := ctx.GetQuery(r, "neId") neType := "pcf" @@ -488,25 +488,12 @@ func GetPCFUEInfoFromNF(w http.ResponseWriter, r *http.Request) { // services.ResponseNotFound404UriNotExist(w, r) // return // } - var tenantName string - tenantNames := services.GetParamsArrByName("tenantName", r) - if len(tenantNames) > 0 { - tenantName = tenantNames[0] - } - var neInfos []model.NeInfo - if neId != "" { - neInfo := neService.NewNeInfoImpl.SelectNeInfoByNeTypeAndNeID(neType, neId) - neInfos = append(neInfos, neInfo) - } else { - neInfos = neService.NewNeInfoImpl.SelectNeInfoByNeType(neType) - } + neInfo := neService.NewNeInfoImpl.SelectNeInfoByNeTypeAndNeID(neType, neId) - var response UEInfoResponse - for _, neInfo := range neInfos { - //if neInfo.NeId == neId && neInfo.NeId != "" { + var response services.MapResponse + if neInfo.NeId == neId && neInfo.NeId != "" { requestURI2NF := fmt.Sprintf("http://%s:%v%s", neInfo.IP, neInfo.Port, r.RequestURI) - //requestURI2NF := "http://127.0.0.1:4523/m1/3157310-1528434-default/api/rest/ueManagement/v1/elementType/smf/objectType/ueInfo?apifoxApiId=128609449" log.Debug("requestURI2NF:", requestURI2NF) resp, err := client.R(). EnableTrace(). @@ -515,62 +502,12 @@ func GetPCFUEInfoFromNF(w http.ResponseWriter, r *http.Request) { Get(requestURI2NF) if err != nil { log.Error("Failed to Get from NF:", err) - // services.ResponseInternalServerError500ProcessError(w, err) - // return - continue - } - // multi-tenancy solution - var tenantID, where string - //var cols []string - if tenantName != "" { - where = fmt.Sprintf("status='1' and tenant_name='%s'", tenantName) - tenantID, _ = dborm.XormGetSingleColStringByWhere("sys_tenant", "tenant_id", where) + services.ResponseInternalServerError500ProcessError(w, err) + return } else { - userName := ctx.LoginUserToUserName(r) - where = fmt.Sprintf("status='1' and user_name='%s'", userName) - tenantID, _ = dborm.XormGetSingleColStringByWhere("sys_user", "tenant_id", where) - where = fmt.Sprintf("status='1' and tenant_id='%s'", tenantID) - tenantName, _ = dborm.XormGetSingleColStringByWhere("sys_tenant", "tenant_name", where) - } - if tenantID == "" { - var ueInfos UEInfoResponse - _ = json.Unmarshal(resp.Body(), &ueInfos) - for i := 0; i < len(ueInfos.Data); i++ { - where = fmt.Sprintf("status='1' and tenancy_type='IMSI' and '%s' like tenancy_key", ueInfos.Data[i].IMSI[5:]) - tenantID, _ = dborm.XormGetSingleColStringByWhere("sys_tenant", "parent_id", where) - where = fmt.Sprintf("status='1' and tenant_id='%s'", tenantID) - tenantName, _ = dborm.XormGetSingleColStringByWhere("sys_tenant", "tenant_name", where) - log.Tracef("tenantName: %s tenantID: %s", tenantName, tenantID) - ueInfos.Data[i].NeType = strings.ToUpper(neType) - ueInfos.Data[i].NeID = neInfo.NeId - ueInfos.Data[i].TenantName = tenantName - response.Data = append(response.Data, ueInfos.Data[i]) - } - // services.ResponseWithJson(w, resp.StatusCode(), &response) - // return - } else { - //var tenantUEInfos []TenantUEInfo - var ueInfos UEInfoResponse - log.Trace("body:", string(resp.Body())) - _ = json.Unmarshal(resp.Body(), &ueInfos) - log.Trace("ueInfos:", ueInfos) - for _, n := range ueInfos.Data { - log.Trace("tenantID, n.IMSI[5:]:", tenantID, n.IMSI[5:]) - // "imsi": "imsi-460000100029999", - where = fmt.Sprintf("status='1' and parent_id='%s' and tenancy_type='IMSI' and '%s' like tenancy_key", tenantID, n.IMSI[5:]) - has, err := dborm.XormExistTableOne("sys_tenant", where) - if err == nil && has { - n.NeType = strings.ToUpper(neType) - n.NeID = neInfo.NeId - n.TenantName = tenantName - response.Data = append(response.Data, n) - } - } - // var response UEInfoResponse - // response.Data = tenantUEInfos - // services.ResponseWithJson(w, resp.StatusCode(), &response) - // return + _ = json.Unmarshal(resp.Body(), &response) } + log.Debug("response:", response) } services.ResponseWithJson(w, http.StatusOK, response)