問(wèn)題說(shuō)明:可能會(huì)出現(xiàn)賬號(hào)合并不成功造成刪除用戶信息后無(wú)法登錄情況
移動(dòng)端修復(fù):
修復(fù)文件:application\wap\model\user\User
修復(fù)方法: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('請(qǐng)輸入手機(jī)號(hào)碼');
if (!$code) return JsonService::fail('請(qǐng)輸入驗(yàn)證碼');
$code = md5('is_phone_code' . $code);
if (!SmsCode::CheckCode($phone, $code)) return JsonService::fail('驗(yàn)證碼驗(yàn)證失敗');
SmsCode::setCodeInvalid($phone, $code);
$user = User::where(['phone' => $phone, 'is_h5user' => 0])->find();
if ($type && $user) {
if ($user['uid'] == $this->uid) {
return JsonService::fail('不能綁定相同手機(jī)號(hào)');
} else if ($user['uid'] != $this->uid) {
return JsonService::fail('當(dāng)前手機(jī)號(hào)碼已綁定微信用戶');
}
} else if ($type == 0 && $user) {
if ($user) return JsonService::fail('當(dāng)前手機(jī)號(hào)碼已綁定微信用戶');
}
//查找H5手機(jī)號(hào)碼賬戶
$phoneUser = PhoneUser::where(['phone' => $phone])->find();
//H5頁(yè)面有注冊(cè)過(guò)
if ($phoneUser && $phoneUser['uid'] != $this->uid && $this->uid) {
//檢測(cè)當(dāng)前用戶是否是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('不能綁定相同手機(jī)號(hào)');
}
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('請(qǐng)登錄');
修改文件: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 '您已綁定手機(jī)號(hào)碼,需要更換手機(jī)號(hào)碼去[個(gè)人中心]更換綁定手機(jī)號(hào)';
$bindingPhone = PhoneUser::UidToPhone($bindingPhoneUid);
if (!$bindingPhone) return '綁定失敗,手機(jī)號(hào)碼不存在';
if(!$uid) return '綁定失敗';
if (User::setUserRelationInfos($bindingPhone, $bindingPhoneUid, $uid, true, $qrInfo['id']))
return '恭喜您,手機(jī)號(hào)碼[' . $bindingPhone . ']綁定成功,';
else
return User::getErrorInfo();
}
pc端修改:
修復(fù)文件:application\web\model\user\User
修復(fù)方法: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('請(qǐng)輸入手機(jī)號(hào)碼');
if (!$code) return JsonService::fail('請(qǐng)輸入驗(yàn)證碼');
$code = md5('is_phone_code' . $code);
if (!SmsCode::CheckCode($phone, $code)) return JsonService::fail('驗(yàn)證碼驗(yàn)證失敗');
SmsCode::setCodeInvalid($phone, $code);
$user = User::where(['phone' => $phone, 'is_h5user' => 0])->find();
if ($type && $user) {
if ($user['uid'] == $this->uid) {
return JsonService::fail('不能綁定相同手機(jī)號(hào)');
} else if ($user['uid'] != $this->uid) {
return JsonService::fail('當(dāng)前手機(jī)號(hào)碼已綁定微信用戶');
}
} else if ($type == 0 && $user) {
if ($user) return JsonService::fail('當(dāng)前手機(jī)號(hào)碼已綁定微信用戶');
}
//查找H5手機(jī)號(hào)碼賬戶
$phoneUser = PhoneUser::where(['phone' => $phone])->find();
//H5頁(yè)面有注冊(cè)過(guò)
if ($phoneUser && $phoneUser['uid'] != $this->uid && $this->uid) {
//檢測(cè)當(dāng)前用戶是否是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('不能綁定相同手機(jī)號(hào)');
}
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('綁定成功');
}