ref: UDM重载数据批量更新

This commit is contained in:
TsMask
2023-09-23 10:57:48 +08:00
parent 6147809e6e
commit f5b4819797
3 changed files with 55 additions and 14 deletions

View File

@@ -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))
}

View File

@@ -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
}

View File

@@ -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
}