Example #1
0
 public function index()
 {
     Fn::ajax_call($this, 'removeExamRelate', 'setExamRelateFlag');
     $data = array();
     $cond_param = array('er_exampid' => 0);
     $size = 15;
     $page = isset($_GET['page']) && intval($_GET['page']) > 1 ? intval($_GET['page']) : 1;
     $offset = ($page - 1) * $size;
     $list = array();
     $total = ZmossModel::examRelatelistCount($cond_param);
     if ($total) {
         $list = ZmossModel::examRelatelist($cond_param, $page, $size);
         $er_exampid = array();
         foreach ($list as $k => $val) {
             $er_exampid[] = $val['er_examid'];
             unset($list[$k]);
             $list[$val['er_examid']] = $val;
         }
         $cond_param['er_exampid'] = implode(',', $er_exampid);
         $list2 = ZmossModel::examRelatelist($cond_param);
         $zmoss_examid = array();
         foreach ($list2 as $item) {
             $list[$item['er_exampid']]['child'][] = $item;
             $zmoss_examid[] = $list[$item['er_exampid']]['er_zmoss_examid'];
         }
         $zmoss_examid = array_unique($zmoss_examid);
         $data['examrelatelist'] = ZmossModel::examlist('*', array('exam_id' => implode(',', $zmoss_examid)));
     }
     $data['list'] = $list;
     $data['admin_list'] = CpUserModel::get_cpuser_list();
     // 分页
     $purl = site_url('admin/zmoss/index/');
     $data['pagination'] = multipage($total, $size, $page, $purl);
     $data['er_flag'] = array('未同步', '进行中', '同步失败', '同步成功');
     $data['is_setexamrelate_priv'] = $this->check_power_new('zmoss_setexamrelate', false);
     $data['is_setexamrelatequestion_priv'] = $this->check_power_new('zmoss_setexamrelatequestion', false);
     $data['is_sync_result_priv'] = $this->check_power_new('zmoss_sync', false);
     $data['is_remove_priv'] = $this->check_power_new('zmoss_remove', false);
     $data['is_showresult_priv'] = $this->check_power_new('exam_index', false);
     // 模版
     $this->load->view('zmoss/index', $data);
 }
 /**
  * 听力题-预览
  *
  * @return void
  */
 public function correct($parent_id = 0)
 {
     // 读取题干信息
     $parent_id = intval($parent_id);
     $this->examine_permission($parent_id);
     $parent_id && ($parent = QuestionModel::get_question($parent_id));
     if (empty($parent) or !$parent['is_parent']) {
         message('改错题不存在!');
         exit;
     }
     if (!QuestionModel::check_question_power($parent_id, 'r')) {
         return;
     }
     //判断该试题已经被考试过 或 正在被考
     $parent['be_tested'] = QuestionModel::question_has_test_action($parent_id);
     $grades = C('grades');
     $qtypes = C('qtype');
     $subjects = CpUserModel::get_allowed_subjects();
     $subject_types = C('subject_type');
     // 类型、学科属性(文理科)、难易度
     $class_list = ClassModel::get_class_list();
     $show_subject_type = $parent['subject_id'] <= 3 && $parent['end_grade'] >= 11;
     $class_names = array();
     $query = $this->db->get_where('relate_class', array('ques_id' => $parent_id));
     foreach ($query->result_array() as $arr) {
         $subject_type = $show_subject_type ? ' , ' . $subject_types[$arr['subject_type']] : '';
         $class_names[$arr['grade_id']][] = isset($class_list[$arr['class_id']]['class_name']) ? $class_list[$arr['class_id']]['class_name'] . '[难易度:' . $arr['difficulty'] . $subject_type . ']' : '';
     }
     $parent['class_names'] = $class_names;
     // 技能
     $skill_ids = explode(',', trim($parent['skill'], ','));
     $arr_tmp = array();
     if ($skill_ids) {
         $query = $this->db->select('skill_name')->where_in('id', $skill_ids)->get('skill');
         foreach ($query->result_array() as $row) {
             $arr_tmp[] = $row['skill_name'];
         }
     }
     $parent['skill_name'] = implode(',', $arr_tmp);
     $parent['count_subject_method_tactics'] = $this->_count_subject_method_tactics($parent['subject_id']);
     // 知识点
     $knowledge_ids = explode(',', trim($parent['knowledge'], ','));
     $arr_tmp = array();
     if ($knowledge_ids) {
         $query = $this->db->select('knowledge_name')->where_in('id', $knowledge_ids)->get('knowledge');
         foreach ($query->result_array() as $row) {
             $arr_tmp[] = $row['knowledge_name'];
         }
     }
     $parent['knowledge_name'] = implode(',', $arr_tmp);
     $parent['start_grade'] = isset($grades[$parent['start_grade']]) ? $grades[$parent['start_grade']] : '';
     $parent['end_grade'] = isset($grades[$parent['end_grade']]) ? $grades[$parent['end_grade']] : '';
     $parent['subject_name'] = isset($subjects[$parent['subject_id']]) ? $subjects[$parent['subject_id']] : '';
     $parent['addtime'] = date('Y-m-d H:i', $parent['addtime']);
     $parent['title'] = str_replace("\n", '<br/>', $parent['title']);
     /** ---------------- 真题 ----------------- */
     if ($parent['is_original'] == 2) {
         $relateds = $this->db->query("select ques_id from {pre}question where related={$parent_id}")->result_array();
         if (count($relateds) > 0) {
             $parent['relateds'] = $relateds;
         }
     } elseif ($parent['related']) {
         $related = $parent['related'];
         $relateds = $this->db->query("select ques_id from {pre}question where related={$related}")->result_array();
         if (count($relateds) > 0) {
             $parent['relateds'] = $relateds;
         }
     }
     $cpusers = CpUserModel::get_cpuser_list();
     // 读取子题信息
     $query = $this->db->select('ques_id,type,title,picture,answer,knowledge,method_tactic,group_type,admin_id,addtime')->get_where('question', array('parent_id' => $parent_id, 'is_delete' => 0));
     $list = $query->result_array();
     foreach ($list as &$row) {
         $row['cpuser'] = isset($cpusers[$row['admin_id']]['realname']) ? $cpusers[$row['admin_id']]['realname'] : '';
         $row['addtime'] = date('Y-m-d H:i:s', $row['addtime']);
         $query = $this->db->get_where('option', array('ques_id' => $row['ques_id']));
         $row['options'] = $query->result_array();
         foreach ($row['options'] as $key => $arr) {
             $row['options'][$key]['is_answer'] = in_array($arr['option_id'], explode(',', $row['answer']));
         }
         // 知识点
         $query = $this->db->select('k.knowledge_name, rk.knowledge_id, rk.know_process')->from('relate_knowledge rk')->join('knowledge k', 'rk.knowledge_id=k.id', 'left')->where_in('rk.ques_id', $row['ques_id'])->get();
         $knowledge_arr = array();
         foreach ($query->result_array() as $arr) {
             $knowledge_arr[] = $arr['knowledge_name'] . '(认知过程:' . C('know_process/' . $arr['know_process']) . ')';
         }
         $row['knowledge_name'] = count($knowledge_arr) ? implode(',', $knowledge_arr) : '<font style="font-size:15px;color:red;">该子题还未添加知识点</font>';
         //方法策略
         $query = $this->db->select('mt.name')->from('relate_method_tactic rmt')->join('method_tactic mt', 'rmt.method_tactic_id=mt.id', 'left')->where('rmt.ques_id', $row['ques_id'])->get();
         $method_tactic_arr = array();
         foreach ($query->result_array() as $arr) {
             $method_tactic_arr[] = $arr['name'];
         }
         $method_tactic_arr = array_filter($method_tactic_arr);
         $row['method_tactic_name'] = implode(',', $method_tactic_arr);
         if ($row['group_type']) {
             $query = $this->db->select('gt.group_type_name')->from('relate_group_type rgt')->join('group_type gt', 'rgt.group_type_id=gt.id', 'left')->where('rgt.ques_id', $row['ques_id'])->get();
             $group_type_arr = array();
             foreach ($query->result_array() as $arr) {
                 $group_type_arr[] = $arr['group_type_name'];
             }
             $group_type_arr = array_filter($group_type_arr);
             $row['group_type_name'] = implode(',', $group_type_arr);
         }
     }
     // 读取子题信息(已删除)
     $query = $this->db->select('ques_id,type,title,picture,answer,admin_id,addtime')->get_where('question', array('parent_id' => $parent_id, 'is_delete' => 1));
     $list2 = $query->result_array();
     foreach ($list2 as &$row) {
         $row['cpuser'] = isset($cpusers[$row['admin_id']]['realname']) ? $cpusers[$row['admin_id']]['realname'] : '';
         $row['addtime'] = date('Y-m-d H:i:s', $row['addtime']);
         $query = $this->db->get_where('option', array('ques_id' => $row['ques_id']));
         $row['options'] = $query->result_array();
     }
     $data['qtypes'] = $qtypes;
     $data['grades'] = $grades;
     $data['parent'] = $parent;
     $data['list'] = $list;
     $data['list2'] = $list2;
     // 模版
     $this->load->view('question_external/correct', $data);
 }
