toArray();
$school_no = isset($ARY_KEYCLOAK_USER['preferred_username']) ? $ARY_KEYCLOAK_USER['preferred_username'] : '';
$IS_CAN_UPDATE_PRIVATE_SCORE = in_array($school_no, array('vansindata1', 'kyoyachuan0626@gmail.com'));
?>
get_results($sql);
foreach($a as$row_){
$fn = ABSPATH.'competition_data/team/'.$row_->upload_filepath.'.csv';
if(!file_exists($fn)){continue;}
$s = file_get_contents($fn);
if(!$s){die('WHY ' . $row_->upload_id . ' have no content?');}
$tmp_content = $s;
#step1: 50%publish 100%private (not 50%private after 2018.3.31 18:00 new rule)
$a = preg_split("/(\r\n|\n|\r)/", file_get_contents(COMPETITION_DATA_FILEPATH));
$ary_official_data1 = array();
$ary_official_data2 = array();
foreach($a as$k=>$row){
$v = explode(',', $row);
if(0===preg_match('/^[0-9]+$/',$v[0])){continue;}
$key = $v[0].$v[1];
$val = $v[2];
if($k<=$HALF_of_ary_user_ids_MUST-1
+1 # because the first row is fields head, not data.
){
$ary_official_data1[$key] = $val; #key is {userid}{2018-03-16}; value is float
}
$ary_official_data2[$key] = $val; #key is {userid}{2018-03-16}; value is float
}
#if(count($ary_official_data1)!=count($ary_official_data2)){
# #echo count($ary_official_data1);echo'
'; echo count($ary_official_data2);echo'
';echo$HALF_of_ary_user_ids_MUST;
# die('官方資料有誤,ERROR: 123。');
#}
#var_dump(count($ary_official_data2));
#var_dump(count($ary_user_ids_MUST));
if(count($ary_official_data2)!=count($ary_user_ids_MUST)){
die('ERROR: 123');
}
$a = preg_split("/(\r\n|\n|\r)/",$tmp_content);
$ary_upload_data1 = array();
$ary_upload_data2 = array();
foreach($a as$k=>$row){
$v = explode(',',$row);
if(0===preg_match('/^[0-9]+$/',$v[0])){continue;}
$key = $v[0].$v[1];
$key = $v[0].$v[1];
$val = $v[2];
if($k<=$HALF_of_ary_user_ids_MUST-1
+1 # because the first row is fields head, not data.
){
$ary_upload_data1[$key] = $val; #key is {userid}{date}; value is float
}
$ary_upload_data2[$key] = $val; #key is {userid}{date}; value is float
}
#if(count($ary_upload_data1)!=count($ary_upload_data2)){
# die('上傳的資料有誤,請確認第一行為欄位而非資料,請確認資料數共'.count($ary_user_ids_MUST).'筆,請確認共'.(count($ary_user_ids_MUST)+1).'行(含欄位),ERROR: 456。');
#}
#var_dump(count($ary_upload_data2));
#var_dump(count($ary_user_ids_MUST));
if(count($ary_upload_data2)!=count($ary_user_ids_MUST)){
die('ERROR: 456');
}
#step2: calculate publish score / private score
foreach(range(1,2)as$V){
$ary_official_data = ${'ary_official_data'.$V};
$ary_upload_data = ${'ary_upload_data'.$V};
$ary_diff_then_pow = array();
foreach($ary_upload_data as$idx=>$val){
$ary_diff_then_pow[] = pow($ary_upload_data[$idx] - $ary_official_data[$idx], 2);
}
$mean = array_sum($ary_diff_then_pow) / count($ary_diff_then_pow);
$score = pow($mean,0.5);
if($V==1){
$publish_score = $score;
}elseif($V==2){
$private_score = $score;
}
}
echo implode(' , ', array($row_->upload_id, $row_->upload_filepath, $publish_score, $private_score, '
'));
$wpdb->update(TBL_COMPETITION_UPLOAD, array('publish_score'=>$publish_score, 'private_score'=>$private_score), array('upload_id'=>$row_->upload_id));
}
?>