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