diff --git a/Manage/macro/db.py b/Manage/macro/db.py index e2b2444..292bbc3 100644 --- a/Manage/macro/db.py +++ b/Manage/macro/db.py @@ -86,7 +86,7 @@ def delete_macroscopic_pdf(fid): def find_macroscopic_report_records(industry, time, skip, limit): """ - 根据id删除宏观报告 + 根据行业查询宏观报告 Parameters: industry: 行业名称 time: 上传日期 diff --git a/TestCenter/tc_db.py b/TestCenter/tc_db.py index 4de73ff..b74b177 100644 --- a/TestCenter/tc_db.py +++ b/TestCenter/tc_db.py @@ -1,4 +1,6 @@ import pymongo +from bson import ObjectId +from gridfs import GridFS client = pymongo.MongoClient('mongodb://{}:{}@{}:{}'.format('root', 'sromitdTW569kC#M', '116.63.130.34', 27018)) @@ -48,6 +50,23 @@ def update_user_info_by_cid(cid, data): return info +def update_data(param1, param2, param3, param4): + """ + 更新用户信息 + Parameters: + param1: str 数据库 + param2: str 数据集 + param3: obj 查询条件 + param4: obj 更新数据 + Returns: + info: 更新结果 + """ + collection = client[param1][param2] + res = collection.update_one(param3, {"$set": param4}) + info = res.raw_result['updatedExisting'] + return info + + def find_user_info_by_cid(cid): """ 更新用户信息 @@ -60,3 +79,19 @@ def find_user_info_by_cid(cid): data = collection.find({"企业ID": cid}, {'_id': False}) record = list(data) return record + + +def delete_pdf(param1, param2, param3): + """ + 根据id删除报告/证书 + Parameters: + param1: 数据库 + param2: 数据集 + param3: 文件fid + Returns: + record: 删除结果 + """ + database = param1 + collection = param2 + fs = GridFS(client[database], collection) + fs.delete(ObjectId(param3)) diff --git a/TestCenter/tc_impl.py b/TestCenter/tc_impl.py index e85d746..ee83ba8 100644 --- a/TestCenter/tc_impl.py +++ b/TestCenter/tc_impl.py @@ -2,12 +2,13 @@ import json import requests -from TestCenter.tc_db import update_user_info_by_cid, find_user_info_by_cid, delete_data, find_data +from TestCenter.tc_db import update_user_info_by_cid, find_user_info_by_cid, delete_data, find_data, update_data, \ + delete_pdf def delete_rid_cascade_scripts(rid): """ - 级联删除与评价ID有关的所有数据 + 级联删除与评价ID有关的评价数据 1.删除评价报告 2.删除评价结果 3.删除综合评价填报 @@ -19,11 +20,28 @@ def delete_rid_cascade_scripts(rid): res: True 执行结果 """ - delete_data('评价', '报告数据', {"评价ID": rid}) - delete_data('评价', '评价结果', {"评价ID": rid}) - delete_data('评价', '综合评价填报', {"评价ID": rid}) - delete_data('评价', '评价记录', {"评价ID": rid}) - delete_data('评价', '风险数据', {"评价ID": rid}) + rids = find_data('评价', '评价记录', {'评价ID': rid}) + if rids: + if rids[0]['进行状态'] == '完成': + # 删除报告/证书 + report_id = rids[0]['报告fid'] + delete_pdf('评价', '综合信用报告', report_id) + certificate_id = rids[0]['报告fid'] + delete_pdf('评价', '评价证书', certificate_id) + # 更新此条数据 + insert = {'进行状态': '进行', '评价结果': None, '评价时间': None, '报告fid': None, '证书fid': None} + res = update_data('评价', '评价记录', {'评价ID': rid}, insert) + if res: + delete_data('评价', '评价结果', {'评价ID': rid}) + delete_data('评价', '报告数据', {'评价ID': rid}) + return '删除成功' + else: + return '评价记录数据重置失败' + + else: + return '不能删除正在进行的评价记录' + else: + return '未查询到此rid相关记录' return True diff --git a/TestCenter/tc_obj.py b/TestCenter/tc_obj.py index ea8b3ee..d754b4e 100644 --- a/TestCenter/tc_obj.py +++ b/TestCenter/tc_obj.py @@ -21,7 +21,8 @@ class TestObj: """ 级联删除与评价ID有关的所有数据 """ - delete_rid_cascade_scripts(self.rid) + info = delete_rid_cascade_scripts(self.rid) + return info def company_verify(self): """ diff --git a/TestCenter/tc_routes.py b/TestCenter/tc_routes.py index db28f98..0ba16d8 100644 --- a/TestCenter/tc_routes.py +++ b/TestCenter/tc_routes.py @@ -18,8 +18,9 @@ def delete_rid_cascade_route(): """ test_obj = TestObj() test_obj.rid = request.json['rid'] - test_obj.delete_rid_cascade() - return {"info": "删除成功"}, 200 + info = test_obj.delete_rid_cascade() + status = 200 if info == '删除成功' else 210 + return {"info": info}, status @test_route.route('/delete_cid_cascade', methods=['POST'])