170 lines
4.9 KiB
Python
170 lines
4.9 KiB
Python
"""
|
|
通用方法
|
|
"""
|
|
import functools
|
|
import json
|
|
import requests
|
|
from flask import request
|
|
|
|
from db import conserve_data
|
|
from setting import API_SECRET
|
|
|
|
|
|
def judege_api_code(code):
|
|
"""
|
|
判断状态码
|
|
Parameters:
|
|
code: 传入状态码,返回状态码对应状态说明
|
|
Returns:
|
|
状态码说明信息
|
|
"""
|
|
if code == 0:
|
|
return '请求成功'
|
|
elif code == 300000:
|
|
return '无数据'
|
|
elif code == 300001:
|
|
return '请求失败'
|
|
elif code == 300002:
|
|
return '账号失效'
|
|
elif code == 300003:
|
|
return '账号过期'
|
|
elif code == 300004:
|
|
return '访问频率过快'
|
|
elif code == 300005:
|
|
return '无权限访问此api'
|
|
elif code == 300006:
|
|
return '余额不足'
|
|
elif code == 300007:
|
|
return '剩余次数不足'
|
|
elif code == 300008:
|
|
return '缺少必要参数'
|
|
elif code == 300009:
|
|
return '账号信息有误'
|
|
elif code == 300010:
|
|
return 'URL不存在'
|
|
elif code == 300011:
|
|
return '此IP无权限访问此api'
|
|
elif code == 300012:
|
|
return '报告生成中'
|
|
|
|
|
|
def general_request(url, company, db, col):
|
|
"""
|
|
判断状态码
|
|
Parameters:
|
|
url: 传入请求链接,请求后判断状态码,
|
|
company: 企业名称
|
|
db: 数据库名称
|
|
col: 集合名称
|
|
Returns:
|
|
'保存成功'
|
|
"""
|
|
headers = {'Authorization': "5407573b-e41e-4ab4-9f46-daa0032ad0a4"}
|
|
# 根据传入url进行请求
|
|
res = json.loads(requests.get(url, headers=headers).text)
|
|
# 判断请求返回结果中的error_code
|
|
code = res['error_code']
|
|
status = judege_api_code(code)
|
|
# status为请求成功则保存result数据
|
|
if status == '请求成功':
|
|
if col == '十大股东':
|
|
insert = dict()
|
|
insert['timeList'] = res['result']['timeList']
|
|
insert['holderList'] = res['result']['holderList']
|
|
else:
|
|
insert = dict()
|
|
insert['result'] = res['result']['items']
|
|
insert['total'] = res['result']['total']
|
|
conserve_data(db, company, col, insert)
|
|
return '保存成功'
|
|
elif status == '无数据':
|
|
insert = dict()
|
|
conserve_data(db, company, col, insert)
|
|
return '保存成功'
|
|
else:
|
|
return status
|
|
|
|
|
|
def verify_token(func):
|
|
"""
|
|
校验token
|
|
"""
|
|
@functools.wraps(func)
|
|
def internal(*args, **kwargs):
|
|
try:
|
|
token = request.headers.get('token')
|
|
if token != API_SECRET:
|
|
return {"info": "接口密钥错误"}, 401
|
|
except Exception:
|
|
return {"info": "请求异常"}, 401
|
|
return func(*args, **kwargs)
|
|
return internal
|
|
|
|
|
|
def firest_request(url, company, db, col):
|
|
"""
|
|
翻页接口首次调用
|
|
Parameters:
|
|
url: 传入请求链接,请求后判断状态码,
|
|
company: 企业名称
|
|
db: 数据库名称
|
|
col: 集合名称
|
|
Returns:
|
|
'保存成功'
|
|
"""
|
|
headers = {'Authorization': "5407573b-e41e-4ab4-9f46-daa0032ad0a4"}
|
|
# 根据传入url进行请求
|
|
res = json.loads(requests.get(url, headers=headers).text)
|
|
# 判断请求返回结果中的error_code
|
|
code = res['error_code']
|
|
status = judege_api_code(code)
|
|
# status为请求成功则保存result数据
|
|
if status == '请求成功':
|
|
# 保存首次数据,判断页码
|
|
insert = dict()
|
|
insert['result'] = res['result']['items']
|
|
insert['total'] = res['result']['total']
|
|
conserve_data(db, company, col, insert)
|
|
if insert['total'] > 20:
|
|
return insert['taotal']
|
|
else:
|
|
return '保存成功'
|
|
elif status == '无数据':
|
|
insert = dict()
|
|
conserve_data(db, company, col, insert)
|
|
return '保存成功'
|
|
else:
|
|
return status
|
|
|
|
|
|
def page_request(url, company, db, col):
|
|
"""
|
|
翻页接口翻页调用
|
|
Parameters:
|
|
url: 传入请求链接,请求后判断状态码,
|
|
company: 企业名称
|
|
db: 数据库名称
|
|
col: 集合名称
|
|
Returns:
|
|
'保存成功'
|
|
"""
|
|
headers = {'Authorization': "5407573b-e41e-4ab4-9f46-daa0032ad0a4"}
|
|
# 根据传入url进行请求
|
|
res = json.loads(requests.get(url, headers=headers).text)
|
|
# 判断请求返回结果中的error_code
|
|
code = res['error_code']
|
|
status = judege_api_code(code)
|
|
# status为请求成功则保存result数据
|
|
if status == '请求成功':
|
|
# 保存首次数据,判断页码
|
|
insert = dict()
|
|
insert['result'] = res['result']['items']
|
|
insert['total'] = res['result']['total']
|
|
conserve_data(db, company, col, insert)
|
|
return '保存成功'
|
|
elif status == '无数据':
|
|
insert = dict()
|
|
conserve_data(db, company, col, insert)
|
|
return '保存成功'
|
|
else:
|
|
return status |