from sqlalchemy.orm import Session from . import models, schemas def get_indicator(db: Session, _id: int): """ :param db: :param _id: :return: """ return db.query(models.Indicator).filter(models.Indicator.id == _id).first() def get_indicator_by_ename(db: Session, ename: str): """ :param db: :param ename: :return: """ return db.query(models.Indicator).filter(models.Indicator.ename == ename).first() def get_indicator_by_cname(db: Session, cname: str): """ :param cname: :param db: :param cname: :return: """ return db.query(models.Indicator).filter(models.Indicator.cname == cname).first() def get_indicators(db: Session, skip: int = 0, limit: int = 20): """ :param db: :param skip: :param limit: :return: """ return db.query(models.Indicator).offset(skip).limit(limit).all() def create_indicator(db: Session, indicator_create: schemas.IndicatorCreate): """ 创建指标 :param db: 数据库会话 :param indicator_create: :return: """ db_item = models.Indicator(**indicator_create.dict()) db.add(db_item) db.commit() db.refresh(db_item) return db_item def delete_indicator(db: Session, _id: int): """ 删除指标 :param db: :param _id: :return: """ db.query(models.Indicator).filter_by(id=_id).delete() db.commit() return True def edit_indicator(db: Session, _id: int, body: schemas.IndicatorEdit): """ 编辑指标 :param _id: :param db: 数据库会话 :param body: :return: """ db.query(models.Indicator).filter_by(id=_id).update(body.dict()) db.commit() return db.query(models.Indicator).filter(models.Indicator.id == _id).first() def get_parameters(db: Session, skip: int = 0, limit: int = 100): """ :param db: 数据库会话 :param skip: 开始位置 :param limit: 限制数量 :return: """ return db.query(models.Parameters).offset(skip).limit(limit).all() def create_indicator_parameters(db: Session, item: schemas.ParameterCreate, _id: int): """ :param db: 数据库会话 :param item: :param _id: :return: """ db_item = models.Parameters(**item.dict(), indicator_id=_id) db.add(db_item) db.commit() db.refresh(db_item) return db_item def delete_indicator_parameters(db: Session, _id: int): """ 删除指标参数 :param db: :param _id: :return: """ db.query(models.Parameters).filter_by(id=_id).delete() db.commit() return True def edit_indicator_parameters(db: Session, _id: int, body: schemas.ParameterEdit): """ 删除指标参数 :param body: :param db: :param _id: :return: """ db.query(models.Parameters).filter_by(id=_id).update(body.dict()) db.commit() return True