/** * Run the migrations. * * @return void */ public function up() { Schema::table('factors', function (Blueprint $table) { }); $newRow = new Factor(); $newRow->factorname = 'Units'; $newRow->save(); }
/** * Inverse calculation * * Calculation is done for HR in [bpm] and time is transformed from [s] to [min]. * * @param int $bpm [bpm] * @param int $trimp value to reach */ protected function calculate($bpm, $trimp) { $Factor = new Factor($this->Athlete->gender()); $max = $this->Athlete->knowsMaximalHeartRate() ? $this->Athlete->maximalHR() : Calculator::DEFAULT_HR_MAX; $rest = $this->Athlete->knowsRestingHeartRate() ? $this->Athlete->restingHR() : Calculator::DEFAULT_HR_REST; $hr = max(0, ($bpm - $rest) / ($max - $rest)); $sum = $trimp / ($hr * exp($Factor->B() * $hr)); $this->value = 1 / $Factor->A() * $sum * 60; }
/** * Calculate * * Calculation is done for HR in [bpm] and time is transformed from [s] to [min]. */ protected function calculate() { $Factor = new Factor($this->Athlete->gender()); $max = $this->Athlete->knowsMaximalHeartRate() ? $this->Athlete->maximalHR() : self::DEFAULT_HR_MAX; $rest = $this->Athlete->knowsRestingHeartRate() ? $this->Athlete->restingHR() : self::DEFAULT_HR_REST; $sum = 0; $B = $Factor->B(); foreach ($this->Data as $bpm => $t) { $hr = max(0, ($bpm - $rest) / ($max - $rest)); $sum += $t / 60 * $hr * exp($B * $hr); } $this->value = $Factor->A() * $sum; }
/** * Run the migrations. * * @return void */ public function up() { Schema::table('factors', function (Blueprint $table) { // }); $newFactor = new Factor(); $newFactor->factorname = "High Grades"; $newFactor->save(); $newFactor = new Factor(); $newFactor->factorname = "Unemployment"; $newFactor->save(); $newFactor = new Factor(); $newFactor->factorname = "Overloading"; $newFactor->save(); }
/** * Execute the console command. * * @return mixed */ public function fire() { ini_set('max_execution_time', 0); $factorQuestions = Question::on('main')->where('id_question_type', QuestionType::TYPE_FACTOR)->get(); $listIDAnswerFactor = []; foreach ($factorQuestions as $q) { $listIDAnswerFactor[] = QuestionAnswer::on('main')->where('id_question', $q->id)->lists('id_answer'); } $listIDAnswerNormal = Question::on('main')->where('id_question_type', '!=', QuestionType::TYPE_FACTOR)->join('question_answer', 'question_answer.id_question', '=', 'questions.id')->distinct('id_answer')->orderBy('id_answer')->lists('id_answer'); $keyGroup = []; foreach ($listIDAnswerFactor[0] as $fKey0) { foreach ($listIDAnswerFactor[1] as $fKey1) { foreach ($listIDAnswerFactor[2] as $fKey2) { $arrTemp = [$fKey0, $fKey1, $fKey2]; sort($arrTemp); $keyGroup[] = $arrTemp; } } } $insert = []; foreach ($keyGroup as $key) { $keyString = implode(',', $key); foreach ($listIDAnswerNormal as $idAnswer) { $answerRoot = DB::select("select * from option_ans where id='{$idAnswer}'"); $idAttribute = $answerRoot[0]->attribute_id; $factor = DB::select("select * from factor where user_detail = '{$keyString}' and attribute_id='{$idAttribute}'"); if (count($factor) > 0) { $insert[] = ['key_group' => $keyString, 'id_answer' => $idAnswer, 'factor' => $factor[0]->factor]; } else { $insert[] = ['key_group' => $keyString, 'id_answer' => $idAnswer, 'factor' => rand(1, 3)]; } } } Factor::insert($insert); }
/** * Run the migrations. * * @return void */ public function up() { Schema::create('factors', function (Blueprint $table) { $table->increments('factorid'); $table->string('factorname'); $table->timestamps(); }); //Add rows (factors) to database $newFactor = new Factor(); $newFactor->factorname = 'Employment'; $newFactor->save(); $newFactor = new Factor(); $newFactor->factorname = 'Grades'; $newFactor->save(); $newFactor = new Factor(); $newFactor->factorname = 'ST Bracket'; $newFactor->save(); $newFactor = new Factor(); $newFactor->factorname = 'Region'; $newFactor->save(); $newFactor = new Factor(); $newFactor->factorname = 'Tuition'; $newFactor->save(); }
/** * Run the migrations. * * @return void */ public function up() { Schema::table('factors', function (Blueprint $table) { // }); $entry = Factor::where('factorid', 2)->first(); $entry->factorname = 'Low Grades'; $entry->save(); $entry = Factor::where('factorid', 3)->first(); $entry->factorname = 'ST Bracket A & B'; $entry->save(); $entry = Factor::where('factorid', 6)->first(); $entry->factorname = 'Underloading Units'; $entry->save(); $entry = Factor::where('factorid', 9)->first(); $entry->factorname = 'Overloading Units'; $entry->save(); }
public function writeprojectdetailAction() { try { $manager = $this->session->get('Manager'); $project_id = $manager->project_id; #添加项目判断,是否有被试答题,若有答题则不能更新配置的模块 $result = $this->modelsManager->createBuilder()->columns(array('COUNT(Examinee.id) as count'))->from('Examinee')->join('QuestionAns', 'Examinee.id = QuestionAns.examinee_id AND Examinee.project_id = ' . $project_id)->getQuery()->execute(); $result = $result->toArray(); if ($result[0]['count'] > 0) { $this->dataReturn(array('error' => '已有被试答题,项目模块不可再修改!')); return; } if ($manager) { $module_names = array(); $checkeds = $this->request->getpost('checkeds'); $values = $this->request->getpost('values'); $i = 0; foreach ($checkeds as $value) { if ($value == 'true') { $module_names[] = PmDB::getModuleName($values[$i]); } $i++; } #全选情况 $project_detail_info = array(); $index_names = array(); if (count($module_names) == 10) { $index = Index::find(); foreach ($index as $index_record) { $index_names[] = $index_record->name; } $factor = Factor::find(); $factor_names = array(); foreach ($factor as $factor_record) { $factor_names[] = $factor_record->name; } $question = Question::find(); $examination = array(); foreach ($question as $question_record) { $paper_name = Paper::findFirst($question_record->paper_id)->name; $examination[$paper_name][] = $question_record->number; } $project_detail_info['exam_json'] = json_encode($examination, JSON_UNESCAPED_UNICODE); } else { #所有相关指标名数组 $index_names = PmDB::getIndexName($module_names); #所有相关因子名数组 $factor_names = PmDB::getFactorName($index_names); #所有相关试卷下题目的数组 $examination = PmDB::getQuestionName($factor_names); $project_detail_info['exam_json'] = json_encode($examination, JSON_UNESCAPED_UNICODE); } #因子分类 以及寻找子因子 $factors = PmDB::getAllDividedFactors($factor_names); $project_detail_info['factor_names'] = json_encode($factors, JSON_UNESCAPED_UNICODE); $project_detail_info['module_names'] = implode(',', $module_names); $project_detail_info['index_names'] = implode(',', $index_names); $project_detail_info['project_id'] = $project_id; #插入到project_detail 并更新状态 PmDB::insertProjectDetail($project_detail_info); #模块配置的类型设为true #需求量表的上传设为false $this->dataReturn(array('success' => true)); return; } else { $this->dataBack(array('error' => "您的身份验证出错!请重新登录!")); return; } } catch (Exception $e) { $this->dataReturn(array('error' => $e->getMessage())); return; } }
public static function getSPMdata($examinee_info) { $projectdetail = ProjectDetail::findFirst(array('project_id=?1', 'bind' => array(1 => $examinee_info->project_id))); $factors = json_decode($projectdetail->factor_names, true); if (!isset($factors['SPM'])) { return null; } $ans = array(); foreach ($factors['SPM'] as $key => $value) { $inner_array = array(); $factor_info = Factor::findFirst($key); $inner_array['chs_name'] = $factor_info->chs_name; $factor_score_info = FactorAns::findFirst(array('factor_id = ?1 AND examinee_id =?2', 'bind' => array(1 => $key, 2 => $examinee_info->id))); $inner_array['std_score'] = intval($factor_score_info->std_score); $inner_array['score'] = $factor_score_info->score; //$inner_array['name'] = $factor_info->name; $ans[$factor_info->name] = $inner_array; } return $ans; }
public function factormanagerAction() { $oper = $this->request->getPost('oper', 'string'); if ($oper == 'edit') { $f_id = $this->request->getPost('f_id', 'int'); $ratio = $this->request->getPost('ratio', 'int'); $factor = Factor::findFirst($f_id); if (!$factor || is_null($f_id)) { echo "false"; return; } $factor->ratio = $ratio; if (!$factor->save()) { foreach ($factor->getMessages() as $message) { echo $message; } } } if ($oper == 'del') { $f_id = $this->request->getPost('id', 'int'); $factor = Factor::findFirst($f_id); if (!$factor->delete()) { foreach ($factor->getMessages() as $message) { echo $message; } } } }
private function isPrimeNumber($number) { return in_array($number, $this->factor->getPrimeNumbers()); }
/** * @type 不更改 * @method $rt->id $rt->name $rt->children * @usage 缓存根据因子名称查取到的因子详细记录 * @param string $factor_name */ public static function getFactorDetail($factor_name) { self::checkConnect(); return Factor::findFirst(array("name = :factor_name:", 'bind' => array('factor_name' => $factor_name), 'hydration' => \Phalcon\Mvc\Model\Resultset\Simple::HYDRATE_ARRAYS, 'cache' => array('key' => 'factor_detail_name_' . $factor_name))); }
public function showDepartment() { $id = Input::get('department-dropdown'); $level = 'department'; $levelName = DB::table('units')->select('unitname')->where('unitid', $id)->first()->unitname; //Factors names $factors = Factor::select('factorid', 'factorname')->get(); $factorNames = []; foreach ($factors as $factor) { $factorNames[$factor->factorid] = $factor->factorname; } $rawCorrelation[$level][1] = $this->corrEmployment($level, $id); if ($rawCorrelation[$level][1] < 0) { $correlation[$level][1] = -$rawCorrelation[$level][1]; } else { $correlation[$level][1] = $rawCorrelation[$level][1]; } $rawCorrelation[$level][2] = $this->corrGrades($level, $id); if ($rawCorrelation[$level][2] < 0) { $correlation[$level][2] = -$rawCorrelation[$level][2]; } else { $correlation[$level][2] = $rawCorrelation[$level][2]; } $rawCorrelation[$level][3] = $this->corrStbracket($level, $id); if ($rawCorrelation[$level][3] < 0) { $correlation[$level][3] = -$rawCorrelation[$level][3]; } else { $correlation[$level][3] = $rawCorrelation[$level][3]; } $rawCorrelation[$level][4] = $this->corrRegion($level, $id); if ($rawCorrelation[$level][4] < 0) { $correlation[$level][4] = -$rawCorrelation[$level][4]; } else { $correlation[$level][4] = $rawCorrelation[$level][4]; } $rawCorrelation[$level][6] = $this->corrUnits($level, $id); if ($rawCorrelation[$level][6] < 0) { $correlation[$level][6] = -$rawCorrelation[$level][6]; } else { $correlation[$level][6] = $rawCorrelation[$level][6]; } $rawCorrelation[$level][8] = $this->corrUnemployment($level, $id); if ($rawCorrelation[$level][8] < 0) { $correlation[$level][8] = -$rawCorrelation[$level][8]; } else { $correlation[$level][8] = $rawCorrelation[$level][8]; } $rawCorrelation[$level][7] = $this->corrHighGrades($level, $id); if ($rawCorrelation[$level][7] < 0) { $correlation[$level][7] = -$rawCorrelation[$level][7]; } else { $correlation[$level][7] = $rawCorrelation[$level][7]; } $rawCorrelation[$level][9] = $this->corrOverloading($level, $id); if ($rawCorrelation[$level][9] < 0) { $correlation[$level][9] = -$rawCorrelation[$level][9]; } else { $correlation[$level][9] = $rawCorrelation[$level][9]; } return View::make('correlation.correlation-specific', compact('rawCorrelation', 'correlation', 'levelName', 'factorNames', 'level')); }
public function getFactorGrideByLevel($factor_chs_name = null, $factor_name = null, $level_examines, $project_id) { #判断因子是index还是factor //按照中文名搜索 if (empty($factor_chs_name)) { $factor_info = Factor::findFirst(array("name = ?2", 'bind' => array(2 => $factor_name))); $search = 'Factor.name = ' . "'{$factor_name}'"; //按照英文名搜索 } else { $factor_info = Factor::findFirst(array("chs_name = ?2", 'bind' => array(2 => $factor_chs_name))); $search = 'Factor.chs_name = ' . "'{$factor_chs_name}'"; } if (isset($factor_info->id)) { //对各层次人群进行得分计算后返回 $rtn_array = array(); foreach ($level_examines as $level_array) { $result = $this->modelsManager->createBuilder()->columns(array('AVG(FactorAns.ans_score) as score'))->from('Examinee')->inwhere('Examinee.id', $level_array)->join('FactorAns', 'FactorAns.examinee_id = Examinee.id AND Examinee.type =0 AND Examinee.project_id = ' . $project_id)->join('Factor', 'FactorAns.factor_id = Factor.id AND ' . $search)->getQuery()->execute()->toArray(); if (empty($result[0]['score'])) { $score = 0; } else { $score = sprintf('%.2f', $result[0]['score']); } $rtn_array[] = $score; } return $rtn_array; } //按照中文名搜索 if (empty($factor_chs_name)) { $index_info = Index::findFirst(array(" name = ?2", 'bind' => array(2 => $factor_name))); $search = 'Index.name = ' . "'{$factor_name}'"; //按照英文名搜索 } else { $index_info = Index::findFirst(array("chs_name = ?2", 'bind' => array(2 => $factor_chs_name))); $search = 'Index.chs_name = ' . "'{$factor_chs_name}'"; } if (isset($index_info->id)) { $rtn_array = array(); foreach ($level_examines as $level_array) { $result = $this->modelsManager->createBuilder()->columns(array('AVG(IndexAns.score) as score'))->from('Examinee')->inwhere('Examinee.id', $level_array)->join('IndexAns', 'IndexAns.examinee_id = Examinee.id AND Examinee.type =0 AND Examinee.project_id = ' . $project_id)->join('Index', 'IndexAns.index_id = Index.id AND ' . $search)->getQuery()->execute()->toArray(); if (empty($result[0]['score'])) { $score = 0; } else { $score = sprintf('%.2f', $result[0]['score']); } $rtn_array[] = $score; } return $rtn_array; } throw new Exception('no this factor exist!' . print_r($factor_name)); }
/** * @usage input 因子名数组 * @return 所有分类下的因子数组 */ public static function getAllDividedFactors($factor_names) { $factors = array(); foreach ($factor_names as $factor_name) { $factor = Factor::findFirst(array('name=?1', 'bind' => array(1 => $factor_name))); $paper_name = Paper::findFirst($factor->paper_id)->name; $factors[$paper_name][$factor->id] = $factor_name; $children_type_array = explode(',', $factor->children_type); #因子至多两层 if (in_array(0, $children_type_array)) { $factor = explode(',', $factor->children); foreach ($factor as $value) { $zi_factor = Factor::findFirst(array('name=?1', 'bind' => array(1 => $value))); $factors[$paper_name][$zi_factor->id] = $value; } } } return $factors; }