From 030fc332d1be5684feb6acff6d857eed6e78b093 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=80=9D=E5=B7=9D?= Date: Thu, 26 May 2022 17:15:30 +0800 Subject: [PATCH] changes --- Modules/ETL/__init__.py | 0 Modules/Model/__init__.py | 0 Modules/Rating/RatingImpl.py | 19 ++++++++++ Modules/Rating/RatingObjects.py | 30 +++++++++++++++ Modules/Rating/RatingRoutes.py | 67 +++++++++++++++++++++++++++++++++ Modules/Rating/RatingUtils.py | 0 Utils/RouteUtil.py | 17 +++++---- app.py | 2 + 8 files changed, 128 insertions(+), 7 deletions(-) create mode 100644 Modules/ETL/__init__.py create mode 100644 Modules/Model/__init__.py create mode 100644 Modules/Rating/RatingImpl.py create mode 100644 Modules/Rating/RatingObjects.py create mode 100644 Modules/Rating/RatingRoutes.py create mode 100644 Modules/Rating/RatingUtils.py diff --git a/Modules/ETL/__init__.py b/Modules/ETL/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/Modules/Model/__init__.py b/Modules/Model/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/Modules/Rating/RatingImpl.py b/Modules/Rating/RatingImpl.py new file mode 100644 index 0000000..736b685 --- /dev/null +++ b/Modules/Rating/RatingImpl.py @@ -0,0 +1,19 @@ +from Modules.Rating.RatingObjects import RatingRecord + + +class RatingRecordImpl(object): + + def create(self, **kwargs): + """""" + + rating_record = RatingRecord() + rating_record.rid = "" + rating_record.status = "进行" + rating_record.cid = kwargs['cid'] + rating_record.company_name = "" + rating_record.province_and_city = "" + + def rating_years(self): + """""" + + diff --git a/Modules/Rating/RatingObjects.py b/Modules/Rating/RatingObjects.py new file mode 100644 index 0000000..35ba21d --- /dev/null +++ b/Modules/Rating/RatingObjects.py @@ -0,0 +1,30 @@ +from Utils.ObjUtil import SpecObject +from Utils.ValidateUtil import ValidateAttr, Validate + + +class RatingRecord(SpecObject): + """评级记录""" + + rid = ValidateAttr(field="rid", type=str) + report_date = ValidateAttr(field="report_date", func=Validate.date_format) + status = ValidateAttr(field="status", in_list=["完成", "进行"]) + cid = ValidateAttr(field="cid", type=str) + company_name = ValidateAttr(field="company_name", type=str) + rating_date = ValidateAttr(field="rating_date", func=Validate.date_format) + credit_rating = ValidateAttr(field="credit_rating", type=str) + credit_score = ValidateAttr(field="credit_score", type=float) + rating_report = ValidateAttr(field="rating_report", type=str) + province_and_city = ValidateAttr(field="province_and_city", type=str) + + fields_map = { + "rid": "评级ID", + "report_date": "报告期", + "status": "评级状态", + "cid": "企业ID", + "company_name": "企业名称", + "rating_date": "评级日期", + "credit_rating": "信用级别", + "credit_score": "信用分数", + "rating_report": "评级报告", + "province_and_city": "所在省市" + } diff --git a/Modules/Rating/RatingRoutes.py b/Modules/Rating/RatingRoutes.py new file mode 100644 index 0000000..3824cae --- /dev/null +++ b/Modules/Rating/RatingRoutes.py @@ -0,0 +1,67 @@ +from flask import Blueprint, request + +from Modules.AdminUser.UserAuthUtils import verify_token +from Modules.Rating.RatingImpl import RatingRecordImpl +from Utils.ErrorUtil import AttrCheckError +from Utils.RouteUtil import RouteParamsCheck + +rating_route = Blueprint('rating', __name__) + + +@rating_route.route('/create', methods=['GET']) +@verify_token +def create_routes(**kwargs): + """新建评级""" + + RouteParamsCheck( + req=request.args, + params=['cid', 'report_date'] + ).required() + + cid = request.args['cid'] + report_date = request.args['report_date'] + + try: + impl = RatingRecordImpl() + impl.create(cid=cid, report_date=report_date) + return {"info": "success"} + except AssertionError as e: + return {"info": e.__str__()}, 202 + except AttrCheckError as e: + return {"info": e.__str__()}, 202 + + +@rating_route.route('/rating_years', methods=['GET']) +@verify_token +def rating_years_routes(**kwargs): + """获取可评级年度""" + + +@rating_route.route('/financial_analysis', methods=['GET']) +@verify_token +def financial_analysis_routes(**kwargs): + """财务分析""" + + +@rating_route.route('/risk_analysis', methods=['GET']) +@verify_token +def risk_analysis_route(**kwargs): + """风险分析""" + + +@rating_route.route('/score_and_rank', methods=['GET']) +@verify_token +def score_and_rank_route(**kwargs): + """得分级别""" + + +@rating_route.route('/rank_report', methods=['GET']) +@verify_token +def rank_report_route(**kwargs): + """评级报告""" + + +@rating_route.route('/submit', methods=['GET']) +@verify_token +def submit_route(**kwargs): + """确认提交""" diff --git a/Modules/Rating/RatingUtils.py b/Modules/Rating/RatingUtils.py new file mode 100644 index 0000000..e69de29 diff --git a/Utils/RouteUtil.py b/Utils/RouteUtil.py index 89ba712..35155cb 100644 --- a/Utils/RouteUtil.py +++ b/Utils/RouteUtil.py @@ -1,21 +1,24 @@ from Utils.ErrorUtil import APIReturnError -class RouteUtil(object): +class RouteParamsCheck(object): """路由工具""" - @staticmethod - def require_params_check(req_body, req_params): + def __init__(self, req, params): + self.req = req + self.params = params + + def required(self): """必需参数检查""" - if not isinstance(req_body, dict): + if not isinstance(self.req, dict): raise Exception - if not isinstance(req_params, list): + if not isinstance(self.params, list): raise Exception - params_in_req_body = list(req_body.keys()) - for param in req_params: + params_in_req_body = list(self.req.keys()) + for param in self.params: if param not in params_in_req_body: error_info = "缺失必需参数: {}".format(param) raise APIReturnError(error_info=error_info, status_code=200) diff --git a/app.py b/app.py index 0938a1d..2677d08 100644 --- a/app.py +++ b/app.py @@ -3,6 +3,7 @@ from flask_cors import * from Modules.AdminUser.UserRoutes import user_route from Modules.Company.CompanyRoutes import company_route +from Modules.Rating.RatingRoutes import rating_route app = Flask(__name__) CORS(app, supports_credentials=True) @@ -11,6 +12,7 @@ app.config['JSON_SORT_KEYS'] = False app.register_blueprint(user_route, url_prefix='/admin/user') app.register_blueprint(company_route, url_prefix='/admin/company') +app.register_blueprint(rating_route, url_prefix='/admin/rating') @app.route('/admin/version')