api-datamanager/Modules/TycApi/TycUtils.py

177 lines
5.3 KiB
Python
Raw Normal View History

2022-08-18 17:09:23 +08:00
import json
import time
import requests
from DBHelper.MongoHelperInstance import DB_TYC
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 business_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 = dict()
insert_dict['企业名称'] = company
insert_dict['基本信息'] = res['result']
insert_dict['录入时间'] = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
DB_TYC.upsert_single_data(
db,
col,
{"企业名称": company},
insert_dict
)
return '保存成功'
elif status == '无数据':
insert_dict = dict()
insert_dict['企业名称'] = company
insert_dict['基本信息'] = dict()
insert_dict['录入时间'] = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
DB_TYC.upsert_single_data(
db,
col,
{"企业名称": company},
insert_dict
)
return '保存成功'
else:
return status
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 = dict()
insert_dict['企业名称'] = company
insert_dict['录入时间'] = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
insert_dict[col] = dict()
insert_dict[col]['result'] = res['result']['items']
insert_dict[col]['total'] = res['result']['total']
DB_TYC.upsert_single_data(
db,
col,
{"企业名称": company},
insert_dict
)
if int(res['result']['total']) > 20:
return int(res['result']['total'])
else:
return '保存成功'
elif status == '无数据':
insert_dict = dict()
insert_dict['企业名称'] = company
insert_dict['录入时间'] = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
insert_dict[col] = dict()
insert_dict[col]['result'] = list()
insert_dict[col]['total'] = 0
DB_TYC.upsert_single_data(
db,
col,
{"企业名称": company},
insert_dict
)
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 == '请求成功':
update_data = res['result']['items']
update_str = "{}.result".format(col)
for item in update_data:
DB_TYC.update_single_data_by_add(
db,
col,
{'企业名称': company},
{update_str: item}
)
return '保存成功'
else:
return status