问题说明:可能会出现账号合并不成功造成删除用户信息后无法登录情况
移动端修复:
修复文件: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('绑定成功');
    }
 
                         
                         
                     
                         
                     
                     
                     
                     
                     
                             
                                    
 
                                         
                                     
                 
                         
                     
                 
         
         
             
         
         
         
		