From 665df16c254f82dafd48ad8e8ec7134da74f39ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cxxq250=E2=80=9D?= <“xxq250@qq.com”> Date: Wed, 21 Sep 2022 17:50:05 +0800 Subject: [PATCH] =?UTF-8?q?rake=E6=9B=B4=E6=96=B0=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E9=82=AE=E7=AE=B1=E5=92=8C=E6=89=8B=E6=9C=BA=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/tasks/update_educoder_user.rake | 45 +++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 lib/tasks/update_educoder_user.rake diff --git a/lib/tasks/update_educoder_user.rake b/lib/tasks/update_educoder_user.rake new file mode 100644 index 000000000..2551b967f --- /dev/null +++ b/lib/tasks/update_educoder_user.rake @@ -0,0 +1,45 @@ +namespace :update_educoder_user do + desc "update educoder user mail phone" + task done: :environment do + data = User.where("mail like '%***%' or phone like '%***%'") + data = User.where(login: ENV['login']) if ENV['login'].present? + data.each do |user| + begin + req_params = { "login" => "#{user.login}", "private_token" => "hriEn3UwXfJs3PmyXnqQ" } + api_url = "https://data.educoder.net" + client = Faraday.new(url: api_url) + response = client.public_send("get", "/api/sources/get_user_info_by_login", req_params) + result = JSON.parse(response.body) + #查询 + next if result["status"].to_s != "0" + + # login 邮箱 手机号 姓名 学校/单位 + user_info = result["data"] + Rails.logger.info("user_info====== #{user_info}") + login = user_info["login"] + email = user_info["mail"] + phone = user_info["phone"] + real_name = user_info["username"] + department_name = user_info["school"] + password = "12345678" + + user.update_columns(mail: "#{email}", phone: "#{phone}") + + sync_params = { + email: email, + login_name: user.login, + source_id: 0 + } + interactor = Gitea::User::UpdateInteractor.call(user.login, sync_params) + if interactor.success? + puts "success user: #{user.id} username:#{user.login}" + else + puts "error user: #{user.id} username:#{user.login}, error:#{interactor.error.to_s}" + end + + rescue Exception => e + puts "error user: #{user.id} username:#{user.login}, error:#{e}" + end + end + end +end \ No newline at end of file