scheme_list.py 2.3 KB
# coding=utf-8
#author:        4N
#createtime:    2021/9/16
#email:         nheweijun@sina.com


import uuid
from app.models import TileScheme,db
from app.util.component.ApiTemplate import ApiTemplate
from app.util.component.ModelVisitor import ModelVisitor
from sqlalchemy import or_
import datetime

class Api(ApiTemplate):
    api_name = "查询切片方案"

    def process(self):

        # 返回结果
        res = {}
        res["result"] = False
        try:
            # 业务逻辑

            page_index = int(self.para.get("page_index", "0"))
            page_size = int(self.para.get("page_size", "10"))

            alias = self.para.get("alias")
            name = self.para.get("name")
            schemes = TileScheme.query.order_by(TileScheme.update_time.desc())

            # 并集
            if alias and name:
                schemes = schemes.filter(or_(TileScheme.alias.like("%" + alias + "%") , TileScheme.name.like("%" + name + "%")))
            else:
                if alias:
                    schemes = schemes.filter(TileScheme.alias.like("%" + alias + "%"))
                if name:
                    schemes = schemes.filter(TileScheme.name.like("%" + name + "%"))

            res["data"] = {}
            res["data"]["count"] = schemes.count()
            schemes = schemes.limit(page_size).offset(page_index * page_size).all()
            res["data"]["list"] = ModelVisitor.objects_to_jsonarray(schemes)
            res["result"] = True

        except Exception as e:
            raise e

        return res

    api_doc = {

        "tags": ["方案接口"],
        "parameters": [
            {"name": "page_index",
             "in": "formData",
             "type": "int",
             "description": "页"},
            {"name": "page_size",
             "in": "formData",
             "type": "int",
             "description": "页大小"},
            {"name": "alias",
             "in": "formData",
             "type": "string"},
            {"name": "name",
             "in": "formData",
             "type": "string"},

        ],
        "responses": {
            200: {
                "schema": {
                    "properties": {
                    }
                }
            }
        }
    }