no message

This commit is contained in:
kuaifan
2021-06-03 15:33:41 +08:00
parent 0b12ab55c0
commit 14a5ef5610
18 changed files with 984 additions and 74 deletions
+347
View File
@@ -0,0 +1,347 @@
<?php
namespace App\Http\Controllers\Api;
use App\Models\User;
use App\Module\Base;
use Request;
/**
* @apiDefine system
*
* 系统
*/
class SystemController extends AbstractController
{
/**
* @api {get} api/system/setting 01. 获取设置、保存设置
*
* @apiVersion 1.0.0
* @apiGroup system
* @apiName setting
*
* @apiParam {String} type
* - get: 获取(默认)
* - save: 保存设置(参数:reg、login_code)
* @apiSuccess {Number} ret 返回状态码(1正确、0错误)
* @apiSuccess {String} msg 返回信息(错误描述)
* @apiSuccess {Object} data 返回数据
*/
public function setting()
{
$type = trim(Request::input('type'));
if ($type == 'save') {
if (env("SYSTEM_SETTING") == 'disabled') {
return Base::retError('当前环境禁止修改!');
}
$user = User::authE();
if (Base::isError($user)) {
return $user;
} else {
$user = User::IDE($user['data']);
}
if (!$user->isAdmin()) {
return Base::retError('权限不足!');
}
$all = Request::input();
foreach ($all AS $key => $value) {
if (!in_array($key, ['reg', 'login_code'])) {
unset($all[$key]);
}
}
$setting = Base::setting('system', Base::newTrim($all));
} else {
$setting = Base::setting('system');
}
//
$setting['reg'] = $setting['reg'] ?: 'open';
$setting['login_code'] = $setting['login_code'] ?: 'auto';
//
return Base::retSuccess('success', $setting ?: json_decode('{}'));
}
/**
* @api {get} api/system/get/info 02. 获取终端详细信息
*
* @apiVersion 1.0.0
* @apiGroup system
* @apiName get__info
*
* @apiParam {String} key key值
*
* @apiSuccess {Number} ret 返回状态码(1正确、0错误)
* @apiSuccess {String} msg 返回信息(错误描述)
* @apiSuccess {Object} data 返回数据
*/
public function get__info()
{
if (Request::input("key") !== env('APP_KEY')) {
return [];
}
return Base::retSuccess('success', [
'ip' => Base::getIp(),
'ip-info' => Base::getIpInfo(Base::getIp()),
'ip-gcj02' => Base::getIpGcj02(Base::getIp()),
'ip-iscn' => Base::isCnIp(Base::getIp()),
'header' => Request::header(),
'token' => Base::getToken(),
'url' => url('') . Base::getUrl(),
]);
}
/**
* @api {get} api/system/get/ip 03. 获取IP地址
*
* @apiVersion 1.0.0
* @apiGroup system
* @apiName get__ip
*
* @apiSuccess {Number} ret 返回状态码(1正确、0错误)
* @apiSuccess {String} msg 返回信息(错误描述)
* @apiSuccess {Object} data 返回数据
*/
public function get__ip() {
return Base::getIp();
}
/**
* @api {get} api/system/get/cnip 04. 是否中国IP地址
*
* @apiVersion 1.0.0
* @apiGroup system
* @apiName get__cnip
*
* @apiParam {String} ip IP值
*
* @apiSuccess {Number} ret 返回状态码(1正确、0错误)
* @apiSuccess {String} msg 返回信息(错误描述)
* @apiSuccess {Object} data 返回数据
*/
public function get__cnip() {
return Base::isCnIp(Request::input('ip'));
}
/**
* @api {get} api/system/get/ipgcj02 05. 获取IP地址经纬度
*
* @apiVersion 1.0.0
* @apiGroup system
* @apiName get__ipgcj02
*
* @apiParam {String} ip IP值
*
* @apiSuccess {Number} ret 返回状态码(1正确、0错误)
* @apiSuccess {String} msg 返回信息(错误描述)
* @apiSuccess {Object} data 返回数据
*/
public function get__ipgcj02() {
return Base::getIpGcj02(Request::input("ip"));
}
/**
* @api {get} api/system/get/ipinfo 06. 获取IP地址详细信息
*
* @apiVersion 1.0.0
* @apiGroup system
* @apiName get__ipinfo
*
* @apiParam {String} ip IP值
*
* @apiSuccess {Number} ret 返回状态码(1正确、0错误)
* @apiSuccess {String} msg 返回信息(错误描述)
* @apiSuccess {Object} data 返回数据
*/
public function get__ipinfo() {
return Base::getIpInfo(Request::input("ip"));
}
/**
* @api {post} api/system/imgupload 10. 上传图片
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
* @apiGroup system
* @apiName imgupload
*
* @apiParam {String} image64 图片base64
* @apiParam {String} filename 文件名
*
* @apiSuccess {Number} ret 返回状态码(1正确、0错误)
* @apiSuccess {String} msg 返回信息(错误描述)
* @apiSuccess {Object} data 返回数据
*/
public function imgupload()
{
if (User::token2userid() === 0) {
return Base::retError('身份失效,等重新登录!');
}
$scale = [intval(Request::input('width')), intval(Request::input('height'))];
if (!$scale[0] && !$scale[1]) {
$scale = [2160, 4160, -1];
}
$path = "uploads/picture/" . User::token2userid() . "/" . date("Ym") . "/";
$image64 = trim(Base::getPostValue('image64'));
$fileName = trim(Base::getPostValue('filename'));
if ($image64) {
$data = Base::image64save([
"image64" => $image64,
"path" => $path,
"fileName" => $fileName,
"scale" => $scale
]);
} else {
$data = Base::upload([
"file" => Request::file('image'),
"type" => 'image',
"path" => $path,
"fileName" => $fileName,
"scale" => $scale
]);
}
if (Base::isError($data)) {
return Base::retError($data['msg']);
} else {
return Base::retSuccess('success', $data['data']);
}
}
/**
* @api {get} api/system/get/imgview 11. 浏览图片空间
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
* @apiGroup system
* @apiName imgview
*
* @apiParam {String} path 路径
*
* @apiSuccess {Number} ret 返回状态码(1正确、0错误)
* @apiSuccess {String} msg 返回信息(错误描述)
* @apiSuccess {Object} data 返回数据
*/
public function imgview()
{
if (User::token2userid() === 0) {
return Base::retError('身份失效,等重新登录!');
}
$publicPath = "uploads/picture/" . User::token2userid() . "/";
$dirPath = public_path($publicPath);
$dirs = $files = [];
//
$path = Request::input('path');
if ($path && is_string($path)) {
$path = str_replace(array('||', '|'), '/', $path);
$path = trim($path, '/');
$path = str_replace('..', '', $path);
$path = Base::leftDelete($path, $publicPath);
if ($path) {
$path = $path . '/';
$dirPath .= $path;
//
$dirs[] = [
'type' => 'dir',
'title' => '...',
'path' => substr(substr($path, 0, -1), 0, strripos(substr($path, 0, -1), '/')),
'url' => '',
'thumb' => Base::fillUrl('images/other/dir.png'),
'inode' => 0,
];
}
} else {
$path = '';
}
$list = glob($dirPath . '*', GLOB_BRACE);
foreach ($list as $v) {
$filename = basename($v);
$pathTemp = $publicPath . $path . $filename;
if (is_dir($v)) {
$dirs[] = [
'type' => 'dir',
'title' => $filename,
'path' => $pathTemp,
'url' => Base::fillUrl($pathTemp),
'thumb' => Base::fillUrl('images/other/dir.png'),
'inode' => fileatime($v),
];
} elseif (substr($filename, -10) != "_thumb.jpg") {
$array = [
'type' => 'file',
'title' => $filename,
'path' => $pathTemp,
'url' => Base::fillUrl($pathTemp),
'thumb' => $pathTemp,
'inode' => fileatime($v),
];
//
$extension = pathinfo($dirPath . $filename, PATHINFO_EXTENSION);
if (in_array($extension, array('gif', 'jpg', 'jpeg', 'png', 'bmp'))) {
if (file_exists($dirPath . $filename . '_thumb.jpg')) {
$array['thumb'] .= '_thumb.jpg';
}
$array['thumb'] = Base::fillUrl($array['thumb']);
$files[] = $array;
}
}
}
if ($dirs) {
$inOrder = [];
foreach ($dirs as $key => $item) {
$inOrder[$key] = $item['title'];
}
array_multisort($inOrder, SORT_DESC, $dirs);
}
if ($files) {
$inOrder = [];
foreach ($files as $key => $item) {
$inOrder[$key] = $item['inode'];
}
array_multisort($inOrder, SORT_DESC, $files);
}
//
return Base::retSuccess('success', ['dirs' => $dirs, 'files' => $files]);
}
/**
* @api {post} api/system/fileupload 12. 上传文件
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
* @apiGroup system
* @apiName fileupload
*
* @apiParam {String} [image64] 图片base64
* @apiParam {String} filename 文件名
* @apiParam {String} [files] 文件名
*
* @apiSuccess {Number} ret 返回状态码(1正确、0错误)
* @apiSuccess {String} msg 返回信息(错误描述)
* @apiSuccess {Object} data 返回数据
*/
public function fileupload()
{
if (User::token2userid() === 0) {
return Base::retError('身份失效,等重新登录!');
}
$path = "uploads/files/" . User::token2userid() . "/" . date("Ym") . "/";
$image64 = trim(Base::getPostValue('image64'));
$fileName = trim(Base::getPostValue('filename'));
if ($image64) {
$data = Base::image64save([
"image64" => $image64,
"path" => $path,
"fileName" => $fileName,
]);
} else {
$data = Base::upload([
"file" => Request::file('files'),
"type" => 'file',
"path" => $path,
"fileName" => $fileName,
]);
}
//
return $data;
}
}