迁移用户
This commit is contained in:
parent
7b28d2d183
commit
dde0fbb3c1
|
@ -29,7 +29,7 @@ module Mobile
|
|||
logger.debug "openid ============== #{openid}"
|
||||
raise "无法获取到openid,请在微信中打开本页面" unless openid
|
||||
uw = UserWechat.where(openid: openid).first
|
||||
raise "此微信号已绑定用户(#{uw.user.login}), 不能重复绑定" if uw
|
||||
raise "此微信号已绑定用户(#{uw.user.login}), 不能重复绑定" if uw && uw.real?
|
||||
|
||||
user, last_login_on = User.try_to_login(params[:login], params[:password])
|
||||
raise "用户名或密码错误,请重新输入" unless user
|
||||
|
@ -37,10 +37,15 @@ module Mobile
|
|||
|
||||
raise "此用户已经绑定过公众号, 请换一个帐户试试" if user.user_wechat
|
||||
|
||||
UserWechat.create!(
|
||||
if uw && !user.real?
|
||||
uw.migrate_user(user)
|
||||
else
|
||||
UserWechat.create!(
|
||||
openid: openid,
|
||||
user: user
|
||||
)
|
||||
)
|
||||
end
|
||||
|
||||
ws = WechatService.new
|
||||
ws.binding_succ_notice(user.id, "您已成功绑定Trustie平台。", user.login, Time.now.strftime("%Y-%m-%d"))
|
||||
present status: 0, message: '您已成功绑定Trustie平台'
|
||||
|
@ -58,25 +63,18 @@ module Mobile
|
|||
raise "无法获取到openid,请在微信中打开本页面" unless openid
|
||||
|
||||
uw = UserWechat.where(openid: openid).first
|
||||
if uw
|
||||
uw.bindtype = 0
|
||||
uw.save
|
||||
user = uw.user
|
||||
user[:login] = params[:login]
|
||||
user[:mail] = params[:mail]
|
||||
user[:password] = params[:password]
|
||||
user[:password_confirmation] = params[:password]
|
||||
user[:should_confirmation_password] = true
|
||||
user.save!
|
||||
else
|
||||
us = UsersService.new
|
||||
user = us.register params.merge(:password_confirmation => params[:password],
|
||||
:should_confirmation_password => true)
|
||||
raise user.errors.full_messages.first if user.new_record?
|
||||
raise "此微信号已绑定用户(#{uw.user.login}), 不能重复绑定" if uw && uw.real?
|
||||
us = UsersService.new
|
||||
user = us.register params.merge(:password_confirmation => params[:password],
|
||||
:should_confirmation_password => true)
|
||||
raise user.errors.full_messages.first if user.new_record?
|
||||
|
||||
if uw && !user.real?
|
||||
uw.migrate_user(user)
|
||||
else
|
||||
UserWechat.create!(
|
||||
openid: openid,
|
||||
user: user
|
||||
openid: openid,
|
||||
user: user
|
||||
)
|
||||
end
|
||||
|
||||
|
|
|
@ -3,4 +3,24 @@ class UserWechat < ActiveRecord::Base
|
|||
:headimgurl, :subscribe_time, :unionid, :remark, :groupid, :user, :user_id, :bindtype
|
||||
|
||||
belongs_to :user
|
||||
|
||||
def real?
|
||||
bindtype == 0
|
||||
end
|
||||
|
||||
def migrate_user(u)
|
||||
self.bindtype = 0
|
||||
old_user = user.id
|
||||
self.user = u
|
||||
self.save
|
||||
|
||||
## 主要是将comment 迁移
|
||||
User.delete(old_user)
|
||||
|
||||
JournalForMessages.where(user_id: old_user).update_all(user_id: u.id)
|
||||
Journal.where(user_id: old_user).update_all(user_id: u.id)
|
||||
Comment.where(author_id: old_user).update_all(author_id: u.id)
|
||||
Message.where(author_id: old_user).update_all(author_id: u.id)
|
||||
BlogComment.where(author_id: old_user).update_all(author_id: u.id)
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue