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


from app.util.component.ApiTemplate import ApiTemplate
import uuid
from ..models import Service,db,MapService,ServiceFunction
import datetime
import configure
class Api(ApiTemplate):

    api_name = "注册MapService服务"

    def process(self):
        # 返回结果
        res = {}

        try:

            this_time = datetime.datetime.now()
            service_guid = uuid.uuid1().__str__()
            map_service_guid = uuid.uuid1().__str__()
            service_function_guid = uuid.uuid1().__str__()


            # 逻辑是,先调用引擎接口,引擎说可以,才做持久化
            # 并获得服务缩略图

            service = Service(
                guid = service_guid,
                name = self.para.get("name"),
                title = self.para.get("title"),
                state = int(self.para.get("state")) if self.para.get("state") else None,
                create_time = this_time,
                update_time = this_time,
                description = self.para.get("description"),
                #node = Column(Integer),
                node = 1 ,
                overview = "xxxx",
                type = self.para.get("type"),
                catalog_guid = self.para.get("catalog_guid")
            )

            map_service = MapService(
                guid = map_service_guid,
                name = self.para.get("name"),
                status = self.para.get("status"),
                description=self.para.get("description"),
                username = self.para.get("username"),
                readonly = self.para.get("readonly"),
                updatetime = this_time,
                sid = int(self.para.get("sid")),
                stype = self.para.get("stype"),
                ssupply = self.para.get("ssupply"),
                sctime = self.para.get("sctime"),
                company = self.para.get("company"),
                abstract = self.para.get("abstract"),
                thumbnail = self.para.get("thumbnail"),
                layer_style = self.para.get("layer_style"),
                service_guid = service_guid
            )

            service_function = ServiceFunction(guid=service_function_guid,type="WMS",
                                               service_guid=service_guid)

            db.session.add(service)
            db.session.add(map_service)
            db.session.add(service_function)
            db.session.commit()

            # 调用MapService服务的注册服务接口
            try:
                pass
                #对,逻辑是,先调用引擎接口,引擎说可以,才做持久化
            except Exception as e:
                db.session.delete(service)
                db.session.delete(map_service)
                db.session.delete(service_function)
                db.session.commit()
                raise e

            res["data"] = service_guid
            res["result"] = True
        except Exception as e:
            db.session.rollback()
            raise e
        return res

    api_doc = {
        "tags": ["地图服务接口"],
        "parameters": [

            {"name": "name",
             "in": "formData",
             "type": "string",
             "required": "true",
             "description": "[地图服务,切片服务,影像服务]"},
            {"name": "title",
             "in": "formData",
             "type": "string",
             "description": "[地图服务,切片服务,影像服务]"},
            {"name": "description",
             "in": "formData",
             "type": "string",
             "description": "[地图服务,切片服务,影像服务]"},
            {"name": "type",
             "in": "formData",
             "type": "string",
             "enum": ["地图服务", "切片服务", "影像服务"],
             "required": "true",
             "description": "[地图服务,切片服务,影像服务]"},
            {"name": "catalog_guid",
             "in": "formData",
             "type": "string",
             "description": "[地图服务,切片服务,影像服务]"},


            {"name": "status",
             "in": "formData",
             "type": "string",
             "description": "[地图服务]status"},
            {"name": "username",
             "in": "formData",
             "type": "string",
             "description": "[地图服务]username"},
            {"name": "readonly",
             "in": "formData",
             "type": "string",
             "description": "[地图服务]readonly"},
            {"name": "sid",
             "in": "formData",
             "type": "string",
             "description": "[地图服务]sid"},
            {"name": "stype",
             "in": "formData",
             "type": "string",
             "description": "[地图服务]stype"},
            {"name": "ssupply",
             "in": "formData",
             "type": "string",
             "description": "[地图服务]ssupply"},
            {"name": "sctime",
             "in": "formData",
             "type": "string",
             "description": "[地图服务]sctime"},
            {"name": "company",
             "in": "formData",
             "type": "string",
             "description": "[地图服务]company"},
            {"name": "abstract",
             "in": "formData",
             "type": "string",
             "description": "[地图服务]abstract"},
            {"name": "thumbnail",
             "in": "formData",
             "type": "string",
             "description": "[地图服务]thumbnail"},
            {"name": "layer_style",
             "in": "formData",
             "type": "string",
             "description": "[地图服务,切片服务]layer_style"},

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