diff --git a/Modules/DashBoard/DashBoardImpl.py b/Modules/DashBoard/DashBoardImpl.py new file mode 100644 index 0000000..fff37b3 --- /dev/null +++ b/Modules/DashBoard/DashBoardImpl.py @@ -0,0 +1,74 @@ +from DBHelper.MongoHelperInstance import DB_GUA +from Utils.CommonUtil import trans_fields_name + + +class DashBoardImpl(object): + + @staticmethod + def static_by_province(**kwargs): + + province = kwargs["province"] + 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, "评级状态": "完成"}, + ["企业名称"], + {"评级时间": -1}, + page_size, + page_no + ) + + for item in items: + trans_fields_name(item, ["企业名称"], ["company"]) + + 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 diff --git a/Modules/DashBoard/DashBoardRoutes.py b/Modules/DashBoard/DashBoardRoutes.py index b4e8070..bbc2774 100644 --- a/Modules/DashBoard/DashBoardRoutes.py +++ b/Modules/DashBoard/DashBoardRoutes.py @@ -1,6 +1,9 @@ from flask import Blueprint, request from Modules.AdminUser.UserAuthUtils import verify_token +from Modules.DashBoard.DashBoardImpl import DashBoardImpl +from Utils.ErrorUtil import APIReturnError +from Utils.RouteUtil import RouteParamsCheck board_route = Blueprint('board', __name__) @@ -91,19 +94,19 @@ def distribute_route(**kwargs): "info": "查询成功", "result": [ { - "AA+": 3 + "AAA": 3 }, { "AA+": 8 }, { - "AA+": 4 + "AA": 4 }, { - "AA+": 8 + "AA-": 8 }, { - "AA+": 5 + "A+": 5 } ] } @@ -113,6 +116,42 @@ def distribute_route(**kwargs): @board_route.route('/map/province') @verify_token -def province_route(**kwargs): - """""" +def map_province_route(**kwargs): + """评级结果地图(省份)""" + + try: + RouteParamsCheck(req=request.args, params=["province", "page_size", "page_no"]).required() + province = request.args["province"] + page_size = request.args["page_size"] + page_no = request.args["page_no"] + impl = DashBoardImpl() + result = impl.static_by_province( + province=province, + page_size=page_size, + page_no=page_no, + ) + return result + except APIReturnError as e: + return {"info": e.__str__()}, e.status_code + + +@board_route.route('/map/city') +@verify_token +def map_city_route(**kwargs): + """评级结果地图(省份)""" + + try: + RouteParamsCheck(req=request.args, params=["city", "page_size", "page_no"]).required() + city = request.args["city"] + page_size = request.args["page_size"] + page_no = request.args["page_no"] + impl = DashBoardImpl() + result = impl.static_by_city( + city=city, + page_size=page_size, + page_no=page_no, + ) + return result + except APIReturnError as e: + return {"info": e.__str__()}, e.status_code diff --git a/app.py b/app.py index e32cafd..e76a47b 100644 --- a/app.py +++ b/app.py @@ -18,7 +18,7 @@ app.register_blueprint(company_route, url_prefix='/admin/company') app.register_blueprint(rating_route, url_prefix='/admin/rating') app.register_blueprint(file_route, url_prefix='/admin/file') app.register_blueprint(result_route, url_prefix='/admin/result') -# app.register_blueprint(board_route, url_prefix='/admin/board') +app.register_blueprint(board_route, url_prefix='/admin/board') @app.route('/admin/version')