初始化本地仓库

This commit is contained in:
2026-08-31 11:33:59 +08:00
commit 663f74b633
2390 changed files with 402918 additions and 0 deletions
@@ -0,0 +1,93 @@
<?php
declare(strict_types=1);
namespace app\adminapi\controller\monitor;
use app\adminapi\controller\Crud;
use app\adminapi\middleware\AccessTokenMiddleware;
use app\adminapi\middleware\OperationMiddleware;
use app\adminapi\middleware\PermissionMiddleware;
use app\service\admin\monitor\OnlineUserService;
use core\tool\Json;
use madong\swagger\annotation\response\SimpleResponse;
use madong\swagger\attribute\Permission;
use OpenApi\Attributes as OA;
use support\Container;
use support\Request;
use support\annotation\Middleware;
#[Middleware(AccessTokenMiddleware::class, PermissionMiddleware::class, OperationMiddleware::class)]
final class OnlineUserController extends Crud
{
#[OA\Get(
path: '/monitor/online-user',
summary: '在线用户列表',
tags: ['系统监控']
)]
#[Permission(code: 'monitor:online_user:list')]
#[SimpleResponse(schema: [], example: [])]
public function index(Request $request): \support\Response
{
try {
/** @var OnlineUserService $service */
$service = Container::get(OnlineUserService::class);
return Json::success('ok', $service->list($request->all()));
} catch (\Throwable $e) {
return Json::fail($e->getMessage(), [], $e->getCode());
}
}
#[OA\Delete(
path: '/monitor/online-user/{jti}',
summary: '踢下线',
tags: ['系统监控']
)]
#[OA\Parameter(
name: 'jti',
description: '会话JTI',
in: 'path',
required: true,
schema: new OA\Schema(type: 'string')
)]
#[Permission(code: 'monitor:online_user:kickout')]
#[SimpleResponse(schema: [], example: [])]
public function destroy(Request $request): \support\Response
{
try {
$jti = (string)$request->route->param('jti', '');
if ($jti === '') {
return Json::fail('会话JTI不能为空');
}
/** @var OnlineUserService $service */
$service = Container::get(OnlineUserService::class);
if (!$service->kickout($jti)) {
return Json::fail('会话不存在或已失效');
}
return Json::success('ok');
} catch (\Throwable $e) {
return Json::fail($e->getMessage(), [], $e->getCode());
}
}
#[OA\Post(
path: '/monitor/online-user/{jti}/revoke',
summary: '撤销Token',
tags: ['系统监控']
)]
#[OA\Parameter(
name: 'jti',
description: '会话JTI',
in: 'path',
required: true,
schema: new OA\Schema(type: 'string')
)]
#[Permission(code: 'monitor:online_user:revoke')]
#[SimpleResponse(schema: [], example: [])]
public function revoke(Request $request): \support\Response
{
return $this->destroy($request);
}
}
@@ -0,0 +1,53 @@
<?php
declare(strict_types=1);
/**
*+------------------
* madong
*+------------------
* Copyright (c) https://gitee.com/motion-code All rights reserved.
*+------------------
* Author: Mr. April (405784684@qq.com)
*+------------------
* Official Website: http://www.madong.tech
*/
namespace app\adminapi\controller\monitor;
use app\adminapi\controller\Crud;
use app\adminapi\middleware\AccessTokenMiddleware;
use app\adminapi\middleware\OperationMiddleware;
use app\adminapi\middleware\PermissionMiddleware;
use app\adminapi\schema\response\monitor\RedisMonitorResponse;
use core\monitor\ServerMonitor;
use core\tool\Json;
use madong\swagger\annotation\response\SimpleResponse;
use madong\swagger\attribute\Permission;
use OpenApi\Attributes as OA;
use support\Container;
use support\Request;
use support\annotation\Middleware;
#[Middleware(AccessTokenMiddleware::class, PermissionMiddleware::class, OperationMiddleware::class)]
final class RedisController extends Crud
{
#[OA\Get(
path: '/monitor/redis',
summary: 'Redis监控',
tags: ['系统监控']
)]
#[Permission(code: 'monitor:redis:read')]
#[SimpleResponse(example: ['code' => 0, 'message' => 'success', 'data' => RedisMonitorResponse::class])]
public function index(Request $request): \support\Response
{
try {
/** @var ServerMonitor $service */
$service = Container::get(ServerMonitor::class);
$data = $service->getRedisInfo();
return Json::success('ok', $data);
} catch (\Exception $e) {
return Json::fail($e->getMessage(), [], $e->getCode());
}
}
}
@@ -0,0 +1,59 @@
<?php
declare(strict_types=1);
/**
*+------------------
* madong
*+------------------
* Copyright (c) https://gitee.com/motion-code All rights reserved.
*+------------------
* Author: Mr. April (405784684@qq.com)
*+------------------
* Official Website: http://www.madong.tech
*/
namespace app\adminapi\controller\monitor;
use app\adminapi\controller\Crud;
use app\adminapi\middleware\AccessTokenMiddleware;
use app\adminapi\middleware\OperationMiddleware;
use app\adminapi\middleware\PermissionMiddleware;
use app\adminapi\schema\response\monitor\ServerMonitorResponse;
use core\monitor\ServerMonitor;
use core\tool\Json;
use madong\swagger\annotation\response\SimpleResponse;
use madong\swagger\attribute\Permission;
use OpenApi\Attributes as OA;
use support\Container;
use support\Request;
use support\annotation\Middleware;
#[Middleware(AccessTokenMiddleware::class, PermissionMiddleware::class, OperationMiddleware::class)]
final class ServerController extends Crud
{
#[OA\Get(
path: '/monitor/server',
summary: '性能监控',
tags: ['系统监控']
)]
#[Permission(code: 'monitor:server:read')]
#[SimpleResponse(schema:ServerMonitorResponse::class, example: ['code' => 0, 'message' => 'success', 'data' => []])]
public function index(Request $request): \support\Response
{
try {
/** @var ServerMonitor $service */
$service = Container::get(ServerMonitor::class);
$serverInfo = [
'cpu' => $service->getCpuInfo(),
'memory' => $service->getMemoryInfo(),
'disk' => $service->getDiskInfo(),
'php' => $service->getPhpInfo(),
];
return Json::success('ok', $serverInfo);
} catch (\Exception $e) {
return Json::fail($e->getMessage(), [], $e->getCode());
}
}
}