image_service_list.py 2.5 KB
# coding=utf-8
#author:        4N
#createtime:    2021/7/19
#email:         nheweijun@sina.com

from app.modules.service.image.models import ImageService,Image

from app.util.component.ApiTemplate import ApiTemplate
from app.util.component.ModelVisitor import ModelVisitor
from app.models import Service
from sqlalchemy import or_
class Api(ApiTemplate):

    api_name = "影像服务List"

    def process(self):

        # 返回结果
        res = {}

        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")
            type = self.para.get("type")

            services = ImageService.query
            if type:
                services = services.filter_by(type=type)
            # 并集
            if alias and name:
                services = services.filter(
                    or_(ImageService.alias.like("%" + alias + "%"), ImageService.name.like("%" + name + "%")))
            else:
                if alias:
                    services = services.filter(ImageService.alias.like("%" + alias + "%"))
                if name:
                    services = services.filter(ImageService.name.like("%" + name + "%"))


            res["data"] = {}
            res["data"]["count"] = services.count()
            services = services.limit(page_size).offset(page_index * page_size).all()
            res["data"]["list"] = ModelVisitor.objects_to_jsonarray(services)
            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",
             "description": "服务别名"},
            {"name": "name",
             "in": "formData",
             "type": "string",
             "description": "服务名"},
        ],
        "responses": {
            200: {
                "schema": {
                    "properties": {
                    }
                }
            }
        }
    }