签入版本
This commit is contained in:
@@ -0,0 +1,146 @@
|
||||
# 6.14 文件模板管理
|
||||
|
||||
:::tip 概述
|
||||
文件模板管理用于维护系统中使用的文件模板,支持按编码查询模板。继承 BaseLogic(系统共享,不隔离)。
|
||||
:::
|
||||
|
||||
## 模块特点
|
||||
|
||||
| 特性 | 说明 |
|
||||
|------|------|
|
||||
| 基类 | BaseLogic(系统共享,不隔离) |
|
||||
| 文件字段 | file_path(模板文件),保存到 file_template 目录 |
|
||||
| 唯一校验 | code 全局唯一 |
|
||||
| 特殊接口 | getTemplateByCode 按编码查询模板 |
|
||||
|
||||
## API 接口
|
||||
|
||||
| 方法 | 路径 | 权限码 | 说明 |
|
||||
|------|------|--------|------|
|
||||
| GET | `/api/file/template/page` | sys:fileTemplate:page | 分页列表 |
|
||||
| GET | `/api/file/template/detail/:id` | sys:fileTemplate:detail | 详情 |
|
||||
| POST | `/api/file/template/add` | sys:fileTemplate:add | 新增 |
|
||||
| PUT | `/api/file/template/update` | sys:fileTemplate:update | 修改 |
|
||||
| DELETE | `/api/file/template/delete/:id` | sys:fileTemplate:delete | 删除 |
|
||||
| DELETE | `/api/file/template/batchDelete` | sys:fileTemplate:batchDelete | 批量删除 |
|
||||
| GET | `/api/file/template/getTemplateByCode/:code` | - | 按编码查询模板 |
|
||||
|
||||
## 核心代码
|
||||
|
||||
```php
|
||||
// app/logic/FileTemplateLogic.php
|
||||
|
||||
class FileTemplateLogic extends BaseLogic
|
||||
{
|
||||
/**
|
||||
* 关联的模型类
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected string $modelClass = FileTemplate::class;
|
||||
|
||||
/**
|
||||
* 需要自动处理的文件上传字段
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected array $fileFields = ['file_path'];
|
||||
|
||||
/**
|
||||
* 文件保存的子目录
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected string $fileSaveDir = 'file_template';
|
||||
|
||||
/**
|
||||
* LIKE 模糊匹配字段
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected array $pageLikeFields = ['name', 'code'];
|
||||
|
||||
/**
|
||||
* 默认排序规则
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected array $pageOrderBy = ['field' => 'sort', 'type' => 'asc'];
|
||||
|
||||
/**
|
||||
* 唯一性校验字段
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected array $uniqueFields = ['code'];
|
||||
|
||||
// 按编码查询模板
|
||||
public function getByCode(string $code): ?array
|
||||
{
|
||||
$result = FileTemplate::where('code', $code)->find();
|
||||
return $result ? $result->toArray() : null;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Controller 代码
|
||||
|
||||
```php
|
||||
// app/controller/FileTemplateController.php
|
||||
|
||||
class FileTemplateController extends BaseController
|
||||
{
|
||||
protected FileTemplateLogic $logic;
|
||||
|
||||
protected function initialize(): void
|
||||
{
|
||||
$this->logic = new FileTemplateLogic();
|
||||
}
|
||||
|
||||
#[Log('文件模板-查询分页记录', Log::TYPE_QUERY)]
|
||||
#[Permission('sys:fileTemplate:page', '模板分页')]
|
||||
public function page(): Json
|
||||
{
|
||||
return parent::_index($this->logic);
|
||||
}
|
||||
|
||||
#[Log('文件模板-新增记录', Log::TYPE_ADD, '新增模板:{name}')]
|
||||
#[Permission('sys:fileTemplate:add', '添加模板')]
|
||||
public function add(): Json
|
||||
{
|
||||
return parent::_add($this->logic, $this->getJsonBody());
|
||||
}
|
||||
|
||||
#[Log('文件模板-修改记录', Log::TYPE_UPDATE, '修改模板ID:{id}')]
|
||||
#[Permission('sys:fileTemplate:update', '修改模板')]
|
||||
public function update(): Json
|
||||
{
|
||||
$data = $this->getJsonBody();
|
||||
$id = $data['id'] ?? 0;
|
||||
if (empty($id)) return $this->fail('缺少id参数');
|
||||
return parent::_edit($this->logic, $id, $data);
|
||||
}
|
||||
|
||||
#[Log('文件模板-删除记录', Log::TYPE_DELETE, '删除模板ID:{id}')]
|
||||
#[Permission('sys:fileTemplate:delete', '删除模板')]
|
||||
public function delete(int $id): Json
|
||||
{
|
||||
return parent::_remove($this->logic, $id);
|
||||
}
|
||||
|
||||
// 按编码查询(无权限注解,已登录即可访问)
|
||||
#[Log('文件模板-按编码查询', Log::TYPE_QUERY)]
|
||||
public function getTemplateByCode(string $code): Json
|
||||
{
|
||||
$result = $this->logic->getByCode($code);
|
||||
if (!$result) {
|
||||
return $this->fail('模板不存在', 404);
|
||||
}
|
||||
return $this->success($result);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
:::tip 按编码查询
|
||||
`getTemplateByCode` 接口未配置权限注解,通常用于前端按编码读取模板配置的场景。
|
||||
:::
|
||||
Reference in New Issue
Block a user