from flask import Blueprint, request from Modules.AdminUser.UserAuthUtils import verify_token from Modules.Rating.RatingImpl import RatingImpl from Utils.ErrorUtil import AttrCheckError, APIReturnError from Utils.RouteUtil import RouteParamsCheck rating_route = Blueprint('rating', __name__) @rating_route.route('/before_create', methods=['GET']) @verify_token def before_create_routes(**kwargs): """评级选择""" try: RouteParamsCheck(req=request.args, params=['cid']).required() cid = request.args['cid'] impl = RatingImpl() result = impl.before_create(cid=cid) return {"info": "评级选择", "result": result} except APIReturnError as e: return {"info": e.__str__()}, e.status_code @rating_route.route('/create', methods=['GET']) @verify_token def create_routes(**kwargs): """新建评级""" try: RouteParamsCheck(req=request.args, params=['cid', 'report_date']).required() cid = request.args['cid'] report_date = request.args['report_date'] impl = RatingImpl() result, info = impl.create(cid=cid, report_date=report_date) return {"info": info, "result": result} except AssertionError as e: return {"info": e.__str__()}, 200 except AttrCheckError as e: return {"info": e.__str__()}, 202 @rating_route.route('/financial_analysis', methods=['GET']) @verify_token def financial_analysis_routes(**kwargs): """财务分析""" try: RouteParamsCheck(req=request.args, params=['rid', 'cid', 'report_date']).required() rid = request.args['rid'] cid = request.args['cid'] report_date = request.args['report_date'] impl = RatingImpl() result = impl.financial_analysis(rid=rid, cid=cid, report_date=report_date) return {"info": "财务分析", "result": result} except AssertionError as e: return {"info": e.__str__()}, 200 except AttrCheckError as e: return {"info": "请求异常,请检查填入数据是否正确"}, 202 except APIReturnError as e: return {"info": e.__str__()}, e.status_code @rating_route.route('/risk_analysis', methods=['GET']) @verify_token def risk_analysis_route(**kwargs): """风险分析""" try: RouteParamsCheck(req=request.args, params=['cid', 'report_date']).required() cid = request.args["cid"] report_date = request.args["report_date"] impl = RatingImpl() result = impl.risk_analysis(cid=cid, report_date=report_date) return {"info": "风险分析", "result": result} except APIReturnError as e: return {"info": e.__str__()}, e.status_code @rating_route.route('/score_and_rank', methods=['GET']) @verify_token def score_and_rank_route(**kwargs): """得分级别""" try: RouteParamsCheck(req=request.args, params=['rid']).required() rid = request.args['rid'] impl = RatingImpl() result = impl.score_and_rank(rid=rid) return {"info": "得分级别", "result": result} except APIReturnError as e: return {"info": e.__str__()}, e.status_code @rating_route.route('/report_data', methods=['GET', 'POST']) @verify_token def report_data_route(**kwargs): """报告数据""" try: if request.method == 'GET': rid = request.args['rid'] impl = RatingImpl() result = impl.report_data(rid=rid) return {"info": "报告数据", "result": result} if request.method == 'POST': rid = request.json['rid'] content = request.json['content'] impl = RatingImpl() impl.edit_report_data(rid=rid, content=content) return {"info": "编辑成功"}, 200 except APIReturnError as e: return {"info": e.__str__()}, e.status_code @rating_route.route('/rank_report', methods=['GET']) @verify_token def rank_report_route(**kwargs): """评级报告""" try: RouteParamsCheck(req=request.args, params=["rid"]).required() rid = request.args['rid'] impl = RatingImpl() result = impl.report_file(rid=rid) info = '生成报告成功' if result else '生成报告失败' res = {"FileID": result} if result else {"FileID": None} return {"info": info, "result": res} except APIReturnError as e: return {"info": e.__str__()}, e.status_code @rating_route.route('/submit', methods=['GET']) @verify_token def submit_route(**kwargs): """确认提交""" try: RouteParamsCheck(req=request.args, params=["rid"]).required() rid = request.args['rid'] impl = RatingImpl() impl.submit(rid=rid) return {"info": "确认提交", "result": "提交成功"} except APIReturnError as e: return {"info": e.__str__()}, e.status_code @rating_route.route('/delete', methods=['GET']) @verify_token def delete_route(**kwargs): """删除评级(进行中)"""