Example #3
0
 public function group($group_id = 0)
 {
     if (!$this->check_power('question_manage')) {
         return;
     }
     $group_id = intval($group_id);
     if ($group_id) {
         $query = $this->db->get_where('relate_group', array('group_id' => $group_id));
         $group = $query->row_array();
     }
     if (empty($group)) {
         $site_url = site_url('/admin/question/index');
         header("location: {$site_url}");
         // message('关联分组不存在。','/admin/question/index');
         return;
     }
     $cpusers = CpUserModel::get_cpuser_list();
     // 加载分类数据
     $class_list = ClassModel::get_class_list();
     $subjects = CpUserModel::get_allowed_subjects();
     $grades = C('grades');
     $qtypes = C('qtype');
     $periods = C('grade_period');
     $langs = C('interview_lang');
     $types = C('interview_type');
     $list_ques = $list_interview = array();
     $query = $this->db->get_where('question', array('group_id' => $group_id, 'parent_id' => 0, 'is_delete' => 0));
     foreach ($query->result_array() as $row) {
         $row_cids = explode(',', trim($row['class_id'], ','));
         $row_cname = array();
         foreach ($row_cids as $cid) {
             $row_cname[] = isset($class_list[$cid]['class_name']) ? $class_list[$cid]['class_name'] : '';
         }
         $row['class_name'] = implode(',', $row_cname);
         $row['start_grade'] = isset($grades[$row['start_grade']]) ? $grades[$row['start_grade']] : '';
         $row['qtype'] = isset($qtypes[$row['type']]) ? $qtypes[$row['type']] : '';
         $row['end_grade'] = isset($grades[$row['end_grade']]) ? $grades[$row['end_grade']] : '';
         $row['subject_name'] = isset($subjects[$row['subject_id']]) ? $subjects[$row['subject_id']] : '';
         $row['addtime'] = date('Y-m-d H:i', $row['addtime']);
         $row['cpuser'] = isset($cpusers[$row['admin_id']]['realname']) ? $cpusers[$row['admin_id']]['realname'] : '';
         $row['has_edit_power'] = QuestionModel::check_question_power($row['ques_id'], 'w', false);
         //判断该试题已经被考试过 或 正在被考
         $row['be_tested'] = QuestionModel::question_has_test_action($row['ques_id']);
         $list_ques[] = $row;
     }
     $query2 = $this->db->get_where('interview_question', array('group_id' => $group_id, 'is_delete' => 0));
     foreach ($query2->result_array() as $row) {
         // 类型
         $row_cids = explode(',', trim($row['class_id'], ','));
         $row_cname = array();
         foreach ($row_cids as $cid) {
             $row_cname[] = isset($class_list[$cid]['class_name']) ? $class_list[$cid]['class_name'] : '';
         }
         // 年段
         $row_pids = explode(',', trim($row['grade_period'], ','));
         $row_pname = array();
         foreach ($row_pids as $pid) {
             $row_pname[] = isset($periods[$pid]) ? $periods[$pid] : '';
         }
         $row['class_name'] = implode(',', $row_cname);
         $row['period_name'] = implode(',', $row_pname);
         $row['language'] = isset($langs[$row['lang']]) ? $langs[$row['lang']] : '';
         $row['type_name'] = isset($types[$row['interview_type']]['type_name']) ? $types[$row['interview_type']]['type_name'] : '';
         $row['addtime'] = date('Y-m-d H:i', $row['addtime']);
         $row['cpuser'] = isset($cpusers[$row['admin_id']]['realname']) ? $cpusers[$row['admin_id']]['realname'] : '';
         $list_interview[] = $row;
     }
     $priv = array('delete_question' => $this->check_power('question_delete', FALSE), 'delete_interview_question' => $this->check_power('invterview_question_delete', FALSE));
     $data['group_id'] = $group_id;
     $data['list_ques'] = $list_ques;
     $data['list_interview'] = $list_interview;
     $data['priv'] = $priv;
     $data['has_edit_power'] = QuestionModel::check_question_power($group['group_name'], 'w', false);
     $data['has_interview_question_manage'] = $this->check_power('interview_question_manage', false);
     // 模版
     $this->load->view('relate_group/group', $data);
 }
