tfse-admin-api-v0.2/macro/db.py

197 lines
5.5 KiB
Python
Raw Normal View History

import re
import pymongo
from bson import ObjectId
from gridfs import GridFS
client = pymongo.MongoClient('mongodb://{}:{}@{}:{}'.format('root', 'sromitdTW569kC#M', '116.63.130.34', 27018))
def find_macroscopic_report_data(industry):
"""
查询宏观报告数据
Parameters:
industry: 行业名称
Returns:
record: 报告数据
"""
collection = client['宏观']['行业报告']
data = collection.find({"行业名称": industry}, {'_id': False})
record = list(data)
return record
def insert_macroscopic_report_data(insert_data):
"""
插入宏观报告数据
Parameters:
insert_data: 需要保存的数据
Returns:
result: 保存结果
"""
collection = client['宏观']['行业报告']
res = collection.insert_one(insert_data)
info = res.acknowledged
return info
def update_macroscopic_report_data(industry, update_time, fid):
"""
更新宏观报告数据id
Parameters:
industry: 行业分类
update_time: 上传日期
fid: 文件id
Returns:
result: 更新结果
"""
collection = client['宏观']['行业报告']
res = collection.update_one({"行业名称": industry}, {"$set": {"报告fid": fid, "上传日期": update_time}})
info = res.raw_result['updatedExisting']
return info
def upload_report(file_name, files):
"""
根据名称保存该企业报告
Parameters:
file_name: 文件名
files: pdf文件
Returns:
result: 保存结果
"""
try:
database = '宏观'
collection = '宏观报告PDF'
fs = GridFS(client[database], collection)
pdf_id = fs.put(data=files.read(), content_type='application/pdf', filename=file_name)
return str(pdf_id)
except Exception:
return False
def delete_macroscopic_pdf(fid):
"""
根据id删除宏观报告
Parameters:
fid: 评价ID
Returns:
record: 删除结果
"""
database = '模型'
collection = '宏观报告PDF'
fs = GridFS(client[database], collection)
fs.delete(ObjectId(fid))
def find_macroscopic_report_records(industry, time, skip, limit):
"""
根据id删除宏观报告
Parameters:
industry: 行业名称
time: 上传日期
skip: 页码默认从0开始
limit: 每页条数
Returns:
record: 查询结果
"""
collection = client['宏观']['行业报告']
skip = (skip - 1) * limit
# 参数都不为空
if industry and time:
find = {"行业名称": industry, "上传日期": re.compile(time)}
data = collection.find(find, {'_id': False}).skip(skip).limit(limit)
count = collection.find(find).count()
record = list(data)
result = {
"total": count,
"data": record
}
return result
elif len(industry) == 0 and time:
find = {"上传日期": re.compile(time)}
data = collection.find(find, {'_id': False}).skip(skip).limit(limit)
count = collection.find(find).count()
record = list(data)
result = {
"total": count,
"data": record
}
return result
elif len(time) == 0 and industry:
find = {"行业名称": industry}
data = collection.find(find, {'_id': False}).skip(skip).limit(limit)
count = collection.find(find).count()
record = list(data)
result = {
"total": count,
"data": record
}
return result
else:
data = collection.find({}, {'_id': False}).skip(skip).limit(limit)
count = collection.find().count()
record = list(data)
result = {
"total": count,
"data": record
}
return result
def upload_industry_macroscopic_data(req):
"""
上传行业宏观数据
Parameters:
req: 上传的数据
Returns:
record: 上传结果
"""
collection = client['宏观']['行业数据']
find = {"一级行业": req['一级行业'], "二级行业": req['二级行业'], "统计时间": req['统计时间'], "统计字段名称": req['统计字段名称']}
res = collection.update_one(find, {"$set": req}, upsert=True)
if res.raw_result['n'] == 1:
return True
else:
return False
def upload_overview_macroscopic_data(req):
"""
上传总规模宏观数据
Parameters:
req: 上传的数据
Returns:
record: 上传结果
"""
collection = client['宏观']['总规模数据']
find = {"行业名称": req['行业名称'], "统计时间": req['统计时间'], "统计字段名称": req['统计字段名称']}
res = collection.update_one(find, {"$set": req}, upsert=True)
if res.raw_result['n'] == 1:
return True
else:
return False
def update_industry_macroscopic_data(req):
collection = client['宏观']['行业数据']
find = {"一级行业": req['一级行业'], "二级行业": req['二级行业'], "统计时间": req['统计时间'], "统计字段名称": req['统计字段名称']}
res = collection.update_one(find, {"$set": req})
if res.raw_result['n'] == 1:
return True
else:
return False
def search_macroscopic_data(req, skip, limit):
collection = client['宏观']['行业数据']
skip = (skip - 1) * limit
data = collection.find(req, {'_id': False}).skip(skip).limit(limit)
count = collection.find(req).count()
record = list(data)
result = {
"total": count,
"data": record
}
return result