game2006api/webapp/mt/EventRanking.php
hujiabin 12d51341f2 1
2022-11-22 17:44:55 +08:00

80 lines
2.2 KiB
PHP

<?php
namespace mt;
class EventRanking
{
public static function find($id){
$arr = array();
foreach (self::getMetaList() as $meta) {
if ($meta['id'] == $id ){
$arr = $meta;
}
}
return $arr;
}
public static function findByWaveOrType($wave,$type){
$arr = array();
foreach (self::getMetaList() as $meta) {
if ($meta['wave'] == $wave && $meta['themeType'] == $type ){
$arr = $meta;
}
}
return $arr;
}
public static function getEventRankingList(){
$currentMeta = self::getCurrentRanking();
$wave = $currentMeta?$currentMeta['wave']:1;
$list = array();
foreach (self::getMetaList() as $meta) {
if ($meta['wave'] == $wave){
array_push($list,self::setState($meta));
}
}
return $list;
}
public static function getCurrentRanking()
{
foreach (self::getMetaList() as $meta) {
if (myself()->_getNowTime() >= strtotime($meta['startTime']) &&
myself()->_getNowTime() <= strtotime($meta['endTime'])) {
return $meta;
}
}
return null;
}
protected static function setState($meta){
$row = array(
'id' => $meta['id'],
'wave' => $meta['wave'],
'themeType' => $meta['themeType'],
'themeName' => $meta['themeName'],
'startTime' => strtotime($meta['startTime']),
'endTime' => strtotime($meta['endTime']),
);
$now = myself()->_getNowTime();
switch ($now){
case $now < strtotime($meta['startTime'] ) : $row['status'] = 2;break;
case $now >= strtotime($meta['startTime']) && $now <= strtotime($meta['endTime']) : $row['status'] = 1;break;
case $now >= strtotime($meta['endTime']) : $row['status'] = 0;break;
}
return $row;
}
protected static function getMetaList()
{
if (!self::$metaList) {
self::$metaList = getMetaTable('eventRanking@EventRanking.php');
}
return self::$metaList;
}
protected static $metaList;
}