<?php
namespace app\api\controller;
use app\BaseController;
use app\module\FormTableHandleModule;
use app\service\ApiService;
use app\service\SystemService;
use app\service\UserService;
use app\service\ConfigService;
* 接口公共控制器
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-01T21:51:08+0800
*/
class Common extends BaseController
{
protected $user;
protected $data_post;
protected $data_get;
protected $data_request;
protected $module_name;
protected $controller_name;
protected $action_name;
protected $plugins_module_name;
protected $plugins_controller_name;
protected $plugins_action_name;
protected $form_table_data;
protected $form_table;
protected $form_where;
protected $form_params;
protected $form_md5_key;
protected $form_user_fields;
protected $form_order_by;
protected $form_error;
protected $data_total;
protected $data_list;
protected $data_detail;
protected $page;
protected $page_start;
protected $page_size;
* 构造方法
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-11-30
* @desc description
*/
public function __construct()
{
SystemService::SystemInstallCheck();
$this->SystemInit();
SystemService::SystemBegin($this->data_request);
$this->SiteStstusCheck();
$this->FormTableInit();
$this->CommonInit();
}
* 析构函数
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2019-03-18
* @desc description
*/
public function __destruct()
{
SystemService::SystemEnd($this->data_request);
}
* 系统初始化
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-12-07
* @desc description
*/
private function SystemInit()
{
$this->data_post = input('post.');
$this->data_get = input('get.');
$this->data_request = input();
ConfigService::ConfigInit();
}
* 网站状态
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2018-04-18T16:20:58+0800
*/
private function SiteStstusCheck()
{
$data = MyC('home_site_app_state', [], true);
if(!empty($data) && is_array($data) && in_array(APPLICATION_CLIENT_TYPE, $data))
{
exit(json_encode(DataReturn(MyC('home_site_close_reason', MyLang('upgrading_tips')), -10000)));
}
}
* 登录校验
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2017-03-09T11:43:48+0800
*/
protected function IsLogin()
{
if(empty($this->user))
{
exit(json_encode(DataReturn(MyLang('login_failure_tips'), -400)));
}
}
* 动态表格初始化
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2020-06-02
* @desc description
*/
public function FormTableInit()
{
$module = FormModulePath($this->data_request);
if(!empty($module))
{
$params = $this->data_request;
$ret = (new FormTableHandleModule())->Run($module['module'], $module['action'], $params);
if($ret['code'] == 0)
{
$this->form_table_data = $ret['data'];
$this->form_table = $ret['data']['table'];
$this->form_where = $ret['data']['where'];
$this->form_params = $ret['data']['params'];
$this->form_md5_key = $ret['data']['md5_key'];
$this->form_user_fields = $ret['data']['user_fields'];
$this->form_order_by = $ret['data']['order_by'];
$this->data_total = $ret['data']['data_total'];
$this->data_list = $ret['data']['data_list'];
$this->data_detail = $ret['data']['data_detail'];
$this->page = $ret['data']['page'];
$this->page_start = $ret['data']['page_start'];
$this->page_size = $ret['data']['page_size'];
} else {
$this->form_error = $ret['msg'];
}
}
}
* 公共数据初始化
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2017-03-09T11:43:48+0800
*/
private function CommonInit()
{
$this->user = UserService::LoginUserInfo();
$this->module_name = RequestModule();
$this->controller_name = RequestController();
$this->action_name = RequestAction();
if(empty($this->data_request['pluginsname']))
{
$this->plugins_module_name = '';
$this->plugins_controller_name = '';
$this->plugins_action_name = '';
} else {
$this->plugins_module_name = $this->data_request['pluginsname'];
$this->plugins_controller_name = empty($this->data_request['pluginscontrol']) ? 'index' : $this->data_request['pluginscontrol'];
$this->plugins_action_name = empty($this->data_request['pluginsaction']) ? 'index' : $this->data_request['pluginsaction'];
}
$this->page = max(1, isset($this->data_request['page']) ? intval($this->data_request['page']) : 1);
$this->page_size = min(empty($this->data_request['page_size']) ? MyC('common_page_size', 15, true) : intval($this->data_request['page_size']), 1000);
$this->page_start = intval(($this->page-1)*$this->page_size);
}
* 空方法响应
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-11-30
* @desc description
* @param [string] $method [方法名称]
* @param [array] $args [参数]
*/
public function __call($method, $args)
{
return ApiService::ApiDataReturn(DataReturn(MyLang('illegal_access_tips').'('.$method.')', -1000));
}
}
?>