@POST
  @Produces(MediaType.APPLICATION_JSON)
  @Consumes(MediaType.APPLICATION_JSON)
  @Path("enviarCorreo")
  public RespuestaMensajeDTO enviarCorreo(MensajeDTO mDTO) {

    RespuestaMensajeDTO respuestaMensajeDTO = new RespuestaMensajeDTO(0, "OK");

    UsuarioDTO usuarioDTO = new UsuarioDTO();
    usuarioDTO.setCodigo(mDTO.getUsrdesde());

    Client client = ClientBuilder.newClient();
    WebTarget targetMensaje = client.target(servicioObtenerUsuarioSesion);
    RespuestaSeguridadDTO resuSeg =
        targetMensaje
            .request("application/json")
            .post(
                Entity.entity(usuarioDTO, MediaType.APPLICATION_JSON), RespuestaSeguridadDTO.class);

    System.out.println("RESU " + resuSeg.getCodigo());
    System.out.println("RESU " + resuSeg.getMensaje());

    if (resuSeg.getCodigo() == 0) {

      if (mDTO.getUsrdesde() != null && mDTO.getUsrpara() != null && mDTO.getTexto() != null) {
        try {
          client = ClientBuilder.newClient();
          targetMensaje = client.target(servicioGetEncontrarUsuario + mDTO.getUsrdesde());
          RespuestaUsuarioDTO resuDesde =
              targetMensaje.request("application/json").get(RespuestaUsuarioDTO.class);
          if (resuDesde != null && resuDesde.getCodigo() == 0) {
            try {
              targetMensaje = client.target(servicioGetEncontrarUsuario + mDTO.getUsrpara());
              RespuestaUsuarioDTO resuPara =
                  targetMensaje.request("application/json").get(RespuestaUsuarioDTO.class);
              if (resuPara != null && resuPara.getCodigo() == 0) {

                // Envio email segun dirección de correo usuario	destino
                respuestaMensajeDTO =
                    notificacionBeanLocal.enviarMensaje(
                        resuDesde.getUsuarios().get(0),
                        resuPara.getUsuarios().get(0),
                        mDTO.getTexto());

                // Inicio Otorga Puntos por Fidelizacion
                try {
                  RegistrarPuntosDTO registrarPuntosDTO = new RegistrarPuntosDTO();
                  registrarPuntosDTO.setCodigoUsuario(usuarioDTO.getCodigo().toString());
                  registrarPuntosDTO.setServicio("enviarCorreo");

                  client = ClientBuilder.newClient();
                  targetMensaje = client.target(servicioRegistrarServicio);
                  RespuestaDTO resuDTO =
                      targetMensaje
                          .request("application/json")
                          .post(
                              Entity.entity(registrarPuntosDTO, MediaType.APPLICATION_JSON),
                              RespuestaDTO.class);
                } catch (Exception exc) {
                  System.out.println("Fidelizacion deshabilidado");
                }
                // Fin Otorga Puntos por Fidelizacion
              } else {
                respuestaMensajeDTO.setCodigo(3);
                respuestaMensajeDTO.setMensaje("Usuario Destinatario No Existe");
              }

            } catch (Exception e) {
              //							throw new RuntimeException(e);
              respuestaMensajeDTO.setCodigo(4);
              respuestaMensajeDTO.setMensaje("Error Interno del Sistema");
            }

          } else {
            respuestaMensajeDTO.setCodigo(5);
            respuestaMensajeDTO.setMensaje("Usuario Remitente No Existe");
          }

        } catch (Exception e) {
          //			throw new RuntimeException(e);
          respuestaMensajeDTO.setCodigo(4);
          respuestaMensajeDTO.setMensaje("Error Interno del Sistema");
        }

      } else {
        respuestaMensajeDTO.setCodigo(1);
        respuestaMensajeDTO.setMensaje("Faltan Campos Obligatorios");
      }

    } else {

      respuestaMensajeDTO.setCodigo(10);
      respuestaMensajeDTO.setMensaje(resuSeg.getMensaje());
    }

    return respuestaMensajeDTO;
  }
  @POST
  @Produces(MediaType.APPLICATION_JSON)
  @Consumes(MediaType.APPLICATION_JSON)
  @Path("crearAmigo")
  public RespuestaAmigoDTO crearAmigo(AmigoDTO aDTO) {

    RespuestaAmigoDTO respuestaAmigoDTO = new RespuestaAmigoDTO(0, "OK");
    respuestaAmigoDTO.setCodigoUsuario(aDTO.getCodUsuario().toString());

    UsuarioDTO usuarioDTO = new UsuarioDTO();
    usuarioDTO.setCodigo(aDTO.getCodUsuario());

    Client client = ClientBuilder.newClient();
    WebTarget targetMensaje = client.target(servicioObtenerUsuarioSesion);
    RespuestaSeguridadDTO resuSeg =
        targetMensaje
            .request("application/json")
            .post(
                Entity.entity(usuarioDTO, MediaType.APPLICATION_JSON), RespuestaSeguridadDTO.class);

    System.out.println("RESU " + resuSeg.getCodigo());
    System.out.println("RESU " + resuSeg.getMensaje());

    if (resuSeg.getCodigo() == 0) {

      if ((aDTO.getCodUsuario() != null && aDTO.getCodAmigo() != null)
          && (aDTO.getCodUsuario() != aDTO.getCodAmigo())) {

        try {

          client = ClientBuilder.newClient();
          targetMensaje = client.target(servicioGetEncontrarUsuario + aDTO.getCodUsuario());
          RespuestaUsuarioDTO resuCodUsuario =
              targetMensaje.request("application/json").get(RespuestaUsuarioDTO.class);

          if (resuCodUsuario != null && resuCodUsuario.getCodigo() == 0) {

            targetMensaje = client.target(servicioGetEncontrarUsuario + aDTO.getCodAmigo());
            RespuestaUsuarioDTO resuCodAmigo =
                targetMensaje.request("application/json").get(RespuestaUsuarioDTO.class);

            if (resuCodAmigo != null && resuCodAmigo.getCodigo() == 0) {

              boolean yaAmigo =
                  amigoBeanLocal.amigoDeUsuario(aDTO.getCodUsuario(), aDTO.getCodAmigo());

              if (!yaAmigo) {

                Amigo amigo = new Amigo();

                amigo.setCodUsuario(aDTO.getCodUsuario());
                amigo.setCodAmigo(aDTO.getCodAmigo());

                amigoBeanLocal.insertar(amigo);

                // Inicio Otorga Puntos por Fidelizacion
                try {
                  RegistrarPuntosDTO registrarPuntosDTO = new RegistrarPuntosDTO();
                  registrarPuntosDTO.setCodigoUsuario(usuarioDTO.getCodigo().toString());
                  registrarPuntosDTO.setServicio("crearAmigo");

                  client = ClientBuilder.newClient();
                  targetMensaje = client.target(servicioRegistrarServicio);
                  RespuestaDTO resuDTO =
                      targetMensaje
                          .request("application/json")
                          .post(
                              Entity.entity(registrarPuntosDTO, MediaType.APPLICATION_JSON),
                              RespuestaDTO.class);
                } catch (Exception exc) {
                  System.out.println("Fidelizacion deshabilidado");
                }
                // Fin Otorga Puntos por Fidelizacion

              } else {
                respuestaAmigoDTO.setCodigo(5);
                respuestaAmigoDTO.setMensaje("Codigo de Amigo Ya Existe ... ");
              }

            } else {
              respuestaAmigoDTO.setCodigo(3);
              respuestaAmigoDTO.setMensaje("Codigo de Amigo No Existe ... ");
            }

          } else {
            respuestaAmigoDTO.setCodigo(2);
            respuestaAmigoDTO.setMensaje("Codigo de Usuario No Existe ... ");
          }

        } catch (Exception e) {
          respuestaAmigoDTO.setCodigo(4);
          respuestaAmigoDTO.setMensaje("Error Interno del Sistema ...");
        }

      } else {
        respuestaAmigoDTO.setCodigo(1);
        respuestaAmigoDTO.setMensaje(
            "Faltan Campos Obligatorios o Codigo de Usuario igual a Codigo de amigo");
      }

    } else {
      respuestaAmigoDTO.setCodigo(10);
      respuestaAmigoDTO.setMensaje(resuSeg.getMensaje());
    }

    return respuestaAmigoDTO;
  }
  @PUT
  @Produces(MediaType.APPLICATION_JSON)
  @Consumes(MediaType.APPLICATION_JSON)
  @Path("actualizarMensaje")
  public RespuestaMensajeDTO actualizarMensaje(MensajeDTO mensajeDTO) {

    RespuestaMensajeDTO respuestaMensajeDTO = new RespuestaMensajeDTO(0, "OK");

    UsuarioDTO usuarioDTO = new UsuarioDTO();
    usuarioDTO.setCodigo(mensajeDTO.getUsrdesde());

    Client client = ClientBuilder.newClient();
    WebTarget targetMensaje = client.target(servicioObtenerUsuarioSesion);
    RespuestaSeguridadDTO resuSeg =
        targetMensaje
            .request("application/json")
            .post(
                Entity.entity(usuarioDTO, MediaType.APPLICATION_JSON), RespuestaSeguridadDTO.class);

    System.out.println("RESU desde " + resuSeg.getCodigo());
    System.out.println("RESU desde " + resuSeg.getMensaje());

    boolean estaUsuarioSesion = false;
    if (resuSeg.getCodigo() == 0) {
      estaUsuarioSesion = true;
    } else {
      usuarioDTO.setCodigo(mensajeDTO.getUsrpara());
      client = ClientBuilder.newClient();
      targetMensaje = client.target(servicioObtenerUsuarioSesion);
      resuSeg =
          targetMensaje
              .request("application/json")
              .post(
                  Entity.entity(usuarioDTO, MediaType.APPLICATION_JSON),
                  RespuestaSeguridadDTO.class);
      if (resuSeg.getCodigo() == 0) {
        estaUsuarioSesion = true;
      }
      System.out.println("RESU para" + resuSeg.getCodigo());
      System.out.println("RESU para" + resuSeg.getMensaje());
    }

    if (estaUsuarioSesion) {

      try {

        // Validar si el mensaje existe en el sistema
        Mensaje mensajeActualizar =
            mensajeBeanLocal.encontrarPorId(Mensaje.class, mensajeDTO.getId());

        if (mensajeActualizar != null) {
          if (mensajeActualizar.getStatus() == true) {
            respuestaMensajeDTO.setCodigo(1);
            respuestaMensajeDTO.setMensaje(
                "El Mensaje con Id : " + mensajeActualizar.getId() + " ya tiene estatus Leido");
          } else {

            if (mensajeActualizar.getUsrdesde() == mensajeDTO.getUsrdesde()) {
              mensajeActualizar.setStatus(true);
              mensajeBeanLocal.insertarOActualizar(mensajeActualizar);

              // Inicio Otorga Puntos por Fidelizacion
              try {
                RegistrarPuntosDTO registrarPuntosDTO = new RegistrarPuntosDTO();
                registrarPuntosDTO.setCodigoUsuario(usuarioDTO.getCodigo().toString());
                registrarPuntosDTO.setServicio("actualizarMensaje");

                client = ClientBuilder.newClient();
                targetMensaje = client.target(servicioRegistrarServicio);
                RespuestaDTO resuDTO =
                    targetMensaje
                        .request("application/json")
                        .post(
                            Entity.entity(registrarPuntosDTO, MediaType.APPLICATION_JSON),
                            RespuestaDTO.class);
              } catch (Exception exc) {
                System.out.println("Fidelizacion deshabilidado");
              }
              // Fin Otorga Puntos por Fidelizacion

            } else {
              respuestaMensajeDTO.setCodigo(4);
              respuestaMensajeDTO.setMensaje(
                  "El Mensaje con Id : "
                      + mensajeActualizar.getId()
                      + " No pertence al Usuario "
                      + mensajeDTO.getUsrdesde());
            }
          }
        } else {
          respuestaMensajeDTO.setCodigo(2);
          respuestaMensajeDTO.setMensaje("El Mensaje no existe en el sistema");
        }

      } catch (Exception err) {

        respuestaMensajeDTO.setCodigo(3);
        respuestaMensajeDTO.setMensaje("Hubo un error en el sistema");
      }
    } else {
      respuestaMensajeDTO.setCodigo(10);
      respuestaMensajeDTO.setMensaje(resuSeg.getMensaje());
    }

    return respuestaMensajeDTO;
  }