fix: UDM导入txt支持
This commit is contained in:
@@ -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))
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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, ".")
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user