Files
cunkebao_v3/Server/application/common/controller/Api.php
2025-08-29 17:04:11 +08:00

151 lines
3.6 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace app\common\controller;
use library\ResponseHelper;
use think\Controller;
use think\Db;
use think\facade\Config;
use think\facade\Request;
use think\facade\Response;
/**
* API基础控制器
*/
class Api extends Controller
{
/**
* 无需登录的方法,同时也就不需要鉴权了
* @var array
*/
protected $noNeedLogin = [];
/**
* 无需鉴权的方法,但需要登录
* @var array
*/
protected $noNeedRight = [];
/**
* 当前请求方法
* @var string
*/
protected $requestType = '';
/**
* 默认响应输出类型
* @var string
*/
protected $responseType = 'json';
/**
* 构造方法
*/
public function __construct()
{
parent::__construct();
// 请求类型
$this->requestType = Request::method();
// 控制器初始化
$this->_initialize();
// 跨域请求检测
$this->_checkCors();
}
/**
* 初始化操作
*/
protected function _initialize()
{
// 初始化操作
}
/**
* 跨域检测
* @deprecated 已由全局中间件 AllowCrossDomain 处理,此方法保留用于兼容
*/
protected function _checkCors()
{
// 由全局中间件处理跨域,此处不再处理
if ($this->requestType === 'OPTIONS') {
Response::create()->send();
exit;
}
}
/**
* 操作成功返回的数据
* @param string $msg 提示信息
* @param mixed $data 返回的数据
* @param int $code 错误码默认为1
* @param string $type 输出类型
* @param array $header 发送的header信息
*/
protected function success($msg = '', $data = null, $code = 1, $type = null, array $header = [])
{
$this->result($msg, $data, $code, $type, $header);
}
/**
* 操作失败返回的数据
* @param string $msg 提示信息
* @param mixed $data 返回的数据
* @param int $code 错误码默认为0
* @param string $type 输出类型
* @param array $header 发送的header信息
*/
protected function error($msg = '', $data = null, $code = 0, $type = null, array $header = [])
{
$this->result($msg, $data, $code, $type, $header);
}
/**
* 返回封装后的API数据
* @param string $msg 提示信息
* @param mixed $data 要返回的数据
* @param int $code 错误码默认为0
* @param string $type 输出类型支持json/xml/jsonp
* @param array $header 发送的header信息
*/
protected function result($msg, $data = null, $code = 0, $type = null, array $header = [])
{
$result = [
'code' => $code,
'msg' => $msg,
'time' => time(),
'data' => $data,
];
// 返回数据格式
$type = $type ?: $this->responseType;
// 发送响应
$response = Response::create($result, $type)->header($header);
$response->send();
exit;
}
public function uploadApp()
{
$type = $this->request->param('type', '');
if (empty($type)){
return ResponseHelper::error('参数缺失');
}
if (!in_array($type,['ckb','ai_store'])){
return ResponseHelper::error('参数错误');
}
$data = Db::name('app_version')
->field('version,downloadUrl,updateContent')
->where(['type'=>$type])
->order('id DESC')
->find();
return ResponseHelper::success($data, '获取成功');
}
}