/** * Execute the command. * * @param UserRepositoryInterface $repository * * @return string */ public function handle(UserRepositoryInterface $repository) { //TODO: 生成二维码并保存 $model = $repository->skipPresenter()->find($this->user_id); $model->login_token = str_random(20); $model->save(); return $model->login_token; }
/** * 获取用户登录 QR. * * @param $user_id 用户 ID * * @return \Illuminate\Http\Response */ public function getLoginQR($user_id) { //TODO: 临时接口,待用户登录做了之后将 QR 生成到本地用 cdn 连接返回 $login_token = $this->repository->skipPresenter()->find($user_id)->login_token; if (!$login_token) { $login_token = $this->dispatch(new GenerateUsersLoginToken($user_id)); } return QrCode::size(200)->margin(0)->generate($login_token); }
/** * 更新指定用户的资料. * * @param \Illuminate\Http\Request $request * @param int $id * * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { $user = $this->users->find($id); if (Gate::denies('update', $user)) { throw new AccessDeniedHttpException(); } try { $user = $this->users->update($request->all(), $id); return $this->response()->item($user, new UserTransformer()); } catch (ValidatorException $e) { throw new UpdateResourceFailedException('Could not update user.', $e->getMessageBag()->all()); } }
/** * 获取当前用户的未读消息数. * * @return \Illuminate\Contracts\Routing\ResponseFactory|\Symfony\Component\HttpFoundation\Response */ public function unreadMessagesCount() { $count = $this->users->getUnreadMessagesCount(); return response(compact('count')); }