123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255 |
- import traceback
- import flask
- import time
- import datetime
- import requests
- from flask import Blueprint
- from flask_cors import CORS
- from dateutil.relativedelta import relativedelta
- from logs.getlogs import *
- from spiders.taiping.baojia.tp_bfjs import tp_calculation
- from spiders.taiping.guishu.tp_config import *
- from spiders.taiping.guishu.tp_feichexian import get_feichexian
- from spiders.taiping.hebao.tp_hebao import TP_hebao
- from spiders.taiping.yingxiang.tp_phoupload import photo_up
- from spiders.taiping.baodan.tp_state import tp_Check
- from spiders.taiping.baodan.tp_bddownload import get_baodan
- from spiders.taiping.hebao.tp_revocation import TP_revocation
- taiping=Blueprint('tp',__name__)
- CORS(taiping, supports_credentials=True)
- @taiping.route('/tp/login',methods=['post'])
- def tp_login():
- userinfo= flask.request.json
- ret=set_userinfo(userinfo)
- return ret,200, {'Content-Type': 'application/json'}
- @taiping.route('/tp/bfjs',methods=['post'])
- def tp_bfjs():
- log_starttime = time.time()
- #车辆人员信息
- username=flask.request.json.get('username')
- modelCName = flask.request.json.get('carInfo').get('modelcname')
- engineNo = flask.request.json.get('carInfo').get('engineNo')
- vin = flask.request.json.get('carInfo').get('vinNo')
- licenseNo = flask.request.json.get('carInfo').get('licenseNo')
- seatCount = flask.request.json.get('carInfo').get('seatCount')
- #排量
- enginedesc=flask.request.json.get('carInfo').get('enginedesc')
- #核定载质量
- limitLoad=flask.request.json.get('carInfo').get('limitLoad')
- # 整备质量
- completeKerbMass = flask.request.json.get('carInfo').get('completeKerbMass')
- purchasePrice = flask.request.json.get('carInfo').get('purchasePrice')
- energyType = flask.request.json.get('carInfo').get('energyType')
- vehicleUse=flask.request.json.get('carInfo').get('vehicleUse')
- identifyNumber=flask.request.json.get('ownerInfo').get('identifyNumber')
- uname = flask.request.json.get('ownerInfo').get('name')
- address = flask.request.json.get('ownerInfo').get('addr')
- phone_number = flask.request.json.get('ownerInfo').get('mobile')
- tb_identifyNumber = flask.request.json.get('policyHolderInfo').get('identifyNumber')
- tb_uname = flask.request.json.get('policyHolderInfo').get('name')
- tb_address = flask.request.json.get('policyHolderInfo').get('addr')
- tb_phone_number = flask.request.json.get('policyHolderInfo').get('mobile')
- bb_identifyNumber = flask.request.json.get('insuredPersonInfo').get('identifyNumber')
- bb_uname = flask.request.json.get('insuredPersonInfo').get('name')
- bb_address = flask.request.json.get('insuredPersonInfo').get('addr')
- bb_phone_number = flask.request.json.get('insuredPersonInfo').get('mobile')
- registerDate=flask.request.json.get('carInfo').get('registerDate')
- issueDate=flask.request.json.get('carInfo').get('issueDate')
- #交强过户标志
- isTransfer=flask.request.json.get('carInfo').get('transferFlag')
- #商业过户标志
- isTransferbi = flask.request.json.get('carInfo').get('transferFlagBi')
- #脱保标识
- # isOutOfInsurance=flask.request.json.get('carInfo').get('outOfInsurance')
- #非车险信息
- accidentalDriving=flask.request.json.get('accidentalDriving')
- #交强险、商业险是否选择。起始、结束时间默认参数
- jiaoqiang_chooseFlag = 'False'
- chesun_chooseFlag = 'False'
- shangye_chooseFlag='False'
- jiaoqiang_startDate = str(datetime.date.today() + relativedelta(days=1))+' 00:00:00'
- jiaoqiang_endDate = str(datetime.date.today() + relativedelta(years=1) - relativedelta(days=1))+' 00:00:00'
- chesun_startDate= str(datetime.date.today() + relativedelta(days=1))+' 00:00:00'
- chesun_endDate= str(datetime.date.today() + relativedelta(years=1) - relativedelta(days=1))+' 00:00:00'
- # 交强险、商业险是否选择。起始、结束时间传入参数
- riskList = flask.request.json.get('riskList')
- for i in riskList:
- if i.get('riskCode') == '0507':
- jiaoqiang_chooseFlag = 'on'
- jiaoqiang_startDate = i.get('startDate')
- jiaoqiang_startDate = jiaoqiang_startDate
- jiaoqiang_endDate = i.get('endDate')
- jiaoqiang_endDate = "".join(jiaoqiang_endDate)
- elif i.get('riskCode') == '0510':
- shangye_chooseFlag='on'
- chesun_startDate = i.get('startDate')
- chesun_startDate = "".join(chesun_startDate)
- chesun_endDate = i.get('endDate')
- chesun_endDate = "".join(chesun_endDate)
- #附加险默认参数
- sanzhe_chooseFlag='False'
- sanzhe_amount='10'
- sjzeren_chooseFlag='False'
- sjzeren_amount='30000'
- ckzeren_chooseFlag='False'
- ckzeren_amount='30000'
- huahen_chooseFlag='False'
- huahen_amount='2000'
- fujiachesun_chooseFlag='False'
- fujiachesun_amount='0.05'
- fujiasanzhe_chooseFlag = 'False'
- fujiasanzhe_amount = '0.05'
- fujiasiji_chooseFlag = 'False'
- fujiasiji_amount = '0.05'
- fujiachengke_chooseFlag = 'False'
- fujiachengke_amount = '0.05'
- fujia_jiejiari_chooseFlag = 'False'
- fujia_jiejiari_amount = '2000000'
- ybw_sanzhe_chooseFlag='False'
- ybw_sanzhe_amount='0'
- ybw_siji_chooseFlag='False'
- ybw_siji_amount='0'
- ybw_ck_chooseFlag='False'
- ybw_ck_amount='0'
- #附件险传入参数
- kindList = flask.request.json.get('kindList')
- for ii in kindList:
- if ii.get('kindCode')=='B':
- sanzhe_chooseFlag='on'
- sanzhe_amount=str(int(ii.get('amount')))
- elif ii.get('kindCode')=='A':
- chesun_chooseFlag = 'on'
- elif ii.get('kindCode')=='D3':
- sjzeren_chooseFlag = 'on'
- sjzeren_amount = ii.get('amount')
- elif ii.get('kindCode')=='D4':
- ckzeren_chooseFlag = 'on'
- ckzeren_amount = ii.get('unitAmount')
- elif ii.get('kindCode')=='L':
- huahen_chooseFlag = 'on'
- huahen_amount = ii.get('amount')
- elif ii.get('kindCode')=='MJ1':
- fujiachesun_chooseFlag = 'on'
- fujiachesun_amount = str(int(ii.get('deductibleRate'))/100)
- elif ii.get('kindCode')=='MJ2':
- fujiasanzhe_chooseFlag = 'on'
- fujiasanzhe_amount = str(int(ii.get('deductibleRate'))/100)
- elif ii.get('kindCode')=='MJ3':
- fujiasiji_chooseFlag = 'on'
- fujiasiji_amount = str(int(ii.get('deductibleRate'))/100)
- elif ii.get('kindCode')=='MJ4':
- fujiachengke_chooseFlag = 'on'
- fujiachengke_amount = str(int(ii.get('deductibleRate'))/100)
- elif ii.get('kindCode')=='BD':
- fujia_jiejiari_chooseFlag = 'on'
- fujia_jiejiari_amount = ii.get('amount')
- elif ii.get('kindCode') == 'SY_FJ_YBW1':
- ybw_sanzhe_chooseFlag = 'on'
- ybw_sanzhe_amount = ii.get('amount')
- elif ii.get('kindCode') == 'SY_FJ_YBW3':
- ybw_siji_chooseFlag = 'on'
- ybw_siji_amount = ii.get('amount')
- elif ii.get('kindCode') == 'SY_FJ_YBW2':
- ybw_ck_chooseFlag = 'on'
- ybw_ck_amount = ii.get('unitAmount')
- carinfo = tp_calculation(#token、车辆、人员信息
- username,modelCName,engineNo,vin,licenseNo,seatCount,purchasePrice,vehicleUse,enginedesc,limitLoad,completeKerbMass,energyType,
- identifyNumber, uname, address,phone_number,
- tb_identifyNumber, tb_uname, tb_address, tb_phone_number,
- bb_identifyNumber, bb_uname, bb_address, bb_phone_number,
- registerDate,issueDate,isTransfer,isTransferbi,
- #交强险、商业险是否选择,起止日期信息
- jiaoqiang_chooseFlag,chesun_chooseFlag,jiaoqiang_startDate,jiaoqiang_endDate,chesun_startDate,
- chesun_endDate,shangye_chooseFlag,
- #三者责任险、价格,司机、乘客责任险、价格,划痕险、价格
- sanzhe_chooseFlag,sanzhe_amount,sjzeren_chooseFlag,sjzeren_amount,ckzeren_chooseFlag,ckzeren_amount,huahen_chooseFlag,huahen_amount,
- #附加险信息
- fujiachesun_chooseFlag,fujiachesun_amount ,fujiasanzhe_chooseFlag ,fujiasanzhe_amount ,
- fujiasiji_chooseFlag,fujiasiji_amount ,fujiachengke_chooseFlag ,fujiachengke_amount ,
- fujia_jiejiari_chooseFlag ,fujia_jiejiari_amount,
- ybw_sanzhe_chooseFlag, ybw_sanzhe_amount, ybw_siji_chooseFlag, ybw_siji_amount, ybw_ck_chooseFlag, ybw_ck_amount,
- #脱保车标识
- # isOutOfInsurance,
- #非车险信息
- accidentalDriving
- )
- try:
- ret = carinfo.main()
- log_endtime = time.time()
- get_bfjslogger(tp_bj_log, log_endtime, log_starttime, '太平')
- return ret, 200, {'Content-Type': 'application/json'}
- except Exception as err:
- log_endtime = time.time()
- get_bfjslogger(tp_bj_log, log_endtime, log_starttime, '太平')
- get_errlogger(tp_bj_log, err, traceback.format_exc() + '-------------- \n')
- return {'code': 400, 'message': '程序异常'}, 200, {'Content-Type': 'application/json'}
- @taiping.route('/tp/jiaofei', methods=['post'])
- def tp_jiaofei():
- log_starttime = time.time()
- plyappno = flask.request.json.get('plyappno')
- Hebao = TP_hebao(plyappno)
- try:
- ret = Hebao.main()
- log_endtime = time.time()
- get_hblogger(tp_hb_log, log_endtime, log_starttime, '太平')
- return ret, 200, {'Content-Type': 'application/json'}
- except Exception as err:
- log_endtime = time.time()
- get_bfjslogger(tp_hb_log, log_endtime, log_starttime, '太平')
- get_errlogger(tp_hb_log, err, traceback.format_exc() + '-------------- \n')
- return {'code': 400, 'message': '程序异常'}, 200, {'Content-Type': 'application/json'}
- @taiping.route('/tp/yxsc',methods=['post'])
- def tp_yxsc():
- plyappno = flask.request.json.get('plyappno')
- photolist = flask.request.json.get('b64pho_list')
- ret=photo_up(plyappno,photolist).main()
- return ret, 200, {'Content-Type': 'application/json'}
- @taiping.route('/tp/check',methods=['post'])
- def tp_check():
- plyappno = flask.request.json.get('plyappno')
- ret=tp_Check(plyappno).main()
- return ret, 200, {'Content-Type': 'application/json'}
- @taiping.route('/tp/baodan',methods=['post'])
- def tp_baodan():
- plyappno = flask.request.json.get('plyappno')
- ret=get_baodan(plyappno).main()
- return ret, 200, {'Content-Type': 'application/json'}
- @taiping.route('/tp/fcx',methods=['post'])
- def tp_get_fcx():
- ret=get_feichexian()
- return ret, 200, {'Content-Type': 'application/json'}
- @taiping.route('/tp/revocation',methods=['post'])
- def tp_revocation():
- plyappno = flask.request.json.get('plyappno')
- ret = TP_revocation(plyappno).main()
- return ret, 200, {'Content-Type': 'application/json'}
|