/** * A handler of each state. * @param int state code */ public function state($state) { eval(USER); $cm = new ContestModel(); $contest = $cm->getCurrentContest(); $contest = $contest[0]; $qm = new QuizModel(); $this->assign('contestname', $contest['name']); $this->assign('contest', $contest); $team = DBModel::getTeamDetail(DBModel::getTeamByUser(session('userid'))); $states = DBModel::selectDB('cernet_statepage'); $this->assign('statepage', $states[$state - 1]['html']); switch ($state) { case 1: // dump($qm); $this->assign('total', $qm->getTotalOnce()); $this->assign('pass', $qm->getPass()); break; case 2: $conf = array(); $conf['user_id'] = session('userid'); $conf['statecode'] = 0; $model = D('cernet_teammate'); $invitations = $model->where($conf)->select(); $list = array(); foreach ($invitations as $invitation) { array_push($list, DBModel::getFullInvitation($invitation)); } $this->assign('list', $list); $this->assign('invitation', json_encode($invitations)); case 3: // invitation $conf = array(); $conf['user_id'] = session('userid'); $conf['statecode'] = 0; $model = D('cernet_teammate'); $invitations = $model->where($conf)->select(); $teamsize = $cm->getTeamSize(); $list = array(); foreach ($invitations as $invitation) { array_push($list, DBModel::getFullInvitation($invitation)); } $this->assign('list', $list); $this->assign('invitation', json_encode($invitations)); // inteam $this->assign('inteam', DBModel::inteam(session('userid')) ? 1 : ''); // get the team $this->assign('teamname', $team['team']['name']); $this->assign('leadername', getNameById('cernet_user', $team['team']['leader'])); $this->assign('isleader', DBModel::isLeader(session('userid'))); $this->assign('teamsize', $teamsize); $contest = $cm->getCurrentContest(); $contest = $contest[0]; $model = D('cernet_user'); $team_id = DBModel::getTeamByUser(session('userid')); $map['cernet_teammate.statecode'] = array(array('neq', 1), array('exp', 'is NULL'), 'OR'); $map['cernet_teammate.team_id'] = array(array('neq', $team_id), array('exp', 'is NULL'), 'OR'); $map['cernet_user.statecode'] = array(array('gt', 1), array('lt', 4)); // $map['cernet_user.statecode'] = 3; $userlist = $model->join('LEFT JOIN cernet_teammate ON cernet_user.id = cernet_teammate.user_id')->where($map)->field('cernet_teammate.statecode,id,name')->select(); $model = D('cernet_teammate'); unset($map['cernet_teammate.statecode']); $map['cernet_teammate.team_id'] = $team_id; $map['cernet_user.id'] = array('NEQ', session('userid')); $candidate = $model->join('LEFT JOIN cernet_user ON cernet_user.id = cernet_teammate.user_id')->field('cernet_teammate.statecode,id,name')->where($map)->select(); // dump($map); // dump($candidate); // die(); $team = DBModel::getTeamDetail($team_id); $this->assign('banner', $cm->getBanner()); $this->assign('team', $team); $this->assign('userlist', json_encode($userlist)); $this->assign('candidate', json_encode($candidate)); $this->assign('teamsize', $cm->getTeamSize()); $this->assign('contest', $contest); $this->assign("less", "buildteam" . ".less"); break; case 4: $this->assign('team', $team); $this->assign('mates', $team['teammate']); break; case 5: $team_id = DBModel::getTeamByUser(session('userid')); $teamdetail = DBModel::getTeamDetail($team_id)['team']; $post['post_time'] = $teamdetail['post_time']; $post['post_company'] = $teamdetail['post_company']; $post['post_id'] = $teamdetail['post_id']; $post['post_status'] = $teamdetail['post_status']; $this->assign('post', $post); $this->assign('team', $team['team']); break; case 6: break; case 8: $this->assign('prize', $team['team']['prize']); break; case 7: $this->assign('team', $team); $this->assign('mates', $team['teammate']); break; } }
public function manage_quiz() { eval(ADMIN); $qm = new QuizModel(); $this->assign("begin_id", $qm->getBeginId()); $this->assign("end_id", $qm->getEndId()); $this->assign("stat_total_once", $qm->getTotalOnce()); $this->assign("stat_pass", $qm->getPass()); $list = $qm->showQuizlist(); $this->assign("quizlist", $list); $this->assign("stat_total", count($list)); $this->assign("less", __FUNCTION__ . ".less"); eval(NDSP); }