2022-06-21 14:29:03 +08:00
|
|
|
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):
|
|
|
|
|
2022-06-21 14:29:03 +08:00
|
|
|
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, "评级状态": "完成"},
|
2022-06-21 14:29:03 +08:00
|
|
|
["企业名称", "企业ID", "所在城市"],
|
2022-06-16 18:31:08 +08:00
|
|
|
{"评级时间": -1},
|
|
|
|
page_size,
|
|
|
|
page_no
|
|
|
|
)
|
|
|
|
|
|
|
|
for item in items:
|
2022-06-21 14:29:03 +08:00
|
|
|
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
|
|
|
|
2022-06-21 14:29:03 +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
|