from flask import Blueprint, request from Modules.Functions.FinIndex.FinIndexImpl import FinanceIndexImpl from Modules.Functions.FinIndex.FinIndexUtils import FinanceIndexUtils from Utils.ErrorUtil import APIReturnError from Utils.RouteUtil import RouteParamsCheck finance_route = Blueprint('finance', __name__) @finance_route.route('/new_calculate_func', methods=['POST']) def new_calculate_func_route(): """新建指标计算函数""" try: RouteParamsCheck(req=request.json, params=[ "func_name", "describe", "method", "params", "tags" ]).required() data = request.json impl = FinanceIndexImpl() result = impl.new_calculate_func(data=data) return {"info": "新增指标计算函数", "result": result}, 200 except APIReturnError as e: return {"info": e.__str__()}, e.status_code @finance_route.route('/check_calculate_func', methods=['POST']) def check_calculate_func_route(): """校验指标计算函数""" try: RouteParamsCheck(req=request.json, params=["func_name", "func_method", "params"]).required() data = request.json impl = FinanceIndexImpl() result = impl.check_calculate_func(data=data) return {"info": "校验指标计算函数", "result": result}, 200 except APIReturnError as e: return {"info": e.__str__()}, e.status_code @finance_route.route('/search_calculate_func', methods=['POST']) def search_indicators_func_route(): """查询指标计算函数""" try: RouteParamsCheck(req=request.json, params=["name", "tags", "status", "sort", "page_no", "page_size"]).required() data = request.json impl = FinanceIndexImpl() result = impl.search_calculate_func(data=data) return {"info": "查询指标计算函数", "result": result}, 200 except APIReturnError as e: return {"info": e.__str__()}, e.status_code @finance_route.route('/lock_calculate_func', methods=['GET']) def lock_calculate_func_route(): """锁定指标计算函数""" try: RouteParamsCheck(request.args, ["fid"]).required() fid = request.args["fid"] impl = FinanceIndexImpl() result = impl.lock_calculate_func(fid=fid) return {"info": "锁定指标计算函数", "result": result}, 200 except APIReturnError as e: return {"info": e.__str__()}, e.status_code @finance_route.route('/operate_calculate_func', methods=['GET', 'POST']) def operate_calculate_func_route(): """查看/编辑函数""" try: if request.method == 'GET': RouteParamsCheck(request.args, ["fid"]).required() fid = request.args["fid"] impl = FinanceIndexImpl() result = impl.view_calculate_func(fid=fid) return {"info": "查看指标计算函数", "result": result}, 200 if request.method == 'POST': RouteParamsCheck(request.json, ["func_id", "func_name", "describe", "method", "params", "tags"]).required() data = request.json impl = FinanceIndexImpl() result = impl.edit_calculate_func(data=data) return {"info": "编辑指标计算函数", "result": result}, 200 except APIReturnError as e: return {"info": e.__str__()}, e.status_code @finance_route.route('/delete_calculate_func', methods=['GET']) def delete_calculate_func_route(): """删除函数""" try: RouteParamsCheck(request.args, ["fid"]).required() fid = request.args["fid"] impl = FinanceIndexImpl() result = impl.delete_calculate_func(fid=fid) return {"info": "删除指标计算函数", "result": result}, 200 except APIReturnError as e: return {"info": e.__str__()}, e.status_code