ref: UDM重载数据批量更新
This commit is contained in:
@@ -207,7 +207,7 @@ type UdmUserApi struct {
|
||||
// GET /auths
|
||||
func (s *UdmUserApi) UdmAuthUserList(w http.ResponseWriter, r *http.Request) {
|
||||
querys := ctx.QueryMap(r)
|
||||
querys["neId"] = "-"
|
||||
querys["neId"] = ""
|
||||
data := s.authUser.Page(querys)
|
||||
ctx.JSON(w, 200, result.Ok(data))
|
||||
}
|
||||
@@ -607,7 +607,7 @@ func (s *UdmUserApi) UdmAuthUserImport(w http.ResponseWriter, r *http.Request) {
|
||||
// GET /subs
|
||||
func (s *UdmUserApi) UdmSubUserList(w http.ResponseWriter, r *http.Request) {
|
||||
querys := ctx.QueryMap(r)
|
||||
querys["neId"] = "-"
|
||||
querys["neId"] = ""
|
||||
data := s.subUser.Page(querys)
|
||||
ctx.JSON(w, 200, result.Ok(data))
|
||||
}
|
||||
|
||||
@@ -160,20 +160,44 @@ func (r *RepoUdmAuthUser) ClearAndInsert(neID string, authArr []model.UdmAuthUse
|
||||
var num int64 = 0
|
||||
|
||||
// 清空指定ne_id
|
||||
_, err := datasource.ExecDB("", "DELETE FROM u_auth_user WHERE ne_id = ?", []any{neID})
|
||||
_, err := datasource.ExecDB("", "TRUNCATE TABLE u_auth_user", nil)
|
||||
// _, err := datasource.ExecDB("", "DELETE FROM u_auth_user WHERE ne_id = ?", []any{neID})
|
||||
if err != nil {
|
||||
log.Errorf("TRUNCATE err => %v", err)
|
||||
return num
|
||||
}
|
||||
|
||||
for _, u := range authArr {
|
||||
u.NeID = neID
|
||||
results, err := datasource.DefaultDB().Table("u_auth_user").Insert(u)
|
||||
n := len(authArr)
|
||||
batchSize := 5000
|
||||
for i := 0; i < n; i += batchSize {
|
||||
end := i + batchSize
|
||||
if end > n {
|
||||
end = n
|
||||
}
|
||||
batch := authArr[i:end]
|
||||
|
||||
// 调用 InsertMulti 函数将批量数据插入数据库
|
||||
results, err := datasource.DefaultDB().Table("u_auth_user").InsertMulti(batch)
|
||||
if err != nil {
|
||||
return num
|
||||
continue
|
||||
}
|
||||
num += results
|
||||
}
|
||||
|
||||
// // 清空指定ne_id
|
||||
// _, err := datasource.ExecDB("", "DELETE FROM u_auth_user WHERE ne_id = ?", []any{neID})
|
||||
// if err != nil {
|
||||
// log.Errorf("TRUNCATE err => %v", err)
|
||||
// return num
|
||||
// }
|
||||
|
||||
// for _, u := range authArr {
|
||||
// u.NeID = neID
|
||||
// results, err := datasource.DefaultDB().Table("u_auth_user").Insert(u)
|
||||
// if err != nil {
|
||||
// return num
|
||||
// }
|
||||
// num += results
|
||||
// }
|
||||
return num
|
||||
}
|
||||
|
||||
|
||||
@@ -178,20 +178,37 @@ func (r *RepoUdmSubUser) ClearAndInsert(neID string, subArr []model.UdmSubUser)
|
||||
var num int64 = 0
|
||||
|
||||
// 清空指定ne_id
|
||||
// _, err := datasource.ExecDB("", "TRUNCATE TABLE u_sub_user", nil)
|
||||
_, err := datasource.ExecDB("", "DELETE FROM u_sub_user WHERE ne_id = ?", []any{neID})
|
||||
_, err := datasource.ExecDB("", "TRUNCATE TABLE u_sub_user", nil)
|
||||
// _, err := datasource.ExecDB("", "DELETE FROM u_sub_user WHERE ne_id = ?", []any{neID})
|
||||
if err != nil {
|
||||
log.Errorf("TRUNCATE err => %v", err)
|
||||
}
|
||||
|
||||
for _, u := range subArr {
|
||||
u.NeID = neID
|
||||
results, err := datasource.DefaultDB().Table("u_sub_user").Insert(u)
|
||||
n := len(subArr)
|
||||
batchSize := 5000
|
||||
for i := 0; i < n; i += batchSize {
|
||||
end := i + batchSize
|
||||
if end > n {
|
||||
end = n
|
||||
}
|
||||
batch := subArr[i:end]
|
||||
|
||||
// 调用 InsertMulti 函数将批量数据插入数据库
|
||||
results, err := datasource.DefaultDB().Table("u_sub_user").InsertMulti(batch)
|
||||
if err != nil {
|
||||
return num
|
||||
continue
|
||||
}
|
||||
num += results
|
||||
}
|
||||
|
||||
// for _, u := range subArr {
|
||||
// u.NeID = neID
|
||||
// results, err := datasource.DefaultDB().Table("u_sub_user").Insert(u)
|
||||
// if err != nil {
|
||||
// return num
|
||||
// }
|
||||
// num += results
|
||||
// }
|
||||
return num
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user