Commit 18345b62 by huangjing

hj

parent 9d278849
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" />
</component>
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.7" project-jdk-type="Python SDK" />
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/recommendation.iml" filepath="$PROJECT_DIR$/.idea/recommendation.iml" />
</modules>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/venv" />
</content>
<orderEntry type="jdk" jdkName="Python 3.7" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/leisu_spider" vcs="Git" />
</component>
</project>
\ No newline at end of file
#-*- encoding:utf-8 -*-
#!/usr/bin/python
import pymysql
ip = "47.95.76.74"
port = 3306
database = "ent_data"
user = "root"
password = "Gongsibao2018"
def Getdata(cate_name):
sql = 'select * from tj_policycycle where cate_name = "%s" order by life_cycle' % cate_name
#数据库连接
db = pymysql.Connect(ip, user, password, database, port)
cursor = db.cursor(cursor=pymysql.cursors.DictCursor)
try:
cursor.execute(sql)
re1 = cursor.fetchall()
if re1:
list = []
for ree in re1:
if ree:
policy_name = ree["policy_name"]
life_cycle = ree["life_cycle"]
dict = {}
dict[policy_name] = life_cycle
list.append(dict)
return 1,list
else:
db.close()
return 0, {}
except:
db.close()
return -1, {}
def InsertData(datainfo):
# 数据库连接
db = pymysql.Connect(ip, user, password, database, port)
cursor = db.cursor(cursor=pymysql.cursors.DictCursor)
try:
update_sql = 'update tj_policycycle set life_cycle = %s where id = %s'
insert_sql = 'INSERT INTO `ent_data`.`tj_policycycle` (`cate_name`, `policy_name`, `life_cycle`) VALUES (%s, %s, %s)'
for data in datainfo:
cate_name = data["cate_name"]
policy_name = data["policy_name"]
life_cycle = data["life_cycle"]
select_sql = 'select * from tj_policycycle where cate_name = "%s" and policy_name = "%s"' % (cate_name, policy_name)
cursor.execute(select_sql)
re1 = cursor.fetchone()
if re1:
id = re1["id"]
tub = (life_cycle, id)
cursor.execute(update_sql,tub)
else:
tub = (cate_name, policy_name, life_cycle)
cursor.execute(insert_sql, tub)
db.commit()
db.close()
return 1
except FileExistsError as e:
db.rollback()
db.close()
return 0
# 下面一句的作用1是:运行本程序文件时执行什么操作
if __name__ == "__main__":
# #插入数据库
# datainfo = [
# {"cate_name":"文化、体育和娱乐业","policy_name":"IDC许可证","life_cycle":5},
# {"cate_name": "文化、体育和娱乐业", "policy_name": "EDI许可证", "life_cycle": 3},
# {"cate_name": "信息传输、软件和信息技术服务业", "policy_name": "IDC许可证", "life_cycle": 8},
# ]
#
#
# result = InsertData(datainfo)
# print(str(result))
#查询数据
cate_name = "文化、体育和娱乐业"
re1,re2 = Getdata(cate_name)
print(str(re1))
print(str(re2))
# -*- coding:UTF-8 -*-
# 数组转换成逗号分割字符串
def to_result(data=None,code=200,message="操作成功"):
dict = {}
dict["code"] = code
dict["message"] = message
dict["data"] = data
return dict
\ No newline at end of file
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2020/4/22 0022 下午 2:07
# @Author : hj
# @File : re_companyName.py
# @Software: PyCharm
def strQ2B(companyname):
"""公司名称全角转半角"""
name = ""
for uchar in companyname:
inside_code=ord(uchar)
if inside_code == 12288: #全角空格直接转换
inside_code = 32
elif (inside_code >= 65281 and inside_code <= 65374): #全角字符(除空格)根据关系转化
inside_code -= 65248
name += chr(inside_code)
return name
\ No newline at end of file
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2020/4/22 0022 下午 6:04
# @Author : hj
# @File : remove_Duplicate_list.py
# @Software: PyCharm
# list_copy=[{1},{2},{3},{3},{2},{1}]#去除重复远素
def distinct_list(list_copy):
new_list = []
for k in list_copy:
if k not in new_list:
new_list.append(k)
# print("方法三:", new_list)
return new_list
\ No newline at end of file
import collections
def sort_cut(list,num):
new_list = collections.Counter(list)
dic = sorted(new_list.items(),key= lambda x:x[1],reverse=True)[:num]
result =[x[0] for x in dic]
return result
# -*- coding:UTF-8 -*-
# 数组转换成逗号分割字符串
def to_sql_in(data_list):
return ','.join(["'%s'" % item for item in data_list])
\ No newline at end of file
import datetime,time
#输入时间戳,加减一年,转化成时间戳
def TimestampChange(estiblish_time,num):
e_time= datetime.datetime.fromtimestamp(estiblish_time) #时间戳转datetime型
year0 = e_time.year-num#取出相应年份减1
year1 = e_time.year+num
month = e_time.month
day = e_time.day
hour = e_time.hour
minute = e_time.minute
second = e_time.second
begin_e_time = datetime.datetime(year0,month,day,hour,minute,second)#拼接成上一年的datetime
end_e_time=datetime.datetime(year1,month,day,hour,minute,second)#拼接成下一年的datetime
begin_e_time = time.mktime(begin_e_time.timetuple())#转化成时间戳
end_e_time=time.mktime(end_e_time.timetuple())
return begin_e_time,end_e_time
\ No newline at end of file
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2020/4/22 0022 上午 10:25
# @Author : hj
# @File : Dataoper_dao.py
# @Software: PyCharm
from db.mod_db import DataBase
class DataoperDao:
def __init__(self, db=None):
if db is None:
self.dataBase = DataBase()
else:
self.dataBase = db
def select_sql_1(self,cate_name):
return self.dataBase.fetch_all('select * from tj_policycycle where cate_name = "%s" order by life_cycle' % cate_name)
def select_sql_2(self,cate_name,policy_name):
return self.dataBase.fetch_one('select * from tj_policycycle where cate_name = "%s" and policy_name = "%s"' % cate_name, policy_name)
def updateData(self,life_cycle, id):
return self.dataBase.update('update tj_policycycle set life_cycle = %s where id = %s' % life_cycle, id)
def insertData(self,cate_name, policy_name, life_cycle):
return self.dataBase.insert_batch('INSERT INTO `ent_data`.`tj_policycycle` (`cate_name`, `policy_name`, `life_cycle`) VALUES (%s, %s, %s)' % cate_name, policy_name, life_cycle)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2020/4/22 0022 上午 10:28
# @Author : hj
# @File : GetImageFromSql_dao.py
# @Software: PyCharm
from db.mod_db import DataBase
class Lable_Product_Dao:
def __init__(self, db=None):
if db is None:
self.dataBase = DataBase()
else:
self.dataBase = db
def select_label(self, companyname):
return self.dataBase.fetch_all(
"select * from `tj_lable_copy1_test_0316` where company_name = '%s'" % companyname)
def select_product(self, companyname):
return self.dataBase.fetch_all(
"SELECT * from `tj_product_result_copy1_test_0317` where companyname='%s'" % companyname)
\ No newline at end of file
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2020/4/22 0022 下午 2:12
# @Author : hj
# @File : Image_status_dao.py
# @Software: PyCharm
from db.mod_db import DataBase
class Image_status_Dao:
def __init__(self, db=None):
if db is None:
self.dataBase = DataBase()
else:
self.dataBase = db
def select_sql_1(self,companyName):
return self.dataBase.fetch_all("SELECT * from tj_reportUrl where companyname='%s'" % companyName)
def select_sql_2(self,companyName):
return self.dataBase.fetch_all("SELECT * from tj_lable_copy1_test_0316 where company_name='%s'" % companyName)
def insertData(self,companyName,currdate,hx_status,report_status,report_url):
return self.dataBase.insert_batch('insert into tj_task(companyName,submit_time,image_status,report_status,report_url) values("%s","%s","%s","%s","%s")'%(companyName,currdate,hx_status,report_status,report_url))
def select_sql_3(self,companyName,num_start,pageSize):
return self.dataBase.fetch_all('SELECT * from tj_task where companyName="%s" order by submit_time DESC,id DESC limit %s,%s' % (companyName,num_start,pageSize))
def select_sql_4(self,companyName):
return self.dataBase.fetch_all('SELECT COUNT(*) from tj_task WHERE companyName="%s"'% companyName)
\ No newline at end of file
from db.mod_db import EsBase
index = "bigdata_ic_gsb_company_op"
import datetime,time,os,sys
class CompanyEs:
def __init__(self, es=None):
if es is None:
self.esBase = EsBase()
else:
self.esBase = es
def select_baise(self,company_name):
query = {"query": {"bool": {"must": {"term": {"company_name.raw": company_name}}}}}
return self.esBase.select(index=index,body=query)
def select_company_body(self):
query = {"query": {"bool": {"must": []}}, "size": 9000, }
return query
def select_company(self,query):
print(query)
return self.esBase.select(index=index, body=query)
from db.mod_db import EsBase
index = "bigdata_ic_gsb_branch_1"
class BranchEs:
def __init__(self, es=None):
if es is None:
self.esBase = EsBase()
else:
self.esBase = es
def select_branch(self,company_name):
query = {
"query": {
"bool": {
"must": [
{
"term": {
"company_name": company_name,
}
}
]
}
}
}
return self.esBase.select(index=index,body=query)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2020/4/22 0022 下午 2:55
# @Author : hj
# @File : online_GetlicenseImage_es.py
# @Software: PyCharm
from db.mod_db import EsBase
class online_Getlicense_Es:
def __init__(self, es=None):
if es is None:
self.esBase = EsBase()
else:
self.esBase = es
def select_GXLicenses(self, companyname):
query = {"query": {"bool": {"must": {"term": {"companyName.raw": companyname}}}}}
return self.esBase.select(index="enterprise_chain_gxgy", body=query)
def select_gameLicenses_1(self, companyname):
query = {"query": {"bool": {"must": {"term": {"publishing_unit.raw": companyname}}}}}
return self.esBase.select(index="enterprise_chain_game", body=query)
def select_gameLicenses_2(self, companyname):
query = {"query": {"bool": {"must": {"term": {"operation_unit.raw": companyname}}}}}
return self.esBase.select(index="enterprise_chain_game", body=query)
def select_ICPLicenses(self, companyname):
query = {"query": {"bool": {"must": {"term": {"companyName.raw": companyname}}}}}
return self.esBase.select(index="enterprise_chain_license", body=query)
\ No newline at end of file
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2020/4/22 0022 下午 5:43
# @Author : hj
# @File : tf_member_dao.py
# @Software: PyCharm
from db.mod_db import DataBase
class tf_member_Dao:
def __init__(self, db=None):
if db is None:
self.dataBase = DataBase()
else:
self.dataBase = db
def select_sql_1(self,input_name):
return self.dataBase.fetch_all("SELECT company_name,member_name,member_position FROM tj_member where company_name='%s'" % input_name)
def select_sql_2(self,input_name):
return self.dataBase.fetch_all("SELECT company_name,shareholder_name,subscription_funds,turn_funds,subscript_type,subscrip_time FROM tj_shareholder where company_name='%s'" % input_name)
\ No newline at end of file
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2020/4/22 0022 下午 5:47
# @Author : hj
# @File : tf_member_es.py
# @Software: PyCharm
from db.mod_db import EsBase
class tf_member_Es:
def __init__(self, es=None):
if es is None:
self.esBase = EsBase()
else:
self.esBase = es
def Get_Data_By_Body_1(self,index_name,company_name):
query = {"query": {"match": {"companyName": company_name}}}
return self.esBase.select(index=index_name,body=query)
def Get_Data_By_Body_2(self,index_name,match_field, field_cotent):
query = {"query": {"match": {match_field: field_cotent}}}
return self.esBase.select(index=index_name,body=query)
\ No newline at end of file
# -*- coding:UTF-8 -*-
from db.mod_db import DataBase
class LableDao:
def __init__(self, db=None):
if db is None:
self.dataBase = DataBase()
else:
self.dataBase = db
def select(self, company_name):
return self.dataBase.fetch_all(
"select * from `tj_label_depth` where company_name = '%s'" % company_name)
# -*- coding:UTF-8 -*-
from db.mod_db import DataBase
class ProductDao:
def __init__(self, db=None):
if db is None:
self.dataBase = DataBase()
else:
self.dataBase = db
def select(self, company_name):
return self.dataBase.fetch_all(
"select * from `tj_product_depth` where company_name = '%s'" % company_name)
# -*- coding:UTF-8 -*-
from db.mod_db import DataBase
class OriginalDao:
def __init__(self, db=None):
if db is None:
self.dataBase = DataBase()
else:
self.dataBase = db
def select(self,company_name):
return self.dataBase.fetch_all("select * from `tj_purchase_original` where matching_related_companies = '%s' order by group_date desc " % company_name)
\ No newline at end of file
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2020/4/23 0023 上午 9:54
# @Author : hj
# @File : trade_es.py
# @Software: PyCharm
from db.mod_db import EsBase
class trade_Es:
def __init__(self, es=None):
if es is None:
self.esBase = EsBase()
else:
self.esBase = es
def Get_Data_By_Body(self,companyNames):
query = {
"query": {
"bool": {
"must": [
{
"term": {
"company_name.raw": companyNames
}
}
]
}
}
}
return self.esBase.select(index='bigdata_ic_gsb_company_02',body=query)
\ No newline at end of file
[database]
dbhost=47.95.76.74
dbport=3306
dbname=ent_data
dbuser=root
dbpassword=Gongsibao2018
dbcharset=utf8
[es]
eshost=43.247.184.94
esport=9200
esuser=admines
espassword=adminGSB.
escharset=utf8
#encoding:utf-8
#name:mod_config.py
import configparser
import os
#获取config配置文件
''' 使用方法
dbname = mod_config.getConfig("database", "dbname")
'''
def getConfig(section, key):
config = configparser.ConfigParser()
path = os.path.split(os.path.realpath(__file__))[0] + '/configure.conf'
config.read(path)
return config.get(section, key)
#其中 os.path.split(os.path.realpath(__file__))[0] 得到的是当前文件模块的目录
\ No newline at end of file
# encoding:utf-8
# name:mod_db.py
'''
使用方法:1.在主程序中先实例化DB Mysql数据库操作类。
2.使用方法:db=database() db.fetch_all("sql")
'''
from __future__ import division
import pymysql
import pymysql.cursors
from db import mod_config
from elasticsearch import Elasticsearch
DB = "database"
DBNAME = mod_config.getConfig(DB, 'dbname')
DBHOST = mod_config.getConfig(DB, 'dbhost')
DBUSER = mod_config.getConfig(DB, 'dbuser')
DBPWD = mod_config.getConfig(DB, 'dbpassword')
DBCHARSET = mod_config.getConfig(DB, 'dbcharset')
DBPORT = mod_config.getConfig(DB, "dbport")
ES = "es"
ESHOST = mod_config.getConfig(ES, 'eshost')
ESUSER = mod_config.getConfig(ES, 'esuser')
ESPWD = mod_config.getConfig(ES, 'espassword')
ESCHARSET = mod_config.getConfig(ES, 'escharset')
ESPORT = mod_config.getConfig(ES, "esport")
# 数据库操作类
class DataBase:
# 注,python的self等于其它语言的this
def __init__(self, dbname=None, dbhost=None):
# 这里的None相当于其它语言的NULL
if dbname is None:
self._dbname = DBNAME
else:
self._dbname = dbname
if dbhost is None:
self._dbhost = DBHOST
else:
self._dbhost = dbhost
self._dbuser = DBUSER
self._dbpassword = DBPWD
self._dbcharset = DBCHARSET
self._dbport = int(DBPORT)
self._conn = self.connectMySQL
if (self._conn):
self._cursor = self._conn.cursor()
# 数据库连接
@property
def connectMySQL(self):
conn = False
try:
conn = pymysql.connect(host=self._dbhost,
user=self._dbuser,
passwd=self._dbpassword,
db=self._dbname,
port=self._dbport,
cursorclass=pymysql.cursors.DictCursor,
charset=self._dbcharset,
autocommit=True
)
except Exception as data:
print("connect database failed, %s" % data)
conn = False
return conn
# 获取查询结果集
def fetch_all(self, sql):
res = ''
if (self._conn):
try:
self._cursor.execute(sql)
res = self._cursor.fetchall()
except Exception as data:
res = False
print("query database exception, %s" % data)
return res
def fetch_one(self, sql):
res = ''
if (self._conn):
try:
self._cursor.execute(sql)
res = self._cursor.fetchone()
except Exception as data:
res = False
print("query database exception, %s" % data)
return res
def update(self, sql, params):
flag = False
if (self._conn):
try:
self._cursor.execute(sql, params)
self._conn.commit()
flag = True
except Exception as data:
flag = False
print("update database exception, %s" % data)
return flag
def insert_batch(self, sql,data_liats):
flag = False
if (self._conn):
try:
self._cursor.executemany(sql,data_liats)
flag = True
self._conn.commit()
except Exception as data:
flag = False
print("update database exception, %s" % data)
return flag
# 关闭数据库连接
def close(self):
if (self._conn):
try:
if (type(self._cursor) == 'object'):
self._cursor.close()
if (type(self._conn) == 'object'):
self._conn.close()
except Exception as data:
print("close database exception, %s,%s,%s" % (data, type(self._cursor), type(self._conn)))
def roll_back(self):
if (self._conn):
try:
self._conn.rollback()
except Exception as data:
print("db rollback exception, %s" % data)
def get_cursor(self):
return self._cursor
def get_conn(self):
return self._conn
class EsBase:
def __init__(self, eshost=None):
# 这里的None相当于其它语言的NULL
if eshost is None:
self._eshost = ESHOST
else:
self._eshost = eshost
self._esuser = ESUSER
self._espassword = ESPWD
self._escharset = ESCHARSET
self._esport = int(ESPORT)
self._connes = self.connectES
# if (self._conn):
# self._cursor = self._conn.cursor()
@property
def connectES(self):
es = False
try:
es = Elasticsearch(
[self._eshost],
http_auth=(self._esuser, self._espassword),
port=self._esport)
except Exception as data:
print("connect es failed, %s" % data)
es = False
return es
def select(self, index=None,body=None):
res = ''
if (self._connes):
try:
res = self._connes.search(index = index, body = body)
# res = self._cursor.fetchall()
except Exception as data:
res = False
print("query esbase exception, %s" % data)
print (res)
return res
\ No newline at end of file
import flask #!/usr/bin/ python3
from flask_cors import CORS # -*- coding: utf-8 -*-
from Image_status import imageInfo # @Time : 2020/04/17
# from trade import selectcyle,insertcycle # @Author : xinyu xu
from GetImageFromSql import getImageInfo # @Software: PyCharm
# from online_GetLicenseImage import getlicenceInfo
# from tf_member_es import gaoguan,gudong
server = flask.Flask(__name__) from service.user_behavior import Recom
server.config['JSON_AS_ASCII'] = False from flask import Flask, jsonify
CORS(server,supports_credentials=True) #跨域请求 from flask import request
from flask_cors import CORS
imageInfo(server) from common import common_result
# selectcyle(server) from service.company_basic import CompanyBase
# insertcycle(server) from service.Image_status import imageInfo
getImageInfo(server) from service.trade import selectcyle,insertcycle
# getlicenceInfo(server) from service.GetImageFromSql import getImageInfo
# gaoguan(server) from service.online_GetLicenseImage import getlicenceInfo
# gudong(server) from service.tf_member import gaoguan,gudong
if __name__ == '__main__':
server.run( server = Flask(__name__)
host='0.0.0.0', server.config['JSON_AS_ASCII'] = False
port=80, CORS(server,supports_credentials=True) #跨域请求
debug=True
) recomm = Recom()
\ No newline at end of file companybase = CompanyBase()
imageInfo(server)
selectcyle(server)
# insertcycle(server)
getImageInfo(server)
# getlicenceInfo(server)
gaoguan(server)
gudong(server)
#画像
@server.route('/lable', methods=['POST'])
def lable_post():
if request.method == 'POST':
request_data = request.json
if not request_data or not request_data.get('company_name'):
return common_result.to_result(None,300,"参数错误")
company_name = request_data.get('company_name')
lable_result = recomm.company_label(company_name)
return common_result.to_result(lable_result)
#产品
@server.route('/product', methods=['POST'])
def product_post():
if request.method == 'POST':
request_data = request.json
if not request_data or not request_data.get('company_name'):
return common_result.to_result(None,300,"参数错误")
company_name = request_data.get('company_name')
product_result = recomm.recommend_product(company_name)
return common_result.to_result(product_result)
#用户购买记录
@server.route('/behavior',methods=['POST'])
def behavior_post():
if request.method == 'POST':
request_data = request.json
if not request_data or not request_data.get('company_name'):
return common_result.to_result(None,300,"参数错误")
company_name = request_data.get('company_name')
behavior_result = recomm.company_behavior(company_name)
return common_result.to_result(behavior_result)
#分公司
@server.route('/branch',methods=['POST'])
def company_branch():
if request.method == 'POST':
request_data = request.json
if not request_data or not request_data.get('company_name'):
return common_result.to_result(None, 300, "参数错误")
company_name = request_data.get('company_name')
company_branch_result =companybase.companybranch(company_name)
return common_result.to_result(company_branch_result)
#相似企业
@server.route('/similarCompany',methods=['POST'])
def company_similar():
if request.method == 'POST':
request_data = request.json
if not request_data or not request_data.get('company_name'):
return common_result.to_result(None, 300, "参数错误")
company_name = request_data.get('company_name')
company_info = companybase.companyinfo(company_name)
similar_company_list = companybase.similar_company(company_info)
return common_result.to_result(similar_company_list)
if __name__ == '__main__':
server.run(debug=True,host='0.0.0.0',port=80)
# server.run(debug=True, host='127.0.0.1', port=8080)
\ No newline at end of file
DBUtils、pymysql、elasticsearch、flask、flask_cors
DBUtils、pymysql、elasticsearch、flask、flask_cors
\ No newline at end of file
#-*- encoding:utf-8 -*-
#!/usr/bin/python
from dao.Dataoper_dao import DataoperDao
from db.mod_db import DataBase
class Datao:
def Getdata(self,cate_name):
try:
Dataoper = DataoperDao()
re1 = Dataoper.select_sql_1(cate_name)
if re1:
list = []
for ree in re1:
if ree:
policy_name = ree["policy_name"]
life_cycle = ree["life_cycle"]
dict = {}
dict[policy_name] = life_cycle
list.append(dict)
return 1, list
else:
DataInfo = DataBase()
DataInfo.close()
return 0, {}
except:
DataInfo = DataBase()
DataInfo.close()
return -1, {}
def InsertData(self,datainfo):
# 数据库连接
try:
Dataoper = DataoperDao()
for data in datainfo:
cate_name = data["cate_name"]
policy_name = data["policy_name"]
life_cycle = data["life_cycle"]
re1 = Dataoper.select_sql_2(cate_name, policy_name)
if re1:
id = re1["id"]
Dataoper.updateData(life_cycle, id)
else:
Dataoper.insertData(cate_name, policy_name, life_cycle)
DataInfo = DataBase()
DataInfo.close()
return 1
except FileExistsError as e:
DataInfo = DataBase()
DataInfo.roll_back()
DataInfo.close()
return 0
# 下面一句的作用1是:运行本程序文件时执行什么操作
if __name__ == "__main__":
#查询数据
cate_name = "文化、体育和娱乐业"
DataoInfo = Datao()
re1,re2 = DataoInfo.Getdata(cate_name)
print(str(re1))
print(str(re2))
...@@ -8,42 +8,31 @@ ...@@ -8,42 +8,31 @@
"""企业画像和推荐商机""" """企业画像和推荐商机"""
#读取数据库,获取画像标签 #读取数据库,获取画像标签
import pymysql
from DBUtils.PooledDB import PooledDB
from flask import request,jsonify from flask import request,jsonify
from dao.GetImageFromSql_dao import Lable_Product_Dao
# 数据库 from db.mod_db import DataBase
MYSQL_HOST = '47.95.76.74' #外网地址 from common import re_companyName
PORT = 3306 #外网端口
USER = 'root'
PASSWORD = 'Gongsibao2018'
DB = 'ent_data'
pool = PooledDB(pymysql,8, host=MYSQL_HOST, user=USER, passwd=PASSWORD, db=DB, port=PORT)
#检索企业画像信息 #检索企业画像信息
def GetImageFromSql(companyname): def GetImageFromSql(companyname):
print(companyname,"===========获取公司名称查询画像信息") print(companyname,"===========获取公司名称查询画像信息")
# 查询数据库 # 查询数据库
conn = pool.connection()
cursor = conn.cursor()
image_result = [] #画像列表 image_result = [] #画像列表
try: try:
# 执行SQL语句 # 执行SQL语句
cursor.execute('SELECT * from tj_lable_copy1_test_0316 where company_name=%s',companyname) lable = Lable_Product_Dao()
# 获取所有配置列表 # 获取所有配置列表
Allproduct_rules = cursor.fetchall() Allproduct_rules = lable.select_label(companyname)
print(Allproduct_rules) print(Allproduct_rules,"=====")
for row in Allproduct_rules: for row in Allproduct_rules:
# 获取所有规则 # 获取所有规则
image_result=row[1] image_result=row['company_lable']
print(image_result) print(image_result)
except: except:
return ("没有查询到该公司画像信息") return ("没有查询到该公司画像信息")
finally: finally:
cursor.close() DataInfo = DataBase()
conn.close() DataInfo.close()
if image_result: if image_result:
image_result = image_result.replace("[","").replace("]","").replace('"',"").replace("'","").replace(",",",") image_result = image_result.replace("[","").replace("]","").replace('"',"").replace("'","").replace(",",",")
imageresult=list(image_result.split(",")) imageresult=list(image_result.split(","))
...@@ -55,24 +44,20 @@ def GetImageFromSql(companyname): ...@@ -55,24 +44,20 @@ def GetImageFromSql(companyname):
def GetProductFromSql(companyname): def GetProductFromSql(companyname):
print(companyname,"===========获取公司名称查询产品推荐信息") print(companyname,"===========获取公司名称查询产品推荐信息")
# 查询数据库 # 查询数据库
conn = pool.connection()
cursor = conn.cursor()
product_result = [] #产品列表 product_result = [] #产品列表
try: try:
# 执行SQL语句 product = Lable_Product_Dao()
cursor.execute('SELECT * from tj_product_result_copy1_test_0317 where companyname=%s',companyname) Allproduct_rules = product.select_product(companyname)
# 获取所有配置列表
Allproduct_rules = cursor.fetchall()
print(Allproduct_rules) print(Allproduct_rules)
for row in Allproduct_rules: for row in Allproduct_rules:
# 获取所有规则 # 获取所有规则
product_result=row[1] product_result=row['product_result']
# print(type(product_result),product_result) # print(type(product_result),product_result)
except: except:
return ("没有查询到该公司产品推荐信息") return ("没有查询到该公司产品推荐信息")
finally: finally:
cursor.close() DataInfo = DataBase()
conn.close() DataInfo.close()
if product_result: if product_result:
product_result = product_result.replace("[","").replace("]","").replace('"',"").replace("'","").replace(",",",").replace(" ","") product_result = product_result.replace("[","").replace("]","").replace('"',"").replace("'","").replace(",",",").replace(" ","")
print(product_result) print(product_result)
...@@ -81,19 +66,6 @@ def GetProductFromSql(companyname): ...@@ -81,19 +66,6 @@ def GetProductFromSql(companyname):
else:productresult=product_result else:productresult=product_result
return productresult return productresult
def strQ2B(companyname):
"""公司名称全角转半角"""
name = ""
for uchar in companyname:
inside_code=ord(uchar)
if inside_code == 12288: #全角空格直接转换
inside_code = 32
elif (inside_code >= 65281 and inside_code <= 65374): #全角字符(除空格)根据关系转化
inside_code -= 65248
name += chr(inside_code)
return name
def getImageInfo(server): def getImageInfo(server):
@server.route('/gsb/api/GetHtmlInfoFromSql', methods=['POST']) @server.route('/gsb/api/GetHtmlInfoFromSql', methods=['POST'])
def GetImageInfo(): def GetImageInfo():
...@@ -104,7 +76,7 @@ def getImageInfo(server): ...@@ -104,7 +76,7 @@ def getImageInfo(server):
requestdata = request.json requestdata = request.json
print(requestdata) print(requestdata)
companyname = requestdata.get('companyname') companyname = requestdata.get('companyname')
companyname = strQ2B(companyname) companyname = re_companyName.strQ2B(companyname)
Image_result = GetImageFromSql(companyname) Image_result = GetImageFromSql(companyname)
product_result = GetProductFromSql(companyname) product_result = GetProductFromSql(companyname)
result = {"status":200,"msg":"操作成功","image": Image_result,"product": product_result} result = {"status":200,"msg":"操作成功","image": Image_result,"product": product_result}
...@@ -113,4 +85,6 @@ def getImageInfo(server): ...@@ -113,4 +85,6 @@ def getImageInfo(server):
return jsonify(result) return jsonify(result)
# server.run(host='127.0.0.1', port=9001, debug=True) # server.run(host='127.0.0.1', port=9001, debug=True)
\ No newline at end of file
...@@ -5,166 +5,131 @@ ...@@ -5,166 +5,131 @@
# @File : Image_status.py # @File : Image_status.py
# @Software: PyCharm # @Software: PyCharm
import pymysql from dao.Image_status_dao import Image_status_Dao
from DBUtils.PooledDB import PooledDB from db.mod_db import DataBase
from flask import request,jsonify from flask import request,jsonify
from common import re_companyName
"""任务表""" """任务表"""
# # 数据库规则表 # 根据传入公司名称获取专利报告链接及状态
MYSQL_HOST = '47.95.76.74' #外网地址
PORT = 3306 #外网端口
USER = 'root'
PASSWORD = 'Gongsibao2018'
DB = 'ent_data'
pool = PooledDB(pymysql,8, host=MYSQL_HOST, user=USER, passwd=PASSWORD, db=DB, port=PORT)
#根据传入公司名称获取专利报告链接及状态
def GetReportInfoFromSql(companyName): def GetReportInfoFromSql(companyName):
# 检索企业画像信息 # 检索企业画像信息
print(companyName, "===========获取公司名称查询专利信息") print(companyName, "===========获取公司名称查询专利信息")
# 查询数据库 # 查询数据库
conn = pool.connection() report_dict = {"report_status": "生成中", "report_url": ""}
cursor = conn.cursor()
report_dict={"report_status":"生成中","report_url":""}
try: try:
# 执行SQL语句 # 执行SQL语句
cursor.execute('SELECT * from tj_reportUrl where companyname=%s', companyName) Image_status = Image_status_Dao()
# 获取所有配置列表 Allreport_rules = Image_status.select_sql_1(companyName)
Allreport_rules = cursor.fetchall() print(Allreport_rules,"===Allreport_rules")
for row in Allreport_rules: for row in Allreport_rules:
# 获取所有数据 # 获取所有数据
url_result = row[2] url_result = row["report_url"]
if url_result: if url_result:
report_dict["report_status"]="已生成" report_dict["report_status"] = "已完成"
report_dict["report_url"]=url_result report_dict["report_url"] = url_result
print(report_dict) print(report_dict)
finally: finally:
cursor.close() DataInfo = DataBase()
conn.close() DataInfo.close()
return report_dict return report_dict
#根据传入公司名称获取画像状态 # 根据传入公司名称获取画像状态
def GetImageInfoFromSql(companyName): def GetImageInfoFromSql(companyName):
# 检索企业画像信息 # 检索企业画像信息
print(companyName, "===========获取公司名称查询画像信息") print(companyName, "===========获取公司名称查询画像信息")
# 查询数据库 # 查询数据库
conn = pool.connection() status = "生成中"
cursor = conn.cursor()
status="生成中"
try: try:
# 执行SQL语句 # 执行SQL语句
cursor.execute('SELECT * from tj_lable_copy1_test_0316 where company_name=%s', companyName) Image_status = Image_status_Dao()
# 获取所有配置列表 Allproduct_rules = Image_status.select_sql_2(companyName)
Allproduct_rules = cursor.fetchall()
print(Allproduct_rules) print(Allproduct_rules)
for row in Allproduct_rules: for row in Allproduct_rules:
# 获取所有数据 # 获取所有数据
image_result = row[1] image_result = row['company_lable']
if image_result: if image_result:
status="已生成" status = "已完成"
print(status) print(status)
except: except:
# return ("没有查询到该公司画像信息") # return ("没有查询到该公司画像信息")
return status return status
finally: finally:
cursor.close() DataInfo = DataBase()
conn.close() DataInfo.close()
return status return status
#将获取的信息写入数据库 # 将获取的信息写入数据库
def WritePRtoSql(companyName, currdate,hx_status,report_dict):#把推荐结果写进数据库 def WritePRtoSql(companyName, currdate, hx_status, report_dict): # 把推荐结果写进数据库
print(report_dict,"将公司信息写入数据库") print(report_dict, "将公司信息写入数据库")
report_status = report_dict["report_status"] report_status = report_dict["report_status"]
report_url = report_dict["report_url"] report_url = report_dict["report_url"]
# json写入数据库 # json写入数据库
conn = pool.connection()
cursor = conn.cursor()
sql='insert into tj_task(companyName,submit_time,image_status,report_status,report_url) values("%s","%s","%s","%s","%s")'%(companyName,currdate,hx_status,report_status,report_url)
try: try:
print(sql,"======sql") Image_status = Image_status_Dao()
cursor.execute(sql) Image_status.insertData(companyName, currdate, hx_status, report_status, report_url)
# 提交到数据库执行
conn.commit()
except Exception as e: except Exception as e:
print(e) print(e)
conn.rollback() DataInfo = DataBase()
DataInfo.roll_back()
# 关闭数据库连接 # 关闭数据库连接
conn.close() DataInfo = DataBase()
DataInfo.close()
return "查询信息已写入数据库" return "查询信息已写入数据库"
#根据传入公司名称查询画像状态表,返回任务信息 # 根据传入公司名称查询画像状态表,返回任务信息
def GetImageStatusFromSql(companyName,pageSize,pageNum): def GetImageStatusFromSql(companyName, pageSize, pageNum):
# 检索企业画像状态表 # 检索企业画像状态表
print(companyName, "===========获取公司名称查询画像状态信息") print(companyName, "===========获取公司名称查询画像状态信息")
# 查询数据库 # 查询数据库
conn = pool.connection() search_list = []
cursor = conn.cursor() num_start = (pageNum - 1) * pageSize
search_list=[] print(num_start, "================num_start")
num_start=(pageNum-1)*pageSize
print(num_start,"================num_start")
sql='SELECT * from tj_task where companyName=\"%s\" order by submit_time DESC,id DESC limit %s,%s'%(companyName,num_start,pageSize)
try: try:
print("=================================") Image_status = Image_status_Dao()
# 执行SQL语句 Allsearch_result = Image_status.select_sql_3(companyName, num_start, pageSize)
cursor.execute(sql) print(Allsearch_result,"=====Allsearch_result")
print(sql,"===================sql查询状态") r = 0
# 获取所有配置列表
Allsearch_result = cursor.fetchall()
print(Allsearch_result)
r=0
for row in Allsearch_result: for row in Allsearch_result:
# 获取所有数据 # 获取所有数据
image_status = row[3] image_status = row['image_status']
report_status = row[4] report_status = row['report_status']
if image_status=="已生成" and report_status =="已生成": if image_status == "已完成" and report_status == "已完成":
status="已生成" status = "已完成"
else: else:
status = "生成中" status = "生成中"
r+=1 r += 1
search_dict={ search_dict = {
"companyName":row[1], "companyName": row['companyName'],
"submit_time":row[2], "submit_time": row['submit_time'],
"status":status, "status": status,
"patent_link":row[5]} "patent_link": row['report_url']}
search_list.append(search_dict) search_list.append(search_dict)
finally: finally:
cursor.close() DataInfo = DataBase()
conn.close() DataInfo.close()
return search_list return search_list
def work_total(companyName): def work_total(companyName):
# 检索企业画像状态表 # 检索企业画像状态表
print(companyName, "===========获取公司名称查询总数量") print(companyName, "===========获取公司名称查询总数量")
# 查询数据库 # 查询数据库
total="" total = ""
conn = pool.connection()
cursor = conn.cursor()
# 执行SQL语句 # 执行SQL语句
cursor.execute('SELECT COUNT(*) from tj_task WHERE companyName=%s', companyName)
# print(sql,"===================sql查询") # print(sql,"===================sql查询")
# 获取所有配置列表 # 获取所有配置列表
Allsearch_result = cursor.fetchall() Image_status = Image_status_Dao()
Allsearch_result = Image_status.select_sql_4(companyName)
# print(Allsearch_result,"===Allsearch_result")
for row in Allsearch_result: for row in Allsearch_result:
total=row[0] total = row['COUNT(*)']
print(row[0],"=======") print(total, "=======")
cursor.close() DataInfo = DataBase()
conn.close() DataInfo.close()
return total return total
def strQ2B(companyname):
"""公司名称全角转半角"""
name = ""
for uchar in companyname:
inside_code=ord(uchar)
if inside_code == 12288: #全角空格直接转换
inside_code = 32
elif (inside_code >= 65281 and inside_code <= 65374): #全角字符(除空格)根据关系转化
inside_code -= 65248
name += chr(inside_code)
return name
def imageInfo(server): def imageInfo(server):
@server.route('/gsb/api/ImageStatusSearch', methods=['POST']) @server.route('/gsb/api/ImageStatusSearch', methods=['POST'])
def ImageStatusSearch(): def ImageStatusSearch():
...@@ -183,6 +148,7 @@ def imageInfo(server): ...@@ -183,6 +148,7 @@ def imageInfo(server):
pageSize = requestdata.get('pageSize') pageSize = requestdata.get('pageSize')
# 公司名称 # 公司名称
companyName = requestdata.get('companyName') companyName = requestdata.get('companyName')
companyName = re_companyName.strQ2B(companyName)
# 提交日期 # 提交日期
currdate = requestdata.get('currdate') currdate = requestdata.get('currdate')
# 根据公司名称查询画像标签库、画像状态 # 根据公司名称查询画像标签库、画像状态
...@@ -206,6 +172,4 @@ def imageInfo(server): ...@@ -206,6 +172,4 @@ def imageInfo(server):
result["total"] = "-" result["total"] = "-"
return jsonify(result) return jsonify(result)
# server.run(host='127.0.0.1', port=8100, debug=True) # server.run(host='127.0.0.1', port=8100, debug=True)
from dao.ic_gsb_branch_es import BranchEs
from dao.company_es import CompanyEs
from common import time_trans
class CompanyBase:
companyes = CompanyEs()
branches = BranchEs()
#企业分支机构
def companybranch(self,company_name):
company_branchs = []
branch_result = self.branches.select_branch(company_name)
for item in branch_result['hits']['hits']:
# print(item)
# print(item['_id'])
company_branchs.append(item['_source']['branch_name'])
return company_branchs
#查询企业基本信息
def companyinfo(self,company_name):
company_dict = {}
company_result = self.companyes.select_baise(company_name)
if company_result['hits']['hits']:
for row in company_result['hits']['hits']:
company_dict["companyname"] = row['_source']["company_name"] # 企业名称
company_dict["gsb_province"] = row['_source']["base"] # 所属省
company_dict["gsb_shi"] = row['_source']["gsb_city"] # 所属城市或者区
company_dict["legal_persion"] = row['_source']["legal_person"] # 法定代表人
company_dict["reg_capital"] = row['_source']["reg_capital"] # 注册资本
company_dict["reg_unit"] = row['_source']["reg_unit"] # 注册资本单位(万人民币)
company_dict["reg_status"] = row['_source']["reg_status"] # 营业状态
company_dict["estiblish_time"] = row["_source"]["estiblish_time"] # 成立时间(原本时间戳格式)
company_dict["company_org_type"] = row['_source']["company_org_type"] # 企业类型
company_dict["gsb_company_cate_1"] = row['_source']["gsb_company_cate_1"] # 所属行业大类
company_dict["gsb_company_cate_2"] = row['_source']["gsb_company_cate_2"] # 所属行业中类
company_dict["gsb_company_cate_3"] = row['_source']["gsb_company_cate_3"] # 所属行业小类
company_dict["business_scope"] = row['_source']["business_scope"] # 企业经营范围
return company_dict
#查找相似企业
def similar_company(self,cinfo):
querybody = self.companyes.select_company_body()
if cinfo["reg_status"]:
dsl = {"terms": {"reg_status": ['存续', "在业"]}}
querybody['query']['bool']['must'].append(dsl)
if cinfo["gsb_company_cate_1"]:
dsl = {"term": {"gsb_company_cate_1": cinfo["gsb_company_cate_1"]}}
querybody['query']['bool']['must'].append(dsl)
if cinfo["company_org_type"]:
dsl = {"term": {"company_org_type": cinfo["company_org_type"]}}
querybody['query']['bool']['must'].append(dsl)
if cinfo["gsb_province"]:
dsl = {"term": {"base": cinfo["gsb_province"]}}
querybody['query']['bool']['must'].append(dsl)
if cinfo["gsb_company_cate_2"]:
dsl = {"term": {"gsb_company_cate_2": cinfo["gsb_company_cate_2"]}}
querybody['query']['bool']['must'].append(dsl)
if cinfo["gsb_company_cate_3"]:
dsl = {"term": {"gsb_company_cate_3": cinfo["gsb_company_cate_3"]}}
querybody['query']['bool']['must'].append(dsl)
if cinfo["gsb_shi"]:
dsl = {"term": {"gsb_city": cinfo["gsb_shi"]}}
querybody['query']['bool']['must'].append(dsl)
if cinfo["estiblish_time"]:
begin_e_time, end_e_time = time_trans.TimestampChange(cinfo["estiblish_time"],1)
dsl = {"range": {"estiblish_time": {"gte": begin_e_time, "lte": end_e_time}}}
querybody['query']['bool']['must'].append(dsl)
if cinfo["reg_capital"]:
ori_cap = float(cinfo["reg_capital"])
new_cap_sub = str(ori_cap * 0.2)
new_cap_add = str(ori_cap * 1.8)
dsl = {"range": {"reg_capital": {"gte": new_cap_sub, "lte": new_cap_add}}}
querybody['query']['bool']['must'].append(dsl)
if cinfo["reg_unit"]:
dsl = {"term": {"reg_unit": cinfo["reg_unit"]}}
querybody['query']['bool']['must'].append(dsl)
company_list = self.companyes.select_company(querybody)
namelist = []
if len(company_list['hits']['hits']) > 0:
for row in company_list['hits']['hits']:
data = {"company_name":row['_source']["company_name"], "credit_code":row['_source']["credit_code"]}
namelist.append(data)
company_list_result = namelist[:3]
return company_list_result
...@@ -5,27 +5,18 @@ ...@@ -5,27 +5,18 @@
# @File : GetLicenseDataForImage.py # @File : GetLicenseDataForImage.py
# @Software: PyCharm # @Software: PyCharm
from elasticsearch import Elasticsearch from dao.online_GetlicenseImage_es import online_Getlicense_Es
from flask import request,jsonify from flask import request,jsonify
from common import re_companyName
"""证照信息""" """证照信息"""
esip = "43.247.184.94" #外网地址
# esip1 = "172.16.18.110" #内网地址
esport = 9200
esuser = "admines"
espassword = "adminGSB"
es = Elasticsearch([esip], http_auth=(esuser, espassword), port=esport, timeout=15000) #工商
#检索高新技术企业ES #检索高新技术企业ES
def GetGXLicensesFromES(companyname): def GetGXLicensesFromES(companyname):
online_Getlicense = online_Getlicense_Es()
print("证照es",companyname) print("证照es",companyname)
license_result_list=[] license_result_list=[]
licensesinfo1 = es.search(index="enterprise_chain_gxgy",
body={"query": {"bool": {"must": {"term": {"companyName.raw": companyname}}}}}) licensesinfo1 = online_Getlicense.select_GXLicenses(companyname)
print("============111111111111111111")
if licensesinfo1["hits"]["hits"]: if licensesinfo1["hits"]["hits"]:
for row in licensesinfo1["hits"]["hits"]: for row in licensesinfo1["hits"]["hits"]:
if row['_source']["techType"]: if row['_source']["techType"]:
...@@ -54,8 +45,8 @@ def GetGXLicensesFromES(companyname): ...@@ -54,8 +45,8 @@ def GetGXLicensesFromES(companyname):
def GetgameLicensesFromES(companyname): def GetgameLicensesFromES(companyname):
print("游戏类证照es") print("游戏类证照es")
license_result_list1=[] license_result_list1=[]
licensesinfo1 = es.search(index="enterprise_chain_game", online_Getlicense = online_Getlicense_Es()
body={"query": {"bool": {"must": {"term": {"publishing_unit.raw": companyname}}}}}) licensesinfo1 = online_Getlicense.select_gameLicenses_1(companyname)
if licensesinfo1["hits"]["hits"]: if licensesinfo1["hits"]["hits"]:
for row in licensesinfo1["hits"]["hits"]: for row in licensesinfo1["hits"]["hits"]:
if row['_source']["publishing_record"]: if row['_source']["publishing_record"]:
...@@ -78,8 +69,7 @@ def GetgameLicensesFromES(companyname): ...@@ -78,8 +69,7 @@ def GetgameLicensesFromES(companyname):
} }
license_result_list1.append(license_result) license_result_list1.append(license_result)
license_result_list2 = [] license_result_list2 = []
licensesinfo1 = es.search(index="enterprise_chain_game", licensesinfo1 = online_Getlicense.select_gameLicenses_2(companyname)
body={"query": {"bool": {"must": {"term": {"operation_unit.raw": companyname}}}}})
if licensesinfo1["hits"]["hits"]: if licensesinfo1["hits"]["hits"]:
for row in licensesinfo1["hits"]["hits"]: for row in licensesinfo1["hits"]["hits"]:
if row['_source']["publishing_record"]: if row['_source']["publishing_record"]:
...@@ -110,8 +100,8 @@ def GetgameLicensesFromES(companyname): ...@@ -110,8 +100,8 @@ def GetgameLicensesFromES(companyname):
def GetICPLicensesFromES(companyname): def GetICPLicensesFromES(companyname):
print("ICP证照es") print("ICP证照es")
license_result_list=[] license_result_list=[]
licensesinfo1 = es.search(index="enterprise_chain_license", online_Getlicense = online_Getlicense_Es()
body={"query": {"bool": {"must": {"term": {"companyName.raw": companyname}}}}}) licensesinfo1 = online_Getlicense.select_ICPLicenses(companyname)
if licensesinfo1["hits"]["hits"]: if licensesinfo1["hits"]["hits"]:
for row in licensesinfo1["hits"]["hits"]: for row in licensesinfo1["hits"]["hits"]:
if row['_source']["licence"]: if row['_source']["licence"]:
...@@ -141,17 +131,6 @@ def GetICPLicensesFromES(companyname): ...@@ -141,17 +131,6 @@ def GetICPLicensesFromES(companyname):
return license_result_list return license_result_list
def strQ2B(companyname):
"""公司名称全角转半角"""
name = ""
for uchar in companyname:
inside_code=ord(uchar)
if inside_code == 12288: #全角空格直接转换
inside_code = 32
elif (inside_code >= 65281 and inside_code <= 65374): #全角字符(除空格)根据关系转化
inside_code -= 65248
name += chr(inside_code)
return name
def getlicenceInfo(server): def getlicenceInfo(server):
@server.route('/gsb/api/GetLicenseFromEs', methods=['POST']) @server.route('/gsb/api/GetLicenseFromEs', methods=['POST'])
...@@ -161,7 +140,7 @@ def getlicenceInfo(server): ...@@ -161,7 +140,7 @@ def getlicenceInfo(server):
requestdata = request.json requestdata = request.json
print(requestdata) print(requestdata)
companyname = requestdata.get('companyname') companyname = requestdata.get('companyname')
companyname = strQ2B(companyname) companyname = re_companyName.strQ2B(companyname)
LicenseInfo1= GetGXLicensesFromES(companyname) LicenseInfo1= GetGXLicensesFromES(companyname)
LicenseInfo2 = GetgameLicensesFromES(companyname) LicenseInfo2 = GetgameLicensesFromES(companyname)
LicenseInfo3 = GetICPLicensesFromES(companyname) LicenseInfo3 = GetICPLicensesFromES(companyname)
......
from flask import request
import json
from elasticsearch import Elasticsearch
from dao.tf_member_dao import tf_member_Dao
from dao.tf_member_es import tf_member_Es
from db.mod_db import DataBase
def getdbdata_gg(input_name):
tf_memberInfo = tf_member_Dao()
gaoguan = tf_memberInfo.select_sql_1(input_name)
DataInfo = DataBase()
DataInfo.close()
return gaoguan
def record2jsion_gg(query_data):
jsonData = []
output = []
for row in query_data:
data = {}
data['company_name'] = str(row[0])
data['member_name'] = str(row[1])
data['member_position'] = str(row[2])
jsonData.append(data)
jsondatar = json.dumps(jsonData, ensure_ascii=False)
output = jsondatar
return output
def getdbdata_gd(input_name):
tf_memberInfo = tf_member_Dao()
gudong = tf_memberInfo.select_sql_2(input_name)
DataInfo = DataBase()
DataInfo.close()
return gudong
def record2jsion_gd(query_data):
jsonData = []
output = []
for row in query_data:
data = {}
data['company_name'] = str(row[0])
data['shareholder_name'] = str(row[1])
data['subscription_funds'] = str(row[2])
data['turn_funds'] = str(row[3])
data['subscript_type'] = str(row[4])
data['subscrip_time'] = str(row[5])
jsonData.append(data)
jsondatar = json.dumps(jsonData, ensure_ascii=False)
output = jsondatar
return output
def Get_Data_By_Body(index_name,company_name):
tf_memberInfo = tf_member_Es()
# doc = {"query":{"match": {"companyName":"北京华泰丽成智能科技有限公司"}}}
temp = []
_searched = tf_memberInfo.Get_Data_By_Body_1(index_name,company_name)
for hit in _searched['hits']['hits']:
print("Got %d Hits:" % _searched['hits']['total'])
# print (hit['_source'])
# print (hit['_source']['companyName'])
t = hit['_source']
temp.append(t)
# tt=es_records[0]['_source']
# print(tt)
# print(json.dumps(es_records,ensure_ascii=False))
tt = temp
return tt # [tt]
def Get_Data_By_Body_Input( index_name,match_field, field_cotent):
# doc = {"query": {"match": {match_field: field_cotent}}}
# doc = {"query":{"match": {"companyName":"北京华泰丽成智能科技有限公司"}}}
# _searched = es.search(index=index_name, body=doc)
tf_memberInfo = tf_member_Es()
_searched = tf_memberInfo.Get_Data_By_Body_2(index_name,match_field, field_cotent)
temp = []
for hit in _searched['hits']['hits']:
# print("Got %d Hits:" % _searched['hits']['total'])
# print (hit['_source'])
# print (hit['_source']['companyName'])
t = hit['_source']
temp.append(t)
# tt=es_records[0]['_source']
# print(tt)
# print(json.dumps(es_records,ensure_ascii=False))
tt = temp
return tt # [tt]
def Get_Data_Return_Body_ID(index_name,match_field, field_cotent):
tf_memberInfo = tf_member_Es()
_searched = tf_memberInfo.Get_Data_By_Body_2(index_name,match_field, field_cotent)
temp = []
for hit in _searched['hits']['hits']:
t = hit['_id']
temp.append(t)
tt = temp
return tt
def search_gaoguan(input_company_name):
match_field_0 = 'company_name'
field_cotent_0 = input_company_name
# field_cotent_0='北京非常满意科技有限公司'
# field_cotent1='83468156'
company_id = Get_Data_Return_Body_ID("bigdata_ic_gsb_company_04",match_field_0, field_cotent_0) # 返回查询结果
# print('OK--company_info->\n')
# print(company_id)
if company_id:
match_field1 = 'company_id'
# field_cotent1='83468156'
field_cotent1 = company_id[0]
staff_info = Get_Data_By_Body_Input("bigdata_ic_gsb_staff", match_field1, field_cotent1) # 返回查询结果
for num in staff_info:
# print(num['branch_id'])
pass
for i in range(0, len(staff_info)):
if staff_info[i]:
ss = Get_Data_By_Body_Input("bigdata_ic_gsb_human",'id', staff_info[i]['staff_id']) # 返回子查询结果
if ss[0]['name']: # 返回值不为空
staff_info[i]['staff_id'] = ss[0]['name'] # 替换相应的值
else:
print('no data!')
finall_key = {'company_id', 'staff_id', 'staff_type_name'}
finall_info = []
for j in range(0, len(staff_info)):
staff_info[j]['company_id'] = field_cotent_0
finall_info.append({key: value for key, value in staff_info[j].items() if key in finall_key})
finall_info[j].update({'company_name': finall_info[j].pop('company_id')}) # 修改键名
finall_info[j].update({'member_name': finall_info[j].pop('staff_id')})
finall_info[j].update({'member_position': finall_info[j].pop('staff_type_name')})
return finall_info
def search_gudong(input_company_name):
match_field_0 = 'company_name'
field_cotent_0 = input_company_name
annual_id = Get_Data_Return_Body_ID("bigdata_ic_gsb_annualreport",match_field_0, field_cotent_0) # 返回查询结果
match_field1 = 'annual_report_id'
for i in range(0, len(annual_id)):
order_annual_id = sorted(annual_id, reverse=True)
field_cotent1 = order_annual_id[i]
company_shareholder = Get_Data_By_Body_Input("bigdata_ic_gsb_shareholder_1",match_field1, field_cotent1) # 返回查询结果
if company_shareholder:
break
finall_key = {'gsb_company_name', 'investor_name', 'subscribe_amount', 'subscribe_time', 'subscribe_type',
'paid_amount', 'paid_time', 'paid_type'}
finall_info = []
for j in range(0, len(company_shareholder)):
company_shareholder[j]['gsb_company_name'] = field_cotent_0
finall_info.append({key: value for key, value in company_shareholder[j].items() if key in finall_key})
finall_info[j].update({'company_name': finall_info[j].pop('gsb_company_name')})
finall_info[j].update({'shareholder_name': finall_info[j].pop('investor_name')})
finall_info[j].update({'subscription_funds': finall_info[j].pop('subscribe_amount')})
finall_info[j].update({'turn_funds': finall_info[j].pop('paid_amount')})
finall_info[j].update({'subscript_type': finall_info[j].pop('subscribe_type')})
finall_info[j].update({'subscrip_time': finall_info[j].pop('subscribe_time')})
finall_info[j].update({'ture_subscrpt_time': finall_info[j].pop('paid_time')})
finall_info[j].update({'ture_subscript_type': finall_info[j].pop('paid_type')})
return finall_info # json.dumps(finall_info,ensure_ascii=False)
def gaoguan(server):
@server.route('/api/gaoguan', methods=['POST'])
def index():
if request.method == 'POST':
request_data = request.json
inputs = request_data.get('company_name')
# gaoguan=getdbdata_gg(inputs)
gaoguan = search_gaoguan(inputs)
json.dumps(gaoguan, ensure_ascii=False)
# outputs=record2jsion_gg(gaoguan)
return json.dumps(gaoguan, ensure_ascii=False) # gaoguan #outputs
'''def index():
if request.method=='POST':
request_data=request.json
inputs=request_data.get('company_name')
gaoguan=getdbdata_gg(inputs)
outputs=record2jsion_gg(gaoguan)
return outputs'''
def gudong(server):
@server.route('/api/gudong', methods=['POST'])
def indexx():
if request.method == 'POST':
request_data = request.json
inputs = request_data.get('company_name')
gudong = search_gudong(inputs)
return json.dumps(gudong, ensure_ascii=False)
'''def indexx():
if request.method=='POST':
request_data=request.json
inputs=request_data.get('company_name')
gaoguan=getdbdata_gd(inputs)
outputs_gd=record2jsion_gd(gaoguan)
return outputs_gd '''
'''
def index():
gaoguan=getdbdata(input_name)
output=record2jsion(gaoguan)
return output'''
#!/usr/bin/env python #!/usr/bin/env python
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from flask import request from flask import request
from elasticsearch import Elasticsearch
import json import json
import Dataoper import Dataoper
from dao.trade_es import trade_Es
# es连接信息
esip = "43.247.184.94"
esport = 9200
# esip = "172.16.18.110"
# esport = 9203
esuser = "admines"
espassword = "adminGSBes"
es = Elasticsearch([esip], http_auth=(esuser, espassword), port=esport,timeout=1000)
def selectcyle(server): def selectcyle(server):
@server.route("/api/selectcycle",methods = ['POST']) @server.route("/api/selectcycle",methods = ['POST'])
def getCompanyTrade(): def getCompanyTrade():
try: try:
companyNames=request.get_json().get("company_name") companyNames=request.get_json().get("company_name")
querybody={ trade_Info = trade_Es()
"query": { searched = trade_Info.Get_Data_By_Body(companyNames)
"bool": {
"must": [
{
"term": {
"company_name.raw": companyNames
}
}
]
}
}
}
searched = es.search(index='bigdata_ic_gsb_company_02', doc_type='_doc', body=querybody)
if searched["hits"]["total"]: if searched["hits"]["total"]:
company_cate_1 = searched["hits"]["hits"][0]['_source']["gsb_company_cate_1"] # 行业第一大类 company_cate_1 = searched["hits"]["hits"][0]['_source']["gsb_company_cate_1"] # 行业第一大类
company_cate_2 = searched["hits"]["hits"][0]['_source']["gsb_company_cate_2"] # 行业第二大类 company_cate_2 = searched["hits"]["hits"][0]['_source']["gsb_company_cate_2"] # 行业第二大类
company_cate_3 = searched["hits"]["hits"][0]['_source']["gsb_company_cate_3"] # 行业第三大类 company_cate_3 = searched["hits"]["hits"][0]['_source']["gsb_company_cate_3"] # 行业第三大类
establishment_time = searched["hits"]["hits"][0]['_source']["estibish_time"] # 成立时间
re1,re2 = Dataoper.Getdata(company_cate_1) re1,re2 = Dataoper.Getdata(company_cate_1,establishment_time)
if re1: if re1:
return json.dumps({"status": 0, "msg":"操作成功","data": re2}, ensure_ascii=False) return json.dumps({"status": 0, "msg":"操作成功","data": re2}, ensure_ascii=False)
else: else:
......
import json
from dao.tj_purchase_original_dao import OriginalDao
from dao.tj_lable_depth_dao import LableDao
from dao.tj_product_depth_dao import ProductDao
class Recom:
#用户历史购买
def company_behavior(self,company_name):
company_purchase = []
original = OriginalDao()
behavior_result = original.select(company_name)
for item in behavior_result:
# print(item)
behavior_json = {}
behavior_json['goods_name'] = item['product_name']
behavior_json['purchase_date'] = item['group_date']
company_purchase.append(behavior_json)
return company_purchase
#企业画像
def company_label(self,company_name):
company_lable_list = []
lable = LableDao()
lable_result = lable.select(company_name)
for item in lable_result:
base_lable_dict = {}
management_lable_dict = {}
asset_lable_dict = {}
preference_lable_dict = {}
product_lable_dict = {}
#基本标签
if item['base_label'] != None:
base_lable_dict['lable_type'] = "基本标签"
base_lable_data = []
base_lable = json.loads(item['base_label'])
for data in base_lable:
for type in data:
base_lable_data.append(data[type])
base_lable_dict['lable_data'] = base_lable_data
company_lable_list.append(base_lable_dict)
#经营标签
if item['management_label'] != None:
management_lable_dict['lable_type'] = "经营标签"
management_lable_data = []
management_label = json.loads(item['management_label'])
for data in management_label:
for type in data:
management_lable_data.append(data[type])
management_lable_dict['lable_data'] = management_lable_data
company_lable_list.append(management_lable_dict)
#资产标签
if item['asset_label'] != None:
asset_lable_dict['lable_type'] = "资产标签"
asset_lable_data = []
asset_label = json.loads(item['asset_label'])
for data in asset_label:
for type in data:
asset_lable_data.append(data[type])
asset_lable_dict['lable_data'] = asset_lable_data
company_lable_list.append(asset_lable_dict)
#偏好标签
if item['preference_label'] != None:
preference_lable_dict['lable_type'] = "偏好标签"
preference_lable_data = []
preference_lable = json.loads(item['preference_label'])
for data in preference_lable:
for type in data:
preference_lable_data.append(data[type])
preference_lable_dict['lable_data'] = preference_lable_data
company_lable_list.append(preference_lable_dict)
#产品标签
if item['product_label'] != None:
product_lable_dict['lable_type'] = "产品标签"
product_lable_data = item['product_label'].replace("[","").replace("]","").replace("'","").replace(" ", "").split(',')
product_lable_dict['lable_data'] = product_lable_data
company_lable_list.append(product_lable_dict)
return company_lable_list
#企业推荐产品
def recommend_product(self,company_name):
recommend_product_list = []
product = ProductDao()
product_result = product.select(company_name)
for item in product_result:
product_json = {}
relational = json.loads(item['relational_product'])
similar = json.loads(item['similar_product'])
cross = json.loads(item['cross_product'])
relational_list = []
for item in relational:
for data in item:
relational_data = {}
relational_data['item'] = data
relational_data['precent'] = item[data]
relational_list.append(relational_data)
product_json['relational'] = relational_list
simial_list=[]
for item in similar:
for data in item:
print(item)
similar_data = {}
similar_data['family'] = data
similar_data['item'] = item[data]
simial_list.append(similar_data)
product_json['similar'] = simial_list
cross_list = []
for item in cross:
for data in item:
print(item)
cross_data = {}
cross_data['family'] = data
cross_data['item'] = item[data]
cross_list.append(cross_data)
product_json['cross'] = cross_list
recommend_product_list.append(product_json)
return recommend_product_list
# if __name__ == '__main__':
# aa = Recom()
# behave_result = aa.company_behavior("深圳市海果达科技有限公司")
# print(behave_result)
#
# result = aa.company_label("厦门秋鸣文化传媒有限公司")
# print(result)
#
# product_result = aa.recommend_product("厦门秋鸣文化传媒有限公司")
# print(product_result)
# behavior("重庆饱不了餐椅管理有限公司")
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment