indexstore/Indicator/crud.py

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