tp_api.py 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253
  1. import traceback
  2. import flask
  3. import time
  4. import datetime
  5. import requests
  6. from flask import Blueprint
  7. from flask_cors import CORS
  8. from dateutil.relativedelta import relativedelta
  9. from logs.getlogs import *
  10. from spiders.taiping.baojia.tp_bfjs import tp_calculation
  11. from spiders.taiping.guishu.tp_config import *
  12. from spiders.taiping.guishu.tp_feichexian import get_feichexian
  13. from spiders.taiping.hebao.tp_hebao import TP_hebao
  14. from spiders.taiping.yingxiang.tp_phoupload import photo_up
  15. from spiders.taiping.baodan.tp_state import tp_Check
  16. from spiders.taiping.baodan.tp_bddownload import get_baodan
  17. from spiders.taiping.hebao.tp_revocation import TP_revocation
  18. taiping=Blueprint('tp',__name__)
  19. CORS(taiping, supports_credentials=True)
  20. @taiping.route('/tp/login',methods=['post'])
  21. def tp_login():
  22. userinfo= flask.request.json
  23. ret=set_userinfo(userinfo)
  24. return ret,200, {'Content-Type': 'application/json'}
  25. @taiping.route('/tp/bfjs',methods=['post'])
  26. def tp_bfjs():
  27. log_starttime = time.time()
  28. #车辆人员信息
  29. username=flask.request.json.get('username')
  30. modelCName = flask.request.json.get('carInfo').get('modelcname')
  31. engineNo = flask.request.json.get('carInfo').get('engineNo')
  32. vin = flask.request.json.get('carInfo').get('vinNo')
  33. licenseNo = flask.request.json.get('carInfo').get('licenseNo')
  34. seatCount = flask.request.json.get('carInfo').get('seatCount')
  35. #排量
  36. enginedesc=flask.request.json.get('carInfo').get('enginedesc')
  37. purchasePrice = flask.request.json.get('carInfo').get('purchasePrice')
  38. vehicleUse=flask.request.json.get('carInfo').get('vehicleUse')
  39. identifyNumber=flask.request.json.get('ownerInfo').get('identifyNumber')
  40. uname = flask.request.json.get('ownerInfo').get('name')
  41. address = flask.request.json.get('ownerInfo').get('addr')
  42. phone_number = flask.request.json.get('ownerInfo').get('mobile')
  43. tb_identifyNumber = flask.request.json.get('policyHolderInfo').get('identifyNumber')
  44. tb_uname = flask.request.json.get('policyHolderInfo').get('name')
  45. tb_address = flask.request.json.get('policyHolderInfo').get('addr')
  46. tb_phone_number = flask.request.json.get('policyHolderInfo').get('mobile')
  47. bb_identifyNumber = flask.request.json.get('insuredPersonInfo').get('identifyNumber')
  48. bb_uname = flask.request.json.get('insuredPersonInfo').get('name')
  49. bb_address = flask.request.json.get('insuredPersonInfo').get('addr')
  50. bb_phone_number = flask.request.json.get('insuredPersonInfo').get('mobile')
  51. registerDate=flask.request.json.get('carInfo').get('registerDate')
  52. issueDate=flask.request.json.get('carInfo').get('issueDate')
  53. #交强过户标志
  54. isTransfer=flask.request.json.get('carInfo').get('transferFlag')
  55. #商业过户标志
  56. isTransferbi = flask.request.json.get('carInfo').get('transferFlagBi')
  57. #脱保标识
  58. # isOutOfInsurance=flask.request.json.get('carInfo').get('outOfInsurance')
  59. #非车险信息
  60. accidentalDriving=flask.request.json.get('accidentalDriving')
  61. #交强险、商业险是否选择。起始、结束时间默认参数
  62. jiaoqiang_chooseFlag = 'False'
  63. chesun_chooseFlag = 'False'
  64. shangye_chooseFlag='False'
  65. jiaoqiang_startDate = str(datetime.date.today() + relativedelta(days=1))+' 00:00:00'
  66. jiaoqiang_endDate = str(datetime.date.today() + relativedelta(years=1) - relativedelta(days=1))+' 00:00:00'
  67. chesun_startDate= str(datetime.date.today() + relativedelta(days=1))+' 00:00:00'
  68. chesun_endDate= str(datetime.date.today() + relativedelta(years=1) - relativedelta(days=1))+' 00:00:00'
  69. # 交强险、商业险是否选择。起始、结束时间传入参数
  70. riskList = flask.request.json.get('riskList')
  71. for i in riskList:
  72. if i.get('riskCode') == '0507':
  73. jiaoqiang_chooseFlag = 'on'
  74. jiaoqiang_startDate = i.get('startDate')
  75. jiaoqiang_startDate = jiaoqiang_startDate
  76. jiaoqiang_endDate = i.get('endDate')
  77. jiaoqiang_endDate = "".join(jiaoqiang_endDate)
  78. elif i.get('riskCode') == '0510':
  79. shangye_chooseFlag='on'
  80. chesun_startDate = i.get('startDate')
  81. chesun_startDate = "".join(chesun_startDate)
  82. chesun_endDate = i.get('endDate')
  83. chesun_endDate = "".join(chesun_endDate)
  84. #附加险默认参数
  85. sanzhe_chooseFlag='False'
  86. sanzhe_amount='10'
  87. sjzeren_chooseFlag='False'
  88. sjzeren_amount='30000'
  89. ckzeren_chooseFlag='False'
  90. ckzeren_amount='30000'
  91. huahen_chooseFlag='False'
  92. huahen_amount='2000'
  93. fujiachesun_chooseFlag='False'
  94. fujiachesun_amount='0.05'
  95. fujiasanzhe_chooseFlag = 'False'
  96. fujiasanzhe_amount = '0.05'
  97. fujiasiji_chooseFlag = 'False'
  98. fujiasiji_amount = '0.05'
  99. fujiachengke_chooseFlag = 'False'
  100. fujiachengke_amount = '0.05'
  101. fujia_jiejiari_chooseFlag = 'False'
  102. fujia_jiejiari_amount = '2000000'
  103. ybw_sanzhe_chooseFlag='False'
  104. ybw_sanzhe_amount='0'
  105. ybw_siji_chooseFlag='False'
  106. ybw_siji_amount='0'
  107. ybw_ck_chooseFlag='False'
  108. ybw_ck_amount='0'
  109. #附件险传入参数
  110. kindList = flask.request.json.get('kindList')
  111. for ii in kindList:
  112. if ii.get('kindCode')=='B':
  113. sanzhe_chooseFlag='on'
  114. sanzhe_amount=str(int(ii.get('amount')))
  115. elif ii.get('kindCode')=='A':
  116. chesun_chooseFlag = 'on'
  117. elif ii.get('kindCode')=='D3':
  118. sjzeren_chooseFlag = 'on'
  119. sjzeren_amount = ii.get('amount')
  120. elif ii.get('kindCode')=='D4':
  121. ckzeren_chooseFlag = 'on'
  122. ckzeren_amount = ii.get('unitAmount')
  123. elif ii.get('kindCode')=='L':
  124. huahen_chooseFlag = 'on'
  125. huahen_amount = ii.get('amount')
  126. elif ii.get('kindCode')=='MJ1':
  127. fujiachesun_chooseFlag = 'on'
  128. fujiachesun_amount = str(int(ii.get('deductibleRate'))/100)
  129. elif ii.get('kindCode')=='MJ2':
  130. fujiasanzhe_chooseFlag = 'on'
  131. fujiasanzhe_amount = str(int(ii.get('deductibleRate'))/100)
  132. elif ii.get('kindCode')=='MJ3':
  133. fujiasiji_chooseFlag = 'on'
  134. fujiasiji_amount = str(int(ii.get('deductibleRate'))/100)
  135. elif ii.get('kindCode')=='MJ4':
  136. fujiachengke_chooseFlag = 'on'
  137. fujiachengke_amount = str(int(ii.get('deductibleRate'))/100)
  138. elif ii.get('kindCode')=='BD':
  139. fujia_jiejiari_chooseFlag = 'on'
  140. fujia_jiejiari_amount = ii.get('amount')
  141. elif ii.get('kindCode') == 'SY_FJ_YBW1':
  142. ybw_sanzhe_chooseFlag = 'on'
  143. ybw_sanzhe_amount = ii.get('amount')
  144. elif ii.get('kindCode') == 'SY_FJ_YBW3':
  145. ybw_siji_chooseFlag = 'on'
  146. ybw_siji_amount = ii.get('amount')
  147. elif ii.get('kindCode') == 'SY_FJ_YBW2':
  148. ybw_ck_chooseFlag = 'on'
  149. ybw_ck_amount = ii.get('unitAmount')
  150. carinfo = tp_calculation(#token、车辆、人员信息
  151. username,modelCName,engineNo,vin,licenseNo,seatCount,purchasePrice,vehicleUse,enginedesc,
  152. identifyNumber, uname, address,phone_number,
  153. tb_identifyNumber, tb_uname, tb_address, tb_phone_number,
  154. bb_identifyNumber, bb_uname, bb_address, bb_phone_number,
  155. registerDate,issueDate,isTransfer,isTransferbi,
  156. #交强险、商业险是否选择,起止日期信息
  157. jiaoqiang_chooseFlag,chesun_chooseFlag,jiaoqiang_startDate,jiaoqiang_endDate,chesun_startDate,
  158. chesun_endDate,shangye_chooseFlag,
  159. #三者责任险、价格,司机、乘客责任险、价格,划痕险、价格
  160. sanzhe_chooseFlag,sanzhe_amount,sjzeren_chooseFlag,sjzeren_amount,ckzeren_chooseFlag,ckzeren_amount,huahen_chooseFlag,huahen_amount,
  161. #附加险信息
  162. fujiachesun_chooseFlag,fujiachesun_amount ,fujiasanzhe_chooseFlag ,fujiasanzhe_amount ,
  163. fujiasiji_chooseFlag,fujiasiji_amount ,fujiachengke_chooseFlag ,fujiachengke_amount ,
  164. fujia_jiejiari_chooseFlag ,fujia_jiejiari_amount,
  165. ybw_sanzhe_chooseFlag, ybw_sanzhe_amount, ybw_siji_chooseFlag, ybw_siji_amount, ybw_ck_chooseFlag, ybw_ck_amount,
  166. #脱保车标识
  167. # isOutOfInsurance,
  168. #非车险信息
  169. accidentalDriving
  170. )
  171. try:
  172. ret = carinfo.main()
  173. log_endtime = time.time()
  174. get_bfjslogger(tp_bj_log, log_endtime, log_starttime, '太平')
  175. return ret, 200, {'Content-Type': 'application/json'}
  176. except Exception as err:
  177. log_endtime = time.time()
  178. get_bfjslogger(tp_bj_log, log_endtime, log_starttime, '太平')
  179. get_errlogger(tp_bj_log, err, traceback.format_exc() + '-------------- \n')
  180. return {'code': 400, 'message': '程序异常'}, 200, {'Content-Type': 'application/json'}
  181. @taiping.route('/tp/jiaofei', methods=['post'])
  182. def tp_jiaofei():
  183. log_starttime = time.time()
  184. plyappno = flask.request.json.get('plyappno')
  185. Hebao = TP_hebao(plyappno)
  186. try:
  187. ret = Hebao.main()
  188. log_endtime = time.time()
  189. get_hblogger(tp_hb_log, log_endtime, log_starttime, '太平')
  190. return ret, 200, {'Content-Type': 'application/json'}
  191. except Exception as err:
  192. log_endtime = time.time()
  193. get_bfjslogger(tp_hb_log, log_endtime, log_starttime, '太平')
  194. get_errlogger(tp_hb_log, err, traceback.format_exc() + '-------------- \n')
  195. return {'code': 400, 'message': '程序异常'}, 200, {'Content-Type': 'application/json'}
  196. @taiping.route('/tp/yxsc',methods=['post'])
  197. def tp_yxsc():
  198. plyappno = flask.request.json.get('plyappno')
  199. photolist = flask.request.json.get('b64pho_list')
  200. ret=photo_up(plyappno,photolist).main()
  201. return ret, 200, {'Content-Type': 'application/json'}
  202. @taiping.route('/tp/check',methods=['post'])
  203. def tp_check():
  204. plyappno = flask.request.json.get('plyappno')
  205. ret=tp_Check(plyappno).main()
  206. return ret, 200, {'Content-Type': 'application/json'}
  207. @taiping.route('/tp/baodan',methods=['post'])
  208. def tp_baodan():
  209. plyappno = flask.request.json.get('plyappno')
  210. ret=get_baodan(plyappno).main()
  211. return ret, 200, {'Content-Type': 'application/json'}
  212. @taiping.route('/tp/fcx',methods=['post'])
  213. def tp_get_fcx():
  214. ret=get_feichexian()
  215. return ret, 200, {'Content-Type': 'application/json'}
  216. @taiping.route('/tp/revocation',methods=['post'])
  217. def tp_revocation():
  218. plyappno = flask.request.json.get('plyappno')
  219. ret = TP_revocation(plyappno).main()
  220. return ret, 200, {'Content-Type': 'application/json'}