tfse-admin-api-v0.2/Manage/Ratings/Objects/RatingSearch.py

138 lines
4.9 KiB
Python

from Utils.ObjUtil import SpecObject
from Utils.ValidateUtil import ValidateAttr, Validate
RATING_RESULT = ["AAA", "AA+", "AA", "AA-", "A+", "A", "A-", "BBB+", "BBB", "BBB-", "BB+", "BB",
"BB-", "B+", "B", "B-", "CCC+", "CCC", "CCC-", "CC+", "CC", "CC-", "C+", "C", "C-", "D"]
class SearchRatingApi(SpecObject):
"""服务查询类"""
class SearchBody(SpecObject):
"""查询体"""
cid = ValidateAttr(field='cid', type=str)
rid = ValidateAttr(field='rid', type=str)
name = ValidateAttr(field='name', type=str)
project = ValidateAttr(field='project', type=str, in_list=['综合信用评价', 'ESG评价'])
method = ValidateAttr(field='method', type=str, in_list=['企业申报', '跟踪评价'])
status = ValidateAttr(field='status', type=str, in_list=['完成', '进行'])
result = ValidateAttr(field='result', type=str, in_list=RATING_RESULT)
completion_date = ValidateAttr(field='completion_date', type=str, func=Validate.date_format)
fields_map = {
"cid": "企业ID",
"rid": "评价ID",
"name": "企业名称",
"project": "评价项目",
"method": "评价方式",
"status": "进行状态",
"result": "评价结果",
"time": "评价时间"
}
def make_search_body(self):
""""""
search_keys = list(self.__dict__.keys())
body = dict()
if "cid" in search_keys:
body['企业ID'] = self.cid
if "rid" in search_keys:
body['评价ID'] = self.cid
if "name" in search_keys:
body['企业名称'] = {"$regex": self.name}
if "project" in search_keys:
body['评价项目'] = {"$regex": self.project}
if "method" in search_keys:
body['评价方式'] = {"$regex": self.method}
if "status" in search_keys:
body['进行状态'] = {"$regex": self.status}
if "result" in search_keys:
body['评价结果'] = {"$regex": self.result}
if "time" in search_keys:
body['评价完成日期'] = {"$regex": self.completion_date}
return body
class SortBody(SpecObject):
""""""
field = ValidateAttr(field='field', type=str)
sort = ValidateAttr(field='sort', in_list=["asc", "desc"])
fields_map = {
"field": "排序字段",
"sort": "排序方式"
}
def make_sort_body(self):
""""""
if self.__dict__ != {}:
columns_map = {
"企业ID": "企业ID",
"评价ID": "评价ID",
"企业名称": "企业名称",
"评价项目": "评价项目",
"评价方式": "评价方式",
"进行状态": "进行状态",
"评价结果": "评价结果",
"评价完成日期": "评价完成日期"
}
asc_or_desc = 1 if self.sort == "asc" else -1
sort_column = columns_map[self.field]
body = {sort_column: asc_or_desc}
else:
body = {"评价完成时间": -1}
return body
search = ValidateAttr(field='search', type=SearchBody)
sort = ValidateAttr(field='sort', type=SortBody)
page_size = ValidateAttr(field='page_size', type=int)
page_no = ValidateAttr(field='page_no', type=int)
fields_map = {
"search": "搜索体",
"sort": "排序",
"page_size": "显示数量",
"page_no": "页码"
}
def condition_search(self):
"""条件查询"""
class SearchRatingResult(SpecObject):
"""服务查询返回结果"""
cid = ValidateAttr(field='cid', type=str)
rid = ValidateAttr(field='rid', type=str)
name = ValidateAttr(field='name', type=str)
project = ValidateAttr(field='project', type=str, in_list=['综合信用评价', 'ESG评价'])
method = ValidateAttr(field='method', type=str, in_list=['企业申报', '跟踪评价'])
status = ValidateAttr(field='status', type=str, in_list=['完成', '进行'])
result = ValidateAttr(field='result', type=str, in_list=RATING_RESULT, default=None)
completion_date = ValidateAttr(field='completion_date', type=str, func=Validate.date_format, default=None)
report_fid = ValidateAttr(field='report_fid', type=str, default=None)
certificate_fid = ValidateAttr(field='certificate_fid', type=str, default=None)
fields_map = {
"cid": "企业ID",
"rid": "评价ID",
"name": "企业名称",
"project": "评价项目",
"method": "评价方式",
"status": "进行状态",
"result": "评价结果",
"completion_date": "评价完成日期",
"report_fid": "报告fid",
"certificate_fid": "证书fid"
}