/**
  * 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'));
 }