From 8aefcad510c5ae45ebc0329ab1ff736dc4833543 Mon Sep 17 00:00:00 2001 From: "vilet.yy" Date: Thu, 4 Mar 2021 15:55:26 +0800 Subject: [PATCH] [ADD]create project member rake --- lib/tasks/create_phenglei_project_member.rake | 28 ++++++++++++++++++ public/phenglei_user.xlsx | Bin 0 -> 19010 bytes 2 files changed, 28 insertions(+) create mode 100644 lib/tasks/create_phenglei_project_member.rake create mode 100644 public/phenglei_user.xlsx diff --git a/lib/tasks/create_phenglei_project_member.rake b/lib/tasks/create_phenglei_project_member.rake new file mode 100644 index 00000000..89399b01 --- /dev/null +++ b/lib/tasks/create_phenglei_project_member.rake @@ -0,0 +1,28 @@ +desc "Create Phenglei project members from excel" +namespace :create_phenglei_project_member do + task init: :environment do + project = Project.find_by_id(477) + doc = SimpleXlsxReader.open("#{Rails.root}/public/phenglei_user.xlsx") + data = doc.sheets.first.rows + err_rows = [] + success_count = 0 + data.each_with_index do |i, index| + next if index == 0 || i[1].nil? + begin + user = User.find_by(phone: i[1]) + next unless user.present? + unless project.member?(user.id) + Projects::AddMemberInteractor.call(project.owner, project, user, "read", true) + success_count += 1 + puts "========成功添加手机号为#{i[1]}的用户为项目#{project.id}的协作者=======" + end + puts "========#{i[0]}数据处理完毕=======" + rescue => e + puts e + err_rows += i + end + end + puts success_count + puts err_rows + end +end \ No newline at end of file diff --git a/public/phenglei_user.xlsx b/public/phenglei_user.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..df47986fac37935a52620c24120bb833a8b708de GIT binary patch literal 19010 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 literal 0 HcmV?d00001