コード例 #1
0
ファイル: general_model.php プロジェクト: Vincent-Shen/origin
 /**
  * 生成测试报告
  */
 public function general_report()
 {
     $this->load->model('demo/report/subject_question_model', 'sq_model');
     $this->load->model('demo/report/subject_suggest_model', 'ss_model');
     $now = time();
     //考试期次
     $userdata = $this->session->all_userdata();
     //检查该考试是否已经考完 && 作弊
     if (!isset($userdata['report_mark'])) {
         return false;
     }
     list($exam_pid, $subject_id, $uid, $exam_id) = explode('_', $userdata['report_mark']);
     $subject_name = C('subject/' . $subject_id);
     $filepath = $this->_get_cache_root_path() . "/html/demo_report/{$exam_pid}/{$uid}/{$subject_id}.html";
     if (file_exists($filepath)) {
         return true;
     }
     try {
         //生成成绩
         //require_once ('exam.php');
         //$exam_cron = new Exam();
         //$exam_cron->cal_test_score($exam_pid, $uid);
         $result = ExamstatModel::calStudentResults($exam_pid, $uid);
         if (!$result) {
             return false;
         }
         //统计报告所需数据
         $result = SummaryModel::summary_demo($exam_pid, $uid);
         if (!$result) {
             return false;
         }
         //检查该学生是否作弊 & 正在考中
         $sql = "select etp_flag, full_score, test_score \n\t\t\t         from {pre}exam_test_paper \n\t\t\t         where exam_pid={$exam_pid} and subject_id={$subject_id} and uid={$uid}";
         $result = $this->db->query($sql)->row_array();
         if (isset($result['etp_flag']) && $result['etp_flag'] != '2') {
             return false;
         }
         $data = array();
         $data['subject_name'] = $subject_name;
         $data['test_score'] = $result['test_score'];
         $data['full_score'] = $result['full_score'];
         //试题分析及与之对应的评价
         $data['sq_all'] = $this->sq_model->get_all($exam_id, $uid);
         //知识点
         //诊断及建议
         $data['ss_summary'] = $this->ss_model->module_summary($exam_id, $uid);
         //总体水平等级和排名
         $data['ss_application_situation'] = $this->ss_model->module_application_situation($exam_id, $uid);
         //总体水平等级和排名
         $output = $this->load->view('../demo/report/subject', $data, true);
         //保存html模板
         $res = $this->_put_html_content($exam_pid, $subject_id, $uid, $output);
         return $res;
     } catch (Exception $e) {
         return false;
     }
 }