diff --git a/db/migrate/202505071325549_add_user_index_phone.rb b/db/migrate/202505071325549_add_user_index_phone.rb new file mode 100644 index 000000000..5ccae98b8 --- /dev/null +++ b/db/migrate/202505071325549_add_user_index_phone.rb @@ -0,0 +1,5 @@ +class AddUserIndexPhone < ActiveRecord::Migration[5.2] + def change + add_index :users, :phone + end +end diff --git a/lib/tasks/import_user.rake b/lib/tasks/import_user.rake index 45e64033f..ccead05f0 100644 --- a/lib/tasks/import_user.rake +++ b/lib/tasks/import_user.rake @@ -3,17 +3,24 @@ namespace :import_user do task done: :environment do doc = SimpleXlsxReader.open("#{Rails.root}/public/import_user.xlsx") data = doc.sheets.first.rows + num = 0 data.each_with_index do |row, index| next if index == 0 begin + puts "index=====#{index}, mail: #{row[0]} phone: #{row[1]}" user = User.find_by(mail: row[0]) - unless user.present? + user = User.find_by(phone: row[1]) unless user.present? + if user.present? + num += 1 + else username = generate_user_login('p') email = row[0] + email = "#{username}@example.org" if email.blank? phone = row[1] company_name = row[3] user_type = row[4].to_s =="0" ? 3 : 4 - password = "11111111" + created_on = row[5].to_s + password = "abc11111111" user = User.new(nickname: row[2], login: username, mail: email, password: password, type: 'User', phone: phone, company_name: company_name) interactor = Gitea::RegisterInteractor.call({ username: username, email: email, password: password }) gitea_user = interactor.result @@ -21,14 +28,17 @@ namespace :import_user do user.gitea_token = result['sha1'] user.gitea_uid = gitea_user[:body]['id'] user.user_type = user_type if company_name.present? && company_name.include?("大学") + user.created_on = created_on if created_on.present? + user.updated_on = created_on if created_on.present? user.save! UserExtension.create!(user_id: user.id) puts "import_user batch success: #{row[5]} username: #{row[0]}" end rescue Exception => e - puts "import_user batch error: #{row[5]} username: #{row[0]}" + puts "import_user batch error: #{row[5]} username: #{row[0]}, #{e.message}" end end + puts "import_user user.present?: #{num}" end # 生成邀请码 diff --git a/public/import_user.xlsx b/public/import_user.xlsx index 27986bef8..1fab6ff38 100644 Binary files a/public/import_user.xlsx and b/public/import_user.xlsx differ