no message

This commit is contained in:
hellcat 2026-07-04 18:55:00 +08:00
parent de008b505c
commit ba3c321408
3 changed files with 104 additions and 3 deletions

View File

@ -474,6 +474,15 @@ return static function (Slim\App $app): void {
$group->get('/mail/mustlog/clone/{id}', App\Controllers\Api\Nasa\V1\MailMustlogController::class . ':clone');
$group->get('/mail/mustlog/hit/{id}/{field}', App\Controllers\Api\Nasa\V1\MailMustlogController::class . ':hit');
$group->get('/ann/base', App\Controllers\Api\Nasa\V1\AnnBaseController::class . ':index');
$group->get('/ann/base/detail/{id}', App\Controllers\Api\Nasa\V1\AnnBaseController::class . ':detail');
$group->put('/ann/base/detail/save/{id}', App\Controllers\Api\Nasa\V1\AnnBaseController::class . ':detailSave');
$group->delete('/ann/base/delete/save/{id}', App\Controllers\Api\Nasa\V1\AnnBaseController::class . ':delete');
$group->get('/ann/base/add', App\Controllers\Api\Nasa\V1\AnnBaseController::class . ':add');
$group->put('/ann/base/add/save', App\Controllers\Api\Nasa\V1\AnnBaseController::class . ':addSave');
$group->get('/ann/base/clone/{id}', App\Controllers\Api\Nasa\V1\AnnBaseController::class . ':clone');
$group->get('/ann/base/hit/{id}/{field}', App\Controllers\Api\Nasa\V1\AnnBaseController::class . ':hit');
})->add(new VerifyNasaToken());// get可以其他不可以

View File

@ -0,0 +1,88 @@
<?php
declare(strict_types=1);
namespace App\Controllers\Api\Nasa\V1;
use Illuminate\Http\Request;
use App\Controllers\Api\Nasa\V1\Base\ListController;
final class AnnBaseController extends ListController
{
protected string $sModelName = 'Ann';
protected array $aFilterFields = [ // 允许where的字段不设视为全允许
// 's_name',
// 'i_status'
];
protected string $sPageName = "annBase";
protected array $aListFields = [ // list展示的字段和名字映射
'id' => 'id',
'rank' => '类型',
'title' => '标题',
'content' => '内容',
'sort' => '排序',
'status' => '状态',
'post' => '发布到tg等',
'date' => '日期',
];
protected array $aValueStyle = [ // 特定文字渲染样式
'置顶' => "<span class='text-success'>关闭</span>",
'默认' => "<span class='text-info'>开启</span>",
'活动' => "<span class='text-success'>开启</span>",
'重要' => "<span class='text-warning'>重要</span>",
'警告' => "<span class='text-danger'>警告</span>",
];
protected array $aFieldTypes = [
'content' => 'text-full',
// 'custom_config' => 'json',
// 'prev_day_width' => 'byte',
// 'node_bandwidth' => 'byte',
// 'node_bandwidth_limit' => 'byte'
];
protected array $aOrderBy = [
[
"sField" => "sort",
"sSort" => "desc",
],
[
"sField" => "date",
"sSort" => "desc",
]
];
protected array $aLenthFields = [ // 限制长度的字段
// "xx" => 100,
];
protected array $aSelectFields = [ // 作为默认select的字段
'rank',
'sort',
];
// 值映射
protected array $aValueFields =
[
'rank' => [
'none' => '默认',
'success' => '活动',
'danger' => '重要',
'warning' => '警告'
],
'sort' => [
'1' => '置顶',
'0' => '普通'
],
];
protected array $aCcExtFields = [
// 'dtCreatedAt' => '创建时间'
];
// protected array $aLimit = [3, 15, 40, 100]; // list长度第一个为默认
}

View File

@ -30,6 +30,7 @@ abstract class ListController
protected array $aFilterFields = []; // 允许where的字段
// protected array $aArticleFields = []; // 文章字段
protected array $aFieldTypes = [];
protected array $aValueFields = [];
protected array $aLenthFields = []; // 限制长度的字段
protected array $aSelectFields = []; // 默认作为select的字段
protected array $aListFields = []; // list展示的字段和名字映射
@ -63,11 +64,14 @@ abstract class ListController
public function getMapAll()
{
$a = [];
if (method_exists($this->oModel, 'getMapAll')) {
return $this->oModel->getMapAll();
$a = $this->oModel->getMapAll();
}
return [];
$b = array_merge($a, $this->aValueFields);
return $b;
}
public function index(Request $oRequest, Response $oResponse, $args)
@ -313,7 +317,7 @@ abstract class ListController
// 5. 健壮的方法存在性检查(呼应你上一条的需求)
// 变量命名aMapData (映射数据数组) -> 【诶 迈普 数据】
$aMapData = method_exists($this->oModel, 'getMapAll') ? $this->oModel->getMapAll() : [];
$aMapData = $this->oModel->getMapAll();
// 6. 统一标准的 JSON 响应输出
return $oResponse->withJson([