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


from app.util.component.ApiTemplate import ApiTemplate
import os
from app.util.component.FileProcess import FileProcess
from app.util.component.SliceScheme import SliceScheme
import shutil
from app.util.component.StructuredPrint import StructurePrint
import json
class Api(ApiTemplate):
    api_name = "解析方案"

    def process(self):

        # 返回结果
        res = {}
        store_file = ""
        try:
            # 业务逻辑
            parent = os.path.dirname(os.path.realpath(__file__))
            dir_path, store_file = FileProcess.save(parent)
            scheme = SliceScheme(store_file)

            data = {
                "crs_wkt": scheme.parameter.get("wkt"),
                "top_left": "{},{}".format(scheme.parameter.get("x"),scheme.parameter.get("y")),
                "dpi": scheme.parameter.get("dpi"),
                "rows": scheme.parameter.get("rows"),
                "cols": scheme.parameter.get("cols"),
                "levels": scheme.levels,
                # "parameter":scheme.parameter
            }

            res["data"] = data
            res["result"] = True
        except Exception as e:
            raise e
        finally:
            try:
                file_tmp_path = os.path.join(store_file.split("file_tmp")[0],"file_tmp")
                dir_path = os.path.dirname(store_file)
                i=0
                while not os.path.dirname(dir_path).__eq__(file_tmp_path) and i<30:
                    dir_path = os.path.dirname(dir_path)
                    i+=1
                if i<30:
                    shutil.rmtree(dir_path,True)
                    StructurePrint().print("删除文件成功!")
                else:
                    raise Exception("找不到文件!")
            except Exception as e:
                StructurePrint().print("删除文件失败!","ERROR")
        return res

    api_doc = {

        "tags": ["方案接口"],
        "parameters": [
            {"name": "file",
             "in": "formData",
             "type": "file",
             "description": "切片方案"},
        ],
        "responses": {
            200: {
                "schema": {
                    "properties": {
                    }
                }
            }
        }
    }