field_list.py 1.6 KB
#author:        4N
#createtime:    2021/1/27
#email:         nheweijun@sina.com


import traceback
from ..models import Table
from app.util.component.ApiTemplate import ApiTemplate
from app.util.component.ModelVisitor import ModelVisitor

class Api(ApiTemplate):
    api_name = "属性列表"
    def process(self):

        #返回结果
        dir_path = None
        res={}
    
        try:
            table_guid = self.para.get("guid")
            is_for_partition = self.para.get("is_for_partition")
            table:Table = Table.query.filter_by(guid=table_guid).one_or_none()
            if table:
                res["result"]=True
                res["data"] = ModelVisitor.objects_to_jsonarray(table.relate_columns)
                if is_for_partition:
                    res["data"] = [data for data in res["data"] if data["is_for_partition"] == int(is_for_partition)]
            else:
                res["result"]=False
                res["msg"] = "数据表不存在!"
        except Exception as e:
            print(traceback.format_exc())
            raise e

        return res

    api_doc={
    "tags":["管理接口"],
    "parameters":[
        {"name": "guid",
         "in": "formData",
         "type": "string",
         "description": "表guid"},
        {"name": "is_for_partition",
         "in": "formData",
         "type": "int",
         "description": "是否用于分层分级", "enum": [0, 1]},
    
    ],
    "responses":{
        200:{
            "schema":{
                "properties":{
                }
            }
            }
        }
    }