From b29a36e7b58a8518ce044cdf738020eb8d80e444 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Fri, 25 Apr 2025 17:24:34 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20UDMVolte=E7=94=A8=E6=88=B7=E7=89=B9?= =?UTF-8?q?=E6=AE=8AVoIP=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../network_data/controller/udm_voip.go | 24 ++++++++------- .../network_data/controller/udm_volte_ims.go | 29 +++++++++++-------- src/modules/network_data/service/udm_voip.go | 24 ++++++++------- .../network_data/service/udm_volte_ims.go | 6 ++-- 4 files changed, 48 insertions(+), 35 deletions(-) diff --git a/src/modules/network_data/controller/udm_voip.go b/src/modules/network_data/controller/udm_voip.go index c9f14ddc..7a2db9de 100644 --- a/src/modules/network_data/controller/udm_voip.go +++ b/src/modules/network_data/controller/udm_voip.go @@ -132,9 +132,13 @@ func (s *UDMVOIPController) Info(c *gin.Context) { } // 解析返回的数据 - u := s.udmVOIPService.ParseInfo(username, neId, data) - s.udmVOIPService.Insert(neId, u) - c.JSON(200, resp.OkData(u)) + u := s.udmVOIPService.ParseInfo(neId, data) + if u.ID != "" { + s.udmVOIPService.Insert(neId, u.UserName) + c.JSON(200, resp.OkData(u)) + return + } + c.JSON(200, resp.ErrMsg("No VOIP Data")) } // UDMVOIP用户新增 @@ -190,7 +194,7 @@ func (s *UDMVOIPController) Add(c *gin.Context) { // 命令ok时 if strings.Contains(data, "ok") { - s.udmVOIPService.Insert(neId, body) + s.udmVOIPService.Insert(neId, body.UserName) } c.JSON(200, resp.OkData(data)) } @@ -266,8 +270,8 @@ func (s *UDMVOIPController) Adds(c *gin.Context) { // @Param value path string true "User Name, multiple separated by a , sign" // @Success 200 {object} object "Response Results" // @Security TokenAuth -// @Summary UDM Authenticated User Deletion -// @Description UDM Authenticated User Deletion +// @Summary UDM VOIP User Deletion +// @Description UDM VOIP User Deletion // @Router /neData/udm/voip/{neId}/{value} [delete] func (s *UDMVOIPController) Remove(c *gin.Context) { language := reqctx.AcceptLanguage(c) @@ -387,8 +391,8 @@ func (s *UDMVOIPController) Removes(c *gin.Context) { // @Param pageSize query number true "pageSize" default(10) // @Success 200 {object} object "Response Results" // @Security TokenAuth -// @Summary UDM Authenticated User Export -// @Description UDM Authenticated User Export +// @Summary UDM VOIP User Export +// @Description UDM VOIP User Export // @Router /neData/udm/voip/export [get] func (s *UDMVOIPController) Export(c *gin.Context) { language := reqctx.AcceptLanguage(c) @@ -463,8 +467,8 @@ func (s *UDMVOIPController) Export(c *gin.Context) { // @Param data body object true "Request Param" // @Success 200 {object} object "Response Results" // @Security TokenAuth -// @Summary UDM Authenticated User Import -// @Description UDM Authenticated User Import +// @Summary UDM VOIP User Import +// @Description UDM VOIP User Import // @Router /neData/udm/voip/import [post] func (s *UDMVOIPController) Import(c *gin.Context) { language := reqctx.AcceptLanguage(c) diff --git a/src/modules/network_data/controller/udm_volte_ims.go b/src/modules/network_data/controller/udm_volte_ims.go index f0247f1f..41523650 100644 --- a/src/modules/network_data/controller/udm_volte_ims.go +++ b/src/modules/network_data/controller/udm_volte_ims.go @@ -44,7 +44,7 @@ type UDMVolteIMSController struct { // @Param neId path string true "NE ID" default(001) // @Success 200 {object} object "Response Results" // @Security TokenAuth -// @Summary UDM Authentication User Data Refresh +// @Summary UDM VolteIMS User Data Refresh // @Description UDM Authenticated User Data List Refresh Synchronization Latest // @Router /neData/udm/volte-ims/resetData/{neId} [put] func (s *UDMVolteIMSController) ResetData(c *gin.Context) { @@ -72,8 +72,8 @@ func (s *UDMVolteIMSController) ResetData(c *gin.Context) { // @Param pageSize query number true "pageSize" default(10) // @Success 200 {object} object "Response Results" // @Security TokenAuth -// @Summary UDM Authentication User List -// @Description UDM Authentication User List +// @Summary UDM VolteIMS User List +// @Description UDM VolteIMS User List // @Router /neData/udm/volte-ims/list [get] func (s *UDMVolteIMSController) List(c *gin.Context) { query := reqctx.QueryMap(c) @@ -93,18 +93,22 @@ func (s *UDMVolteIMSController) List(c *gin.Context) { // @Param msisdn query string true "MSISDN" // @Success 200 {object} object "Response Results" // @Security TokenAuth -// @Summary UDM Authentication User Information -// @Description UDM Authentication User Information +// @Summary UDM VolteIMS User Information +// @Description UDM VolteIMS User Information // @Router /neData/udm/volte-ims/{neId}/{value} [get] func (s *UDMVolteIMSController) Info(c *gin.Context) { language := reqctx.AcceptLanguage(c) neId := c.Param("neId") imsi := c.Param("imsi") msisdn := c.Query("msisdn") - if neId == "" || imsi == "" || msisdn == "" { + if neId == "" || imsi == "" { c.JSON(400, resp.CodeMsg(400, i18n.TKey(language, "app.common.err400"))) return } + if msisdn == "" { + c.JSON(400, resp.CodeMsg(400, "msisdn is required")) + return + } // 查询网元获取IP neInfo := s.neInfoService.FindByNeTypeAndNeID("UDM", neId) @@ -138,6 +142,7 @@ func (s *UDMVolteIMSController) Info(c *gin.Context) { if u.ID != "" { s.udmVolteIMSService.InsertByIMSI(imsi, neId) c.JSON(200, resp.OkData(u)) + return } c.JSON(200, resp.ErrMsg("No Volte IMS Data")) } @@ -153,8 +158,8 @@ func (s *UDMVolteIMSController) Info(c *gin.Context) { // @Param data body object true "Request Param" // @Success 200 {object} object "Response Results" // @Security TokenAuth -// @Summary UDM Authentication User Added -// @Description UDM Authentication User Added +// @Summary UDM VolteIMS User Added +// @Description UDM VolteIMS User Added If VoIP tag=0, then MSISDN and IMSI need to be the same. // @Router /neData/udm/volte-ims/{neId} [post] func (s *UDMVolteIMSController) Add(c *gin.Context) { language := reqctx.AcceptLanguage(c) @@ -219,8 +224,8 @@ func (s *UDMVolteIMSController) Add(c *gin.Context) { // @Param data body object true "Request Param" // @Success 200 {object} object "Response Results" // @Security TokenAuth -// @Summary UDM Authentication User Batch Add -// @Description UDM Authentication User Batch Add +// @Summary UDM VolteIMS User Batch Add +// @Description UDM VolteIMS User Batch Add // @Router /neData/udm/volte-ims/{neId}/{value} [post] func (s *UDMVolteIMSController) Adds(c *gin.Context) { language := reqctx.AcceptLanguage(c) @@ -361,8 +366,8 @@ func (s *UDMVolteIMSController) Remove(c *gin.Context) { // @Param num path number true "Number of releases, value includes start imsi" // @Success 200 {object} object "Response Results" // @Security TokenAuth -// @Summary UDM Authentication User Batch Deletion -// @Description UDM Authentication User Batch Deletion +// @Summary UDM VolteIMS User Batch Deletion +// @Description UDM VolteIMS User Batch Deletion // @Router /neData/udm/volte-ims/{neId}/{imsi}/{num} [delete] func (s *UDMVolteIMSController) Removes(c *gin.Context) { language := reqctx.AcceptLanguage(c) diff --git a/src/modules/network_data/service/udm_voip.go b/src/modules/network_data/service/udm_voip.go index 6991f484..10c95d92 100644 --- a/src/modules/network_data/service/udm_voip.go +++ b/src/modules/network_data/service/udm_voip.go @@ -74,13 +74,17 @@ func (r UDMVOIPUser) ResetData(neId string) int64 { } // ParseInfo 解析单个用户userName信息 data从命令MML得到的结果 -func (r UDMVOIPUser) ParseInfo(userName, neId string, data map[string]string) model.UDMVOIPUser { - u := r.udmVOIPRepository.SelectByUserNameAndNeID(userName, neId) - - // 用于更新 - u.NeId = neId - u.UserName = data["username"] - u.Password = data["password"] +func (r UDMVOIPUser) ParseInfo(neId string, data map[string]string) model.UDMVOIPUser { + u := model.UDMVOIPUser{ + NeId: neId, + UserName: data["username"], + Password: data["password"], + } + // 赋予ID + item := r.udmVOIPRepository.SelectByUserNameAndNeID(u.UserName, neId) + if item.ID != "" { + u.ID = item.ID + } return u } @@ -95,10 +99,10 @@ func (r UDMVOIPUser) Find(u model.UDMVOIPUser) []model.UDMVOIPUser { } // Insert 从数据中读取后删除username再存入数据库 -func (r UDMVOIPUser) Insert(neId string, u model.UDMVOIPUser) int64 { - uArr := r.dataByRedis(u.UserName, neId) +func (r UDMVOIPUser) Insert(neId string, username string) int64 { + uArr := r.dataByRedis(username, neId) if len(uArr) > 0 { - r.udmVOIPRepository.Delete(u.UserName, neId) + r.udmVOIPRepository.Delete(username, neId) return r.udmVOIPRepository.Inserts(uArr) } return 0 diff --git a/src/modules/network_data/service/udm_volte_ims.go b/src/modules/network_data/service/udm_volte_ims.go index 33b3b66c..dbdb6146 100644 --- a/src/modules/network_data/service/udm_volte_ims.go +++ b/src/modules/network_data/service/udm_volte_ims.go @@ -176,12 +176,12 @@ func (r UDMVolteIMSUser) Delete(imsi, neId string) int64 { } // LoadData 重新加载从imsi开始num的数据 -func (r UDMVolteIMSUser) LoadData(neId, imsi, num string) { - startIMSI, _ := strconv.ParseInt(imsi, 10, 64) +func (r UDMVolteIMSUser) LoadData(neId, imsiOrMsisdn, num string) { + startIMSIOrMsisdn, _ := strconv.ParseInt(imsiOrMsisdn, 10, 64) subNum, _ := strconv.ParseInt(num, 10, 64) var i int64 for i = 0; i < subNum; i++ { - keyIMSI := fmt.Sprintf("%015d", startIMSI+i) + keyIMSI := fmt.Sprintf("%d", startIMSIOrMsisdn+i) // 删除原数据 r.udmVolteIMSRepository.Delete(keyIMSI, neId) // 加载数据