diff --git a/features/udm_user/api_udm_user.go b/features/udm_user/api_udm_user.go index 6b058cf0..bbda1e66 100644 --- a/features/udm_user/api_udm_user.go +++ b/features/udm_user/api_udm_user.go @@ -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)) } diff --git a/features/udm_user/repo/repo_udm_auth_user.go b/features/udm_user/repo/repo_udm_auth_user.go index 4650f384..b540d085 100644 --- a/features/udm_user/repo/repo_udm_auth_user.go +++ b/features/udm_user/repo/repo_udm_auth_user.go @@ -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 } diff --git a/features/udm_user/repo/repo_udm_sub_user.go b/features/udm_user/repo/repo_udm_sub_user.go index 68f9e0e7..62ffb935 100644 --- a/features/udm_user/repo/repo_udm_sub_user.go +++ b/features/udm_user/repo/repo_udm_sub_user.go @@ -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 }