sign_api.py 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. from fastapi import APIRouter, Request
  4. from database import get_db, get_share_db
  5. from sqlalchemy.orm import Session
  6. from utils import *
  7. from models import *
  8. from common.enc import mpfun, govdata_disaster_info_officer_data, chemical_company_data, building_project_info_data
  9. from exceptions import HmacException
  10. router = APIRouter()
  11. # 灾害信息员详情
  12. @router.post('/v2/get_point_info_emergency_disaster_info_officer')
  13. async def getEmergencyDisasterInfoOfficerDetails(
  14. request: Request,
  15. body = Depends(remove_xss_json),
  16. db: Session = Depends(get_db)
  17. ):
  18. try:
  19. id = body['query']['id']
  20. row = db.query(GovdataDisasterInfoOfficer).filter(GovdataDisasterInfoOfficer.id == id).first()
  21. info = get_model_dict(row)
  22. info['cellphone'] = mpfun.dec_data(info['cellphone'])
  23. if govdata_disaster_info_officer_data.sign_valid_row(row) == False:
  24. raise HmacException(500, "应急预案人员信息表验证异常,已被非法篡改")
  25. return {
  26. 'code': 0,
  27. 'msg': 'success',
  28. 'rows': [info]
  29. }
  30. except HmacException as e:
  31. return {
  32. 'code': 500,
  33. 'msg': e.msg
  34. }
  35. except Exception as e:
  36. return {
  37. 'code': 410,
  38. 'msg': '接口对应数据库暂不支持'
  39. }
  40. # 危化企业详情
  41. @router.post('/v2/get_point_info_chemical_company')
  42. async def getChemicalcompanyDetails(
  43. request: Request,
  44. body = Depends(remove_xss_json),
  45. db: Session = Depends(get_db)
  46. ):
  47. try:
  48. id = body['query']['id']
  49. row = db.query(ChemicalCompany).filter(ChemicalCompany.id == id).first()
  50. info = get_model_dict(row)
  51. info['emergency_contact_number'] = mpfun.dec_data(info['emergency_contact_number'])
  52. info['emergency_response_hotline'] = mpfun.dec_data(info['emergency_response_hotline'])
  53. info['qyagjgfzr_phone'] = mpfun.dec_data(info['qyagjgfzr_phone'])
  54. info['qyfgaqfzr_phone'] = mpfun.dec_data(info['qyfgaqfzr_phone'])
  55. if chemical_company_data.sign_valid_row(row) == False:
  56. raise HmacException(500, "危化企业信息表验证异常,已被非法篡改")
  57. return {
  58. 'code': 0,
  59. 'msg': 'success',
  60. 'rows': [info]
  61. }
  62. except HmacException as e:
  63. return {
  64. 'code': 500,
  65. 'msg': e.msg
  66. }
  67. except Exception as e:
  68. return {
  69. 'code': 410,
  70. 'msg': '接口对应数据库暂不支持'
  71. }
  72. # 建筑工程信息详情
  73. @router.post('/v2/get_point_info_building_project_info')
  74. async def getBuildingProjectDetails(
  75. request: Request,
  76. body = Depends(remove_xss_json),
  77. db: Session = Depends(get_db)
  78. ):
  79. try:
  80. id = body['query']['id']
  81. row = db.query(BuildingProjectInfo).filter(BuildingProjectInfo.id == id).first()
  82. info = get_model_dict(row)
  83. if building_project_info_data.sign_valid_row(row) == False:
  84. raise HmacException(500, "建筑工程信息表验证异常,已被非法篡改")
  85. return {
  86. 'code': 0,
  87. 'msg': 'success',
  88. 'rows': [info]
  89. }
  90. except HmacException as e:
  91. return {
  92. 'code': 500,
  93. 'msg': e.msg
  94. }
  95. except Exception as e:
  96. return {
  97. 'code': 410,
  98. 'msg': '接口对应数据库暂不支持'
  99. }