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