diff --git a/features/udm_user/api_udm_user.go b/features/udm_user/api_udm_user.go index 2bdda4d4..e31a5eea 100644 --- a/features/udm_user/api_udm_user.go +++ b/features/udm_user/api_udm_user.go @@ -520,8 +520,8 @@ func (s *UdmUserApi) UdmAuthUserImport(w http.ResponseWriter, r *http.Request) { ctx.JSON(w, 200, result.ErrMsg(err.Error())) return } - if !strings.HasSuffix(fileHeader.Filename, ".csv") { - ctx.JSON(w, 200, result.ErrMsg("请上传CSV格式文件,内容字段imsi, ki, algo, amf, opc")) + if !(strings.HasSuffix(fileHeader.Filename, ".csv") || strings.HasSuffix(fileHeader.Filename, ".txt")) { + ctx.JSON(w, 200, result.ErrMsg("请上传.csv、.txt格式文件,内容字段imsi,ki,algo,amf,opc")) return } @@ -557,11 +557,19 @@ func (s *UdmUserApi) UdmAuthUserImport(w http.ResponseWriter, r *http.Request) { ctx.JSON(w, 200, result.ErrMsg(err.Error())) return } + // 命令ok时 if strings.Contains(data, "ok") { - data := file.ReadCSVFile(filePath) - neId = "-" - s.authUser.InsertCSV(neId, data) + if strings.HasSuffix(fileHeader.Filename, ".csv") { + data := file.ReadCSVFile(filePath) + neId = "-" + s.authUser.InsertCSV(neId, data) + } + if strings.HasSuffix(fileHeader.Filename, ".txt") { + data := file.ReadTxtFile(filePath) + neId = "-" + s.authUser.InsertTxt(neId, data) + } } ctx.JSON(w, 200, result.OkData(data)) } @@ -1048,8 +1056,8 @@ func (s *UdmUserApi) UdmSubUserImport(w http.ResponseWriter, r *http.Request) { ctx.JSON(w, 200, result.ErrMsg(err.Error())) return } - if !strings.HasSuffix(fileHeader.Filename, ".csv") { - ctx.JSON(w, 200, result.ErrMsg("请上传CSV格式文件,内容字段imsi, msisdn, ambr, nssai, arfb, sar,rat, cn, smf_sel, sm_dat,eps_dat")) + if !(strings.HasSuffix(fileHeader.Filename, ".csv") || strings.HasSuffix(fileHeader.Filename, ".txt")) { + ctx.JSON(w, 200, result.ErrMsg("请上传.csv、.txt格式文件,内容字段imsi,msisdn,ambr,nssai,arfb,sar,rat,cn,smf_sel,sm_dat,eps_dat")) return } @@ -1087,9 +1095,16 @@ func (s *UdmUserApi) UdmSubUserImport(w http.ResponseWriter, r *http.Request) { } // 命令ok时 if strings.Contains(data, "ok") { - data := file.ReadCSVFile(filePath) - neId = "-" - s.subUser.InsertCSV(neId, data) + if strings.HasSuffix(fileHeader.Filename, ".csv") { + data := file.ReadCSVFile(filePath) + neId = "-" + s.subUser.InsertCSV(neId, data) + } + if strings.HasSuffix(fileHeader.Filename, ".txt") { + data := file.ReadTxtFile(filePath) + neId = "-" + s.subUser.InsertTxt(neId, data) + } } ctx.JSON(w, 200, result.OkData(data)) } diff --git a/features/udm_user/repo/repo_udm_auth_user.go b/features/udm_user/repo/repo_udm_auth_user.go index e20f373a..6b836b8c 100644 --- a/features/udm_user/repo/repo_udm_auth_user.go +++ b/features/udm_user/repo/repo_udm_auth_user.go @@ -195,6 +195,7 @@ func (r *RepoUdmAuthUser) Insert(neID string, authUser model.UdmAuthUser) int64 func (r *RepoUdmAuthUser) Inserts(neID string, authUser model.UdmAuthUser, num string) int64 { var insertNum int64 + imsiVlen := len(authUser.Imsi) imsiV, err := strconv.Atoi(authUser.Imsi) if err != nil { return 0 @@ -208,7 +209,11 @@ func (r *RepoUdmAuthUser) Inserts(neID string, authUser model.UdmAuthUser, num s authUser.NeID = neID authUser.Status = "1" for i := 0; i < numV; i++ { - authUser.Imsi = fmt.Sprint(imsiV + i) + imsi := fmt.Sprint(imsiV + i) + if len(imsi) < imsiVlen { + imsi = fmt.Sprintf("%0*s", imsiVlen, imsi) + } + authUser.Imsi = imsi results, err := datasource.DefaultDB().Table("u_auth_user").Insert(authUser) if err == nil { insertNum += results diff --git a/features/udm_user/repo/repo_udm_sub_user.go b/features/udm_user/repo/repo_udm_sub_user.go index 53e13585..1af3902d 100644 --- a/features/udm_user/repo/repo_udm_sub_user.go +++ b/features/udm_user/repo/repo_udm_sub_user.go @@ -210,10 +210,12 @@ func (r *RepoUdmSubUser) Insert(neID string, subUser model.UdmSubUser) int64 { func (r *RepoUdmSubUser) Inserts(neID string, subUser model.UdmSubUser, num string) int64 { var insertNum int64 + imsiVlen := len(subUser.Imsi) imsiV, err := strconv.Atoi(subUser.Imsi) if err != nil { return 0 } + msisdnVlen := len(subUser.Msisdn) msisdnV, err := strconv.Atoi(subUser.Msisdn) if err != nil { return 0 @@ -226,8 +228,18 @@ func (r *RepoUdmSubUser) Inserts(neID string, subUser model.UdmSubUser, num stri subUser.NeID = neID for i := 0; i < numV; i++ { - subUser.Imsi = fmt.Sprint(imsiV + i) - subUser.Msisdn = fmt.Sprint(msisdnV + i) + msisdn := fmt.Sprint(msisdnV + i) + if len(msisdn) < msisdnVlen { + msisdn = fmt.Sprintf("%0*s", msisdnVlen, msisdn) + } + subUser.Msisdn = msisdn + + imsi := fmt.Sprint(imsiV + i) + if len(imsi) < imsiVlen { + imsi = fmt.Sprintf("%0*s", imsiVlen, imsi) + } + subUser.Imsi = imsi + // IP会自动递增 if subUser.StaticIp != "" { parts := strings.Split(subUser.StaticIp, ".") diff --git a/features/udm_user/service/service_udm_auth_user.go b/features/udm_user/service/service_udm_auth_user.go index c6651ba8..c8c7a4d0 100644 --- a/features/udm_user/service/service_udm_auth_user.go +++ b/features/udm_user/service/service_udm_auth_user.go @@ -47,7 +47,7 @@ func (r *ServiceUdmAuthUser) Inserts(neID string, authUser model.UdmAuthUser, nu return r.repoAuthUser.Inserts(neID, authUser, num) } -// Insert UDM鉴权用户-批量添加 +// InsertCSV UDM鉴权用户-批量添加 func (r *ServiceUdmAuthUser) InsertCSV(neID string, data []map[string]string) int64 { var num int64 for _, v := range data { @@ -74,6 +74,28 @@ func (r *ServiceUdmAuthUser) InsertCSV(neID string, data []map[string]string) in return num } +// InsertTxt UDM鉴权用户-批量添加 +func (r *ServiceUdmAuthUser) InsertTxt(neID string, data [][]string) int64 { + var num int64 + for _, v := range data { + if len(v) < 4 { + continue + } + var authUser model.UdmAuthUser + authUser.NeID = neID + authUser.Status = "1" + authUser.Imsi = v[0] + authUser.Ki = v[1] + authUser.AlgoIndex = v[2] + authUser.Amf = v[3] + if len(v) == 5 { + authUser.Opc = v[4] + } + num += r.repoAuthUser.Insert(neID, authUser) + } + return num +} + // Insert UDM鉴权用户-修改更新 func (r *ServiceUdmAuthUser) Update(neID string, authUser model.UdmAuthUser) int64 { return r.repoAuthUser.Update(neID, authUser) diff --git a/features/udm_user/service/service_udm_sub_user.go b/features/udm_user/service/service_udm_sub_user.go index f265eacf..5cc29d57 100644 --- a/features/udm_user/service/service_udm_sub_user.go +++ b/features/udm_user/service/service_udm_sub_user.go @@ -47,7 +47,7 @@ func (r *ServiceUdmSubUser) Inserts(neID string, subUser model.UdmSubUser, num s return r.repoSunUser.Inserts(neID, subUser, num) } -// Insert UDM签约用户-批量添加 +// InsertCSV UDM签约用户-批量添加 func (r *ServiceUdmSubUser) InsertCSV(neID string, data []map[string]string) int64 { var num int64 for _, v := range data { @@ -91,6 +91,33 @@ func (r *ServiceUdmSubUser) InsertCSV(neID string, data []map[string]string) int return num } +// InsertTxt UDM签约用户-批量添加 +func (r *ServiceUdmSubUser) InsertTxt(neID string, data [][]string) int64 { + var num int64 + for _, v := range data { + if len(v) < 10 { + continue + } + var subUser model.UdmSubUser + subUser.NeID = neID + subUser.Imsi = v[0] + subUser.Msisdn = v[1] + subUser.Ambr = v[2] + subUser.Nssai = v[3] + subUser.Arfb = v[4] + subUser.Sar = v[5] + subUser.Rat = v[6] + subUser.Cn = v[7] + subUser.SmfSel = v[8] + subUser.SmData = v[9] + if len(v) == 11 { + subUser.EpsDat = v[10] + } + num += r.repoSunUser.Insert(neID, subUser) + } + return num +} + // Insert UDM签约用户-批量添加4G用户 func (r *ServiceUdmSubUser) Insert4G(neID string, subUser model.UdmSubUser) int64 { return r.repoSunUser.Insert4G(neID, subUser)