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



from app.util.component.ApiTemplate import ApiTemplate
from app.util.component.ModelVisitor import ModelVisitor

from app.modules.service.image.models import Image,db,ImageTag
from sqlalchemy import or_,and_
import datetime
class Api(ApiTemplate):

    api_name = "影像数据List"

    def process(self):

        # 返回结果
        res = {}
        try:
            para = self.para
            guid = self.para.get("guid")
            tag_guids = self.para.get("tag_guids")

            image = Image.query.filter_by(guid=guid)
            this_time = datetime.datetime.now()

            del para["guid"]
            del para["tag_guids"]

            if para or tag_guids:
                para["update_time"] = this_time
                image.update(para)

            if tag_guids:
                tags = ImageTag.query.filter(ImageTag.guid.in_(tag_guids.split(","))).all()
                img = Image.query.filter_by(guid=guid).one_or_none()
                img.image_tags = tags


            db.session.commit()

            res["result"] = True
        except Exception as e:
            raise e

        return res


    api_doc = {
        "tags": ["影像接口"],
        "parameters": [
            {"name": "guid",
             "in": "formData",
             "type": "string"},
            {"name": "alias",
             "in": "formData",
             "type": "string"},
            {"name": "ym",
             "in": "formData",
             "type": "string","description":"成像时间字符串"},
            {"name": "region",
             "in": "formData",
             "type": "string", "description": "所属区域"},
            {"name": "satellite",
             "in": "formData",
             "type": "string", "description": "卫星类型"},
            {"name": "epsg",
             "in": "formData",
             "type": "string", "description": "空间参考"},
            {"name": "tag_guids",
             "in": "formData",
             "type": "string", "description": "tags"},
        ],
        "responses": {
            200: {
                "schema": {
                    "properties": {
                    }
                }
            }
        }
    }