- 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>
175 lines
4.2 KiB
Python
175 lines
4.2 KiB
Python
"""
|
|
分类管理控制器模块
|
|
=============================================================
|
|
|
|
提供分类(Category)相关的API接口,包括:
|
|
- 分类列表查询
|
|
- 分类详情查询
|
|
- 分类添加、更新、删除
|
|
- 分类数据列表获取(用于下拉选择、树形展示)
|
|
- 分类树获取
|
|
- 子分类列表获取
|
|
|
|
所属包: application.views
|
|
依赖模块: application.services.category - 分类业务逻辑层
|
|
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 category
|
|
category_blue = Blueprint('category', __name__, url_prefix='/category')
|
|
|
|
from utils import R
|
|
|
|
|
|
# ============================================================
|
|
# 分类列表查询
|
|
# ============================================================
|
|
|
|
@category_blue.route('/list', methods=["GET"])
|
|
@check_permission("sys:category:list")
|
|
def list():
|
|
"""
|
|
查询分类列表
|
|
|
|
功能说明:
|
|
获取分类列表数据,支持按名称模糊搜索。
|
|
|
|
Query Parameters:
|
|
category_name: 分类名称(可选,模糊查询)
|
|
type: 分类类型(可选,精确查询)
|
|
|
|
Returns:
|
|
JSON: 分类列表数据
|
|
"""
|
|
result = category.get_category_list()
|
|
return result
|
|
|
|
|
|
# ============================================================
|
|
# 分类详情查询
|
|
# ============================================================
|
|
|
|
@category_blue.route('/detail/<int:id>', methods=["GET"])
|
|
@check_permission("sys:category:detail")
|
|
def detail(id):
|
|
"""
|
|
查询分类详情
|
|
|
|
Args:
|
|
id: 分类ID
|
|
|
|
Returns:
|
|
JSON: 分类详细信息
|
|
"""
|
|
data = category.get_category_detail(id)
|
|
if data:
|
|
return R.ok(data=data)
|
|
return R.failed("分类不存在")
|
|
|
|
|
|
# ============================================================
|
|
# 分类添加
|
|
# ============================================================
|
|
|
|
@category_blue.route('/add', methods=["POST"])
|
|
@check_permission("sys:category:add")
|
|
@check_demo
|
|
def add():
|
|
"""
|
|
添加分类
|
|
|
|
功能说明:
|
|
创建新的分类记录。
|
|
|
|
Request Body:
|
|
{
|
|
"category_name": "分类名称",
|
|
"category_code": "分类编码(可选)",
|
|
"parent_id": 0,
|
|
"sort": 0,
|
|
"note": "备注(可选)",
|
|
"type": 1
|
|
}
|
|
|
|
Returns:
|
|
JSON: 操作结果
|
|
"""
|
|
result = category.add_category()
|
|
return result
|
|
|
|
|
|
# ============================================================
|
|
# 分类更新
|
|
# ============================================================
|
|
|
|
@category_blue.route('/update', methods=["PUT"])
|
|
@check_permission("sys:category:update")
|
|
@check_demo
|
|
def update():
|
|
"""
|
|
更新分类
|
|
|
|
功能说明:
|
|
修改已有分类的信息。
|
|
|
|
Request Body:
|
|
{
|
|
"id": 1,
|
|
"category_name": "分类名称",
|
|
"category_code": "分类编码(可选)",
|
|
"parent_id": 0,
|
|
"sort": 0,
|
|
"note": "备注(可选)",
|
|
"type": 1
|
|
}
|
|
|
|
Returns:
|
|
JSON: 操作结果
|
|
"""
|
|
result = category.update_category()
|
|
return result
|
|
|
|
|
|
# ============================================================
|
|
# 分类删除
|
|
# ============================================================
|
|
|
|
@category_blue.route('/delete/<string:id>', methods=["DELETE"])
|
|
@check_permission("sys:category:delete")
|
|
@check_demo
|
|
def delete(id):
|
|
"""
|
|
删除分类
|
|
|
|
Args:
|
|
id: 分类ID(支持逗号分隔的多个ID)
|
|
|
|
Returns:
|
|
JSON: 操作结果
|
|
"""
|
|
result = category.delete_categories(id)
|
|
return result
|
|
|
|
|
|
# ============================================================
|
|
# 分类数据列表获取
|
|
# ============================================================
|
|
|
|
@category_blue.route('/getCategoryList', methods=["GET"])
|
|
def get_category_list():
|
|
"""
|
|
获取分类数据列表
|
|
|
|
功能说明:
|
|
获取所有分类列表,常用于下拉选择框。
|
|
|
|
Returns:
|
|
JSON: 分类列表数据
|
|
"""
|
|
result = category.get_category_data()
|
|
return R.ok(data=result)
|