jsCode = $this->request->input('js_code'); if (empty($this->jsCode)) throw new ErrException('登录参数错误'); $wxInfo = $this->jsCodeGetOpenId($this->jsCode); $this->openId = $wxInfo['openid']; $this->unionId = $wxInfo['unionid']; $this->checkLock(self::LOGIN_TYPE); $this->register(); $this->login(); $this->redis->delLock($this->lockKey); return $this->getReturn(); } /** * 注册 * @return void */ protected function register(): void { $thirdInfo = $this->userThirdModel->getThirdInfoByOpenId($this->openId); if (!empty($thirdInfo)) { $this->userId = $thirdInfo->user_id; return; } // todo 设备封禁不可注册 注册限制 Db::transaction(function () { $this->addUser(); $this->addUserThird(); //todo 要不要生成邀请码 有没有注册奖励 }); } /** * @return void */ private function addUserThird(): void { $model = new UserThird(); $model->user_id = $this->userId; $model->open_id = $this->openId; $model->union_id = $this->unionId; if (!$model->save()) throw new ErrException('注册失败-00001'); } }