no message

This commit is contained in:
kuaifan 2025-05-15 09:13:59 +08:00
parent 434d8eabc8
commit e7749b2dff

View File

@ -5,6 +5,7 @@ namespace App\Http\Controllers\Api;
use App\Models\User; use App\Models\User;
use App\Module\Apps\Apps; use App\Module\Apps\Apps;
use App\Module\Base; use App\Module\Base;
use App\Module\Timer;
use Request; use Request;
/** /**
@ -15,7 +16,7 @@ use Request;
class AppsController extends AbstractController class AppsController extends AbstractController
{ {
/** /**
* @api {get} api/apps/list 01. 获取应用列表 * @api {get} api/apps/list 01. 获取应用列表(限管理员)
* *
* @apiVersion 1.0.0 * @apiVersion 1.0.0
* @apiGroup apps * @apiGroup apps
@ -33,7 +34,7 @@ class AppsController extends AbstractController
} }
/** /**
* @api {get} api/apps/info 02. 获取应用详情 * @api {get} api/apps/info 02. 获取应用详情(限管理员)
* *
* @apiVersion 1.0.0 * @apiVersion 1.0.0
* @apiGroup apps * @apiGroup apps
@ -61,7 +62,7 @@ class AppsController extends AbstractController
} }
/** /**
* @api {post} api/apps/install 03. 安装应用 * @api {post} api/apps/install 03. 安装应用(限管理员)
* *
* @apiVersion 1.0.0 * @apiVersion 1.0.0
* @apiGroup apps * @apiGroup apps
@ -80,7 +81,7 @@ class AppsController extends AbstractController
*/ */
public function install() public function install()
{ {
User::auth('admin'); $user = User::auth('admin');
// //
$appName = Request::input('app_name'); $appName = Request::input('app_name');
$version = Request::input('version', 'latest'); $version = Request::input('version', 'latest');
@ -91,23 +92,31 @@ class AppsController extends AbstractController
return Base::retError('应用名称不能为空'); return Base::retError('应用名称不能为空');
} }
// 获取应用配置
$appConfig = Apps::getAppConfig($appName);
// 保存用户设置的参数 // 保存用户设置的参数
$configData = []; $updateConfig = [];
// 记录安装用户
$updateConfig['installer'] = is_array($appConfig['installer']) ? $appConfig['installer'] : [];
$updateConfig['installer'][] = ['userid' => $user->userid, 'time' => Timer::time()];
if (count($updateConfig['installer']) > 5) {
$updateConfig['installer'] = array_slice($updateConfig['installer'], -5);
}
// 设置参数 // 设置参数
if (!empty($params) && is_array($params)) { if (!empty($params) && is_array($params)) {
$configData['params'] = $params; $updateConfig['params'] = $params;
} }
// 设置资源限制 // 设置资源限制
if (!empty($resources) && is_array($resources)) { if (!empty($resources) && is_array($resources)) {
$configData['resources'] = $resources; $updateConfig['resources'] = $resources;
} }
// 保存配置 // 保存配置
if (!empty($configData)) { Apps::saveAppConfig($appName, $updateConfig);
Apps::saveAppConfig($appName, $configData);
}
// 执行安装 // 执行安装
return Apps::dockerComposeUp($appName, $version); return Apps::dockerComposeUp($appName, $version);
@ -152,7 +161,7 @@ class AppsController extends AbstractController
} }
/** /**
* @api {post} api/apps/uninstall 04. 卸载应用 * @api {post} api/apps/uninstall 04. 卸载应用(限管理员)
* *
* @apiVersion 1.0.0 * @apiVersion 1.0.0
* @apiGroup apps * @apiGroup apps
@ -166,7 +175,7 @@ class AppsController extends AbstractController
*/ */
public function uninstall() public function uninstall()
{ {
User::auth('admin'); $user = User::auth('admin');
// //
$appName = Request::input('app_name'); $appName = Request::input('app_name');
@ -174,12 +183,28 @@ class AppsController extends AbstractController
return Base::retError('应用名称不能为空'); return Base::retError('应用名称不能为空');
} }
// 获取应用配置
$appConfig = Apps::getAppConfig($appName);
// 保存用户设置的参数
$updateConfig = [];
// 记录安装用户
$updateConfig['uninstaller'] = is_array($appConfig['uninstaller']) ? $appConfig['uninstaller'] : [];
$updateConfig['uninstaller'][] = ['userid' => $user->userid, 'time' => Timer::time()];
if (count($updateConfig['uninstaller']) > 5) {
$updateConfig['uninstaller'] = array_slice($updateConfig['uninstaller'], -5);
}
// 保存配置
Apps::saveAppConfig($appName, $updateConfig);
// 执行卸载 // 执行卸载
return Apps::dockerComposeDown($appName); return Apps::dockerComposeDown($appName);
} }
/** /**
* @api {get} api/apps/logs 05. 获取应用日志 * @api {get} api/apps/logs 05. 获取应用日志(限管理员)
* *
* @apiVersion 1.0.0 * @apiVersion 1.0.0
* @apiGroup apps * @apiGroup apps