add controler base class

This commit is contained in:
aozhiwei 2021-01-04 13:39:40 +08:00
parent 211c970f1e
commit 1247efbd8d
3 changed files with 118 additions and 1 deletions

@ -1 +1 @@
Subproject commit 2ca4273f80ca9a19ddd282e331229ea1b853d372 Subproject commit 13021c7c51fbbbfad8e2d423a663d4f3801e681a

View File

@ -0,0 +1,80 @@
<?php
class BaseAuthedController extends BaseController {
private $accountId = '';
private $sessionId = '';
private $mysqlConn = null;
public function handlePre()
{
$this->accountId = $_REQUEST['account_id'];
$this->sessionId = $_REQUEST['session_id'];
if (!phpcommon\isValidSessionId($this->accountId,
$this->sessionId)) {
phpcommon\sendError(500, '无效的session_id');
die();
}
}
protected function getAccountId()
{
return $this->accountId;
}
protected function getChannel()
{
return phpcommon\extractChannel($this->getAccountId());
}
protected function getSessionId()
{
return $this->sessionId;
}
protected function getRegisterTime()
{
$registertime = phpcommon\extractRegisterTimeFromSessionId($this->sessionId);
return $registertime;
}
protected function getMysql($data)
{
$mysql_conf = getMysqlConfig(crc32($data));
$conn = new phpcommon\Mysql(array(
'host' => $mysql_conf['host'],
'port' => $mysql_conf['port'],
'user' => $mysql_conf['user'],
'passwd' => $mysql_conf['passwd'],
'dbname' => DBNAME_PREFIX . $mysql_conf['instance_id']
));
return $conn;
}
protected function getSelfMysql()
{
if (!$this->mysqlConn) {
$this->mysqlConn = $this->getMysql($this->getAccountId());
}
return $this->mysqlConn;
}
protected function getRedis($data)
{
$redis_conf = getRedisConfig(crc32($data));
$r = new phpcommon\Redis(array(
'host' => $redis_conf['host'],
'port' => $redis_conf['port'],
'passwd' => $redis_conf['passwd']
));
return $r;
}
protected function isValidSex($sex)
{
return in_array($sex, array(0, 1, 2));
}
}

View File

@ -0,0 +1,37 @@
<?php
require 'phpcommon/sqlhelper.php';
class BaseController {
private $nowtime = 0;
function __construct()
{
$this->nowtime = phpcommon\getNowTime();
}
public function handlePre()
{
}
public function handlePost()
{
}
protected function getNowTime()
{
return $this->nowtime;
}
protected function getNowDaySeconds()
{
return phpcommon\getDaySeconds($this->nowtime);
}
protected function getTodayRemainSeconds()
{
return max(0, $this->getNowDaySeconds() + 3600 * 24 - $this->getNowTime());
}
}