from flask import Blueprint, request from Modules.Models.Score.ScoreImpl import ScoreModelImpl from Utils.ErrorUtil import APIReturnError from Utils.RouteUtil import RouteParamsCheck score_model_route = Blueprint('score_model', __name__) @score_model_route.route('/search_score_model', methods=['POST']) def search_score_model_route(): """搜索打分模型""" try: RouteParamsCheck(request.json, ["sort", "page_no", "page_size"]).required() data = request.json ipml = ScoreModelImpl() result = ipml.search_score_model(data=data) return {"info": "查询模型", "result": result}, 200 except APIReturnError as e: return {"info": e.__str__()}, e.status_code @score_model_route.route('/new_score_model', methods=['POST']) def new_score_model_route(): """构建打分模型""" try: RouteParamsCheck(request.json, ["model_name", "level_setting", "dimension", "author", "tags"]).required() data = request.json ipml = ScoreModelImpl() model = ipml.new_score_model(data=data) result = ipml.save_score_model(model=model) return {"info": "构建打分模型", "result": result}, 200 except APIReturnError as e: return {"info": e.__str__()}, e.status_code @score_model_route.route('check_score_model', methods=['POST']) def check_score_model_route(): """校验打分模型""" try: RouteParamsCheck(request.json, ["company", "model_name", "level_setting", "dimension"]).required() data = request.json ipml = ScoreModelImpl() model = ipml.new_score_model(data=data) result = ipml.check_score_model(model=model, company=data['company']) return {"info": "校验打分模型", "result": result}, 200 except APIReturnError as e: return {"info": e.__str__()}, e.status_code @score_model_route.route('/operate_score_model', methods=['GET', 'POST']) def operate_score_model_route(): """操作打分模型""" try: if request.method == 'GET': RouteParamsCheck(request.args, ["mid"]).required() mid = request.args['mid'] ipml = ScoreModelImpl() result = ipml.view_score_model(mid=mid) return {"info": "查看模型", "result": result}, 200 if request.method == 'POST': RouteParamsCheck(request.json, ["model_id", "model_name", "level_setting", "dimension", "author", "tags"]).required() data = request.json ipml = ScoreModelImpl() model = ipml.new_score_model(data=data) result = ipml.eidt_score_model(model=model, model_id=data['model_id']) return {"info": "编辑打分模型", "result": result}, 200 except APIReturnError as e: return {"info": e.__str__()}, e.status_code @score_model_route.route('/lock_score_model', methods=['GET']) def lock_score_model_route(): """锁定打分模型""" try: RouteParamsCheck(request.args, ["mid"]).required() mid = request.args["mid"] impl = ScoreModelImpl() result = impl.lock_score_model(mid=mid) return {"info": "锁定打分模型", "result": result}, 200 except APIReturnError as e: return {"info": e.__str__()}, e.status_code @score_model_route.route('/delete_score_model', methods=['GET']) def delete_score_model_route(): """删除模型""" try: RouteParamsCheck(request.args, ["mid"]).required() mid = request.args["mid"] impl = ScoreModelImpl() result = impl.delete_score_model(mid=mid) return {"info": "删除打分模型", "result": result}, 200 except APIReturnError as e: return {"info": e.__str__()}, e.status_code