Example #4
0
 /**
  * @description    管理员操作日志列表
  * @author                
  * @final                 
  * @param int $admin_id 管理员id
  * @param date $begin_time 开始时间
  * @param date $end_time 结束时间
  */
 public function index()
 {
     if (!$this->check_power('admin_log_list')) {
         return;
     }
     $cpusers = CpUserModel::get_cpuser_list();
     // 查询条件
     $where = array();
     $param = array();
     $search = array();
     if ($search['admin_id'] = intval($this->input->get('admin_id'))) {
         $where[] = "admin_id='{$search['admin_id']}'";
         $param[] = "admin_id={$search['admin_id']}";
     }
     // 操作时间
     $begin_time = $this->input->get('begin_time');
     $end_time = $this->input->get('end_time');
     if ($btime = (int) strtotime($begin_time)) {
         $search['begin_time'] = $begin_time;
         $where[] = "log_time >= {$btime}";
         $param[] = "begin_time={$begin_time}";
     }
     if ($etime = (int) strtotime($end_time)) {
         $etime += 86400;
         $search['end_time'] = $end_time;
         $where[] = "log_time < {$etime}";
         $param[] = "end_time={$end_time}";
     }
     $where = $where ? implode(' AND ', $where) : ' 1 ';
     /*
      * 统计当前数据条数
      */
     $sql = "SELECT COUNT(id) nums FROM {pre}admin_log WHERE {$where}";
     $res = $this->db->query($sql);
     $row = $res->row_array();
     $total = $row['nums'];
     /*
      * 分页读取数据列表,并处理相关数据
      */
     $size = 15;
     $page = isset($_GET['page']) && intval($_GET['page']) > 1 ? intval($_GET['page']) : 1;
     $offset = ($page - 1) * $size;
     $list = array();
     if ($total) {
         $sql = "SELECT *\n                    FROM {pre}admin_log \n                    WHERE {$where} ORDER BY id DESC LIMIT {$offset},{$size}";
         $res = $this->db->query($sql);
         foreach ($res->result_array() as $row) {
             $row['admin_user'] = isset($cpusers[$row['admin_id']]['admin_user']) ? $cpusers[$row['admin_id']]['admin_user'] : '';
             $row['log_time'] = date('Y-m-d H:i:s', $row['log_time']);
             $list[] = $row;
         }
     }
     $data['list'] = $list;
     // 分页
     $purl = site_url('admin/admin_log/index') . ($param ? '?' . implode('&', $param) : '');
     $data['pagination'] = multipage($total, $size, $page, $purl);
     $data['cpusers'] = $cpusers;
     $data['search'] = $search;
     // 模版
     $this->load->view('admin_log/index', $data);
 }