问题说明:可能会出现账号合并不成功造成删除用户信息后无法登录情况
移动端修复:
修复文件:application\wap\model\user\User
修复方法:setUserRelationInfos()
if(!$uid || !$newUid) return false;
修改文件:application\wap\controller\My
修改方法:save_phone()
public function save_phone()
{
if ($this->request->isAjax()) {
list($phone, $code, $type) = UtilService::getMore([
['phone', ''],
['code', ''],
['type', 0],
], $this->request, true);
if (!$phone) return JsonService::fail('请输入手机号码');
if (!$code) return JsonService::fail('请输入验证码');
$code = md5('is_phone_code' . $code);
if (!SmsCode::CheckCode($phone, $code)) return JsonService::fail('验证码验证失败');
SmsCode::setCodeInvalid($phone, $code);
$user = User::where(['phone' => $phone, 'is_h5user' => 0])->find();
if ($type && $user) {
if ($user['uid'] == $this->uid) {
return JsonService::fail('不能绑定相同手机号');
} else if ($user['uid'] != $this->uid) {
return JsonService::fail('当前手机号码已绑定微信用户');
}
} else if ($type == 0 && $user) {
if ($user) return JsonService::fail('当前手机号码已绑定微信用户');
}
//查找H5手机号码账户
$phoneUser = PhoneUser::where(['phone' => $phone])->find();
//H5页面有注册过
if ($phoneUser && $phoneUser['uid'] != $this->uid && $this->uid) {
//检测当前用户是否是H5用户
if (User::where('uid', $phoneUser['uid'])->value('is_h5user')) {
$res = User::setUserRelationInfos($phone, $phoneUser['uid'], $this->uid);
if ($res === false) return JsonService::fail(User::getErrorInfo());
}
} else if ($phoneUser && $phoneUser['uid'] == $this->uid && $this->uid) {
return JsonService::fail('不能绑定相同手机号');
}
if (!isset($res)) {
$nickname = User::where('uid', $this->uid)->value('nickname');
$nick = ['phone' => $phone, 'account' => $phone];
if(check_phone($nickname)) $nick['nickname'] = $phone;
User::update($nick, ['uid' => $this->uid]);
}
return JsonService::successful('绑定成功');
} else {
$this->assign('user_phone', $this->userInfo['phone']);
return $this->fetch();
}
}
修改文件:application\wap\controller\Index
修改方法:login()
if(!$this->uid) return JsonService::fail('请登录');
修改文件:extend\behavior\wechat\QrcodeEventBehavior
修改方法:wechatQrcodeBinding()
public static function wechatQrcodeBinding($qrInfo, $message)
{
$bindingPhoneUid = $qrInfo['third_id'];
$uid = WechatUser::openidToUid($message->FromUserName, true);
$userInfo = User::getUserInfo($uid);
if ($userInfo['phone']) return '您已绑定手机号码,需要更换手机号码去[个人中心]更换绑定手机号';
$bindingPhone = PhoneUser::UidToPhone($bindingPhoneUid);
if (!$bindingPhone) return '绑定失败,手机号码不存在';
if(!$uid) return '绑定失败';
if (User::setUserRelationInfos($bindingPhone, $bindingPhoneUid, $uid, true, $qrInfo['id']))
return '恭喜您,手机号码[' . $bindingPhone . ']绑定成功,';
else
return User::getErrorInfo();
}
pc端修改:
修复文件:application\web\model\user\User
修复方法:setUserRelationInfos()
if(!$uid || !$newUid) return false;
修改文件:application\web\controller\My
修改方法:save_phone()
public function save_phone()
{
list($phone, $code, $type) = UtilService::getMore([
['phone', ''],
['code', ''],
['type', 0],
], $this->request, true);
if (!$phone) return JsonService::fail('请输入手机号码');
if (!$code) return JsonService::fail('请输入验证码');
$code = md5('is_phone_code' . $code);
if (!SmsCode::CheckCode($phone, $code)) return JsonService::fail('验证码验证失败');
SmsCode::setCodeInvalid($phone, $code);
$user = User::where(['phone' => $phone, 'is_h5user' => 0])->find();
if ($type && $user) {
if ($user['uid'] == $this->uid) {
return JsonService::fail('不能绑定相同手机号');
} else if ($user['uid'] != $this->uid) {
return JsonService::fail('当前手机号码已绑定微信用户');
}
} else if ($type == 0 && $user) {
if ($user) return JsonService::fail('当前手机号码已绑定微信用户');
}
//查找H5手机号码账户
$phoneUser = PhoneUser::where(['phone' => $phone])->find();
//H5页面有注册过
if ($phoneUser && $phoneUser['uid'] != $this->uid && $this->uid) {
//检测当前用户是否是H5用户
if (User::where('uid', $phoneUser['uid'])->value('is_h5user')) {
$res = User::setUserRelationInfos($phone, $phoneUser['uid'], $this->uid);
if ($res === false) return JsonService::fail(User::getErrorInfo());
}
} else if ($phoneUser && $phoneUser['uid'] == $this->uid && $this->uid) {
return JsonService::fail('不能绑定相同手机号');
}
if (!isset($res)) {
$nickname = User::where('uid', $this->uid)->value('nickname');
$nick = ['phone' => $phone, 'account' => $phone];
if(check_phone($nickname)) $nick['nickname'] = $phone;
User::update($nick, ['uid' => $this->uid]);
}
return JsonService::successful('绑定成功');
}
{{item.user_info.nickname ? item.user_info.nickname : item.user_name}}
作者 管理员 企业
{{itemf.name}}
{{itemc.user_info.nickname}}
{{itemc.user_name}}
回复 {{itemc.comment_user_info.nickname}}
{{itemf.name}}