/** * @param mixed $id * @return WeLearn_DTO_IDTO */ public function remover($id) { $UUID = UUID::import($id); $respostaRemovida = $this->recuperar($id); $this->_cf->remove($UUID->bytes); $respostaRemovida->setPersistido(false); return $respostaRemovida; }
/** * @param WeLearn_Cursos_Curso $curso * @return int */ public function recuperarQtdTotalAtivas(WeLearn_Cursos_Curso $curso) { try { $modulos = $this->_moduloDao->recuperarTodosPorCurso($curso); $qtdTotal = 0; foreach ($modulos as $modulo) { try { $column = $this->_cf->get(UUID::import($modulo->getId())->bytes); if ((int) $column['qtdQuestoesExibir'] > 0) { $qtdTotal++; } } catch (cassandra_NotFoundException $e) { } } return $qtdTotal; } catch (cassandra_NotFoundException $e) { return 0; } }
public function setUp() { $this->client = new Connection('Keyspace1'); $this->cf_long = new ColumnFamily($this->client, 'StdLong'); $this->cf_int = new ColumnFamily($this->client, 'StdInteger'); $this->cf_time = new ColumnFamily($this->client, 'StdTimeUUID'); $this->cf_lex = new ColumnFamily($this->client, 'StdLexicalUUID'); $this->cf_ascii = new ColumnFamily($this->client, 'StdAscii'); $this->cf_utf8 = new ColumnFamily($this->client, 'StdUTF8'); $this->cf_suplong = new ColumnFamily($this->client, 'SuperLong'); $this->cf_supint = new ColumnFamily($this->client, 'SuperInt'); $this->cf_suptime = new ColumnFamily($this->client, 'SuperTime'); $this->cf_suplex = new ColumnFamily($this->client, 'SuperLex'); $this->cf_supascii = new ColumnFamily($this->client, 'SuperAscii'); $this->cf_suputf8 = new ColumnFamily($this->client, 'SuperUTF8'); $this->cf_suplong_sublong = new ColumnFamily($this->client, 'SuperLongSubLong'); $this->cf_suplong_subint = new ColumnFamily($this->client, 'SuperLongSubInt'); $this->cf_suplong_subtime = new ColumnFamily($this->client, 'SuperLongSubTime'); $this->cf_suplong_sublex = new ColumnFamily($this->client, 'SuperLongSubLex'); $this->cf_suplong_subascii = new ColumnFamily($this->client, 'SuperLongSubAscii'); $this->cf_suplong_subutf8 = new ColumnFamily($this->client, 'SuperLongSubUTF8'); $this->cf_valid_long = new ColumnFamily($this->client, 'ValidatorLong'); $this->cf_valid_int = new ColumnFamily($this->client, 'ValidatorInt'); $this->cf_valid_time = new ColumnFamily($this->client, 'ValidatorTime'); $this->cf_valid_lex = new ColumnFamily($this->client, 'ValidatorLex'); $this->cf_valid_ascii = new ColumnFamily($this->client, 'ValidatorAscii'); $this->cf_valid_utf8 = new ColumnFamily($this->client, 'ValidatorUTF8'); $this->cf_valid_bytes = new ColumnFamily($this->client, 'ValidatorBytes'); $this->cf_def_valid = new ColumnFamily($this->client, 'DefaultValidator'); $this->cfs = array($this->cf_long, $this->cf_int, $this->cf_ascii, $this->cf_time, $this->cf_lex, $this->cf_utf8, $this->cf_suplong, $this->cf_supint, $this->cf_suptime, $this->cf_suplex, $this->cf_supascii, $this->cf_suputf8, $this->cf_suplong_sublong, $this->cf_suplong_subint, $this->cf_suplong_subtime, $this->cf_suplong_sublex, $this->cf_suplong_subascii, $this->cf_suplong_subutf8, $this->cf_valid_long, $this->cf_valid_int, $this->cf_valid_time, $this->cf_valid_lex, $this->cf_valid_ascii, $this->cf_valid_utf8, $this->cf_valid_bytes, $this->cf_def_valid); $this->TIME1 = CassandraUtil::uuid1(); $this->TIME2 = CassandraUtil::uuid1(); $this->TIME3 = CassandraUtil::uuid1(); $this->LEX1 = UUID::import('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')->bytes; $this->LEX2 = UUID::import('bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb')->bytes; $this->LEX3 = UUID::import('cccccccccccccccccccccccccccccccc')->bytes; }
/** * @param WeLearn_Cursos_Conteudo_Aula $aula * @param array $novasPosicoes */ public function atualizarPosicoes(WeLearn_Cursos_Conteudo_Aula $aula, array $novasPosicoes) { $posicoes = array(); $rows = array(); foreach ($novasPosicoes as $posicao => $id) { $UUID = UUID::import($id)->bytes; $posicoes[$posicao] = $UUID; $rows[$UUID] = array('nroOrdem' => $posicao); } $aulaUUID = UUID::import($aula->getId())->bytes; $this->_cf->batch_insert($rows); $this->_paginaPorAulaCF->remove($aulaUUID); $this->_paginaPorAulaCF->insert($aulaUUID, $posicoes); }
/** * @param WeLearn_DTO_IDTO $dto * @return boolean */ protected function _adicionar(WeLearn_DTO_IDTO &$dto) { $paginaUUID = UUID::import($dto->getPagina()->getId()); $this->_cf->insert($paginaUUID->bytes, $dto->toCassandra()); $dto->setPersistido(true); }
public function __construct() { $this->sys = new SystemManager(); $ksdefs = $this->sys->describe_keyspaces(); $exists = False; foreach ($ksdefs as $ksdef) { $exists = $exists || $ksdef->name == self::$KS; } if ($exists) { $this->sys->drop_keyspace(self::$KS); } $this->sys->create_keyspace(self::$KS, array()); $cfattrs = array("comparator_type" => DataType::LONG_TYPE); $this->sys->create_column_family(self::$KS, 'StdLong', $cfattrs); $cfattrs = array("comparator_type" => DataType::INTEGER_TYPE); $this->sys->create_column_family(self::$KS, 'StdInteger', $cfattrs); $cfattrs = array("comparator_type" => DataType::TIME_UUID_TYPE); $this->sys->create_column_family(self::$KS, 'StdTimeUUID', $cfattrs); $cfattrs = array("comparator_type" => DataType::LEXICAL_UUID_TYPE); $this->sys->create_column_family(self::$KS, 'StdLexicalUUID', $cfattrs); $cfattrs = array("comparator_type" => DataType::ASCII_TYPE); $this->sys->create_column_family(self::$KS, 'StdAscii', $cfattrs); $cfattrs = array("comparator_type" => DataType::UTF8_TYPE); $this->sys->create_column_family(self::$KS, 'StdUTF8', $cfattrs); $cfattrs = array("column_type" => "Super"); $cfattrs["comparator_type"] = DataType::LONG_TYPE; $this->sys->create_column_family(self::$KS, 'SuperLong', $cfattrs); $cfattrs["comparator_type"] = DataType::INTEGER_TYPE; $this->sys->create_column_family(self::$KS, 'SuperInt', $cfattrs); $cfattrs["comparator_type"] = DataType::TIME_UUID_TYPE; $this->sys->create_column_family(self::$KS, 'SuperTime', $cfattrs); $cfattrs["comparator_type"] = DataType::LEXICAL_UUID_TYPE; $this->sys->create_column_family(self::$KS, 'SuperLex', $cfattrs); $cfattrs["comparator_type"] = DataType::ASCII_TYPE; $this->sys->create_column_family(self::$KS, 'SuperAscii', $cfattrs); $cfattrs["comparator_type"] = DataType::UTF8_TYPE; $this->sys->create_column_family(self::$KS, 'SuperUTF8', $cfattrs); $cfattrs = array("column_type" => "Super", "comparator_type" => DataType::LONG_TYPE); $cfattrs["subcomparator_type"] = DataType::LONG_TYPE; $this->sys->create_column_family(self::$KS, 'SuperLongSubLong', $cfattrs); $cfattrs["subcomparator_type"] = DataType::INTEGER_TYPE; $this->sys->create_column_family(self::$KS, 'SuperLongSubInt', $cfattrs); $cfattrs["subcomparator_type"] = DataType::TIME_UUID_TYPE; $this->sys->create_column_family(self::$KS, 'SuperLongSubTime', $cfattrs); $cfattrs["subcomparator_type"] = DataType::LEXICAL_UUID_TYPE; $this->sys->create_column_family(self::$KS, 'SuperLongSubLex', $cfattrs); $cfattrs["subcomparator_type"] = DataType::ASCII_TYPE; $this->sys->create_column_family(self::$KS, 'SuperLongSubAscii', $cfattrs); $cfattrs["subcomparator_type"] = DataType::UTF8_TYPE; $this->sys->create_column_family(self::$KS, 'SuperLongSubUTF8', $cfattrs); $cfattrs = array("column_type" => "Standard"); $cfattrs["default_validation_class"] = DataType::LONG_TYPE; $this->sys->create_column_family(self::$KS, 'ValidatorLong', $cfattrs); $cfattrs["default_validation_class"] = DataType::INTEGER_TYPE; $this->sys->create_column_family(self::$KS, 'ValidatorInt', $cfattrs); $cfattrs["default_validation_class"] = DataType::TIME_UUID_TYPE; $this->sys->create_column_family(self::$KS, 'ValidatorTime', $cfattrs); $cfattrs["default_validation_class"] = DataType::LEXICAL_UUID_TYPE; $this->sys->create_column_family(self::$KS, 'ValidatorLex', $cfattrs); $cfattrs["default_validation_class"] = DataType::ASCII_TYPE; $this->sys->create_column_family(self::$KS, 'ValidatorAscii', $cfattrs); $cfattrs["default_validation_class"] = DataType::UTF8_TYPE; $this->sys->create_column_family(self::$KS, 'ValidatorUTF8', $cfattrs); $cfattrs["default_validation_class"] = DataType::BYTES_TYPE; $this->sys->create_column_family(self::$KS, 'ValidatorBytes', $cfattrs); $cfattrs["default_validation_class"] = DataType::LONG_TYPE; $this->sys->create_column_family(self::$KS, 'DefaultValidator', $cfattrs); // Quick way to create a TimeUUIDType validator to subcol $this->sys->create_index(self::$KS, 'DefaultValidator', 'subcol', DataType::TIME_UUID_TYPE, NULL, NULL); $this->client = new ConnectionPool(self::$KS); $this->cf_long = new ColumnFamily($this->client, 'StdLong'); $this->cf_int = new ColumnFamily($this->client, 'StdInteger'); $this->cf_time = new ColumnFamily($this->client, 'StdTimeUUID'); $this->cf_lex = new ColumnFamily($this->client, 'StdLexicalUUID'); $this->cf_ascii = new ColumnFamily($this->client, 'StdAscii'); $this->cf_utf8 = new ColumnFamily($this->client, 'StdUTF8'); $this->cf_suplong = new ColumnFamily($this->client, 'SuperLong'); $this->cf_supint = new ColumnFamily($this->client, 'SuperInt'); $this->cf_suptime = new ColumnFamily($this->client, 'SuperTime'); $this->cf_suplex = new ColumnFamily($this->client, 'SuperLex'); $this->cf_supascii = new ColumnFamily($this->client, 'SuperAscii'); $this->cf_suputf8 = new ColumnFamily($this->client, 'SuperUTF8'); $this->cf_suplong_sublong = new ColumnFamily($this->client, 'SuperLongSubLong'); $this->cf_suplong_subint = new ColumnFamily($this->client, 'SuperLongSubInt'); $this->cf_suplong_subtime = new ColumnFamily($this->client, 'SuperLongSubTime'); $this->cf_suplong_sublex = new ColumnFamily($this->client, 'SuperLongSubLex'); $this->cf_suplong_subascii = new ColumnFamily($this->client, 'SuperLongSubAscii'); $this->cf_suplong_subutf8 = new ColumnFamily($this->client, 'SuperLongSubUTF8'); $this->cf_valid_long = new ColumnFamily($this->client, 'ValidatorLong'); $this->cf_valid_int = new ColumnFamily($this->client, 'ValidatorInt'); $this->cf_valid_time = new ColumnFamily($this->client, 'ValidatorTime'); $this->cf_valid_lex = new ColumnFamily($this->client, 'ValidatorLex'); $this->cf_valid_ascii = new ColumnFamily($this->client, 'ValidatorAscii'); $this->cf_valid_utf8 = new ColumnFamily($this->client, 'ValidatorUTF8'); $this->cf_valid_bytes = new ColumnFamily($this->client, 'ValidatorBytes'); $this->cf_def_valid = new ColumnFamily($this->client, 'DefaultValidator'); $this->cfs = array($this->cf_long, $this->cf_int, $this->cf_ascii, $this->cf_time, $this->cf_lex, $this->cf_utf8, $this->cf_suplong, $this->cf_supint, $this->cf_suptime, $this->cf_suplex, $this->cf_supascii, $this->cf_suputf8, $this->cf_suplong_sublong, $this->cf_suplong_subint, $this->cf_suplong_subtime, $this->cf_suplong_sublex, $this->cf_suplong_subascii, $this->cf_suplong_subutf8, $this->cf_valid_long, $this->cf_valid_int, $this->cf_valid_time, $this->cf_valid_lex, $this->cf_valid_ascii, $this->cf_valid_utf8, $this->cf_valid_bytes, $this->cf_def_valid); $this->TIME1 = CassandraUtil::uuid1(); $this->TIME2 = CassandraUtil::uuid1(); $this->TIME3 = CassandraUtil::uuid1(); $this->LEX1 = UUID::import('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')->bytes; $this->LEX2 = UUID::import('bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb')->bytes; $this->LEX3 = UUID::import('cccccccccccccccccccccccccccccccc')->bytes; parent::__construct(); }
/** * @param mixed $id * @return WeLearn_DTO_IDTO */ public function remover($id) { $UUID = UUID::import($id)->bytes; $notificacaoRemovida = $this->recuperar($id); $this->_cf->remove($UUID); $usuarioId = $notificacaoRemovida->getDestinatario()->getId(); $this->_notificacoesPorUsuarioCF->remove($usuarioId, array($UUID)); $this->_notificacoesNovasPorUsuarioCF->remove($usuarioId, array($UUID)); }
/** * @param WeLearn_Cursos_Curso $doCurso * @param int $nroOrdem * @return WeLearn_Cursos_Conteudo_Modulo */ public function recuperarPorOrdem(WeLearn_Cursos_Curso $doCurso, $nroOrdem) { $cursoUUID = UUID::import($doCurso->getId())->bytes; $idModulo = $this->_moduloPorCursoCF->get($cursoUUID, array((int) $nroOrdem)); $idModulo = $idModulo[$nroOrdem]; $column = $this->_cf->get($idModulo); return $this->_criarFromCassandra($column, $doCurso); }
/** * @param WeLearn_Cursos_Certificado $certificado * @return void */ public function alterarAtivo(WeLearn_Cursos_Certificado $certificado) { try { $cursoUUID = UUID::import($certificado->getCurso()->getId()); $idCertificadoAtivo = $this->_cursoDao->getCf()->get($cursoUUID->bytes, array('certificado')); $idCertificadoAtivo = $idCertificadoAtivo['certificado']; } catch (cassandra_NotFoundException $e) { $idCertificadoAtivo = ''; } if ($certificado->isAtivo()) { if ($idCertificadoAtivo != $certificado->getId()) { $this->_cursoDao->getCf()->insert($cursoUUID->bytes, array('certificado' => $certificado->getId())); if ($idCertificadoAtivo) { $UUIDInativo = UUID::import($idCertificadoAtivo)->bytes; $this->_cf->insert($UUIDInativo, array('ativo' => 'false')); } } } else { if ($idCertificadoAtivo == $certificado->getId()) { $this->_cursoDao->getCf()->insert($cursoUUID->bytes, array('certificado' => '')); } } }
/** * @param WeLearn_Cursos_SugestaoCurso $sugestao * @return array */ public function recuperarTodosIdsVotantes(WeLearn_Cursos_SugestaoCurso $sugestao) { $sugestaoUUID = UUID::import($sugestao->getId())->bytes; return array_keys($this->_sugestaoUsuariosVotantesCF->get($sugestaoUUID, null, '', '', false, 1000000)); }
private function _criarFromCassandra(array $column, WeLearn_Cursos_ParticipacaoCurso $participacaoCurso, WeLearn_Cursos_Avaliacoes_Avaliacao $avaliacao = null) { $column['participacaoCurso'] = $participacaoCurso; $column['avaliacao'] = $avaliacao instanceof WeLearn_Cursos_Avaliacoes_Avaliacao ? $avaliacao : $this->_avaliacaoDao->recuperar($column['avaliacao']); $controleAvaliacao = $this->criarNovo(); $controleAvaliacao->fromCassandra($column); try { $respostasIds = $this->_respostasAvaliacaoCF->get($controleAvaliacao->getId()); $UUIDs = array(); foreach ($respostasIds as $id) { $UUIDs[] = UUID::import($id)->bytes; } $controleAvaliacao->setRespostas($this->_alternativasDao->recuperarTodosPorUUIDs($UUIDs)); } catch (cassandra_NotFoundException $e) { } return $controleAvaliacao; }
/** * @return array */ public function respostasToCassandra() { $respostasColumnArray = array(); for ($i = 0; $i < count($this->_respostas); $i++) { $questaoUUID = UUID::import($this->_respostas[$i]->getQuestaoId())->bytes; $respostaUUID = UUID::import($this->_respostas[$i]->getId())->bytes; $respostasColumnArray[$questaoUUID] = $respostaUUID; } return $respostasColumnArray; }
/** * Converte os dados das propriedades do objeto em um array para ser persistido no BD Cassandra * * @return array */ public function toCassandra() { $UUID = UUID::import($this->getPagina()->getId())->bytes; return array($UUID => $this->getStatus()); }
/** * @param array $idsUsuarios * @param WeLearn_Cursos_Curso $curso */ public function removerTodosConvitesGerenciador(array $idsUsuarios, WeLearn_Cursos_Curso $curso) { $cursoUUID = UUID::import($curso); $this->_usuariosPorCursoCF->remove($cursoUUID->bytes, array($idsUsuarios)); foreach ($idsUsuarios as $id) { $this->_cursosPorConviteGerenciadorCF->remove($id, array($cursoUUID->bytes)); } }
/** * @param WeLearn_Cursos_Conteudo_Modulo $modulo * @param WeLearn_Cursos_ParticipacaoCurso $participacaoCurso * @return WeLearn_Cursos_Conteudo_ControleModulo */ public function recuperar(WeLearn_Cursos_Conteudo_Modulo $modulo, WeLearn_Cursos_ParticipacaoCurso $participacaoCurso) { $moduloUUID = UUID::import($modulo->getId())->bytes; $column = $this->_cf->get($participacaoCurso->getCFKey(), array($moduloUUID)); return $this->_criarFromCassandra($column, $participacaoCurso, $modulo); }
public function finalizar() { if (!$this->input->is_ajax_request()) { show_404(); } set_json_header(); try { $avaliacao = $this->_avaliacaoDao->recuperar($this->input->post('avaliacaoId')); $participacaoCurso = $this->_participacaoCursoDao->recuperarPorCurso($this->_alunoAtual, $avaliacao->getModulo()->getCurso()); $controleAvaliacao = $this->_controleAvaliacaoDao->recuperarPorParticipacao($participacaoCurso, $avaliacao); $alternativasEscolhidas = $this->input->post('alternativaEscolhida'); $idsRespostas = array(); if ($alternativasEscolhidas) { foreach ($alternativasEscolhidas as $idAlternativa) { $idsRespostas[] = UUID::import($idAlternativa)->bytes; } } $respostas = $this->_alternativaAvaliacaoDao->recuperarTodosPorUUIDs($idsRespostas); $controleAvaliacao->setRespostas($respostas); $controleAvaliacao->setTempoDecorrido(round($avaliacao->getTempoDuracaoMax() - (double) $this->input->post('tempoDeProva'), 2)); $controleAvaliacao->setDataAplicacao(time()); $controleAvaliacao->calcularResultados(); if ($controleAvaliacao->isStatusFinalizada() || $controleAvaliacao->isStatusDesativada()) { $participacaoCurso->atualizarCR($controleAvaliacao->getNota(), $avaliacao->getModulo()->getNroOrdem() === 1); } if ($controleAvaliacao->isSituacaoAprovado()) { $this->_registrarAprovacaoEmAvaliacao($participacaoCurso, $avaliacao); } $response = Zend_Json::encode(array('htmlMsgResultado' => $this->template->loadPartial('msg_resultado_avaliacao', array('controleAvaliacao' => $controleAvaliacao), 'curso/conteudo/aplicacao_avaliacao'))); //Salvando depois da exibicao da msg pra evitar um possivel bug do php. $this->_controleAvaliacaoDao->salvar($controleAvaliacao); $json = create_json_feedback(true, '', $response); } catch (Exception $e) { log_message('error', 'Ocorreu um erro ao tentar finalizar aplicação de avaliação: ' . create_exception_description($e)); $error = create_json_feedback_error_json('Ocorreu um erro inesperado, já estamos tentando resolver. Tente novamente mais tarde!'); $json = create_json_feedback(false, $error); } echo $json; }
/** * @param WeLearn_Cursos_Conteudo_Aula $aula * @param WeLearn_Cursos_ParticipacaoCurso $participacaoCurso * @return WeLearn_Cursos_Conteudo_ControleAula */ public function recuperar(WeLearn_Cursos_Conteudo_Aula $aula, WeLearn_Cursos_ParticipacaoCurso $participacaoCurso) { $CFKey = $participacaoCurso->getCFKey(); $aulaUUID = UUID::import($aula->getId())->bytes; $column = $this->_cf->get($CFKey, array($aulaUUID)); return $this->_criarFromCassandra($column, $participacaoCurso, $aula); }
public function removerTodosPorAvaliacao(WeLearn_Cursos_Avaliacoes_Avaliacao $avaliacao) { try { $questoesRemovidas = $this->recuperarTodosPorAvaliacao($avaliacao); } catch (cassandra_NotFoundException $e) { return array(); } foreach ($questoesRemovidas as $questao) { $questaoUUID = UUID::import($questao->getId()); $alternativasRemovidas = $this->_alternativaDAO->removerTodosPorQuestao($questao); $this->_cf->remove($questaoUUID->bytes); $alternativaCorreta = null; for ($i = 0; $i < count($alternativasRemovidas); $i++) { if ($alternativasRemovidas[$i]->isCorreta()) { $questao->setAlternativaCorreta($alternativasRemovidas[$i]); unset($alternativasRemovidas[$i]); break; } } $questao->setAlternativasIncorretas($alternativasRemovidas); $questao->setPersistido(false); } $avaliacaoUUID = CassandraUtil::import($avaliacao->getId()); $this->_questaoPorAvaliacaoCF->remove($avaliacaoUUID->bytes); return $questoesRemovidas; }
/** * Creates a UUID object from a byte representation. * @param string $bytes the byte representation of a UUID, which is * what is returned from functions like uuid1() * @return a UUID object */ public static function import($bytes) { return UUID::import($bytes); }
/** * @param WeLearn_Cursos_Curso $curso */ public function removerTodosPorCurso(WeLearn_Cursos_Curso $curso) { $cursoUUID = UUID::import($curso->getId()); $idsGerenciadores = array_keys($this->_gerenciadoresPorCursoCF->get($cursoUUID->bytes, null, $de, $ate, false, $count)); $idsConvites = array_keys($this->_convitesGerenciadorPorCursoCF->get($cursoUUID->bytes, null, $de, $ate, false, $count)); $this->_gerenciadoresPorCursoCF->remove($cursoUUID->bytes); $this->_convitesGerenciadorPorCursoCF->remove($cursoUUID->bytes); $this->_cursoDao->removerTodosGerenciadores($idsGerenciadores, $curso); $this->_cursoDao->removerTodosConvitesGerenciador($idsConvites, $curso); }