diff --git a/Board/board_impl.py b/Board/board_impl.py index 2427d6c..ccf5845 100644 --- a/Board/board_impl.py +++ b/Board/board_impl.py @@ -89,3 +89,20 @@ def get_industry_distribute_impl(): result.append({values[0]: values[1]}) return result + + +def get_new_companies_impl(page_size, page_no): + + db = MongoHelper("tfse_v0.21") + + records = db.find_data_by_page_with_sort( + "应用端", + "企业用户", + {"已认证": "是"}, + ["企业ID", "企业名称", "邮箱", "注册时间"], + {"注册时间": -1}, + page_size, + page_no + ) + + return records diff --git a/Board/board_obj.py b/Board/board_obj.py index d8974fa..ab8c9ae 100644 --- a/Board/board_obj.py +++ b/Board/board_obj.py @@ -1,4 +1,5 @@ -from Board.board_impl import get_monitor_data_impl, get_rating_static_impl, get_industry_distribute_impl +from Board.board_impl import get_monitor_data_impl, get_rating_static_impl, get_industry_distribute_impl, \ + get_new_companies_impl class DashBoard: @@ -17,3 +18,7 @@ class DashBoard: @staticmethod def get_industry_distribute(): return get_industry_distribute_impl() + + @staticmethod + def get_new_companies(page_size, page_no): + return get_new_companies_impl(page_size, page_no) \ No newline at end of file diff --git a/Board/board_routes.py b/Board/board_routes.py index 4ea5acb..5b9a96d 100644 --- a/Board/board_routes.py +++ b/Board/board_routes.py @@ -29,3 +29,13 @@ def get_industry_distribute_route(**kwargs): dash_board = DashBoard() result = dash_board.get_industry_distribute() return {"info": "查询结果", "result": result}, 200 + + +@board_route.route('/get_new_companies', methods=['GET']) +@verify_token +def get_new_companies_route(**kwargs): + dash_board = DashBoard() + page_size = request.args['page_size'] + page_no = request.args['page_no'] + result = dash_board.get_new_companies(page_size, page_no) + return {"info": "查询结果", "result": result}, 200 diff --git a/DBHelper/MongoHelper.py b/DBHelper/MongoHelper.py index 5b8608d..879733a 100644 --- a/DBHelper/MongoHelper.py +++ b/DBHelper/MongoHelper.py @@ -127,6 +127,25 @@ class MongoHelper: data = list(collection.aggregate(param3)) return data + def find_data_by_page_with_sort(self, param1, param2, param3, param4, param5, param6, param7): + """ + 根据聚合翻页查询,且按照需求字段排序返回 + param1: str 数据库 + param2: str 数据集 + param3: dict 查询条件 + param4: list 显示字段 + param5: dict 排序条件 例如 {"name": 1} 表示按照name字段正序返回 + param6: int 即 page_size 每页数据条数 + param7: int 即 page_no 当前页码 + """ + collection = self.client[param1][param2] + columns = {**{'_id': False}, **dict(zip(param4, [1] * len(param4)))} + page_size = int(param6) + page_no = int(param7) + skip_num = page_size * (page_no - 1) + record = list(collection.find(param3, columns).sort(list(param5.keys())[0], list(param5.values())[0]).limit(page_size).skip(skip_num)) + return False if record == [] else record + def upsert_single_data(self, param1, param2, param3, param4): """ 插入单条数据