pref: 优化批量导入数据库

This commit is contained in:
TsMask
2023-09-23 14:35:12 +08:00
parent 56944ad13d
commit b35ac3e50b
5 changed files with 132 additions and 113 deletions

View File

@@ -1,6 +1,9 @@
package service
import (
"fmt"
"strconv"
"ems.agt/features/udm_user/model"
"ems.agt/features/udm_user/repo"
)
@@ -40,17 +43,43 @@ func (r *ServiceUdmAuthUser) List(authUser model.UdmAuthUser) []model.UdmAuthUse
// Insert UDM鉴权用户-新增单个
// imsi长度15ki长度32opc长度0或者32
func (r *ServiceUdmAuthUser) Insert(neID string, authUser model.UdmAuthUser) int64 {
return r.repoAuthUser.Insert(neID, authUser)
authUser.NeID = neID
authUser.Status = "1"
return r.repoAuthUser.Insert(authUser)
}
// Insert UDM鉴权用户-批量添加
func (r *ServiceUdmAuthUser) Inserts(neID string, authUser model.UdmAuthUser, num string) int64 {
return r.repoAuthUser.Inserts(neID, authUser, num)
var arr []model.UdmAuthUser
imsiVlen := len(authUser.Imsi)
imsiV, err := strconv.Atoi(authUser.Imsi)
if err != nil {
return 0
}
numV, err := strconv.Atoi(num)
if err != nil {
return 0
}
authUser.NeID = neID
authUser.Status = "1"
for i := 0; i < numV; i++ {
imsi := fmt.Sprint(imsiV + i)
if len(imsi) < imsiVlen {
imsi = fmt.Sprintf("%0*s", imsiVlen, imsi)
}
authUser.Imsi = imsi
arr = append(arr, authUser)
}
return r.repoAuthUser.Inserts(arr)
}
// InsertCSV UDM鉴权用户-批量添加
func (r *ServiceUdmAuthUser) InsertCSV(neID string, data []map[string]string) int64 {
var num int64
var arr []model.UdmAuthUser
for _, v := range data {
var authUser model.UdmAuthUser
authUser.NeID = neID
@@ -70,14 +99,14 @@ func (r *ServiceUdmAuthUser) InsertCSV(neID string, data []map[string]string) in
if s, ok := v["opc"]; ok {
authUser.Opc = s
}
num += r.repoAuthUser.Insert(neID, authUser)
arr = append(arr, authUser)
}
return num
return r.repoAuthUser.Inserts(arr)
}
// InsertTxt UDM鉴权用户-批量添加
func (r *ServiceUdmAuthUser) InsertTxt(neID string, data [][]string) int64 {
var num int64
var arr []model.UdmAuthUser
for _, v := range data {
if len(v) < 4 {
continue
@@ -92,9 +121,10 @@ func (r *ServiceUdmAuthUser) InsertTxt(neID string, data [][]string) int64 {
if len(v) == 5 {
authUser.Opc = v[4]
}
num += r.repoAuthUser.Insert(neID, authUser)
arr = append(arr, authUser)
}
return num
return r.repoAuthUser.Inserts(arr)
}
// Insert UDM鉴权用户-修改更新