game2006api/webapp/controller/AnncController.class.php
hujiabin fde8b72a8b 1
2024-08-19 17:29:43 +08:00

46 lines
1.4 KiB
PHP

<?php
use phpcommon\SqlHelper;
class AnncController extends BaseController {
const ANNC_REDIS_KEY = 'annc_redis_key:';
public function getAnnc()
{
$redis = myself()->_getRedis(self::ANNC_REDIS_KEY);
if ($redis->exists(self::ANNC_REDIS_KEY)){
$data = json_decode($redis->get(self::ANNC_REDIS_KEY),true);
}else{
$data = $this->_findAnnc();
if ($data){
$redis->set(self::ANNC_REDIS_KEY,json_encode($data));
$redis->pexpire(self::ANNC_REDIS_KEY , max(0, min(15, myself()->_getNowTime() - $data['end_time'])) * 1000);
}
}
myself()->_rspData($data);
}
private function _findAnnc(){
$seconds = myself()->_getNowTime() - myself()->_getNowDaySeconds();
$data = array();
$row = myself()->_getConfDbMysql()->execQueryOne(
'SELECT * FROM t_game_annc WHERE :nowtime >= begin_date AND :nowtime <= end_date AND is_open = 1 AND :seconds >= begin_time AND :seconds <= end_time',
array(
':nowtime' => myself()->_getNowTime(),
':seconds' => $seconds,
)
);
if ($row){
$data = array(
'id' => $row['uniid'],
'title' => $row['title'],
'content' => $row['content'],
'end_time' => $row['end_time']
);
}
return $data;
}
}