sign_api.py 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  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, emergency_expert_data
  9. from exceptions import HmacException
  10. import traceback
  11. router = APIRouter()
  12. #应急专家详情
  13. @router.post('/v2/get_point_info_emergency_expert')
  14. async def getEmergencyExpertDetails(
  15. request: Request,
  16. body = Depends(remove_xss_json),
  17. db: Session = Depends(get_db)
  18. ):
  19. try:
  20. id = body['query']['id']
  21. row = db.query(EmergencyExpert).filter(EmergencyExpert.id == id).first()
  22. if emergency_expert_data.sign_valid_row(row) == False:
  23. raise HmacException(500, "应急专家信息表验证异常,已被非法篡改")
  24. data = {
  25. "name": row.name,
  26. "area": row.area,
  27. "type": row.type,
  28. "company": row.company,
  29. "official": row.official,
  30. "phone": mpfun.dec_data(row.phone)
  31. }
  32. return {
  33. 'code': 0,
  34. 'msg': 'success',
  35. 'rows': [data]
  36. }
  37. except HmacException as e:
  38. return {
  39. 'code': 500,
  40. 'msg': e.msg
  41. }
  42. except Exception as e:
  43. traceback.print_exc()
  44. return {
  45. 'code': 410,
  46. 'msg': '接口对应数据库暂不支持'
  47. }
  48. # 灾害信息员详情
  49. @router.post('/v2/get_point_info_emergency_disaster_info_officer')
  50. async def getEmergencyDisasterInfoOfficerDetails(
  51. request: Request,
  52. body = Depends(remove_xss_json),
  53. db: Session = Depends(get_db)
  54. ):
  55. try:
  56. id = body['query']['id']
  57. row = db.query(GovdataDisasterInfoOfficer).filter(GovdataDisasterInfoOfficer.id == id).first()
  58. if govdata_disaster_info_officer_data.sign_valid_row(row) == False:
  59. raise HmacException(500, "灾害信息员信息表验证异常,已被非法篡改")
  60. info = get_model_dict(row)
  61. info['cellphone'] = mpfun.dec_data(info['cellphone'])
  62. return {
  63. 'code': 0,
  64. 'msg': 'success',
  65. 'rows': [info]
  66. }
  67. except HmacException as e:
  68. return {
  69. 'code': 500,
  70. 'msg': e.msg
  71. }
  72. except Exception as e:
  73. traceback.print_exc()
  74. return {
  75. 'code': 410,
  76. 'msg': '接口对应数据库暂不支持'
  77. }
  78. # 危化企业详情
  79. @router.post('/v2/get_point_info_chemical_company')
  80. async def getChemicalcompanyDetails(
  81. request: Request,
  82. body = Depends(remove_xss_json),
  83. db: Session = Depends(get_db)
  84. ):
  85. try:
  86. id = body['query']['id']
  87. row = db.query(ChemicalCompany).filter(ChemicalCompany.id == id).first()
  88. info = get_model_dict(row)
  89. info['emergency_contact_number'] = mpfun.dec_data(info['emergency_contact_number'])
  90. info['emergency_response_hotline'] = mpfun.dec_data(info['emergency_response_hotline'])
  91. info['qyagjgfzr_phone'] = mpfun.dec_data(info['qyagjgfzr_phone'])
  92. info['qyfgaqfzr_phone'] = mpfun.dec_data(info['qyfgaqfzr_phone'])
  93. if chemical_company_data.sign_valid_row(row) == False:
  94. raise HmacException(500, "危化企业信息表验证异常,已被非法篡改")
  95. return {
  96. 'code': 0,
  97. 'msg': 'success',
  98. 'rows': [info]
  99. }
  100. except HmacException as e:
  101. return {
  102. 'code': 500,
  103. 'msg': e.msg
  104. }
  105. except Exception as e:
  106. return {
  107. 'code': 410,
  108. 'msg': '接口对应数据库暂不支持'
  109. }
  110. # 建筑工程信息详情
  111. @router.post('/v2/get_point_info_building_project_info')
  112. async def getBuildingProjectDetails(
  113. request: Request,
  114. body = Depends(remove_xss_json),
  115. db: Session = Depends(get_db)
  116. ):
  117. try:
  118. id = body['query']['id']
  119. row = db.query(BuildingProjectInfo).filter(BuildingProjectInfo.id == id).first()
  120. info = get_model_dict(row)
  121. if building_project_info_data.sign_valid_row(row) == False:
  122. raise HmacException(500, "建筑工程信息表验证异常,已被非法篡改")
  123. return {
  124. 'code': 0,
  125. 'msg': 'success',
  126. 'rows': [info]
  127. }
  128. except HmacException as e:
  129. return {
  130. 'code': 500,
  131. 'msg': e.msg
  132. }
  133. except Exception as e:
  134. return {
  135. 'code': 410,
  136. 'msg': '接口对应数据库暂不支持'
  137. }