98 lines
4.7 KiB
Python
98 lines
4.7 KiB
Python
from fastapi import APIRouter, Depends
|
|
from sqlalchemy.orm import Session
|
|
|
|
from Context.common import CompanyUserTokenDataModel, company_user_auth_util, common_db, mg_db, AdminUserTokenDataModel, \
|
|
admin_user_auth_util
|
|
from . import Crud
|
|
from . import Schemas
|
|
from .Models import RateFlow, RateFlowNode
|
|
from Utils.MongoUtils import MongoConnect
|
|
|
|
"""
|
|
一个流程所需的基本接口
|
|
"""
|
|
|
|
router = APIRouter(prefix="/rate_flow")
|
|
|
|
|
|
@router.post("/create_rate_flow_from_company_user", summary="企业用户创建评级流程")
|
|
def func(token: CompanyUserTokenDataModel = Depends(company_user_auth_util.token_data_depend),
|
|
db: Session = Depends(common_db.get_db)):
|
|
company_name = token.company_name
|
|
rate_flow = Crud.create_rate_flow(db, company_name)
|
|
nodes = ["表单填报", "三方数据录入", "后台审核校正", "评级"]
|
|
for node_num in range(len(nodes)):
|
|
node_name = nodes[node_num]
|
|
Crud.create_rate_flow_node(db, node_num=node_num, node_name=node_name, rate_process_id=rate_flow.id)
|
|
return {"message": "创建成功", "code": 200}
|
|
|
|
|
|
@router.post("/get_rate_flow_by_id", summary="获取评级流程数据", response_model=Schemas.GetRateFlowByIdRes)
|
|
def func(req: Schemas.GetRateFlowByIdReq,
|
|
token: CompanyUserTokenDataModel = Depends(company_user_auth_util.token_data_depend),
|
|
db: Session = Depends(common_db.get_db), mongodb: MongoConnect = Depends(mg_db.get_db)):
|
|
rate_flow_data = db.query(RateFlow).filter(RateFlow.id == req.id).first()
|
|
nodes = Crud.get_rate_flow_all_nodes(RateFlow.id, db, mongodb, with_content=True)
|
|
rate_flow_data.nodes = nodes
|
|
return rate_flow_data
|
|
|
|
|
|
@router.post("/get_rate_flow_by_company_user", summary="获取评级列表",
|
|
response_model=Schemas.GetRateFlowByCompanyUserRes)
|
|
def func(token: CompanyUserTokenDataModel = Depends(company_user_auth_util.token_data_depend),
|
|
db: Session = Depends(common_db.get_db), mongodb: MongoConnect = Depends(mg_db.get_db)):
|
|
items = [item for item in db.query(RateFlow).filter(RateFlow.company_name == token.company_name)]
|
|
return items
|
|
|
|
|
|
@router.post("/rate_form_save", summary="表单填报", tags=['评级节点'])
|
|
def func(req: Schemas.RateFormSaveReq,
|
|
token: CompanyUserTokenDataModel = Depends(company_user_auth_util.token_data_depend),
|
|
db: Session = Depends(common_db.get_db), mongodb: MongoConnect = Depends(mg_db.get_db)):
|
|
node = db.query(RateFlowNode).filter(
|
|
RateFlowNode.rate_process_id == req.rate_flow_id and RateFlowNode.node_name == '表单填报').first()
|
|
Crud.save_rate_flow_node(node.id, req.data, db, mongodb)
|
|
Crud.change_rate_node_status(db, node.id, "完成")
|
|
# todo:表单解析
|
|
return {"message": "保存成功", "code": 200}
|
|
|
|
|
|
# 管理端接口
|
|
@router.post("/load_api_data", summary="三方数据录入", tags=['评级节点'])
|
|
def func(req: Schemas.LoadApiDataReq,
|
|
token: AdminUserTokenDataModel = Depends(admin_user_auth_util.token_data_depend),
|
|
db: Session = Depends(common_db.get_db), mongodb: MongoConnect = Depends(mg_db.get_db)):
|
|
node = db.query(RateFlowNode).filter(
|
|
RateFlowNode.rate_process_id == req.rate_flow_id and RateFlowNode.node_name == '三方数据录入').first()
|
|
# todo: 三方数据录入
|
|
data = {}
|
|
Crud.save_rate_flow_node(node.id, data, db, mongodb)
|
|
Crud.change_rate_node_status(db, node.id, "完成")
|
|
return {"message": "保存成功", "code": 200}
|
|
|
|
|
|
# 管理端接口
|
|
@router.post("/save_man_data", summary="后台审核校正", tags=['评级节点'])
|
|
def func(req: Schemas.SaveManDataReq,
|
|
token: AdminUserTokenDataModel = Depends(admin_user_auth_util.token_data_depend),
|
|
db: Session = Depends(common_db.get_db), mongodb: MongoConnect = Depends(mg_db.get_db)):
|
|
node = db.query(RateFlowNode).filter(
|
|
RateFlowNode.rate_process_id == req.rate_flow_id and RateFlowNode.node_name == '后台审核校正').first()
|
|
# todo: 三方数据录入
|
|
data = {}
|
|
Crud.save_rate_flow_node(node.id, data, db, mongodb)
|
|
Crud.change_rate_node_status(db, node.id, "完成")
|
|
return {"message": "保存成功", "code": 200}
|
|
|
|
|
|
@router.post("/do_rate", summary="评级", tags=['评级节点'])
|
|
def func(req: Schemas.DoRateReq,
|
|
token: AdminUserTokenDataModel = Depends(admin_user_auth_util.token_data_depend),
|
|
db: Session = Depends(common_db.get_db), mongodb: MongoConnect = Depends(mg_db.get_db)):
|
|
node = db.query(RateFlowNode).filter(
|
|
RateFlowNode.rate_process_id == req.rate_flow_id and RateFlowNode.node_name == '评级').first()
|
|
# todo: 进行评级
|
|
data = {}
|
|
Crud.save_rate_flow_node(node.id, data, db, mongodb)
|
|
Crud.change_rate_node_status(db, node.id, "完成")
|
|
return {"message": "保存成功", "code": 200} |