夺
This commit is contained in:
145
app/controller/Main.php
Normal file
145
app/controller/Main.php
Normal file
@@ -0,0 +1,145 @@
|
||||
<?php
|
||||
namespace app\controller;
|
||||
|
||||
//use app\model\AppToken;
|
||||
|
||||
class Main
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
// $j = ["userid"=>1];
|
||||
// echo authcode(json_encode($j),'f');
|
||||
$GLOBALS['data'] = []; // 全局变量
|
||||
$api_version = ''; //当前版本号
|
||||
$timeout = env('APP_DEBUG')?1000000:20; //处理超时时间
|
||||
$userid = 0; //默认用户ID是0
|
||||
$appKey = env('app.DEFAULT_KEY');
|
||||
$GLOBALS['appKey'] = env('app.DEFAULT_KEY');//定义全局变量,报错时使用
|
||||
$startTime = microtime(true); //开始时间时间
|
||||
$LogArray = []; //记录日志数组
|
||||
$message = [
|
||||
'token_error' => 'Token验证失败',
|
||||
'token_Illegal' => 'Token非法',
|
||||
'data_Illegal' => '非法数据',
|
||||
'logout_success' => '退出成功',
|
||||
'sign_error' => '数据签名错误',
|
||||
'data_timeout' => '请求数据超时',
|
||||
'cmd_error' => '没有CMD信息',
|
||||
];
|
||||
// $independent = ["user.logout"];
|
||||
try {
|
||||
//获取访问者IP
|
||||
$LogArray['ip'] = get_client_ip();
|
||||
|
||||
//获取用户上传的token
|
||||
$clientToken = request()->post('tk');
|
||||
|
||||
//如果TOKEN不存在,则设置为空
|
||||
$clientToken = !empty($clientToken)?$clientToken:'';
|
||||
|
||||
//记录日志开始,记录token和开始时间
|
||||
$LogArray['token'] = $clientToken;
|
||||
$LogArray['start_time'] = $startTime;
|
||||
|
||||
//如果存在TOKEN则需要解析token
|
||||
$appToken = "";
|
||||
if ($clientToken) {
|
||||
$tk = json_decode(authcode($clientToken),true);
|
||||
$userid = $tk['userid'];
|
||||
}
|
||||
|
||||
//解密数据
|
||||
$data = request()->post();
|
||||
|
||||
|
||||
//定义常量
|
||||
define('PLATFORM', $data['RequestBody']['Platform'] ?? ''); //手机系统平台 IOS、ANDROID
|
||||
define('DEVICE', $data['RequestBody']['Device'] ?? ''); //手机型号
|
||||
define('IM_NUMBER', $data['RequestBody']['IM'] ?? ''); //设备码
|
||||
define('APP_VERSION', $data['RequestBody']['APPVersion'] ?? ''); //版本号
|
||||
|
||||
|
||||
|
||||
$LogArray['userid'] = $userid;
|
||||
$LogArray['platform'] = PLATFORM;
|
||||
$LogArray['device'] = DEVICE;
|
||||
$LogArray['im_number'] = IM_NUMBER;
|
||||
$LogArray['app_version'] = APP_VERSION;
|
||||
$LogArray['api_version'] = $api_version;
|
||||
$LogArray['cmd'] = !empty($data['RequestBody']['CMD'])?$data['RequestBody']['CMD']:'';
|
||||
$LogArray['data'] = json_encode($data);
|
||||
|
||||
|
||||
if(empty($data['cmd'])) {
|
||||
return show($message['cmd_error'],MISSING_PARAMETER);
|
||||
}
|
||||
|
||||
/**********
|
||||
* start 调用退出 *************
|
||||
* 把apptoken表数据清空,只退出当前设置
|
||||
* 其它设置信息保留
|
||||
*/
|
||||
if (strtolower($data['cmd']) == "sign.logout") {
|
||||
if(!empty($appToken['id'])) {
|
||||
$this->logout($appToken['id']);
|
||||
$LogArray['return_data'] = $message['logout_success'];
|
||||
$this->log($LogArray);
|
||||
}
|
||||
return show("退出成功!",SUCCESS_CODE);
|
||||
}
|
||||
|
||||
|
||||
if (($data['cmd'])) {
|
||||
$action = explode('.', $data['cmd']);
|
||||
if (is_array($action)) {
|
||||
$ClassName = '\\app\\controller\\' . ucfirst($action[0]);
|
||||
$FunctionName = $action[1];
|
||||
$class = new $ClassName();
|
||||
$GLOBALS['data'] = [
|
||||
'data' => $data,
|
||||
'userid' => $userid
|
||||
];
|
||||
if(!empty($_FILES['file'])){
|
||||
$GLOBALS['data']['file'] = $_FILES['file'];
|
||||
}
|
||||
$backdata = $class->$FunctionName();
|
||||
$LogArray['return_data'] = !empty($GLOBALS['data']['returnData'])?$GLOBALS['data']['returnData']:'';
|
||||
$this->log($LogArray);
|
||||
unset($data);
|
||||
return $backdata;
|
||||
}
|
||||
}
|
||||
|
||||
} catch (\Exception $e) {
|
||||
if(env("APP_DEBUG")){$msg = $e->getMessage();}else{$msg = "服务器故障!";}
|
||||
return show($msg,SYSTEM_ERROR_CODE);
|
||||
}
|
||||
}
|
||||
|
||||
private function logout($userid)
|
||||
{
|
||||
(new \app\model\AppToken)->where('id', $userid)->delete();
|
||||
}
|
||||
|
||||
private function log($data)
|
||||
{
|
||||
$addData = [
|
||||
'ip' => !empty($data['ip'])?$data['ip']:'',
|
||||
'token' => !empty($data['token'])?$data['token']:'',
|
||||
'start_time' => !empty($data['start_time'])?$data['start_time']:'',
|
||||
'userid' => !empty($data['userid'])?$data['userid']:'',
|
||||
'platform' => !empty($data['platform'])?$data['platform']:'',
|
||||
'device' => !empty($data['device'])?$data['device']:'',
|
||||
'im_number' => !empty($data['im_number'])?$data['im_number']:'',
|
||||
'app_version' => !empty($data['app_version'])?$data['app_version']:'',
|
||||
'api_version' => !empty($data['api_version'])?$data['api_version']:'',
|
||||
'cmd' => !empty($data['cmd'])?$data['cmd']:'',
|
||||
'data' => !empty($data['data'])?$data['data']:'',
|
||||
'return_data' => !empty($data['return_data'])?$data['return_data']:'',
|
||||
'end_time' => microtime(true),
|
||||
'usetime' => microtime(true) - $data['start_time']
|
||||
];
|
||||
$applog = (new \app\model\AppLog)->insertGetId($addData);
|
||||
return $applog;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user