From 8f06851e78df8322234ec17e82dccfcae991956a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BD=AD=E6=A3=AE?= Date: Thu, 27 Jan 2022 17:28:49 +0800 Subject: [PATCH 1/2] =?UTF-8?q?update=20=E7=94=A8=E6=88=B7=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E6=8E=A5=E5=8F=A3/=E6=8A=A5=E5=91=8A=E7=94=9F?= =?UTF-8?q?=E6=88=90=E5=90=8E=E6=9B=B4=E6=96=B0=E7=BB=BC=E5=90=88=E8=AF=84?= =?UTF-8?q?=E4=BB=B7=E5=88=86=E6=9E=90-=E4=BF=A1=E7=94=A8=E5=88=86?= =?UTF-8?q?=E6=9E=90-=E6=9F=A5=E7=9C=8B=E6=8A=A5=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rating/Rating.py | 3 +- rating/db.py | 15 +++++++++ rating/routes.py | 1 + rating/scripts.py | 6 ++-- user/user_db.py | 40 ++++++++++++++++++++++++ user/user_impl.py | 74 ++++++++++++++++++++++++++++++++++++++++----- user/user_obj.py | 17 ++++++++++- user/user_routes.py | 14 +++++++-- 8 files changed, 156 insertions(+), 14 deletions(-) diff --git a/rating/Rating.py b/rating/Rating.py index d6b0f77..7729d96 100644 --- a/rating/Rating.py +++ b/rating/Rating.py @@ -7,6 +7,7 @@ class Rating: self.query = None self.rid = None self.industry = None + self.cid = None def search_rating(self, skip, limit): """ @@ -75,6 +76,6 @@ class Rating: Returns: result: 生成结果 """ - result = report_create_script(self.rid) + result = report_create_script(self.rid, self.cid) return result diff --git a/rating/db.py b/rating/db.py index f026671..d88d6de 100644 --- a/rating/db.py +++ b/rating/db.py @@ -90,6 +90,21 @@ def update_evaluation_records(rid, data): return info +def update_comprehensive_records(cid, data): + """ + 更新综合评价分析数据 + Parameters: + cid: 企业ID + data: 报告fid对象 + Returns: + record: 更新结果 + """ + collection = client['企业']['综合评价分析'] + res = collection.update_one({"企业ID": cid}, {"$set": data}) + info = res.raw_result['updatedExisting'] + return info + + def delete_report_pdf(fid): """ 更新评价数据 diff --git a/rating/routes.py b/rating/routes.py index db7fbe9..9207311 100644 --- a/rating/routes.py +++ b/rating/routes.py @@ -114,6 +114,7 @@ def report_edit_save_delete(): rating = Rating() rating.rid = request.json['rid'] + rating.cid = request.json['cid'] text_model = request.json['text_model'] step_01 = edit() if step_01: diff --git a/rating/scripts.py b/rating/scripts.py index eded239..d098f8c 100644 --- a/rating/scripts.py +++ b/rating/scripts.py @@ -95,11 +95,12 @@ def report_delete_script(rid): return res -def report_create_script(rid): +def report_create_script(rid, cid): """ 根据rid查询报告数据并生成PDF报告 Parameters: rid: 评价ID + cid: 企业ID Returns: result: 生成结果 """ @@ -124,5 +125,6 @@ def report_create_script(rid): result = r.json() if result['info'] == '生成报告成功': update_evaluation_records(rid, {"报告fid": result['result']['FileID']}) - result['result']['FileID'] = '/file/get_company_report?file_id={}'.format(result['result']['FileID']) + result['result']['FileID'] = '/file/get_company_report?file_id={}'.format(result['result']['FileID']) + update_comprehensive_records(cid, {"信用分析.查看报告": result['result']['FileID']}) return result diff --git a/user/user_db.py b/user/user_db.py index 93a0163..aecad04 100644 --- a/user/user_db.py +++ b/user/user_db.py @@ -81,3 +81,43 @@ def FIND_DATA(param1, param2, param3): collection = CLIENT[param1][param2] records = list(collection.find(param3, {'_id': False})) return records + + +def FIND_DATA_PAGE(param1, param2, param3, param4, param5): + """ + 根据查询条件查询符合条件的所有数据 + Args: + param1: str 数据库 + param2: str 数据集 + param3: obj 查询条件 + param4: skip 页码 + param5: limit 每页条数 + Returns: + records: list 符合条件的数据 + """ + collection = CLIENT[param1][param2] + param4 = (param4 - 1) * param5 + count = collection.find(param3).count() + records = list(collection.find(param3, {'_id': False}).skip(param4).limit(param5)) + result = { + "total": count, + "data": records + } + return result + + +def UPDATE_INFO(param1, param2, param3, param4): + """ + 更新信息 + Parameters: + param1: str 数据库 + param2: str 数据集 + param3: obj 查询条件 + param4: obj 插入数据 + Returns: + record: 编辑结果 + """ + collection = CLIENT[param1][param2] + res = collection.update_one(param3, {"$set": param4}) + info = res.raw_result['updatedExisting'] + return info diff --git a/user/user_impl.py b/user/user_impl.py index 41b3dfd..a8fcd4e 100644 --- a/user/user_impl.py +++ b/user/user_impl.py @@ -6,7 +6,7 @@ import random import requests from werkzeug.security import generate_password_hash, check_password_hash -from user.user_db import INSERT_DATA, FIND_DATA, UPSERT_DATA, DELETE_DATA +from user.user_db import INSERT_DATA, FIND_DATA, UPSERT_DATA, DELETE_DATA, FIND_DATA_PAGE, UPDATE_INFO from user.user_utils import check_mail_fmt, check_pwd_fmt, create_token, decrypt_data @@ -212,18 +212,78 @@ def send_vcode_to_user_impl(email): return start_impl() -def list_user_impl(): +def list_user_impl(criteria, skip, limit): """ - 用户信息列表 + 查询用户列表 + Parameters: + criteria str 查询条件 + Returns: + 查询成功 list 用户列表 """ - # TODO + def uid_query(): + """ + uid查询 + """ + result = FIND_DATA_PAGE("用户", "用户信息", {"UID": criteria}, skip, limit) + return result + + def email_query(): + """ + uid查询 + """ + result = FIND_DATA_PAGE("用户", "用户信息", {"email": criteria}, skip, limit) + return result + + def name_query(): + """ + name查询 + """ + result = FIND_DATA_PAGE("用户", "用户信息", {"name": criteria}, skip, limit) + return result + + def status_query(): + """ + status查询 + """ + result = FIND_DATA_PAGE("用户", "用户信息", {"status": criteria}, skip, limit) + return result + + def role_query(): + """ + role查询 + """ + result = FIND_DATA_PAGE("用户", "用户信息", {"role": criteria}, skip, limit) + return result + + def empty_query(): + """ + 空值查询 + """ + result = FIND_DATA_PAGE("用户", "用户信息", {}, skip, limit) + return result + + if criteria: + record = uid_query() + if len(record['data']) == 0: + record = email_query() + if len(record['data']) == 0: + record = name_query() + if len(record['data']) == 0: + record = status_query() + if len(record['data']) == 0: + record = role_query() + else: + record = empty_query() + + return record -def disable_user_impl(): +def disable_user_impl(uid): """ 禁用用户 """ - # TODO + result = UPDATE_INFO("用户", "用户信息", {"UID": uid}, {"status": "disable"}) + return result def delete_user_impl(): @@ -233,7 +293,7 @@ def delete_user_impl(): # TODO -def manage_role_of_user_impl(): +def manage_role_of_user_impl(uid): """ 管理用户角色 """ diff --git a/user/user_obj.py b/user/user_obj.py index 0051351..c1741c2 100644 --- a/user/user_obj.py +++ b/user/user_obj.py @@ -1,4 +1,5 @@ -from user.user_impl import create_user_impl, login_impl, send_vcode_to_user_impl +from user.user_impl import create_user_impl, login_impl, send_vcode_to_user_impl, list_user_impl, \ + manage_role_of_user_impl, disable_user_impl class User: @@ -78,6 +79,9 @@ class UserOperation(User): self.token = None self.block = None self.vcode = None + self.criteria = None + self.skip = None + self.limit = None # 登录 def login(self): @@ -85,3 +89,14 @@ class UserOperation(User): 用户登录 """ return login_impl(self.email, self.pwd, self.vcode) + + # 查询 + def query(self): + """ + 查询用户信息 + """ + return list_user_impl(self.criteria, self.skip, self.limit) + + # 停用 + def deactivate(self): + return disable_user_impl(self.uid) diff --git a/user/user_routes.py b/user/user_routes.py index 242dc8a..b4aa309 100644 --- a/user/user_routes.py +++ b/user/user_routes.py @@ -73,17 +73,25 @@ def list_user_route(**kwargs): """ 用户信息列表接口 """ - # TODO + uo = UserOperation() + uo.criteria = request.args.get('criteria') + uo.skip = int(request.args.get('skip')) + uo.limit = int(request.args.get('limit')) + result = uo.query() + return {"info": '查询成功', "result": result}, 200 -@user_route.route('/disable_user', methods=['POST']) +@user_route.route('/disable_user', methods=['GET']) @verify_token @authority_scope(['admin']) def disable_user_route(**kwargs): """ 停用用户接口 """ - # TODO + uo = UserOperation() + uo.uid = request.args.get('uid') + uo.deactivate() + return {"info": "停用成功"}, 200 @user_route.route('/delete_user', methods=['POST']) From 72147ec4a3df29f34ea7a1ff27acf5c17d71164e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BD=AD=E6=A3=AE?= Date: Fri, 28 Jan 2022 10:57:02 +0800 Subject: [PATCH 2/2] =?UTF-8?q?update=20=E7=94=A8=E6=88=B7=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E6=8E=A5=E5=8F=A3/=E6=8A=A5=E5=91=8A=E7=94=9F?= =?UTF-8?q?=E6=88=90=E5=90=8E=E6=9B=B4=E6=96=B0=E7=BB=BC=E5=90=88=E8=AF=84?= =?UTF-8?q?=E4=BB=B7=E5=88=86=E6=9E=90-=E4=BF=A1=E7=94=A8=E5=88=86?= =?UTF-8?q?=E6=9E=90-=E6=9F=A5=E7=9C=8B=E6=8A=A5=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- user/user_impl.py | 12 +++++++----- user/user_obj.py | 10 +++++++++- user/user_routes.py | 17 ++++++++++++++--- 3 files changed, 30 insertions(+), 9 deletions(-) diff --git a/user/user_impl.py b/user/user_impl.py index a8fcd4e..8c450dc 100644 --- a/user/user_impl.py +++ b/user/user_impl.py @@ -229,7 +229,7 @@ def list_user_impl(criteria, skip, limit): def email_query(): """ - uid查询 + email查询 """ result = FIND_DATA_PAGE("用户", "用户信息", {"email": criteria}, skip, limit) return result @@ -286,15 +286,17 @@ def disable_user_impl(uid): return result -def delete_user_impl(): +def delete_user_impl(uid): """ 删除用户 """ - # TODO + result = DELETE_DATA("用户", "用户信息", {"UID": uid}) + return result -def manage_role_of_user_impl(uid): +def manage_role_of_user_impl(uid, role): """ 管理用户角色 """ - # TODO + result = UPDATE_INFO("用户", "用户信息", {"UID": uid}, {"role": role}) + return result diff --git a/user/user_obj.py b/user/user_obj.py index c1741c2..d672e56 100644 --- a/user/user_obj.py +++ b/user/user_obj.py @@ -1,5 +1,5 @@ from user.user_impl import create_user_impl, login_impl, send_vcode_to_user_impl, list_user_impl, \ - manage_role_of_user_impl, disable_user_impl + manage_role_of_user_impl, disable_user_impl, delete_user_impl class User: @@ -100,3 +100,11 @@ class UserOperation(User): # 停用 def deactivate(self): return disable_user_impl(self.uid) + + # 删除 + def delete(self): + return delete_user_impl(self.uid) + + # 管理角色 + def manage(self): + return manage_role_of_user_impl(self.uid, self.role) \ No newline at end of file diff --git a/user/user_routes.py b/user/user_routes.py index b4aa309..9fec3e6 100644 --- a/user/user_routes.py +++ b/user/user_routes.py @@ -94,14 +94,17 @@ def disable_user_route(**kwargs): return {"info": "停用成功"}, 200 -@user_route.route('/delete_user', methods=['POST']) +@user_route.route('/delete_user', methods=['GET']) @verify_token @authority_scope(['admin']) def delete_user_route(**kwargs): """ 删除用户接口 """ - # TODO + uo = UserOperation() + uo.uid = request.args.get('uid') + uo.delete() + return {"info": "删除成功"}, 200 @user_route.route('/manage_role_of_user', methods=['POST']) @@ -111,4 +114,12 @@ def manage_role_of_user_route(**kwargs): """ 管理用户角色接口 """ - # TODO + req = request.json + + uo = UserOperation() + uo.uid, uo.role = req['uid'], req['role'] + result = uo.manage() + if result: + return {"info": "修改成功"}, 200 + else: + return {"info": "修改失败"}, 210