- git 初始化 + .gitignore 补全(根 .env / logs / instance / __pycache__ 等) - 修复 utils/.gitignore 误将整个 utils/ 源码层忽略的问题,补入全部工具源码(含 ip2region.xdb) - 含后端全部代码:application / extensions / utils / config / migrations - 含前端 ui/(后续整体迁走) - 不含根 .env(含密钥,本地保留) Co-Authored-By: Claude <noreply@anthropic.com>
157 lines
4.1 KiB
Python
157 lines
4.1 KiB
Python
"""
|
|
文件模板管理控制器模块
|
|
=============================================================
|
|
|
|
提供文件模板(FileTemplate)相关的API接口,包括:
|
|
- 文件模板分页查询
|
|
- 文件模板详情查询
|
|
- 文件模板添加、更新、删除
|
|
- 文件模板列表获取
|
|
- 模板文件上传
|
|
- 模板文件下载
|
|
|
|
所属包: application.views
|
|
依赖模块: application.services.file_template - 文件模板业务逻辑层
|
|
application.middleware.check_permission - 权限校验中间件
|
|
"""
|
|
from flask import Blueprint
|
|
|
|
from application.middleware.check_demo import check_demo
|
|
from application.middleware.check_permission import check_permission
|
|
from application.services import file_template
|
|
from utils.request import parse_batch_ids
|
|
file_template_blue = Blueprint('file_template', __name__, url_prefix='/file/template')
|
|
|
|
from utils import R
|
|
|
|
|
|
# ============================================================
|
|
# 文件模板分页查询
|
|
# ============================================================
|
|
|
|
@file_template_blue.route('/page', methods=["GET"])
|
|
@check_permission("sys:filetemplate:page")
|
|
def page():
|
|
"""
|
|
查询文件模板分页数据
|
|
|
|
功能说明:
|
|
获取文件模板列表的分页数据,支持关键词搜索。
|
|
|
|
Returns:
|
|
JSON: 文件模板分页数据,包含 records(数据列表)、total(总记录数)等
|
|
"""
|
|
result = file_template.get_file_template_page()
|
|
return result
|
|
|
|
|
|
# ============================================================
|
|
# 文件模板详情查询
|
|
# ============================================================
|
|
|
|
@file_template_blue.route('/detail/<int:id>', methods=["GET"])
|
|
@check_permission("sys:filetemplate:detail")
|
|
def detail(id):
|
|
"""
|
|
查询文件模板详情
|
|
|
|
Args:
|
|
id: 文件模板ID
|
|
|
|
Returns:
|
|
JSON: 文件模板详细信息
|
|
"""
|
|
data = file_template.get_file_template_detail(id)
|
|
if data:
|
|
return R.ok(data=data)
|
|
return R.failed("模板不存在")
|
|
|
|
|
|
# ============================================================
|
|
# 文件模板添加
|
|
# ============================================================
|
|
|
|
@file_template_blue.route('/add', methods=["POST"])
|
|
@check_permission("sys:filetemplate:add")
|
|
@check_demo
|
|
def add():
|
|
"""
|
|
添加文件模板
|
|
|
|
功能说明:
|
|
创建新的文件模板记录。
|
|
|
|
Returns:
|
|
JSON: 操作结果
|
|
"""
|
|
result = file_template.add_file_template()
|
|
return result
|
|
|
|
|
|
# ============================================================
|
|
# 文件模板更新
|
|
# ============================================================
|
|
|
|
@file_template_blue.route('/update', methods=["PUT"])
|
|
@check_permission("sys:filetemplate:update")
|
|
@check_demo
|
|
def update():
|
|
"""
|
|
更新文件模板
|
|
|
|
功能说明:
|
|
修改已有文件模板的信息。
|
|
|
|
Returns:
|
|
JSON: 操作结果
|
|
"""
|
|
result = file_template.update_file_template()
|
|
return result
|
|
|
|
|
|
# ============================================================
|
|
# 文件模板删除
|
|
# ============================================================
|
|
|
|
@file_template_blue.route('/delete/<string:id>', methods=["DELETE"])
|
|
@check_permission("sys:filetemplate:delete")
|
|
@check_demo
|
|
def delete(id):
|
|
"""
|
|
删除文件模板
|
|
|
|
Args:
|
|
id: 文件模板ID(支持逗号分隔的多个ID)
|
|
|
|
Returns:
|
|
JSON: 操作结果
|
|
"""
|
|
result = file_template.delete_file_templates(id)
|
|
return result
|
|
|
|
|
|
# ============================================================
|
|
# 文件模板批量删除
|
|
# ============================================================
|
|
|
|
@file_template_blue.route('/batchDelete', methods=["DELETE"])
|
|
@check_permission("sys:filetemplate:batch_delete")
|
|
@check_demo
|
|
def batch_delete():
|
|
"""
|
|
批量删除文件模板
|
|
|
|
功能说明:
|
|
批量删除文件模板记录,支持传入ID数组。
|
|
|
|
Request Body:
|
|
[1, 2, 3] # 文件模板ID数组
|
|
|
|
Returns:
|
|
JSON: 操作结果
|
|
"""
|
|
id_str, err = parse_batch_ids()
|
|
if err:
|
|
return err
|
|
return file_template.delete_file_templates(id_str)
|