guarantee-admin-api-v0.2/Modules/DashBoard/DashBoardImpl.py

159 lines
4.5 KiB
Python
Raw Normal View History

import time
2022-06-16 18:31:08 +08:00
from DBHelper.MongoHelperInstance import DB_GUA
from Utils.CommonUtil import trans_fields_name
class DashBoardImpl(object):
2022-06-16 19:17:06 +08:00
@staticmethod
def static_all_country(**kwargs):
items = DB_GUA.find_data_with_aggregate(
"评级数据",
"评级记录",
[
{'$match': {'评级状态': "完成"}},
{'$group': {'_id': "$所在省份", 'count': {'$sum': 1}}}
]
)
result = list()
for item in items:
result.append({"省份": item['_id'], "数量": item["count"]})
return result
2022-06-16 18:31:08 +08:00
@staticmethod
def static_by_province(**kwargs):
province = kwargs["province"]
2022-06-16 18:31:08 +08:00
page_size = kwargs["page_size"]
page_no = kwargs["page_no"]
total = DB_GUA.find_all_data_with_count(
"评级数据",
"评级记录",
{"所在省份": province, "评级状态": "完成"},
)
items = DB_GUA.find_data_by_page_with_sort(
"评级数据",
"评级记录",
{"所在省份": province, "评级状态": "完成"},
["企业名称", "企业ID", "所在城市"],
2022-06-16 18:31:08 +08:00
{"评级时间": -1},
page_size,
page_no
)
for item in items:
trans_fields_name(item, ["企业ID", "企业名称", "所在城市"], ["cid", "company", "city"])
2022-06-16 18:31:08 +08:00
result = {
"name": province,
"total": total,
"data": items
}
return result
@staticmethod
def static_by_city(**kwargs):
city = kwargs["city"]
page_size = kwargs["page_size"]
page_no = kwargs["page_no"]
total = DB_GUA.find_all_data_with_count(
"评级数据",
"评级记录",
{"所在城市": city, "评级状态": "完成"},
)
items = DB_GUA.find_data_by_page_with_sort(
"评级数据",
"评级记录",
{"所在城市": city, "评级状态": "完成"},
["企业名称"],
{"评级时间": -1},
page_size,
page_no
)
for item in items:
trans_fields_name(item, ["企业名称"], ["company"])
result = {
"name": city,
"total": total,
"data": items
}
return result
2022-06-16 18:55:14 +08:00
@staticmethod
def rating_frequency_statistics(**kwargs):
# 默认查询起始日期是30天以前
start = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time() - 60 * 60 * 24 * 365))
records = DB_GUA.find_data_with_aggregate(
"评级数据",
"评级记录",
[
{"$match": {"评级状态": "完成", "评级时间": {"$gte": start}}},
{"$group": {"_id": "$评级时间", "count": {"$sum": 1}}},
{"$sort": {"_id": 1}}
]
)
# 聚类统计用的_id字段更名为date
result = dict()
result['日期'] = list()
result['次数'] = list()
for data in records:
result['日期'].append(data['_id'])
result['次数'].append(data['count'])
return result
2022-06-16 19:27:43 +08:00
@staticmethod
def rank_levels_distribute(**kwargs):
items = DB_GUA.find_data_with_aggregate(
"评级数据",
"评级记录",
[
{'$match': {'评级状态': "完成"}},
{'$group': {'_id': "$信用级别", 'count': {'$sum': 1}}}
]
)
result = list()
for item in items:
result.append({item['_id']: item["count"]})
return result
2022-06-16 18:55:14 +08:00
@staticmethod
def latest_rating_result(**kwargs):
page_size = kwargs["page_size"]
page_no = kwargs["page_no"]
items = DB_GUA.find_data_by_page_with_sort(
"评级数据",
"评级记录",
{"评级状态": "完成"},
["企业名称", "信用级别", "所在省份", "所在城市", "评级时间"],
{"评级时间": -1},
page_size,
page_no
)
for item in items:
item["评级时间"] = item["评级时间"][:10]
trans_fields_name(
item,
["企业名称", "信用级别", "所在省份", "所在城市", "评级时间"],
["公司名称", "级别", "省份", "地级市", "日期"]
)
return items