diff --git a/Board/board_db.py b/Board/board_db.py index f36321a..52e1dd0 100644 --- a/Board/board_db.py +++ b/Board/board_db.py @@ -72,6 +72,30 @@ def FIND_DATA_FILTER(param1, param2, param3, param4, param5): return records +def FIND_DATA_FILTER_SORT_LIMIT(param1, param2, param3, param4, param5, param6, param7): + """ + 根据查询条件查询符合条件的所有数据 + Parameters: + param1: str 服务器 + param2: str 数据库 + param3: obj 数据集 + param4: obj 查询条件 + param5: obj 显示字段/不显示字段 + param6: str 排序 + param7: int 限制返回条数 + 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}).sort(param6).limit(param7)) + + client.close() + return records + + def UPSERT_DATA(param1, param2, param3, param4, param5): """ 更新插入数据 @@ -93,3 +117,60 @@ def UPSERT_DATA(param1, param2, param3, param4, param5): client.close() return info + + +def INSERT_DATA(param1, param2, param3, param4): + """ + 插入一条数据 + Parameters: + param1: str 服务器 + param2: str 数据库 + param3: str 数据集 + param4: obj 插入数据 + Returns: + True 执行成功 + False 执行失败 + """ + db = DB_SETTING[param1] + client = pymongo.MongoClient(DB_CLI.format(db['user'], db['pass'], db['host'], db['port'])) + + collection = client[param2][param3] + collection.insert_one(param4) + return True + + +def INSERT_DATA_MANY(param1, param2, param3, param4): + """ + 插入多条数据 + Parameters: + param1: str 服务器 + param2: str 数据库 + param3: str 数据集 + param4: obj 插入数据 + Returns: + True 执行成功 + False 执行失败 + """ + db = DB_SETTING[param1] + client = pymongo.MongoClient(DB_CLI.format(db['user'], db['pass'], db['host'], db['port'])) + + collection = client[param2][param3] + collection.insert_many(param4) + client.close() + return True + + +def REMOVE_COLLECTION(param1, param2, param3): + """ + 清空数据表里的数据 + Parameters: + param1: str 服务器 + param2: str 数据库 + param3: str 数据集 + """ + db = DB_SETTING[param1] + client = pymongo.MongoClient(DB_CLI.format(db['user'], db['pass'], db['host'], db['port'])) + collection = client[param2][param3] + collection.remove() + client.close() + return True diff --git a/Board/board_impl.py b/Board/board_impl.py index 385c5a2..f9925f2 100644 --- a/Board/board_impl.py +++ b/Board/board_impl.py @@ -2,14 +2,26 @@ import time import pandas as pd -from Board.board_db import FIND_DATA_COUNT, FIND_DATA, UPSERT_DATA, FIND_DATA_FILTER +from Board.board_db import FIND_DATA_COUNT, FIND_DATA, UPSERT_DATA, FIND_DATA_FILTER, FIND_DATA_FILTER_SORT_LIMIT, \ + REMOVE_COLLECTION, INSERT_DATA_MANY, INSERT_DATA -def get_dashboard_data_impl(param): - pass +def get_dashboard_data_impl(): + data = dict() + + data['监测数据'] = FIND_DATA("ADMIN", "看板", "监测数据", {})[0] + + service_static = FIND_DATA("ADMIN", "看板", "服务统计", {}) + data['服务次数'] = {"日期": [item["日期"] for item in service_static], "次数": [item["服务次数"] for item in service_static]} + + industry_distribute = FIND_DATA("ADMIN", "看板", "行业分布", {}) + data['行业分布'] = [{item['行业名称']: item['公司数量']} for item in industry_distribute] + + data['新增企业信息'] = FIND_DATA("ADMIN", "看板", "新增企业信息", {}) + return data -def static_dashboard_data_impl(param): +def static_dashboard_data_impl(): def monitor_data(): """ @@ -20,7 +32,8 @@ def static_dashboard_data_impl(param): data['服务次数'] = FIND_DATA_COUNT("TFSE", "评价", "评价记录", {"进行状态": "完成"}) data['留言反馈'] = 0 data['异常日志'] = 0 - UPSERT_DATA("ADMIN", "看板", "监测数据", {"看板类型": "监测数据"}, data) + REMOVE_COLLECTION('ADMIN', '看板', '监测数据') + INSERT_DATA("ADMIN", "看板", "监测数据", data) def services_static(): """ @@ -59,13 +72,17 @@ def static_dashboard_data_impl(param): """ 新增企业信息 """ + records = FIND_DATA_FILTER_SORT_LIMIT("TFSE", "用户", "用户信息", {"已认证": "是"}, {"企业ID": 1, "企业名称": 1, "注册时间": 1}, [("注册时间", -1)], 10) + REMOVE_COLLECTION('ADMIN', '看板', '新增企业信息') + INSERT_DATA_MANY('ADMIN', '看板', '新增企业信息', records) def main_process(): monitor_data() services_static() industry_distribute() + new_company_info() return 0 - return main_process() \ No newline at end of file + return main_process() diff --git a/Board/board_obj.py b/Board/board_obj.py index 5e47759..3f069f6 100644 --- a/Board/board_obj.py +++ b/Board/board_obj.py @@ -3,11 +3,10 @@ from Board.board_impl import get_dashboard_data_impl, static_dashboard_data_impl class DashBoard: - def __init__(self): - pass + @staticmethod + def get_dashboard_data(): + return get_dashboard_data_impl() - def get_dashboard_data(self): - get_dashboard_data_impl(self) - - def static_dashboard_data(self): - static_dashboard_data_impl(self) + @staticmethod + def static_dashboard_data(): + static_dashboard_data_impl() diff --git a/Board/board_routes.py b/Board/board_routes.py index 98bd3ad..cf3a296 100644 --- a/Board/board_routes.py +++ b/Board/board_routes.py @@ -10,11 +10,8 @@ board_route = Blueprint('board', __name__) @verify_token def get_dashboard_data_route(**kwargs): - import os - import json - - with open(os.path.abspath(os.path.dirname(__file__) + '/static/mock_data/get_dashboard_data.json'), "r", encoding='utf-8') as f: - result = json.load(f) + dash_board = DashBoard() + result = dash_board.get_dashboard_data() return {"info": "查询成功", "result": result}