From 09e674f0c1965dfec506f26cf32cd6d90ab59cf6 Mon Sep 17 00:00:00 2001 From: xxqfamous Date: Tue, 30 May 2023 11:12:21 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AB=9E=E8=B5=9B=E7=94=A8=E6=88=B7=E5=85=B3?= =?UTF-8?q?=E8=81=94=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/accounts_controller.rb | 1 + app/controllers/users_controller.rb | 5 +++-- app/views/users/get_user_info.json.jbuilder | 2 +- db/migrate/20230530141227_add_user_action_index.rb | 7 +++++++ 4 files changed, 12 insertions(+), 3 deletions(-) create mode 100644 db/migrate/20230530141227_add_user_action_index.rb diff --git a/app/controllers/accounts_controller.rb b/app/controllers/accounts_controller.rb index 0b713bdb3..4cec1be47 100644 --- a/app/controllers/accounts_controller.rb +++ b/app/controllers/accounts_controller.rb @@ -13,6 +13,7 @@ class AccountsController < ApplicationController ActiveRecord::Base.transaction do result = auto_update(current_user, simple_update_params) if result[:message].blank? + UserAction.create(:action_id => current_user.id, :action_type => "sync_educoder_user", :user_id => current_user.id, :ip => request.remote_ip) if params[:platform] == "educoder" render_ok else render_error(result[:message]) diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index c4c745a7d..9472ad6e5 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -388,10 +388,11 @@ class UsersController < ApplicationController password = "12345678" # 没有用户时,新建用户并登录 - user = User.where("login = ? or phone = ? or mail = ? ", "#{login}", phone, email).first + user = phone.present? ? User.find_by(phone: phone) : nil + user = User.where("login = ? or phone = ? or mail = ? ", "#{login}", phone, email).first if user.nil? if user.present? # 手机号先记录,后续用 - user.update_column(:phone, "#{phone}") if phone.present? + user.update_column(:phone, "#{phone}") if phone.present? && user.phone.blank? else ActiveRecord::Base.transaction do email = "#{login}@gitlink.org.cn" if email.blank? diff --git a/app/views/users/get_user_info.json.jbuilder b/app/views/users/get_user_info.json.jbuilder index a1d689f44..f659190d0 100644 --- a/app/views/users/get_user_info.json.jbuilder +++ b/app/views/users/get_user_info.json.jbuilder @@ -26,6 +26,6 @@ json.super_description @user.super_description json.(@user, :show_email, :show_department, :show_location, :show_super_description) json.message_unread_total @message_unread_total json.has_trace_user @user.trace_user.present? -json.is_new @user.login.present? && params[:login].to_s.include?("#{@user.login}") +json.is_new params[:login].present? && (UserAction.where(action_type: "sync_educoder_user", user_id: @user.id).blank? || @user.mail.include?("@gitlink.org.cn") || @user.mail.include?("@forge.com")) json.nps EduSetting.get("nps-on-off-switch").to_s == 'true' && UserNp.where(user_id: current_user.id).where("created_at >= ?", (Time.now - 30.days).beginning_of_day ).blank? json.sign_cla @user.sign_cla \ No newline at end of file diff --git a/db/migrate/20230530141227_add_user_action_index.rb b/db/migrate/20230530141227_add_user_action_index.rb new file mode 100644 index 000000000..2d76bd478 --- /dev/null +++ b/db/migrate/20230530141227_add_user_action_index.rb @@ -0,0 +1,7 @@ +class AddUserActionIndex < ActiveRecord::Migration[5.2] + def change + add_index :user_actions, :user_id + add_index :user_actions, :action_type + add_index :user_actions, :action_id + end +end