AI代码生成工具
This commit is contained in:
78
app/Service/ApiEndpointService.php
Normal file
78
app/Service/ApiEndpointService.php
Normal file
@@ -0,0 +1,78 @@
|
||||
<?php
|
||||
|
||||
namespace App\Service;
|
||||
|
||||
use App\BaseApp\BaseService;
|
||||
use App\Models\ApiEndpointModel;
|
||||
|
||||
/**
|
||||
* 接口注册表 Service:分页查询 + 更新是否记日志等元信息
|
||||
*/
|
||||
class ApiEndpointService extends BaseService
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->model = ApiEndpointModel::class;
|
||||
$this->selectField = [
|
||||
'id', 'url', 'method', 'name', 'description', 'controller',
|
||||
'is_log', 'status', 'created_at', 'updated_at',
|
||||
];
|
||||
$this->queryField = [
|
||||
'url' => 'like',
|
||||
'name' => 'like',
|
||||
'is_log' => '=',
|
||||
'method' => '=',
|
||||
'status' => '=',
|
||||
];
|
||||
$this->orderBy = [
|
||||
'name' => 'id',
|
||||
'sort' => 'desc',
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页列表;支持按 url/name/is_log/method 筛选
|
||||
*/
|
||||
public function list(): array
|
||||
{
|
||||
return $this->getPageList();
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新接口元信息:仅允许改 name/description/is_log/status
|
||||
* 为什么不开放改 url/method:路由由代码决定,随意改会导致日志匹配错乱
|
||||
*
|
||||
* @param int $id 接口 ID
|
||||
* @param array $params 可更新字段
|
||||
*/
|
||||
public function update(int $id, array $params): mixed
|
||||
{
|
||||
$info = ApiEndpointModel::where('id', $id)->where('deleted_at', 0)->first();
|
||||
if (!$info) {
|
||||
$this->utils->notFound('接口不存在');
|
||||
}
|
||||
$data = [];
|
||||
if (array_key_exists('name', $params)) {
|
||||
$name = trim((string) $params['name']);
|
||||
if ($name === '') {
|
||||
$this->utils->errorThrow('操作名不能为空');
|
||||
}
|
||||
$data['name'] = $name;
|
||||
}
|
||||
if (array_key_exists('description', $params)) {
|
||||
$data['description'] = trim((string) $params['description']);
|
||||
}
|
||||
if (array_key_exists('is_log', $params)) {
|
||||
$data['is_log'] = (int) $params['is_log'] ? 1 : 0;
|
||||
}
|
||||
if (array_key_exists('status', $params)) {
|
||||
$data['status'] = (int) $params['status'] ? 1 : 0;
|
||||
}
|
||||
if (empty($data)) {
|
||||
return true;
|
||||
}
|
||||
$data['updated_at'] = time();
|
||||
return ApiEndpointModel::where('id', $id)->where('deleted_at', 0)->update($data);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user