123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254 |
- 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.hengbang.baojia.hb_bfjs import hb_calculation
- from spiders.hengbang.hebao.hb_hebao import HB_hebao
- from spiders.hengbang.yingxiang.hb_phoupload import photo_up
- from spiders.hengbang.baodan.hb_bdsearch import get_baodan
- from spiders.hengbang.guishu.hb_config import *
- from spiders.hengbang.guishu.hb_feichexian import get_feichexian
- from spiders.hengbang.baodan.hb_state import hb_Check
- hengbang=Blueprint('hb',__name__)
- CORS(hengbang, supports_credentials=True)
- @hengbang.route('/hb/login',methods=['post'])
- def hb_login():
- username = flask.request.json.get('username')
- pwd = flask.request.json.get('pwd')
- userinfo = {
- "username": username,
- 'pwd': pwd
- }
- ret=set_userinfo(userinfo)
- return ret,200, {'Content-Type': 'application/json'}
- @hengbang.route('/hb/bfjs',methods=['post'])
- def hb_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')
- purchasePrice = flask.request.json.get('carInfo').get('purchasePrice')
- identifyNumber=flask.request.json.get('ownerInfo').get('identifyNumber')
- vehicleUse=flask.request.json.get('carInfo').get('vehicleUse')
- #核定载质量
- limitLoad=flask.request.json.get('carInfo').get('limitLoad')
- cartype=flask.request.json.get('carInfo').get('cartype')
- 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')
- #脱保标识
- 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 = hb_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,
- #脱保车标识、非车险信息
- isOutOfInsurance,accidentalDriving
- )
- try:
- ret = carinfo.main()
- log_endtime = time.time()
- get_bfjslogger(hb_bj_log, log_endtime, log_starttime, '恒邦')
- return ret, 200, {'Content-Type': 'application/json'}
- except Exception as err:
- log_endtime = time.time()
- get_bfjslogger(hb_bj_log, log_endtime, log_starttime, '恒邦')
- get_errlogger(hb_bj_log, err, traceback.format_exc() + '-------------- \n')
- return {'code': 400, 'message': '程序异常'}, 200, {'Content-Type': 'application/json'}
- @hengbang.route('/hb/jiaofei', methods=['post'])
- def hb_jiaofei():
- log_starttime = time.time()
- plyappno = flask.request.json.get('plyappno')
- Hebao = HB_hebao(plyappno)
- try:
- ret = Hebao.main()
- log_endtime = time.time()
- get_hblogger(hb_hb_log, log_endtime, log_starttime, '恒邦')
- return ret, 200, {'Content-Type': 'application/json'}
- except Exception as err:
- log_endtime = time.time()
- get_bfjslogger(hb_hb_log, log_endtime, log_starttime, '恒邦')
- get_errlogger(hb_hb_log, err, traceback.format_exc() + '-------------- \n')
- return {'code': 400, 'message': '程序异常'}, 200, {'Content-Type': 'application/json'}
- @hengbang.route('/hb/yxsc',methods=['post'])
- def hb_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'}
- @hengbang.route('/hb/baodan',methods=['post'])
- def hb_baodan():
- plyappno = flask.request.json.get('plyappno')
- ret=get_baodan(plyappno).main()
- return ret, 200, {'Content-Type': 'application/json'}
- @hengbang.route('/hb/check',methods=['post'])
- def hb_check():
- plyappno = flask.request.json.get('plyappno')
- ret=hb_Check(plyappno).main()
- return ret, 200, {'Content-Type': 'application/json'}
- @hengbang.route('/hb/fcx',methods=['post'])
- def hb_get_fcx():
- username = flask.request.json.get('username')
- ret=get_feichexian(username)
- return ret, 200, {'Content-Type': 'application/json'}
- @hengbang.route('/hb/hb_bddownload',methods=['get'])
- def hb_bddownload():
- token=str(redis_conn.hget('hengbang','token'),'utf8')
- headers={
- 'Authorization':token,
- 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36'
- }
- url =flask.request.args.get('values')
- filename=url[63:89]+'.pdf'
- res=requests.get(url=url,headers=headers)
- ret =res.content
- return ret , 200, {'Content-Type': 'application/pdf',
- 'Content-Disposition':'attachment;filename='+filename
- }
|