diff --git a/app/controllers/weapps/sessions_controller.rb b/app/controllers/weapps/sessions_controller.rb index 732d0a686..d586b38f5 100644 --- a/app/controllers/weapps/sessions_controller.rb +++ b/app/controllers/weapps/sessions_controller.rb @@ -17,7 +17,12 @@ class Weapps::SessionsController < Weapps::BaseController # session[:wechat_user_extra].delete(:nickName) # 绑定微信号 - OpenUsers::Wechat.create!(user: user, uid: session_unionid) if user.wechat_open_user.blank? + open_user = OpenUsers::Wechat.find_by(uid: session_unionid) + if open_user.present? && open_user.user_id.nil? + open_user.update!(user_id: user.id) + elsif user.wechat_open_user.blank? + OpenUsers::Wechat.create!(user: user, uid: session_unionid) + end successful_authentication(user) end diff --git a/app/controllers/weapps/unbind_accounts_controller.rb b/app/controllers/weapps/unbind_accounts_controller.rb index 551308a6c..143f4a274 100644 --- a/app/controllers/weapps/unbind_accounts_controller.rb +++ b/app/controllers/weapps/unbind_accounts_controller.rb @@ -7,7 +7,7 @@ class Weapps::UnbindAccountsController < Weapps::BaseController def destroy open_user = OpenUsers::Wechat.find_by!(user_id: current_user.id) - open_user.destroy! + open_user.destroy!(user_id: nil) UserAction.create(action_id: current_user.id, action_type: "UnbindWechat", user_id: current_user.id, :ip => request.remote_ip) logout_user render_ok