tp_api.py 11 KB

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