Files
easygoadmin-wiki/EasyGoAdmin_Gin_EleVue/zh/modules/content.md
T
2026-10-20 21:19:44 +08:00

4.2 KiB
Raw Blame History

6.8 公告与链接管理

:::tip 概述 本节涵盖通知公告和友情链接两个模块,均继承 BaseTenantLogic 实现租户隔离。

说明: 本文件因历史原因命名为 content.md,实际文档内容为通知公告(Notice)和友情链接(Link)两个独立模块,并不存在 "Content" 模块。 :::

通知公告

模块特点

特性 说明
基类 BaseTenantLogic(租户隔离)
文件字段 cover(封面图),保存到 notice 目录
富文本字段 content(公告内容)
枚举映射 type → notice_type(1=通知 2=公告),status → notice_status
排序 按 id 倒序(最新在前)

核心代码

// app/logic/NoticeLogic.php

class NoticeLogic extends BaseTenantLogic
{
    /**
     * 关联的模型类
     *
     * @var string
     */
    protected string $modelClass = Notice::class;

    /**
     * 需要自动处理的文件上传字段
     *
     * @var array
     */
    protected array $fileFields = ['cover'];

    /**
     * 文件保存的子目录
     *
     * @var string
     */
    protected string $fileSaveDir = 'notice';

    /**
     * LIKE 模糊匹配字段
     *
     * @var array
     */
    protected array $pageLikeFields = ['title'];

    /**
     * 精确匹配字段
     *
     * @var array
     */
    protected array $pageEqFields = ['type', 'status'];

    /**
     * 默认排序规则
     *
     * @var array
     */
    protected array $pageOrderBy = [
        ['field' => 'tenant_id', 'type' => 'asc'],
        ['field' => 'id', 'type' => 'desc'],
    ];

    /**
     * 枚举显示名映射
     *
     * @var array
     */
    protected array $serializeMaps = [
        'type'   => 'notice_type',
        'status' => 'notice_status',
    ];

    /**
     * 富文本字段
     *
     * @var array
     */
    protected array $contentFields = ['content'];
}

API 接口

方法 路径 权限码 说明
GET /api/notice/page sys:notice:page 分页列表
GET /api/notice/list - 全量列表
GET /api/notice/detail/:id sys:notice:detail 详情
POST /api/notice/add sys:notice:add 新增
PUT /api/notice/update sys:notice:update 修改
DELETE /api/notice/delete/:id sys:notice:delete 删除
DELETE /api/notice/batchDelete sys:notice:batchDelete 批量删除

友情链接

模块特点

特性 说明
基类 BaseTenantLogic(租户隔离)
文件字段 image(友链Logo),保存到 link 目录
枚举映射 type → link_type,form → link_form,status → link_status

核心代码

// app/logic/LinkLogic.php

class LinkLogic extends BaseTenantLogic
{
    /**
     * 关联的模型类
     *
     * @var string
     */
    protected string $modelClass = Link::class;

    /**
     * 需要自动处理的文件上传字段
     *
     * @var array
     */
    protected array $fileFields = ['image'];

    /**
     * 文件保存的子目录
     *
     * @var string
     */
    protected string $fileSaveDir = 'link';

    /**
     * LIKE 模糊匹配字段
     *
     * @var array
     */
    protected array $pageLikeFields = ['name'];

    /**
     * 精确匹配字段
     *
     * @var array
     */
    protected array $pageEqFields = ['type', 'status'];

    /**
     * 默认排序规则
     *
     * @var array
     */
    protected array $pageOrderBy = [
        ['field' => 'tenant_id', 'type' => 'asc'],
        ['field' => 'sort', 'type' => 'asc'],
    ];

    /**
     * 枚举显示名映射
     *
     * @var array
     */
    protected array $serializeMaps = [
        'type'   => 'link_type',
        'form'   => 'link_form',
        'status' => 'link_status',
    ];
}

API 接口

方法 路径 权限码 说明
GET /api/link/page sys:link:page 分页列表
GET /api/link/detail/:id sys:link:detail 详情
POST /api/link/add sys:link:add 新增
PUT /api/link/update sys:link:update 修改
DELETE /api/link/delete/:id sys:link:delete 删除
DELETE /api/link/batchDelete sys:link:batchDelete 批量删除