Files
flask_rulebase_serve/app/blueprints/bag_data/routes.py
2026-04-22 13:35:40 +08:00

56 lines
1.6 KiB
Python

from collections import defaultdict
from datetime import datetime
from flask import Blueprint, current_app, request, jsonify
from flask_jwt_extended import create_access_token, get_jwt, get_jwt_identity, jwt_required
from sqlalchemy import and_, asc, desc, exists, func, or_
from app.models import BagFile, Fst, Role, User, UserRole
from app.utils.fst_tree import build_tree,build_sub_tree
from app import db
from app.utils.log_record import log_operation
from sqlalchemy.orm import aliased
# 1.创建蓝图实例,指定名称和导入名称
data_bp = Blueprint('bag', __name__)
@data_bp.route('/fstlist',methods=['GET'])
@jwt_required()
def get_fstlist():
res=Fst.query.with_entities(Fst.id,Fst.name,Fst.parent_id).all()
response=build_tree(res)
return jsonify(response), 200
@data_bp.route('/fstlevel1', methods=['GET'])
def get_level1_fst():
# 查询 level=1 的记录,仅返回 id, name, level 字段
results = Fst.query.with_entities(
Fst.id,
Fst.name,
Fst.level
).filter_by(level=1).all()
# 转换为字典列表(方便 JSON 序列化)
data = [{
"id": r.id,
"name": r.name,
"level": r.level
} for r in results]
return jsonify(data),200
# 跨表查询所有的bag
@data_bp.route('/getnode', methods=['GET'])
@jwt_required()
def query_sub_node():
'''
根据一级标签查询对应的所有子标签
'''
tagid=request.args.get('tagid')
res=Fst.query.with_entities(Fst.id,Fst.name,Fst.parent_id).all()
response=build_sub_tree(res,tagid)
return jsonify(response), 200