<?php /** * 微信手机端跳转 * Auth:Xtong * Date:2017年06月02日 */ namespace Frontend\Controller\Index; use Common\Common\Cache; use Common\Service\AnswerService; use Common\Service\PaperService; class MsgController extends \Common\Controller\Frontend\AbstractController { /** 不是必须登录 @var string $_require_login */ protected $_require_login = false; public function Index() { $params = I('get.'); // 批阅列表 if (PaperService::MARKING_MSG == $params['marking_type']) { // 批阅列表 redirectFront('/app/page/exam/exam-approval-list', array('_identifier' => APP_IDENTIFIER, 'ep_id' => $params['ep_id'])); } // 待批阅 if (PaperService::MARKING_USER_MSG == $params['marking_type']) { // 待批阅 redirectFront('/app/page/exam/exam-approval-start', array('_identifier' => APP_IDENTIFIER, 'ea_id' => $params['ea_id'], 'ep_id' => $params['ep_id'], 'exam_type' => $params['exam_type'])); } // 初始化缓存信息 $paper_info = []; // 实例化缓存 $cache =& Cache::instance(); try { // 获取当前试卷缓存信息 $paper_info = $cache->get('Common.Exam_wx_' . $params['ep_id']); } catch (\Think\Exception $e) { \Think\Log::record($e); } catch (\Exception $e) { \Think\Log::record($e); } // 如果缓存不存在 if (empty($paper_info)) { // 试卷表初始化 $paper_service = new PaperService(); // 获取试卷详情 $paper_info = $paper_service->get($params['ep_id']); // 如果没有缓存新增缓存 $cache->set('Common.Exam_wx_' . $params['ep_id'], $paper_info, 7200); } // 如果已参与跳转已参与详情 未参与跳转未参与详情 $service = new AnswerService(); $conds = array('ep_id' => $params['ep_id'], 'uid' => $this->uid, 'my_time > ?' => 0); // 详情 $list = $service->list_by_conds($conds, [0, 1], ['my_score' => 'DESC']); // 获取试卷状态 $ep_status = $service->paper_status($paper_info['exam_status'], $paper_info['begin_time'], $paper_info['end_time']); // 未作答 if (empty($list)) { redirectFront('app/page/exam/exam-start', array('_identifier' => APP_IDENTIFIER, 'ep_id' => $params['ep_id'], 'ep_status' => $ep_status)); } $info = $list[0]; // 测评试卷 if (PaperService::EVALUATION_PAPER_TYPE == $paper_info['paper_type']) { // 如果是手动阅卷且没有阅卷 if (PaperService::MANUAL_MARKING_TYPE == $paper_info['marking_type'] && $info['answer_status'] < PaperService::READ_OVER ) { // 已作答测评详情 redirectFront('app/page/exam/exam-scoring', array( '_identifier' => APP_IDENTIFIER, 'ep_id' => $params['ep_id'] )); } // 已作答测评详情 redirectFront('app/page/exam/exam-result', array( '_identifier' => APP_IDENTIFIER, 'ea_id' => !empty($params['ea_id']) ? $params['ea_id'] : $info['ea_id'], 'pageType' => 'going', 'ep_status' => $ep_status, 'ep_id' => $params['ep_id'] )); } // 模拟 if (PaperService::SIMULATION_PAPER_TYPE == $paper_info['paper_type']) { // 已作答模拟 redirectFront('app/page/exam/exam-test-record', array('_identifier' => APP_IDENTIFIER, 'ep_id' => $params['ep_id'], 'ep_status' => $ep_status)); } } }