game2005api/webapp/controller/GMController.class.php
aozhiwei 6b276f0353 1
2021-12-08 16:17:28 +08:00

111 lines
3.0 KiB
PHP

<?php
require_once('services/AwardService.php');
require_once('services/PropertyChgService.php');
use phpcommon\SqlHelper;
class GMController extends BaseAuthedController {
public function _handlePre()
{
parent::_handlePre();
if (SERVER_ENV == _ONLINE) {
die("can't create GMController");
return;
}
}
public function execCmd()
{
$cmds = explode(' ', getReqVal('cmd', ''));
if (count($cmds) < 0) {
$this->_rspErr(1, '请输入指令');
return;
}
$cmd = $cmds[0];
$params = count($cmds) > 1 ? array_slice($cmds, 1) : array();
$cmdHash = array(
'.help' => function () use($params) {
$this->help($params);
},
'.additem' => function () use($params) {
$this->addItem($params);
},
'.getsystime' => function () use($params) {
$this->getSysTime($params);
},
'.setsystime' => function () use($params) {
$this->setSysTime($params);
}
);
$func = getXVal($cmdHash, $cmd);
if ($func) {
$func($params);
} else {
$this->_rspErr(2, '无法识别的指令');
return;
}
}
private function help($params)
{
$this->_rspData(array(
'text' => <<<END
.additem 道具id 道具数量 //添加道具
.getsystime //获取服务器时间
.setsystime //设置服务器时间,示例:.setsystime 2021-12-08 00:00:00
END
));
}
private function addItem($params)
{
$itemId = getXVal($params, 0, 0);
$itemNum = getXVal($params, 1, 0);
$propertyChgService = new services\PropertyChgService();
$awardService = new services\AwardService();
$this->_addItems(array(
array(
'item_id' => $itemId,
'item_num' => $itemNum
)
), $awardService, $propertyChgService);
$this->_rspData(array(
'text' => '添加道具成功',
'award' => $awardService->toDto(),
'property_chg' => $propertyChgService->toDto(),
));
}
private function getSysTime($params)
{
$sysTime = phpcommon\timestamp_to_datetime(phpcommon\getNowTime());
$this->_rspData(array(
'text' => $sysTime,
));
}
private function setSysTime($params)
{
if (!defined('GLOBAL_TIME_OFFSET_KEY')) {
die('不支持设置系统时间');
return;
}
$newtime = strtotime($_REQUET['newtime']);
if ($newtime <= 0) {
die('时间格式错误');
return;
}
$time_offset = $newtime - phpcommon\getRealTime();
$r = new phpcommon\Redis(array(
'host' => '127.0.0.1',
'port' => 6379,
'passwd' => ''
));
$r->set(GLOBAL_TIME_OFFSET_KEY, $time_offset);
}
}