#!/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': '接口对应数据库暂不支持' }