129 lines
2.8 KiB
Python
129 lines
2.8 KiB
Python
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
|