update 天眼查API模块

This commit is contained in:
P3ngSaM 2022-08-18 17:09:23 +08:00
parent dc990c90f2
commit 2c9b13db3f
8 changed files with 1110 additions and 2 deletions

View File

@ -1,6 +1,7 @@
{
"MongoDB": {
"log": "root:sromitdTW569kC#M@116.63.130.34:27018"
"log": "root:sromitdTW569kC#M@116.63.130.34:27018",
"tyc": "root:gP@DwMSVd5Sh6EiH@116.63.130.34:27019"
},
"Mysql": {

View File

@ -2,5 +2,6 @@ from DBHelper.MongoHelper import MongoHelper
# 日志数据库
DB_TEST = MongoHelper("log")
DB_TYC = MongoHelper("tyc")

View File

@ -19,7 +19,7 @@ def new_file_package_route():
src_dir = impl.new_file_package(data=data)
impl.write_file_to_zip(src_dir=src_dir)
response = Response(impl.return_file_data(package_name=data['package_name']), content_type='application/zip')
# impl.delete_all_file()
impl.delete_all_file()
return response
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code

478
Modules/TycApi/TycImpl.py Normal file
View File

@ -0,0 +1,478 @@
import math
from Modules.TycApi.TycUtils import firest_request, page_request, business_request
# 数据库参数
DB_GSBJ = '公司背景'
DB_SFFX = '司法风险'
DB_JYFX = '经营风险'
DB_TYFX = '天眼风险'
DB_JYZK = '经营状况'
DB_ZSCQ = '知识产权'
DB_GSFZ = '公司发展'
class TycDataImpl(object):
"""天眼查接口相关"""
# 工商信息
@staticmethod
def basic_information(**kwargs):
name = kwargs['name']
url = 'http://open.api.tianyancha.com/services/open/ic/baseinfo/normal?keyword={name}'
url = url.format(name=name)
res = business_request(url, name, DB_GSBJ, '基本信息')
return res
# 高管信息
@staticmethod
def executive_information(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/ic/staff/2.0?keyword={name}&pageNum={page_num}&pageSize=20'
url = url.format(name=name, page_num=page_num)
# 如果只有1页返回保存成功如需翻页返回总条数用于计算页码
res = firest_request(url, name, DB_GSBJ, '主要人员')
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/ic/staff/2.0?keyword={name}&pageNum={page}&pageSize=20'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_GSBJ, '主要人员')
return res
# 股东信息
@staticmethod
def shareholders_information(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/ic/holder/2.0?pageSize=20&keyword={name}&pageNum={page_num}'
url = url.format(name=name, page_num=page_num)
res = firest_request(url, name, DB_GSBJ, '企业股东')
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/ic/holder/2.0?pageSize=20&keyword={name}&pageNum={page}'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_GSBJ, '企业股东')
return res
# 对外投资
@staticmethod
def outbound_investment(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/ic/inverst/2.0?pageSize=20&keyword={name}&pageNum={page_num}'
url = url.format(name=name, page_num=page_num)
res = firest_request(url, name, DB_GSBJ, '对外投资')
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/ic/inverst/2.0?pageSize=20&keyword={name}&pageNum={page}'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_GSBJ, '对外投资')
return res
# 分支机构
@staticmethod
def branch_offices(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/ic/branch/2.0?keyword={name}&pageNum={page_num}&pageSize=20'
url = url.format(name=name, page_num=page_num)
res = firest_request(url, name, DB_GSBJ, '分支机构')
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/ic/branch/2.0?keyword={name}&pageNum={page}&pageSize=20'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_GSBJ, '分支机构')
return res
# 工商变更
@staticmethod
def change_record(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/ic/changeinfo/2.0?keyword={name}&pageNum={page_num}&pageSize=20'
url = url.format(name=name, page_num=page_num)
res = firest_request(url, name, DB_GSBJ, '变更记录')
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/ic/changeinfo/2.0?keyword={name}&pageNum={page}&pageSize=20'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_GSBJ, '变更记录')
return res
# 商标信息
@staticmethod
def trademark_information(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/ipr/tm/2.0?appDateBegin={}&pageSize=20&tmClass={}&appDateEnd={}&keyword={name}&pageNum={page_num}&status=1'
url = url.format(name=name, page_num=page_num)
res = firest_request(url, name, DB_ZSCQ, '商标信息')
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/ipr/tm/2.0?appDateBegin={}&pageSize=20&tmClass={}&appDateEnd={}&keyword={name}&pageNum={page}&status=1'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_ZSCQ, '商标信息')
return res
# 专利信息
@staticmethod
def patent_information(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/ipr/patents/3.0?pubDateBegin={}&appDateBegin={}&pageSize=20&pubDateEnd={}&appDateEnd={}&keyword={name}&pageNum={page_num}&patentType={}'
url = url.format(name=name, page_num=page_num)
res = firest_request(url, name, DB_ZSCQ, '专利信息')
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/ipr/patents/3.0?pubDateBegin={}&appDateBegin={}&pageSize=20&pubDateEnd={}&appDateEnd={}&keyword={name}&pageNum={page}&patentType={}'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_ZSCQ, '专利信息')
return res
# 软件著作权
@staticmethod
def software_copyrights(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/ipr/copyReg/2.0?keyword={name}&pageNum={page_num}&pageSize=20'
url = url.format(name=name, page_num=page_num)
res = firest_request(url, name, DB_ZSCQ, '软件著作权')
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
page_total = 20 if page_total > 20 else page_total
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/ipr/copyReg/2.0?keyword={name}&pageNum={page}&pageSize=20'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_ZSCQ, '软件著作权')
return res
# 网站备案
@staticmethod
def website_record(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/ipr/icp/3.0?keyword={name}&pageNum={page_num}&pageSize=20'
url = url.format(name=name, page_num=page_num)
res = firest_request(url, name, DB_ZSCQ, '网站备案')
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
page_total = 20 if page_total > 20 else page_total
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/ipr/icp/3.0?keyword={name}&pageNum={page}&pageSize=20'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_ZSCQ, '网站备案')
return res
# 开庭公告
@staticmethod
def hearing_announcement(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/jr/ktannouncement/2.0?pageSize=20&keyword={name}&pageNum={page_num}'
url = url.format(name=name, page_num=page_num)
res = firest_request(url, name, DB_SFFX, '开庭公告')
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
page_total = 20 if page_total > 20 else page_total
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/jr/ktannouncement/2.0?pageSize=20&keyword={name}&pageNum={page}'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_SFFX, '开庭公告')
return res
# 被执行人
@staticmethod
def executor(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/jr/zhixinginfo/2.0?pageSize=20&keyword={name}&pageNum={page_num}'
url = url.format(name=name, page_num=page_num)
res = firest_request(url, name, DB_SFFX, '被执行人')
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
page_total = 20 if page_total > 20 else page_total
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/jr/zhixinginfo/2.0?pageSize=20&keyword={name}&pageNum={page}'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_SFFX, '被执行人')
return res
# 法院公告
@staticmethod
def court_announcement(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/jr/courtAnnouncement/2.0?pageSize=20&keyword={name}&pageNum={page_num}'
url = url.format(name=name, page_num=page_num)
res = firest_request(url, name, DB_SFFX, '法院公告')
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
page_total = 20 if page_total > 20 else page_total
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/jr/courtAnnouncement/2.0?pageSize=20&keyword={name}&pageNum={page}'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_SFFX, '法院公告')
return res
# 立案信息
@staticmethod
def case_filing_information(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/jr/courtRegister/2.0?pageSize=20&keyword={name}&pageNum={page_num}'
url = url.format(name=name, page_num=page_num)
res = firest_request(url, name, DB_SFFX, '立案信息')
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
page_total = 20 if page_total > 20 else page_total
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/jr/courtRegister/2.0?pageSize=20&keyword={name}&pageNum={page}'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_SFFX, '立案信息')
return res
# 失信人
@staticmethod
def untrustworthy(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/jr/dishonest/2.0?keyword={name}&pageNum={page_num}&pageSize=1'
url = url.format(name=name, page_num=page_num)
res = firest_request(url, name, DB_SFFX, '失信人')
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
page_total = 20 if page_total > 20 else page_total
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/jr/dishonest/2.0?keyword={name}&pageNum={page}&pageSize=1'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_SFFX, '失信人')
return res
# 法律诉讼
@staticmethod
def legal_proceedings(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/jr/lawSuit/3.0?keyword={name}&pageNum={page_num}&pageSize=20'
url = url.format(name=name, page_num=page_num)
res = firest_request(url, name, DB_SFFX, '法律诉讼')
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
page_total = 20 if page_total > 20 else page_total
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/jr/lawSuit/3.0?keyword={name}&pageNum={page}&pageSize=20'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_SFFX, '法律诉讼')
return res
# 送达公告
@staticmethod
def delivery_announcement(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/jr/sendAnnouncement/2.0?pageSize=20&keyword={name}&pageNum={page_num}'
url = url.format(name=name, page_num=page_num)
res = firest_request(url, name, DB_SFFX, '送达公告')
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
page_total = 20 if page_total > 20 else page_total
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/jr/sendAnnouncement/2.0?pageSize=20&keyword={name}&pageNum={page}'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_SFFX, '送达公告')
return res
# 破产重整
@staticmethod
def bankruptcy_reorganization(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/jr/bankruptcy/2.0?pageSize=20&keyword={name}&pageNum={page_num}'
url = url.format(name=name, page_num=page_num)
res = firest_request(url, name, DB_SFFX, '破产重整')
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
page_total = 20 if page_total > 20 else page_total
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/jr/bankruptcy/2.0?pageSize=20&keyword={name}&pageNum={page}'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_SFFX, '破产重整')
return res
# 限制消费令
@staticmethod
def restricted_spending_order(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/jr/consumptionRestriction/2.0?pageSize=20&keyword={name}&pageNum={page_num}'
url = url.format(name=name, page_num=page_num)
res = firest_request(url, name, DB_SFFX, '限制消费令')
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
page_total = 20 if page_total > 20 else page_total
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/jr/consumptionRestriction/2.0?pageSize=20&keyword={name}&pageNum={page}'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_SFFX, '限制消费令')
return res
# 终本案件
@staticmethod
def final_case(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/jr/endCase/2.0?pageSize=20&keyword={name}&pageNum={page_num}'
url = url.format(name=name, page_num=page_num)
res = firest_request(url, name, DB_SFFX, '终本案件')
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
page_total = 20 if page_total > 20 else page_total
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/jr/endCase/2.0?pageSize=20&keyword={name}&pageNum={page}'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_SFFX, '终本案件')
return res
# 股权出质
@staticmethod
def equity_pledge(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/mr/equityInfo/2.0?pageSize=20&keyword={name}&pageNum={page_num}'
url = url.format(name=name, page_num=page_num)
res = firest_request(url, name, DB_JYFX, '股权出质')
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
page_total = 20 if page_total > 20 else page_total
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/mr/equityInfo/2.0?pageSize=20&keyword={name}&pageNum={page}'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_JYFX, '股权出质')
return res
# 动产抵押
@staticmethod
def mortgage_movable_property(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/mr/mortgageInfo/2.0?pageSize=20&keyword={name}&pageNum={page_num}'
url = url.format(name=name, page_num=page_num)
res = firest_request(url, name, DB_JYFX, '动产抵押')
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
page_total = 20 if page_total > 20 else page_total
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/mr/mortgageInfo/2.0?pageSize=20&keyword={name}&pageNum={page}'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_JYFX, '动产抵押')
return res
# 土地抵押
@staticmethod
def land_mortgage(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/mr/landMortgage/2.0?pageSize=20&keyword={name}&pageNum={page_num}'
url = url.format(name=name, page_num=page_num)
res = firest_request(url, name, DB_JYFX, '土地抵押')
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
page_total = 20 if page_total > 20 else page_total
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/mr/landMortgage/2.0?pageSize=20&keyword={name}&pageNum={page}'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_JYFX, '土地抵押')
return res
# 经营异常
@staticmethod
def abnormal_operation(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/mr/abnormal/2.0?pageSize=20&keyword={name}&pageNum={page_num}'
url = url.format(name=name, page_num=page_num)
res = firest_request(url, name, DB_JYFX, '经营异常')
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
page_total = 20 if page_total > 20 else page_total
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/mr/abnormal/2.0?pageSize=20&keyword={name}&pageNum={page}'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_JYFX, '经营异常')
return res
# 行政处罚
@staticmethod
def administrative_penalties(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/mr/punishmentInfo/3.0?pageSize=20&keyword={name}&pageNum={page_num}'
url = url.format(name=name, page_num=page_num)
res = firest_request(url, name, DB_JYFX, '行政处罚')
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
page_total = 20 if page_total > 20 else page_total
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/mr/punishmentInfo/3.0?pageSize=20&keyword={name}&pageNum={page}'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_JYFX, '行政处罚')
return res
# 严重违法
@staticmethod
def serious_violation(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/mr/illegalinfo/2.0?pageSize=20&keyword={name}&pageNum={page_num}'
url = url.format(name=name, page_num=page_num)
res = firest_request(url, name, DB_JYFX, '严重违法')
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
page_total = 20 if page_total > 20 else page_total
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/mr/illegalinfo/2.0?pageSize=20&keyword={name}&pageNum={page}'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_JYFX, '严重违法')
return res
# 税收违法
@staticmethod
def tax_violation(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/mr/taxContravention/2.0?pageSize=20&keyword={name}&pageNum={page_num}'
url = url.format(name=name, page_num=page_num)
res = firest_request(url, name, DB_JYFX, '税收违法')
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
page_total = 20 if page_total > 20 else page_total
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/mr/taxContravention/2.0?pageSize=20&keyword={name}&pageNum={page}'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_JYFX, '税收违法')
return res
# 欠税公告
@staticmethod
def tax_arrears_announcement(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/mr/ownTax/2.0?pageSize=20&keyword={name}&pageNum={page_num}'
url = url.format(name=name, page_num=page_num)
res = firest_request(url, name, DB_JYFX, '欠税公告')
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
page_total = 20 if page_total > 20 else page_total
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/mr/ownTax/2.0?pageSize=20&keyword={name}&pageNum={page}'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_JYFX, '欠税公告')
return res

449
Modules/TycApi/TycRoutes.py Normal file
View File

@ -0,0 +1,449 @@
from flask import Blueprint, request
from Modules.TycApi.TycImpl import TycDataImpl
from Utils.ErrorUtil import APIReturnError
from Utils.RouteUtil import RouteParamsCheck
tyc_route = Blueprint('tyc', __name__)
@tyc_route.route('/basic_information', methods=['GET'])
def basic_information_route():
"""工商信息"""
try:
RouteParamsCheck(req=request.args, params=["company"]).required()
impl = TycDataImpl()
result = impl.basic_information(name=request.args['company'])
return {"info": "工商信息", "result": result}
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@tyc_route.route('/executive_information', methods=['GET'])
def executive_information_route():
"""高管信息"""
try:
RouteParamsCheck(req=request.args, params=["company"]).required()
impl = TycDataImpl()
result = impl.executive_information(name=request.args['company'])
return {"info": "高管信息", "result": result}
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@tyc_route.route('/shareholders_information', methods=['GET'])
def shareholders_information_route():
"""股东信息"""
try:
RouteParamsCheck(req=request.args, params=["company"]).required()
impl = TycDataImpl()
result = impl.shareholders_information(name=request.args['company'])
return {"info": "股东信息", "result": result}
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@tyc_route.route('/outbound_investment', methods=['GET'])
def outbound_investment_route():
"""对外投资"""
try:
RouteParamsCheck(req=request.args, params=["company"]).required()
impl = TycDataImpl()
result = impl.outbound_investment(name=request.args['company'])
return {"info": "对外投资", "result": result}
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@tyc_route.route('/branch_offices', methods=['GET'])
def branch_offices_route():
"""分支机构"""
try:
RouteParamsCheck(req=request.args, params=["company"]).required()
impl = TycDataImpl()
result = impl.branch_offices(name=request.args['company'])
return {"info": "分支机构", "result": result}
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@tyc_route.route('/change_record', methods=['GET'])
def change_record_route():
"""工商变更"""
try:
RouteParamsCheck(req=request.args, params=["company"]).required()
impl = TycDataImpl()
result = impl.change_record(name=request.args['company'])
return {"info": "工商变更", "result": result}
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@tyc_route.route('/business_information', methods=['GET'])
def business_information_route():
"""工商信息全量数据"""
try:
RouteParamsCheck(req=request.args, params=["company"]).required()
impl = TycDataImpl()
result = impl.basic_information(name=request.args['company'])
if result == '保存成功':
result = impl.executive_information(name=request.args['company'])
if result == '保存成功':
result = impl.shareholders_information(name=request.args['company'])
if result == '保存成功':
result = impl.outbound_investment(name=request.args['company'])
if result == '保存成功':
result = impl.branch_offices(name=request.args['company'])
if result == '保存成功':
result = impl.change_record(name=request.args['company'])
return {"info": "工商信息全量数据", "result": result}
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@tyc_route.route('/trademark_information', methods=['GET'])
def trademark_information_route():
"""商标信息"""
try:
RouteParamsCheck(req=request.args, params=["company"]).required()
impl = TycDataImpl()
result = impl.trademark_information(name=request.args['company'])
return {"info": "商标信息", "result": result}
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@tyc_route.route('/patent_information', methods=['GET'])
def patent_information_route():
"""专利信息"""
try:
RouteParamsCheck(req=request.args, params=["company"]).required()
impl = TycDataImpl()
result = impl.patent_information(name=request.args['company'])
return {"info": "专利信息", "result": result}
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@tyc_route.route('/software_copyrights', methods=['GET'])
def software_copyrights_route():
"""软件著作权"""
try:
RouteParamsCheck(req=request.args, params=["company"]).required()
impl = TycDataImpl()
result = impl.software_copyrights(name=request.args['company'])
return {"info": "软件著作权", "result": result}
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@tyc_route.route('/website_record', methods=['GET'])
def website_record_route():
"""网站备案"""
try:
RouteParamsCheck(req=request.args, params=["company"]).required()
impl = TycDataImpl()
result = impl.website_record(name=request.args['company'])
return {"info": "网站备案", "result": result}
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@tyc_route.route('/intellectual_property', methods=['GET'])
def intellectual_property_route():
"""知识产权全量数据"""
try:
RouteParamsCheck(req=request.args, params=["company"]).required()
impl = TycDataImpl()
result = impl.trademark_information(name=request.args['company'])
if result == '保存成功':
result = impl.patent_information(name=request.args['company'])
if result == '保存成功':
result = impl.software_copyrights(name=request.args['company'])
if result == '保存成功':
result = impl.website_record(name=request.args['company'])
return {"info": "知识产权全量数据", "result": result}
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@tyc_route.route('/hearing_announcement', methods=['GET'])
def hearing_announcement_route():
"""开庭公告"""
try:
RouteParamsCheck(req=request.args, params=["company"]).required()
impl = TycDataImpl()
result = impl.hearing_announcement(name=request.args['company'])
return {"info": "开庭公告", "result": result}
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@tyc_route.route('/executor', methods=['GET'])
def executor_route():
"""被执行人"""
try:
RouteParamsCheck(req=request.args, params=["company"]).required()
impl = TycDataImpl()
result = impl.executor(name=request.args['company'])
return {"info": "被执行人", "result": result}
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@tyc_route.route('/court_announcement', methods=['GET'])
def court_announcement_route():
"""法院公告"""
try:
RouteParamsCheck(req=request.args, params=["company"]).required()
impl = TycDataImpl()
result = impl.court_announcement(name=request.args['company'])
return {"info": "法院公告", "result": result}
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@tyc_route.route('/case_filing_information', methods=['GET'])
def case_filing_information_route():
"""立案信息"""
try:
RouteParamsCheck(req=request.args, params=["company"]).required()
impl = TycDataImpl()
result = impl.case_filing_information(name=request.args['company'])
return {"info": "立案信息", "result": result}
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@tyc_route.route('/untrustworthy', methods=['GET'])
def untrustworthy_route():
"""失信人"""
try:
RouteParamsCheck(req=request.args, params=["company"]).required()
impl = TycDataImpl()
result = impl.untrustworthy(name=request.args['company'])
return {"info": "失信人", "result": result}
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@tyc_route.route('/legal_proceedings', methods=['GET'])
def legal_proceedings_route():
"""法律诉讼"""
try:
RouteParamsCheck(req=request.args, params=["company"]).required()
impl = TycDataImpl()
result = impl.legal_proceedings(name=request.args['company'])
return {"info": "法律诉讼", "result": result}
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@tyc_route.route('/delivery_announcement', methods=['GET'])
def delivery_announcement_route():
"""送达公告"""
try:
RouteParamsCheck(req=request.args, params=["company"]).required()
impl = TycDataImpl()
result = impl.delivery_announcement(name=request.args['company'])
return {"info": "送达公告", "result": result}
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@tyc_route.route('/bankruptcy_reorganization', methods=['GET'])
def bankruptcy_reorganization_route():
"""破产重整"""
try:
RouteParamsCheck(req=request.args, params=["company"]).required()
impl = TycDataImpl()
result = impl.bankruptcy_reorganization(name=request.args['company'])
return {"info": "破产重整", "result": result}
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@tyc_route.route('/restricted_spending_order', methods=['GET'])
def restricted_spending_order_route():
"""限制消费令"""
try:
RouteParamsCheck(req=request.args, params=["company"]).required()
impl = TycDataImpl()
result = impl.restricted_spending_order(name=request.args['company'])
return {"info": "限制消费令", "result": result}
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@tyc_route.route('/final_case', methods=['GET'])
def final_case_route():
"""终本案件"""
try:
RouteParamsCheck(req=request.args, params=["company"]).required()
impl = TycDataImpl()
result = impl.final_case(name=request.args['company'])
return {"info": "终本案件", "result": result}
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@tyc_route.route('/judicial_risks', methods=['GET'])
def judicial_risks_route():
"""司法风险全量数据"""
try:
RouteParamsCheck(req=request.args, params=["company"]).required()
impl = TycDataImpl()
result = impl.hearing_announcement(name=request.args['company'])
if result == '保存成功':
result = impl.executor(name=request.args['company'])
if result == '保存成功':
result = impl.court_announcement(name=request.args['company'])
if result == '保存成功':
result = impl.case_filing_information(name=request.args['company'])
if result == '保存成功':
result = impl.untrustworthy(name=request.args['company'])
if result == '保存成功':
result = impl.legal_proceedings(name=request.args['company'])
if result == '保存成功':
result = impl.delivery_announcement(name=request.args['company'])
if result == '保存成功':
result = impl.bankruptcy_reorganization(name=request.args['company'])
if result == '保存成功':
result = impl.restricted_spending_order(name=request.args['company'])
if result == '保存成功':
result = impl.final_case(name=request.args['company'])
return {"info": "司法风险全量数据", "result": result}
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@tyc_route.route('/equity_pledge', methods=['GET'])
def equity_pledge_route():
"""股权出质"""
try:
RouteParamsCheck(req=request.args, params=["company"]).required()
impl = TycDataImpl()
result = impl.equity_pledge(name=request.args['company'])
return {"info": "股权出质", "result": result}
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@tyc_route.route('/mortgage_movable_property', methods=['GET'])
def mortgage_movable_property_route():
"""动产抵押"""
try:
RouteParamsCheck(req=request.args, params=["company"]).required()
impl = TycDataImpl()
result = impl.mortgage_movable_property(name=request.args['company'])
return {"info": "动产抵押", "result": result}
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@tyc_route.route('/land_mortgage', methods=['GET'])
def land_mortgage_route():
"""土地抵押"""
try:
RouteParamsCheck(req=request.args, params=["company"]).required()
impl = TycDataImpl()
result = impl.land_mortgage(name=request.args['company'])
return {"info": "土地抵押", "result": result}
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@tyc_route.route('/operational_risks', methods=['GET'])
def operational_risks_route():
"""经营风险全量数据"""
try:
RouteParamsCheck(req=request.args, params=["company"]).required()
impl = TycDataImpl()
result = impl.equity_pledge(name=request.args['company'])
if result == '保存成功':
result = impl.mortgage_movable_property(name=request.args['company'])
if result == '保存成功':
result = impl.land_mortgage(name=request.args['company'])
return {"info": "经营风险全量数据", "result": result}
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@tyc_route.route('/abnormal_operation', methods=['GET'])
def abnormal_operation_route():
"""经营异常"""
try:
RouteParamsCheck(req=request.args, params=["company"]).required()
impl = TycDataImpl()
result = impl.abnormal_operation(name=request.args['company'])
return {"info": "经营异常", "result": result}
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@tyc_route.route('/administrative_penalties', methods=['GET'])
def administrative_penalties_route():
"""行政处罚"""
try:
RouteParamsCheck(req=request.args, params=["company"]).required()
impl = TycDataImpl()
result = impl.administrative_penalties(name=request.args['company'])
return {"info": "行政处罚", "result": result}
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@tyc_route.route('/serious_violation', methods=['GET'])
def serious_violation_route():
"""严重违法"""
try:
RouteParamsCheck(req=request.args, params=["company"]).required()
impl = TycDataImpl()
result = impl.serious_violation(name=request.args['company'])
return {"info": "严重违法", "result": result}
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@tyc_route.route('/tax_violation', methods=['GET'])
def tax_violation_route():
"""税收违法"""
try:
RouteParamsCheck(req=request.args, params=["company"]).required()
impl = TycDataImpl()
result = impl.tax_violation(name=request.args['company'])
return {"info": "税收违法", "result": result}
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@tyc_route.route('/tax_arrears_announcement', methods=['GET'])
def tax_arrears_announcement_route():
"""欠税公告"""
try:
RouteParamsCheck(req=request.args, params=["company"]).required()
impl = TycDataImpl()
result = impl.tax_arrears_announcement(name=request.args['company'])
return {"info": "欠税公告", "result": result}
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@tyc_route.route('/regulatory_risks', methods=['GET'])
def operational_risks_route():
"""监管风险全量数据"""
try:
RouteParamsCheck(req=request.args, params=["company"]).required()
impl = TycDataImpl()
result = impl.abnormal_operation(name=request.args['company'])
if result == '保存成功':
result = impl.administrative_penalties(name=request.args['company'])
if result == '保存成功':
result = impl.serious_violation(name=request.args['company'])
if result == '保存成功':
result = impl.tax_violation(name=request.args['company'])
if result == '保存成功':
result = impl.tax_arrears_announcement(name=request.args['company'])
return {"info": "监管风险全量数据", "result": result}
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code

177
Modules/TycApi/TycUtils.py Normal file
View File

@ -0,0 +1,177 @@
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

View File

2
app.py
View File

@ -10,6 +10,7 @@ from Modules.Interface.InterfaceSetRoutes import apiset_route
from Modules.Models.Score.ScoreRoutes import score_model_route
from Modules.Questionnaire.QuestionnaireRoutes import questionnaire_route
from Modules.Questions.QuestionsRoutes import question_route
from Modules.TycApi.TycRoutes import tyc_route
app = Flask(__name__)
CORS(app, supports_credentials=True)
@ -25,6 +26,7 @@ app.register_blueprint(question_route, url_prefix='/rating/question')
app.register_blueprint(questionnaire_route, url_prefix='/rating/questionnaire')
app.register_blueprint(filters_route, url_prefix='/rating/data_filters')
app.register_blueprint(file_route, url_prefix='/rating/obj_file')
app.register_blueprint(tyc_route, url_prefix='/rating/tyc_api')
@app.route('/admin/version')