This commit is contained in:
王思川 2022-02-17 16:58:39 +08:00
parent b9064546dc
commit 54f4899b60
4 changed files with 176 additions and 2 deletions

View File

@ -0,0 +1,95 @@
import pymongo
DB_CLI = 'mongodb://{}:{}@{}:{}'
DB_SETTING = {
"TFSE": {"user": "root", "pass": "sromitdTW569kC#M", "host": "116.63.130.34", "port": "27018"},
"ADMIN": {"user": "root", "pass": "RYIHrqml#LSW6#!*", "host": "116.63.130.34", "port": "27020"}
}
def FIND_DATA_COUNT(param1, param2, param3, param4):
"""
根据查询条件查询符合条件的所有数据
Parameters:
param1: str 服务器
param2: str 数据库
param3: obj 数据集
param4: obj 查询条件
Returns:
num: list 符合条件的数量
"""
db = DB_SETTING[param1]
client = pymongo.MongoClient(DB_CLI.format(db['user'], db['pass'], db['host'], db['port']))
collection = client[param2][param3]
num = collection.find(param4).count()
client.close()
return num
def FIND_DATA(param1, param2, param3, param4):
"""
根据查询条件查询符合条件的所有数据
Parameters:
param1: str 服务器
param2: str 数据库
param3: obj 数据集
param4: obj 查询条件
Returns:
records: list 符合条件的数据
"""
db = DB_SETTING[param1]
client = pymongo.MongoClient(DB_CLI.format(db['user'], db['pass'], db['host'], db['port']))
collection = client[param2][param3]
records = list(collection.find(param4, {'_id': False}))
client.close()
return records
def FIND_DATA_FILTER(param1, param2, param3, param4, param5):
"""
根据查询条件查询符合条件的所有数据
Parameters:
param1: str 服务器
param2: str 数据库
param3: obj 数据集
param4: obj 查询条件
param5: obj 显示字段/不显示字段
Returns:
records: list 符合条件的数据
"""
db = DB_SETTING[param1]
client = pymongo.MongoClient(DB_CLI.format(db['user'], db['pass'], db['host'], db['port']))
collection = client[param2][param3]
records = list(collection.find(param4, {**{'_id': False}, **param5}))
client.close()
return records
def UPSERT_DATA(param1, param2, param3, param4, param5):
"""
更新插入数据
Parameters:
param1: str 服务器
param2: str 数据库
param3: obj 数据集
param4: obj 查询条件
param5: obj 插入数据
Returns:
info: 更新结果
"""
db = DB_SETTING[param1]
client = pymongo.MongoClient(DB_CLI.format(db['user'], db['pass'], db['host'], db['port']))
collection = client[param2][param3]
res = collection.update_one(param4, {"$set": param5}, upsert=True)
info = res.raw_result['updatedExisting']
client.close()
return info

View File

@ -1,3 +1,71 @@
import time
import pandas as pd
from Board.board_db import FIND_DATA_COUNT, FIND_DATA, UPSERT_DATA, FIND_DATA_FILTER
def get_dashboard_data_impl(param):
pass
def static_dashboard_data_impl(param):
def monitor_data():
"""
监测数据
"""
data = dict()
data['认证企业'] = FIND_DATA_COUNT("TFSE", "用户", "用户信息", {"已认证": ""})
data['服务次数'] = FIND_DATA_COUNT("TFSE", "评价", "评价记录", {"进行状态": "完成"})
data['留言反馈'] = 0
data['异常日志'] = 0
UPSERT_DATA("ADMIN", "看板", "监测数据", {"看板类型": "监测数据"}, data)
def services_static():
"""
服务次数
delta_seconds 统计服务次数的时间范围
start_date_time_stamp 统计起始时间的时间戳
start_date 统计起始日期
"""
delta_seconds = 60*60*24*365
start_date_time_stamp = time.time() - delta_seconds
start_date = time.strftime("%Y-%m-%d", time.localtime(start_date_time_stamp))
records = FIND_DATA("TFSE", "评价", "评价记录", {"进行状态": "完成", "评价时间": {"$gt": start_date}})
df_rating_times = pd.DataFrame(pd.DataFrame(records)[['评价时间']].value_counts()).sort_index()
times_statics_by_date = dict(zip([tuple_date[0] for tuple_date in df_rating_times.index.values.tolist()], df_rating_times[0].tolist()))
for item in times_statics_by_date.items():
data = dict()
data['日期'] = item[0]
data['服务次数'] = item[1]
UPSERT_DATA("ADMIN", "看板", "服务统计", {"日期": item[0]}, data)
def industry_distribute():
"""
行业分布
"""
records = FIND_DATA_FILTER("TFSE", "企业", "公司基本信息", {}, {"工商信息.行业": 1})
df_industry = pd.DataFrame([record['工商信息'] for record in records])
df_industry_count = df_industry['行业'].value_counts()
dict_industry = dict(zip(df_industry_count.index.tolist(), df_industry_count.values.tolist()))
for item in dict_industry.items():
data = dict()
data['行业名称'] = item[0]
data['公司数量'] = item[1]
UPSERT_DATA("ADMIN", "看板", "行业分布", {"行业名称": item[0]}, data)
def new_company_info():
"""
新增企业信息
"""
def main_process():
monitor_data()
services_static()
industry_distribute()
return 0
return main_process()

View File

@ -1,4 +1,4 @@
from Board.board_impl import get_dashboard_data_impl
from Board.board_impl import get_dashboard_data_impl, static_dashboard_data_impl
class DashBoard:
@ -8,3 +8,6 @@ class DashBoard:
def get_dashboard_data(self):
get_dashboard_data_impl(self)
def static_dashboard_data(self):
static_dashboard_data_impl(self)

View File

@ -1,6 +1,6 @@
from flask import Blueprint, request
from Board.board_obj import DashBoard
from user.user_auth import verify_token, authority_scope
board_route = Blueprint('board', __name__)
@ -17,3 +17,11 @@ def get_dashboard_data_route(**kwargs):
result = json.load(f)
return {"info": "查询成功", "result": result}
@board_route.route('/static_dashboard_data', methods=['GET'])
@verify_token
def static_dashboard_data_route(**kwargs):
dash_board = DashBoard()
dash_board.static_dashboard_data()
return "0"