Commit 325ec39a by huangjing

hj

parent c70eb9b0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2020/4/28 14:18
# @Author : fanhui
# @File : link_task.py
# @Software: PyCharm
import requests,json
def ProductService(json_info):
print(json_info)
# json_info = eval(json_info)
url = 'https://entprofile.gongsibao.com/gsb/api/ImageStatusSearch' # 获取信息接口
headers = {"Content-Type":"application/json","ak":"YLc6GsgLtuRGaVA5Om848x18NxLtHlyA"}
# companyname = {"companyname":companyname}# 接口访问参数
companyInfo = requests.post(url,data=json.dumps(json_info),headers=headers) # 访问接口返回的信息
# resultinfo=json.loads(companyInfo.text)
print(companyInfo.text)
return companyInfo.text
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2020/4/28 0028 下午 2:50
# @Author : hj
# @File : now_time.py
# @Software: PyCharm
import datetime
def now_time():
now_time = datetime.datetime.now()
print(now_time)
return now_time
# now_time()
......@@ -23,7 +23,7 @@ class DataoperDao:
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)
return self.dataBase.update('update tj_policycycle set life_cycle = %s where id = %s' % (life_cycle, id),None)
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/28 0028 上午 9:48
# @Author : hj
# @File : re_status_dao.py
# @Software: PyCharm
from db.mod_db import DataBase
class rec_status_Dao:
def __init__(self, db=None):
if db is None:
self.dataBase = DataBase()
else:
self.dataBase = db
def select_sql_1(self,recommend_id,status_name):
return self.dataBase.update('REPLACE INTO tj_recommend_do_status(recommend_id,status_name) VALUES ("%s","%s")' % (recommend_id,status_name),None)
\ No newline at end of file
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2020/4/28 0028 下午 2:26
# @Author : hj
# @File : talking_dao.py
# @Software: PyCharm
from db.mod_db import DataBase
class talking_Dao:
def __init__(self, db=None):
if db is None:
self.dataBase = DataBase()
else:
self.dataBase = db
def select_sql(self,already_product,recommend_product):
return self.dataBase.fetch_one('select start_text,res_text,mq_text,end_text from talking where already_product="%s" and recommend_product="%s"'%(already_product,recommend_product))
\ No newline at end of file
......@@ -14,3 +14,7 @@ class LableDao:
return self.dataBase.fetch_all(
"select * from `tj_label_depth` where company_name = '%s'" % company_name)
def select_label_slave(self, company_name):
return self.dataBase.fetch_all(
"select * from `tj_company_hx` where company_name = '%s'" % company_name)
# -*- coding:UTF-8 -*-
from db.mod_db import DataBase
from common.sql_utils import to_sql_in
class ProvideDao:
def __init__(self, db=None):
if db is None:
self.dataBase = DataBase()
else:
self.dataBase = db
def select(self):
return self.dataBase.fetch_all(
"select * from `tj_provide_company` where provide_status is null")
def update_status(self,company_list):
# print(" update tj_provide_company set provide_status = 1 where id in (%s)" % to_sql_in(company_list))
self.dataBase.update(" update tj_provide_company set provide_status = 1 where id in (%s)" % to_sql_in(company_list),None)
def select_id(self, business_id):
return self.dataBase.fetch_all(
"select * from `tj_provide_company` where serial_number = '%s'" % (business_id))
\ No newline at end of file
......@@ -100,6 +100,7 @@ class DataBase:
flag = False
if (self._conn):
try:
print(sql,"==============================")
self._cursor.execute(sql, params)
self._conn.commit()
flag = True
......
......@@ -15,8 +15,10 @@ from service.company_basic import CompanyBase
from service.Image_status import imageInfo
from service.trade import selectcyle,insertcycle
from service.GetImageFromSql import getImageInfo
from entprofile.service.rec_status import tj_rec_status
from service.online_GetLicenseImage import getlicenceInfo
from service.tf_member import gaoguan,gudong
from service.talking import talking
server = Flask(__name__)
......@@ -32,7 +34,8 @@ getImageInfo(server)
# getlicenceInfo(server)
gaoguan(server)
gudong(server)
tj_rec_status(server)
talking(server)
#画像
@server.route('/lable', methods=['POST'])
......@@ -47,15 +50,47 @@ def lable_post():
#产品
@server.route('/product', methods=['POST'])
def product_post():
# @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('/api/business',methods=['POST'])
def business_post():
if request.method == 'POST':
business_result = recomm.business()
return common_result.to_result(business_result)
#商机推荐结果
@server.route('/api/businessProduct',methods=['POST'])
def business_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)
if not request_data or not request_data.get('bussines_id'):
return common_result.to_result(None, 300, "参数错误")
business_id = request_data.get('bussines_id')
business_product_result = recomm.business_product(business_id)
return common_result.to_result(business_product_result)
#公司名推荐结果
@server.route('/api/companyProduct',methods=['POST'])
def company_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, "参数错误")
business_id = request_data.get('company_name')
business_product_result = recomm.company_product(business_id)
return common_result.to_result(business_product_result)
#用户购买记录
@server.route('/behavior',methods=['POST'])
......
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2020/4/27 18:49
# @Author : fanhui
# @File : rec_status.py
# @Software: PyCharm
import json
from dao.re_status_dao import rec_status_Dao
from db.mod_db import DataBase
from flask import request
#更新状态表的结果
def WriteRecStatusToSql(recommend_id,status_name):
# json写入数据库
db_info = DataBase()
try:
rec_status = rec_status_Dao()
rec_status.select_sql_1(recommend_id,status_name)
except Exception as e:
print(e)
db_info.roll_back()
# 关闭数据库连接
db_info.close()
return "状态表已更新"
def tj_rec_status(server):
@server.route('/gsb/api/tj_rec_status', methods=['POST'])
def tj_rec_status():
print("接口调用--------更新状态表")
if request.method == 'POST':
try:
# requestdata = request.values
requestdata = request.json
print(requestdata)
recommend_id = requestdata.get('recommendId')
status_name = requestdata.get('stateName')
WriteRecStatusToSql(recommend_id, status_name)
return json.dumps({"status": 0, "msg": "成功", "data": recommend_id}, ensure_ascii=False)
except:
return json.dumps({"status": -1, "msg": "失败", "data": {}}, ensure_ascii=False)
# server.run(host='127.0.0.1', port=19, debug=True)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pymysql
import json
from flask import Flask, render_template, request
from flask_cors import CORS
connection = pymysql.connect(host='47.95.76.74', port=3306, user='root', passwd='Gongsibao2018', db='ent_data')
cur = connection.cursor()
def talk(already_product,recommend_product):
try:
list_test=[]
select_sql='select start_text,res_text,mq_text,end_text from talking where already_product="%s" and recommend_product="%s"'%(already_product,recommend_product)
print(select_sql,"===============select_sql")
cur.execute(select_sql)
s=cur.fetchone()
print(s,"=============api/talking")
for i in range(0,len(s)):
list_test.append(s[i])
print(list_test)
cur.close()
return True,list_test
except:
return False,{}
# 服务器接口API
# app = Flask(__name__)
def talking(server):
@server.route('/api/talking', methods = ['POST'])
def SingleLogoApi():
try:
already_product = request.get_json().get("already_product")
recommend_product=request.get_json().get("recommend_product")
isSuss, talkings = talk(already_product,recommend_product)
if isSuss:
return json.dumps({"status": 0, "msg": "成功", "data": talkings}, ensure_ascii=False)
else:
return json.dumps({"status": -1, "msg": "返回数据为空", "data": {}}, ensure_ascii=False)
except:
return json.dumps({"status": -1, "msg":"调用服务出错","data": {}}, ensure_ascii=False)
# if __name__ == '__main__':
# CORS(app, supports_credentials=True)#允许跨域
# # app.run(host='172.16.18.2', port=15501, debug=True)
# app.run(host='127.0.0.1', port=5000, debug=True)
# talk("商标注册")
\ No newline at end of file
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
......
......@@ -3,7 +3,9 @@ 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
from dao.tj_provide_company import ProvideDao
from common.now_time import now_time
from common.link_task import ProductService
class Recom:
#用户历史购买
......@@ -12,132 +14,233 @@ class Recom:
company_purchase = []
original = OriginalDao()
behavior_result = original.select(company_name)
num = 1
for item in behavior_result:
# print(item)
behavior_json = {}
behavior_json['num'] = num
behavior_json['goods_name'] = item['product_name']
behavior_json['purchase_date'] = item['group_date']
behavior_json['contract_amount'] = item['contract_amount']
behavior_json['source'] = item['source']
behavior_json['company_name'] = company_name
item['status'] = "已完成"
company_purchase.append(behavior_json)
num = num+1
return company_purchase
#企业画像
def company_label(self,company_name):
json_info = {}
json_info['insert_status'] = 1
json_info['pageNum'] = 1
json_info['pageSize'] = 2
json_info['companyName'] = company_name
json_info['currdate'] = str(now_time())
ProductService(json_info)
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(',')
if lable_result:
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)
else:
lable = LableDao()
lable_result = lable.select_label_slave(company_name)
product_lable_data = []
product_lable_dict={}
for item in lable_result:
credit_code = item['credit_code']
establish_time_span = item['establish_time_span'] + '年'
gsb_company_cate_1 = item['gsb_company_cate_1']
address = item['address']
product_lable_dict['lable_type'] = '基本标签'
product_lable_data.append(credit_code)
product_lable_data.append(establish_time_span)
product_lable_data.append(gsb_company_cate_1)
product_lable_data.append(address)
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):
def recommend_product(self):
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)
provide = ProvideDao()
company_list = []
company_result = provide.select()
for item in company_result:
bussiness_dict = {}
business_data_dict = {}
company_name = item['company_name']
company_list.append(item['id'])
company_id = item['company_id']
bussinessid = item['serial_number']
create_time = str(item['create_time'])[:10]
business_data_dict['companyId'] = company_id
business_data_dict['companyName'] = company_name
business_data_dict['businessId'] = bussinessid
business_data_dict['createTime'] = create_time
bussiness_dict['businessData'] = business_data_dict
product_result = product.select(company_name)
for data in product_result:
bussiness_dict['productList'] = []
if data['relational_product']:
relational = eval(data['relational_product'])
for item in relational:
item['typeCate'] = item['typeName']
item['typeName'] = "关联推荐"
bussiness_dict['productList'].append(item)
if data['similar_product']:
similar = eval(data['similar_product'])
for item in similar:
item['typeCate'] = item['typeName']
item['typeName'] = "同类推荐"
bussiness_dict['productList'].append(item)
if data['cross_product']:
cross = eval(data['cross_product'])
for item in cross:
item['typeCate'] = item['typeName']
item['typeName'] = "交叉推荐"
bussiness_dict['productList'].append(item)
recommend_product_list.append(bussiness_dict)
if len(company_list) > 0:
provide.update_status(company_list)
return recommend_product_list
# 商机
def business(self):
business_list = []
company_list = []
provide = ProvideDao()
company_result = provide.select()
for item in company_result:
print(item)
company_list.append(item['id'])
business_data_dict = {}
company_name = item['company_name']
company_id = item['company_id']
bussinessid = item['serial_number']
create_time = str(item['create_time'])[:10]
business_data_dict['companyId'] = company_id
business_data_dict['companyName'] = company_name
business_data_dict['businessId'] = bussinessid
business_data_dict['createTime'] = create_time
print(business_data_dict)
business_list.append(business_data_dict)
if len(company_list) > 0:
provide.update_status(company_list)
return business_list
# 公司名推荐产品方法
def product_fun(self, company_name):
product_list = []
product = ProductDao()
product_result = product.select(company_name)
for data in product_result:
if data['relational_product']:
relational = eval(data['relational_product'])
for item in relational:
item['typeCate'] = item['typeName']
item['typeName'] = "关联推荐"
product_list.append(item)
if data['similar_product']:
similar = eval(data['similar_product'])
for item in similar:
item['typeCate'] = item['typeName']
item['typeName'] = "同类推荐"
product_list.append(item)
if data['cross_product']:
cross = eval(data['cross_product'])
for item in cross:
item['typeCate'] = item['typeName']
item['typeName'] = "交叉推荐"
product_list.append(item)
return product_list
# 商机推荐产品
def business_product(self, business_id):
provide = ProvideDao()
company_result = provide.select_id(business_id)
if company_result:
company_name = company_result[0]['company_name']
product_list = self.product_fun(company_name)
return product_list
# 公司名推荐产品
def company_product(self, company_name):
product_list = self.product_fun(company_name)
return product_list
# if __name__ == '__main__':
# aa = Recom()
# behave_result = aa.company_behavior("深圳市海果达科技有限公司")
# print(behave_result)
#
# behave_result = aa.company_behavior("深圳市海果达科技有限公司")
# print(behave_result)
# #
# result = aa.company_label("厦门秋鸣文化传媒有限公司")
# print(result)
#
# product_result = aa.recommend_product("厦门秋鸣文化传媒有限公司")
# print(product_result)
......
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