tfse-admin-api-v0.2/Board/board_impl.py

89 lines
3.6 KiB
Python
Raw Normal View History

2022-02-17 16:58:39 +08:00
import time
import pandas as pd
2022-02-18 14:23:50 +08:00
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
2022-02-17 16:58:39 +08:00
2022-02-16 17:03:12 +08:00
2022-02-18 14:23:50 +08:00
def get_dashboard_data_impl():
data = dict()
2022-02-17 16:58:39 +08:00
2022-02-18 14:23:50 +08:00
data['监测数据'] = FIND_DATA("ADMIN", "看板", "监测数据", {})[0]
2022-02-17 16:58:39 +08:00
2022-02-18 14:23:50 +08:00
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():
2022-02-17 16:58:39 +08:00
def monitor_data():
"""
监测数据
"""
data = dict()
data['认证企业'] = FIND_DATA_COUNT("TFSE", "用户", "用户信息", {"已认证": ""})
data['服务次数'] = FIND_DATA_COUNT("TFSE", "评价", "评价记录", {"进行状态": "完成"})
data['留言反馈'] = 0
data['异常日志'] = 0
2022-02-18 14:23:50 +08:00
REMOVE_COLLECTION('ADMIN', '看板', '监测数据')
INSERT_DATA("ADMIN", "看板", "监测数据", data)
2022-02-17 16:58:39 +08:00
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():
"""
新增企业信息
"""
2022-02-18 14:23:50 +08:00
records = FIND_DATA_FILTER_SORT_LIMIT("TFSE", "用户", "用户信息", {"已认证": ""}, {"企业ID": 1, "企业名称": 1, "注册时间": 1}, [("注册时间", -1)], 10)
REMOVE_COLLECTION('ADMIN', '看板', '新增企业信息')
INSERT_DATA_MANY('ADMIN', '看板', '新增企业信息', records)
2022-02-17 16:58:39 +08:00
def main_process():
monitor_data()
services_static()
industry_distribute()
2022-02-18 14:23:50 +08:00
new_company_info()
2022-02-17 16:58:39 +08:00
return 0
2022-02-18 14:23:50 +08:00
return main_process()