コード例 #1
0
ファイル: paper.php プロジェクト: Vincent-Shen/origin
 /**
  * @description 更新试卷统计
  * @author
  * @final
  * @param int $id 试卷id
  */
 public function renew($id = 0)
 {
     $id = intval($id);
     $exam_id = ExamPaperModel::get_paper($id, 'exam_id');
     if (empty($exam_id)) {
         message('试卷不存在');
         return;
     }
     if (QuestionModel::paper_has_test_action($id)) {
         message('该试卷已经被考生考过 或者 正在被考中,因此无法操作');
         return;
     }
     $back_url = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : 'admin/paper/index/' . $exam_id;
     if (ExamPaperModel::renew($id)) {
         message('更新成功', $back_url);
     } else {
         message('更新失败');
     }
 }
コード例 #2
0
ファイル: exam_question.php プロジェクト: Vincent-Shen/origin
 /**
  * 试卷加入试题
  *
  * @param int $paper_id 试卷id
  * @param int $ques_ids 试题id
  * @return void
  */
 public function insert()
 {
     if (!$this->check_power('exam_manage')) {
         return;
     }
     $paper_id = intval($this->input->post('paper_id'));
     $ques_ids = trim($this->input->post('ques_ids'));
     if (empty($ques_ids)) {
         message('请选择要添加的试题');
         return;
     }
     $paper = ExamPaperModel::detail($paper_id);
     if (empty($paper)) {
         message('试卷不存在');
         return;
     }
     $exam = ExamModel::get_exam($paper['exam_id'], 'exam_pid,subject_id,grade_id,class_id');
     if (empty($exam)) {
         message('考试不存在');
         return;
     }
     //判断该试卷已经被考试过 或 正在被考
     $is_mini_test = ExamModel::is_mini_test($exam['exam_pid']);
     if (!$is_mini_test) {
         $be_tested = QuestionModel::paper_has_test_action($paper_id);
         if ($be_tested) {
             message('该试卷已经被考生考过 或者 正在被考, 无法修改');
         }
     }
     $ques_ids = my_intval(explode(',', $ques_ids));
     $this->check_total_score($paper_id, $ques_ids);
     $sql = "SELECT q.ques_id,q.group_id FROM {pre}question q,{pre}relate_class rc\n                WHERE q.ques_id=rc.ques_id AND q.subject_id={$exam['subject_id']} AND rc.grade_id={$exam['grade_id']}\n                AND rc.class_id={$exam['class_id']} AND q.ques_id IN (" . my_implode($ques_ids) . ")";
     $query = $this->db->query($sql);
     $inserts = array();
     $fail = $success = 0;
     $msg = array();
     foreach ($query->result_array() as $row) {
         if (in_array($row['ques_id'], $paper['ques_ids']) or $row['group_id'] && in_array($row['group_id'], $paper['group_ids'])) {
             $fail++;
             $msg[] = '该试卷同一试题已存在或者同一分组中的试题已存在!';
             continue;
         }
         $success++;
         $item = array('paper_id' => $paper['paper_id'], 'exam_id' => $paper['exam_id'], 'ques_id' => $row['ques_id']);
         $inserts[] = $item;
         $paper['ques_ids'][] = $row['ques_id'];
         if ($row['group_id']) {
             $paper['group_ids'][] = $row['group_id'];
         }
     }
     if ($inserts) {
         $this->db->insert_batch('exam_question', $inserts);
         ExamPaperModel::renew($paper_id);
         if ($is_mini_test) {
             SummaryModel::summary_paper($exam['exam_pid'], 0, $paper_id, true);
         }
     }
     $msg = '成功' . $success . '个,失败' . $fail . '个失败原因:<br>' . implode('<br>', $msg);
     message('试卷试题添加成功' . $msg, 'admin/exam_question/index/' . $paper_id);
 }
コード例 #3
0
ファイル: paper_diy.php プロジェクト: Vincent-Shen/origin
 /**
  * @description 批量删除试卷
  * @author
  * @final
  * @param int $ids 试卷id
  * @param int $exam_id 考试期次id
  */
 public function delete_batch()
 {
     $admin_info = $this->session->all_userdata();
     /* 录入人员 只能查看自己录入的题目 管理员可以看到所有题目 */
     $admin_id = $this->session->userdata('admin_id');
     if (!$admin_id) {
         message('获取管理员数据失败,请从新登陆后重试!');
     }
     $ids = $this->input->post('ids');
     if (empty($ids) or !is_array($ids)) {
         message('请选择要操作的项目!');
         return;
     }
     //print_r($ids) ;
     $tmp_ids = array();
     $count_success = 0;
     $count_fail = 0;
     foreach ($ids as $id) {
         $paper = PaperModel::get_paper_by_id($id);
         if (QuestionModel::paper_has_test_action($id) || $paper['admin_id'] != $admin_info['admin_id'] && !$admin_info['is_super'] || empty($paper)) {
             $count_fail++;
         } else {
             $count_success++;
             $tmp_ids[] = $id;
         }
     }
     $back_url = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : 'admin/paper_diy/index';
     if (count($tmp_ids) > 0) {
         $this->db->where_in('paper_id', $tmp_ids)->delete('exam_paper');
         admin_log('delete', 'exam_paper', implode(',', $tmp_ids));
     }
     message("批量操作完成,成功删除:" . $count_success . "个,失败:" . $count_fail . "个 (可能原因:这些试卷已经被考生考过 或者 正在被考中 或者试卷不存在 或者没有权限)。", $back_url);
 }