#!/usr/bin/env python3 # -*- coding: utf-8 -*- from fastapi import APIRouter, Request from database import get_db, get_share_db from sqlalchemy.orm import Session from utils import * from models import * from common.enc import mpfun, govdata_disaster_info_officer_data, chemical_company_data, building_project_info_data, emergency_expert_data from exceptions import HmacException import traceback router = APIRouter() # #应急专家详情 # @router.post('/v2/get_point_info_emergency_expert') # async def getEmergencyExpertDetails( # request: Request, # body = Depends(remove_xss_json), # db: Session = Depends(get_db) # ): # try: # id = body['query']['id'] # row = db.query(EmergencyExpert).filter(EmergencyExpert.id == id).first() # if emergency_expert_data.sign_valid_row(row) == False: # raise HmacException(500, "应急专家信息表验证异常,已被非法篡改") # # data = { # "name": row.name, # "area": row.area, # "type": row.type, # "company": row.company, # "official": row.official, # "phone": mpfun.dec_data(row.phone) # } # # return { # 'code': 0, # 'msg': 'success', # 'rows': [data] # } # # except HmacException as e: # return { # 'code': 500, # 'msg': e.msg # } # # except Exception as e: # traceback.print_exc() # # return { # 'code': 410, # 'msg': '接口对应数据库暂不支持' # } # 灾害信息员详情 @router.post('/v2/get_point_info_emergency_disaster_info_officer') async def getEmergencyDisasterInfoOfficerDetails( request: Request, body = Depends(remove_xss_json), db: Session = Depends(get_db) ): try: id = body['query']['id'] row = db.query(GovdataDisasterInfoOfficer).filter(GovdataDisasterInfoOfficer.id == id).first() if govdata_disaster_info_officer_data.sign_valid_row(row) == False: raise HmacException(500, "灾害信息员信息表验证异常,已被非法篡改") info = get_model_dict(row) info['cellphone'] = mpfun.dec_data(info['cellphone']) return { 'code': 0, 'msg': 'success', 'rows': [info] } except HmacException as e: return { 'code': 500, 'msg': e.msg } except Exception as e: traceback.print_exc() return { 'code': 410, 'msg': '接口对应数据库暂不支持' } # 危化企业详情 @router.post('/v2/get_point_info_chemical_company') async def getChemicalcompanyDetails( request: Request, body = Depends(remove_xss_json), db: Session = Depends(get_db) ): try: id = body['query']['id'] row = db.query(ChemicalCompany).filter(ChemicalCompany.id == id).first() info = get_model_dict(row) info['emergency_contact_number'] = mpfun.dec_data(info['emergency_contact_number']) info['emergency_response_hotline'] = mpfun.dec_data(info['emergency_response_hotline']) info['qyagjgfzr_phone'] = mpfun.dec_data(info['qyagjgfzr_phone']) info['qyfgaqfzr_phone'] = mpfun.dec_data(info['qyfgaqfzr_phone']) if chemical_company_data.sign_valid_row(row) == False: raise HmacException(500, "危化企业信息表验证异常,已被非法篡改") return { 'code': 0, 'msg': 'success', 'rows': [info] } except HmacException as e: return { 'code': 500, 'msg': e.msg } except Exception as e: return { 'code': 410, 'msg': '接口对应数据库暂不支持' } # 建筑工程信息详情 @router.post('/v2/get_point_info_building_project_info') async def getBuildingProjectDetails( request: Request, body = Depends(remove_xss_json), db: Session = Depends(get_db) ): try: id = body['query']['id'] row = db.query(BuildingProjectInfo).filter(BuildingProjectInfo.id == id).first() info = get_model_dict(row) if building_project_info_data.sign_valid_row(row) == False: raise HmacException(500, "建筑工程信息表验证异常,已被非法篡改") return { 'code': 0, 'msg': 'success', 'rows': [info] } except HmacException as e: return { 'code': 500, 'msg': e.msg } except Exception as e: return { 'code': 410, 'msg': '接口对应数据库暂不支持' }