scheme_edit.py 3.4 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
import datetime
import json
class Api(ApiTemplate):
    api_name = "修改方案"

    def process(self):

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

            guid = data.get("guid")

            tile_scheme:TileScheme = TileScheme.query.filter_by(guid=guid).one_or_none()
            if tile_scheme is None:
                raise Exception("不存在该切片方案!")

            update_dict = data
            update_dict["update_time"] = datetime.datetime.now()
            del update_dict["guid"]
            if update_dict:

                TileScheme.query.filter_by(guid=guid).update(update_dict)
                db.session.commit()

                #更新parameter
                tile_scheme: TileScheme = TileScheme.query.filter_by(guid=guid).one_or_none()
                parameter = {}
                for l_dict in json.loads(tile_scheme.levels):
                    parameter[str(l_dict["level"])] = {"resolution": l_dict["resolution"], "scale": l_dict["scale"]}
                parameter["cols"] = tile_scheme.cols
                parameter["rows"] = tile_scheme.rows
                parameter["dpi"] = tile_scheme.dpi
                parameter["wkt"] = tile_scheme.crs_wkt
                parameter["x"] = eval(tile_scheme.top_left.split(",")[0])
                parameter["y"] = eval(tile_scheme.top_left.split(",")[1])
                TileScheme.query.filter_by(guid=guid).update({"parameter":json.dumps(parameter)})
                db.session.commit()

            res["data"] = guid
            res["result"] = True
        except Exception as e:
            db.session.rollback()
            raise Exception("参数填写错误!")
        return res

    api_doc = {

        "tags": ["方案接口"],
        "parameters": [
            {"name": "guid",
             "in": "formData",
             "type": "string"},
            {"name": "name",
             "in": "formData",
             "type": "string"},
            {"name": "alias",
             "in": "formData",
             "type": "string"},
            {"name": "description",
             "in": "formData",
             "type": "string"},
            {"name": "crs",
             "in": "formData",
             "type": "string"},
            {"name": "crs_wkt",
             "in": "formData",
             "type": "string"},
            {"name": "extent",
             "in": "formData",
             "type": "string"},
            {"name": "top_left",
             "in": "formData",
             "type": "string"},
            {"name": "rows",
             "in": "formData",
             "type": "string"},
            {"name": "cols",
             "in": "formData",
             "type": "string"},
            {"name": "dpi",
             "in": "formData",
             "type": "string"},
            {"name": "levels",
             "in": "formData",
             "type": "string"},

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