From d11ac9d23ab877b53d9f2473a16ea660e75a7a5c Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Thu, 17 Oct 2024 11:39:38 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20UDM=E7=94=A8=E6=88=B7=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=8C=89=E6=9F=A5=E8=AF=A2=E6=9D=A1=E4=BB=B6=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../network_data/controller/udm_auth.go | 55 +++++++++++-------- .../network_data/controller/udm_sub.go | 55 +++++++++++-------- 2 files changed, 65 insertions(+), 45 deletions(-) diff --git a/src/modules/network_data/controller/udm_auth.go b/src/modules/network_data/controller/udm_auth.go index e4dd1fe1..8306a0af 100644 --- a/src/modules/network_data/controller/udm_auth.go +++ b/src/modules/network_data/controller/udm_auth.go @@ -349,32 +349,45 @@ func (s *UDMAuthController) Removes(c *gin.Context) { // POST /export func (s *UDMAuthController) Export(c *gin.Context) { language := ctx.AcceptLanguage(c) - var body struct { - NeId string `json:"neId" binding:"required"` - Type string `json:"type" binding:"required"` - } - err := c.ShouldBindBodyWith(&body, binding.JSON) - if err != nil { + // 查询结果,根据查询条件结果,单页最大值限制 + querys := ctx.BodyJSONMap(c) + neId := querys["neId"].(string) + fileType := querys["type"].(string) + if neId == "" || fileType == "" { c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400"))) return } - - if !(body.Type == "csv" || body.Type == "txt") { - c.JSON(200, result.ErrMsg(i18n.TKey(language, "ne.udm.errExportType"))) + if !(fileType == "csv" || fileType == "txt") { + c.JSON(200, result.ErrMsg(i18n.TKey(language, "ne.udm.errImportUserSubFileFormat"))) + return + } + + querys["pageNum"] = 1 + querys["pageSize"] = 10000 + data := s.udmAuthService.SelectPage(querys) + if parse.Number(data["total"]) == 0 { + // 导出数据记录为空 + c.JSON(200, result.ErrMsg(i18n.TKey(language, "app.common.exportEmpty"))) + return + } + rows := data["rows"].([]model.UDMAuthUser) + + // rows := s.udmAuthService.SelectList(model.UDMAuthUser{NeId: neId}) + if len(rows) <= 0 { + // 导出数据记录为空 + c.JSON(200, result.ErrMsg(i18n.TKey(language, "app.common.exportEmpty"))) return } - neId := "" - list := s.udmAuthService.SelectList(model.UDMAuthUser{NeId: neId}) // 文件名 - fileName := fmt.Sprintf("udm_auth_user_export_%s_%d.%s", neId, time.Now().UnixMilli(), body.Type) + fileName := fmt.Sprintf("udm_auth_user_export_%s_%d.%s", neId, time.Now().UnixMilli(), fileType) filePath := fmt.Sprintf("%s/%s", file.ParseUploadFileDir(uploadsubpath.EXPORT), fileName) - if body.Type == "csv" { + if fileType == "csv" { // 转换数据 data := [][]string{} data = append(data, []string{"imsi", "ki", "algo", "amf", "opc"}) - for _, v := range list { + for _, v := range rows { opc := v.Opc if opc == "-" { opc = "" @@ -389,10 +402,10 @@ func (s *UDMAuthController) Export(c *gin.Context) { } } - if body.Type == "txt" { + if fileType == "txt" { // 转换数据 data := [][]string{} - for _, v := range list { + for _, v := range rows { opc := v.Opc if opc == "-" { opc = "" @@ -400,8 +413,8 @@ func (s *UDMAuthController) Export(c *gin.Context) { data = append(data, []string{v.IMSI, v.Ki, v.AlgoIndex, v.Amf, opc}) } // 输出到文件 - err = file.WriterFileTXT(data, ",", filePath) - if err != nil { + + if err := file.WriterFileTXT(data, ",", filePath); err != nil { c.JSON(200, result.ErrMsg(err.Error())) return } @@ -497,13 +510,11 @@ func (s *UDMAuthController) Import(c *gin.Context) { if strings.Contains(resultMsg, "ok") { if strings.HasSuffix(body.UploadPath, ".csv") { data := file.ReadFileCSV(localFilePath) - neId := "" - go s.udmAuthService.InsertData(neId, "csv", data) + go s.udmAuthService.InsertData(neInfo.NeId, "csv", data) } if strings.HasSuffix(body.UploadPath, ".txt") { data := file.ReadFileTXT(",", localFilePath) - neId := "" - go s.udmAuthService.InsertData(neId, "txt", data) + go s.udmAuthService.InsertData(neInfo.NeId, "txt", data) } } c.JSON(200, result.OkMsg(resultMsg)) diff --git a/src/modules/network_data/controller/udm_sub.go b/src/modules/network_data/controller/udm_sub.go index 10718b2d..aec3100e 100644 --- a/src/modules/network_data/controller/udm_sub.go +++ b/src/modules/network_data/controller/udm_sub.go @@ -354,53 +354,64 @@ func (s *UDMSubController) Removes(c *gin.Context) { // POST /export func (s *UDMSubController) Export(c *gin.Context) { language := ctx.AcceptLanguage(c) - var body struct { - NeId string `json:"neId" binding:"required"` - Type string `json:"type" binding:"required"` - } - err := c.ShouldBindBodyWith(&body, binding.JSON) - if err != nil { + // 查询结果,根据查询条件结果,单页最大值限制 + querys := ctx.BodyJSONMap(c) + neId := querys["neId"].(string) + fileType := querys["type"].(string) + if neId == "" || fileType == "" { c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400"))) return } - - if !(body.Type == "csv" || body.Type == "txt") { + if !(fileType == "csv" || fileType == "txt") { c.JSON(200, result.ErrMsg(i18n.TKey(language, "ne.udm.errImportUserSubFileFormat"))) return } - neId := "" - list := s.udmSubService.SelectList(model.UDMSubUser{NeId: neId}) + querys["pageNum"] = 1 + querys["pageSize"] = 10000 + data := s.udmSubService.SelectPage(querys) + if parse.Number(data["total"]) == 0 { + // 导出数据记录为空 + c.JSON(200, result.ErrMsg(i18n.TKey(language, "app.common.exportEmpty"))) + return + } + rows := data["rows"].([]model.UDMSubUser) + + // rows := s.udmSubService.SelectList(model.UDMSubUser{NeId: neId}) + if len(rows) <= 0 { + // 导出数据记录为空 + c.JSON(200, result.ErrMsg(i18n.TKey(language, "app.common.exportEmpty"))) + return + } + // 文件名 - fileName := fmt.Sprintf("udm_sub_user_export_%s_%d.%s", neId, time.Now().UnixMilli(), body.Type) + fileName := fmt.Sprintf("udm_sub_user_export_%s_%d.%s", neId, time.Now().UnixMilli(), fileType) filePath := fmt.Sprintf("%s/%s", file.ParseUploadFileDir(uploadsubpath.EXPORT), fileName) - if body.Type == "csv" { + if fileType == "csv" { // 转换数据 data := [][]string{} data = append(data, []string{"IMSI", "MSISDN", "UeAmbrTpl", "NssaiTpl", "AreaForbiddenTpl", "ServiceAreaRestrictionTpl", "RatRestrictions", "CnTypeRestrictions", "SmfSel", "SmData", "EPSDat"}) - for _, v := range list { + for _, v := range rows { epsDat := fmt.Sprintf("%s,%s,%s,%s,%s,%s,%s,%s", v.EpsFlag, v.EpsOdb, v.HplmnOdb, v.Ard, v.Epstpl, v.ContextId, v.ApnContext, v.StaticIp) data = append(data, []string{v.IMSI, v.MSISDN, v.UeAmbrTpl, v.NssaiTpl, v.AreaForbiddenTpl, v.ServiceAreaRestrictionTpl, v.RatRestrictions, v.CnTypeRestrictions, v.SmfSel, v.SmData, epsDat}) } // 输出到文件 - err = file.WriterFileCSV(data, filePath) - if err != nil { + if err := file.WriterFileCSV(data, filePath); err != nil { c.JSON(200, result.ErrMsg(err.Error())) return } } - if body.Type == "txt" { + if fileType == "txt" { // 转换数据 data := [][]string{} - for _, v := range list { + for _, v := range rows { epsDat := fmt.Sprintf("%s,%s,%s,%s,%s,%s,%s,%s", v.EpsFlag, v.EpsOdb, v.HplmnOdb, v.Ard, v.Epstpl, v.ContextId, v.ApnContext, v.StaticIp) data = append(data, []string{v.IMSI, v.MSISDN, v.UeAmbrTpl, v.NssaiTpl, v.AreaForbiddenTpl, v.ServiceAreaRestrictionTpl, v.RatRestrictions, v.CnTypeRestrictions, v.SmfSel, v.SmData, epsDat}) } // 输出到文件 - err = file.WriterFileTXT(data, ",", filePath) - if err != nil { + if err := file.WriterFileTXT(data, ",", filePath); err != nil { c.JSON(200, result.ErrMsg(err.Error())) return } @@ -480,13 +491,11 @@ func (s *UDMSubController) Import(c *gin.Context) { if strings.Contains(data, "ok") { if strings.HasSuffix(body.UploadPath, ".csv") { data := file.ReadFileCSV(localFilePath) - neId := "" - go s.udmSubService.InsertData(neId, "csv", data) + go s.udmSubService.InsertData(neInfo.NeId, "csv", data) } if strings.HasSuffix(body.UploadPath, ".txt") { data := file.ReadFileTXT(",", localFilePath) - neId := "" - go s.udmSubService.InsertData(neId, "txt", data) + go s.udmSubService.InsertData(neInfo.NeId, "txt", data) } } c.JSON(200, result.OkMsg(data))