123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222 |
- import traceback
- import flask
- import time
- import datetime
- from flask import Blueprint
- from flask_cors import CORS
- from dateutil.relativedelta import relativedelta
- from logs.getlogs import *
- from spiders.edian.guishu.ed_config import *
- from spiders.edian.baojia.ed_bfjs import ed_calculation
- from spiders.edian.guishu.ed_feichexian import get_feichexian
- edian=Blueprint('ed',__name__)
- CORS(edian, supports_credentials=True)
- @edian.route('/ed/login',methods=['post'])
- def ed_login():
- userinfo=flask.request.json
- ret=set_userinfo(userinfo)
- return ret,200, {'Content-Type': 'application/json'}
- @edian.route('/ed/bfjs',methods=['post'])
- def ed_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')
- vehicleUse=flask.request.json.get('carInfo').get('vehicleUse')
- #核定载质量
- limitLoad=flask.request.json.get('carInfo').get('limitLoad')
- cartype=flask.request.json.get('carInfo').get('cartype')
- #商业折扣系数
- discount=flask.request.json.get('discount')
- #订单号
- plyappno=flask.request.json.get('plyappno')
- purchasePrice = flask.request.json.get('carInfo').get('purchasePrice')
- 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')
- secondhandcarflag=flask.request.json.get('carInfo').get('usedCar')
- #非车险参数
- accidentalDrivingVo=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 = ii.get('deductibleRate')
- elif ii.get('kindCode')=='MJ2':
- fujiasanzhe_chooseFlag = 'on'
- fujiasanzhe_amount = ii.get('deductibleRate')
- elif ii.get('kindCode')=='MJ3':
- fujiasiji_chooseFlag = 'on'
- fujiasiji_amount = ii.get('deductibleRate')
- elif ii.get('kindCode')=='MJ4':
- fujiachengke_chooseFlag = 'on'
- fujiachengke_amount = ii.get('deductibleRate')
- 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 = ed_calculation(#token、车辆、人员信息
- username,modelCName,engineNo,vin,licenseNo,seatCount,purchasePrice,vehicleUse,limitLoad,cartype,
- 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,
- #交强险、商业险是否选择,起止日期信息
- 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,
- #非车险参数
- accidentalDrivingVo,secondhandcarflag,discount,plyappno
- )
- try:
- ret = carinfo.main()
- log_endtime = time.time()
- get_bfjslogger(ed_bj_log, log_endtime, log_starttime, 'E店')
- return ret, 200, {'Content-Type': 'application/json'}
- except Exception as err:
- log_endtime = time.time()
- get_bfjslogger(ed_bj_log, log_endtime, log_starttime, 'E店')
- get_errlogger(ed_bj_log, err, traceback.format_exc() + '-------------- \n')
- print(err)
- if 'city' in str(err) or 'area' in str(err) or 'province' in str(err) :
- return {'code': 400, 'message': '人员地区获取失败'}, 200, {'Content-Type': 'application/json'}
- return {'code': 400, 'message': '程序异常'}, 200, {'Content-Type': 'application/json'}
- @edian.route('/ed/fcx',methods=['post'])
- def ed_get_fcx():
- username = flask.request.json.get('username')
- ret=get_feichexian(username)
- return ret, 200, {'Content-Type': 'application/json'}
|