/** * 获取某期考试 按照地域 归档的考生id * note: * 关联表: rd_exam_place rd_school */ private static function _get_exam_students($exam_pid = 0, $uid = 0) { $exam_pid = intval($exam_pid); if (!$exam_pid) { return array(); } if (self::$_exam_student_data) { return self::$_exam_student_data; } $data = array(); $db = Fn::db(); //自由考试根据评估规则对比等级生成统计信息 $sql = "SELECT comparison_level FROM rd_evaluate_rule er\n LEFT JOIN rd_exam e ON e.exam_id = er.exam_pid\n WHERE er.exam_pid = {$exam_pid} AND e.exam_isfree = 1"; $comparison_level = $db->fetchOne($sql); if (strlen($comparison_level) > 0) { $comparison_level = explode(',', $comparison_level); } else { $sql = "SELECT eps.uid, ep.place_schclsid FROM rd_exam_place ep\n LEFT JOIN rd_exam_place_student eps ON eps.place_id = ep.place_id\n WHERE exam_pid = {$exam_pid} AND ep.place_schclsid > 0\n " . ($uid ? "AND eps.uid = {$uid}" : ''); $uid_class = $db->fetchPairs($sql); } $sql = "SELECT * FROM v_summary_region_exam_student\n WHERE exam_pid={$exam_pid}\n " . ($uid ? "AND uid = {$uid}" : ''); $query = $db->query($sql); while ($item = $query->fetch(PDO::FETCH_ASSOC)) { if ($comparison_level) { if (in_array(0, $comparison_level) || in_array(-1, $comparison_level)) { $data[$item['exam_id']][1][] = $item['uid']; } if (in_array(1, $comparison_level)) { $data[$item['exam_id']][$item['province']][] = $item['uid']; } if (in_array(2, $comparison_level)) { $data[$item['exam_id']][$item['city']][] = $item['uid']; } if (in_array(3, $comparison_level)) { $data[$item['exam_id']][$item['area']][] = $item['uid']; } if (in_array(100, $comparison_level)) { $data[$item['exam_id']]['school' . $item['school_id']][] = $item['uid']; } } else { $data[$item['exam_id']][1][] = $item['uid']; $data[$item['exam_id']][$item['province']][] = $item['uid']; $data[$item['exam_id']][$item['city']][] = $item['uid']; $data[$item['exam_id']][$item['area']][] = $item['uid']; $data[$item['exam_id']]['school' . $item['school_id']][] = $item['uid']; if (isset($uid_class[$item['uid']]) && $uid_class[$item['uid']] > 0) { $data[$item['exam_id']]['class' . $uid_class[$item['uid']]][] = $item['uid']; } } } self::$_exam_student_data = $data; return $data; }