function getOutNumbers($type) { $arr = $this->where(array('type' => $type))->select(); $re = get_new_array($arr, 'number'); if (count($re) < 1) { $re[0] = 0; } return $re; }
public function getGrades() { if ($gs = S('grades')) { return $gs; } $gs = $this->field('grade')->group('grade')->select(); S('grades', get_new_array($gs, 'grade')); return S('grades'); }
function getRank($type, $limit = 10, $order = "score DESC") { $map = array('type' => $type); if (isset($_GET['grade']) && in_array($_GET['grade'], D('User')->getGrades())) { $map['grade'] = $_GET['grade']; } $arr = $this->where($map)->order($order)->limit($limit)->select(); $nos = get_new_array($arr, 'number'); if (count($nos) > 0) { $users = D('User')->where(array('number' => array('in', $nos)))->select(); $this->setAvatarSession($users); $re = array(); foreach ($users as $user) { foreach ($arr as $v) { if ($user['number'] == $v['number']) { $user['score'] = $v['score']; break; } } $re[] = $user; } usort($re, "cmp"); return $re; } return array(); }
function rank() { if (isset($_GET['type'])) { $type = $_GET['type']; $types = D('ScoreField')->getScoreFields(); if (in_array($type, get_new_array($types, 'name'))) { $order = "score DESC"; if (isset($_GET['order']) && $_GET['order'] != 'desc') { $order = "score ASC"; } $sum = 12; if (session('admin') != null && isset($_GET['sum']) && $_GET['sum'] > 0) { $sum = $_GET['sum']; } $users = D('Score')->getRank($type, $sum, $order); $this->assign('users', $users); $this->display(); } } else { redirect(U('Index/index')); } }