From 4ed846a68babc75024caeb3fddbaef2b35794510 Mon Sep 17 00:00:00 2001 From: yystopf Date: Tue, 13 Sep 2022 08:54:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=94=B9=EF=BC=9A=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/forms/register/remote_form.rb | 7 ++++--- .../admins/new_import_user_from_excel.rb | 2 +- .../admins/import_user_from_excel_service.rb | 7 ++++--- public/导入用户模板.xlsx | Bin 9230 -> 9186 bytes 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/app/forms/register/remote_form.rb b/app/forms/register/remote_form.rb index 59a5fbc8..db06cb18 100644 --- a/app/forms/register/remote_form.rb +++ b/app/forms/register/remote_form.rb @@ -1,13 +1,14 @@ module Register class RemoteForm < Register::BaseForm # login 登陆方式,支持邮箱、登陆、手机号等 - attr_accessor :username, :email, :password, :platform + attr_accessor :username, :phone, :email, :password, :platform - validates :username, :email, :password, presence: true + validates :username, :phone, :email, :password, presence: true validate :check! def check! - Rails.logger.info "Register::RemoteForm params: username: #{username}; email: #{email}; password: #{password}; platform: #{platform}" + Rails.logger.info "Register::RemoteForm params: username: #{username}, phone: #{phone}; email: #{email}; password: #{password}; platform: #{platform}" + check_phone(phone) check_login(username) check_mail(email) check_password(password) diff --git a/app/imports/admins/new_import_user_from_excel.rb b/app/imports/admins/new_import_user_from_excel.rb index b9a452cf..d14b203c 100644 --- a/app/imports/admins/new_import_user_from_excel.rb +++ b/app/imports/admins/new_import_user_from_excel.rb @@ -1,5 +1,5 @@ class Admins::NewImportUserFromExcel < BaseImportXlsx - UserData = Struct.new(:login, :email, :password, :nickname) + UserData = Struct.new(:login, :phone, :password, :nickname) def read_each(&block) sheet.each_row_streaming(pad_cells: true, offset: 1) do |row| diff --git a/app/services/admins/import_user_from_excel_service.rb b/app/services/admins/import_user_from_excel_service.rb index e9754d9d..93584abc 100644 --- a/app/services/admins/import_user_from_excel_service.rb +++ b/app/services/admins/import_user_from_excel_service.rb @@ -41,12 +41,13 @@ class Admins::ImportUserFromExcelService < ApplicationService def create_user(data) ActiveRecord::Base.transaction do username = data.login&.gsub(/\s+/, "") - email = data.email&.gsub(/\s+/, "") + phone = data.phone&.gsub(/\s+/, "") password = data.password nickname = data.nickname&.gsub(/\s+/, "") + email = "#{username}@example.org" raise Error, "无法使用以下关键词:#{username},请重新命名" if ReversedKeyword.check_exists?(data.login) - Register::RemoteForm.new({username: username, email: email, password: password, platform: 'forge'}).validate! - user = User.new(admin: false, login: username, mail: email, nickname: nickname, platform: 'forge' , type: "User") + Register::RemoteForm.new({username: username, phone: phone, email: email, password: password, platform: 'forge'}).validate! + user = User.new(admin: false, login: username, phone: phone, mail: email, nickname: nickname, platform: 'forge' , type: "User") user.password = password user.activate raise Error, user.errors.full_messages.join(",") unless user.valid? diff --git a/public/导入用户模板.xlsx b/public/导入用户模板.xlsx index c538bed63aab06831ab7286e6a1ffe52a0337864..fb2342897fb00f08dbc7b76694e05c1779ce2321 100644 GIT binary patch delta 4373 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 delta 4410 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