changes
This commit is contained in:
parent
5c82499aad
commit
7327d35467
|
@ -41,3 +41,21 @@ def get_scorecard_by_id(db: Session, _id: str):
|
|||
def get_scorecard_by_name(db: Session, name: str):
|
||||
item = db.query(Model.ScoreCard).filter_by(name=name).first()
|
||||
return item
|
||||
|
||||
|
||||
def search_scorecard(db: Session, schema: Schema.SearchScoreCardReqBody):
|
||||
|
||||
page = 1 if schema.page < 1 else (100 if schema.page > 100 else schema.page)
|
||||
pagesize = 5 if schema.pagesize < 5 else (20 if schema.pagesize > 20 else schema.pagesize)
|
||||
|
||||
items = db.query(Model.ScoreCard).filter(
|
||||
or_(Model.ScoreCard.name.like("%{}%".format("" if schema.name is None else schema.name)), schema.name is None),
|
||||
or_(Model.ScoreCard.subcategory_id == schema.subcategory_id, schema.subcategory_id is None)
|
||||
).offset((page-1)*pagesize).limit(pagesize).all()
|
||||
|
||||
count = db.query(Model.ScoreCard).filter(
|
||||
or_(Model.ScoreCard.name.like("%{}%".format("" if schema.name is None else schema.name)), schema.name is None),
|
||||
or_(Model.ScoreCard.subcategory_id == schema.subcategory_id, schema.subcategory_id is None)
|
||||
).count()
|
||||
|
||||
return items, count
|
||||
|
|
|
@ -21,6 +21,13 @@ class ScoreCard(Base):
|
|||
process_table = relationship("ScoreCardProcessTable", backref="scorecard", uselist=False)
|
||||
scorecard_dp_ac_auth = relationship("ScoreCardDpAcAuth", back_populates="scorecard")
|
||||
|
||||
def search_result_format(self):
|
||||
__dict = {c.name: getattr(self, c.name, None) for c in self.__table__.columns}
|
||||
__dict.update({"subcategory": self.subcategory.__str__()})
|
||||
__dict.pop("subcategory_id")
|
||||
__dict.pop("description")
|
||||
return __dict
|
||||
|
||||
def dict(self):
|
||||
__dict = {c.name: getattr(self, c.name, None) for c in self.__table__.columns}
|
||||
__dict.update({"subcategory": self.subcategory.__str__()})
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
from typing import List
|
||||
|
||||
from fastapi import APIRouter, Depends, HTTPException
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
|
@ -10,7 +12,7 @@ from Utils.DataBase.SqlAlchemyUtils import get_db
|
|||
router = APIRouter(
|
||||
tags=["打分卡"],
|
||||
prefix="/api/model_store/scorecard",
|
||||
dependencies=[Depends(rbac)]
|
||||
# dependencies=[Depends(rbac)]
|
||||
)
|
||||
|
||||
|
||||
|
@ -65,3 +67,12 @@ def func(_id: str, db: Session = Depends(get_db)):
|
|||
raise HTTPException(status_code=404, detail="ScoreCard Not Found")
|
||||
|
||||
return item.dict()
|
||||
|
||||
|
||||
@router.post("/search", summary="查询打分卡", response_model=List[Schema.SearchScoreCardResItem])
|
||||
def func(schema: Schema.SearchScoreCardReqBody, db: Session = Depends(get_db)):
|
||||
scorecards, total = Crud.search_scorecard(db=db, schema=schema)
|
||||
|
||||
items = [scorecard.search_result_format() for scorecard in scorecards]
|
||||
|
||||
return items
|
||||
|
|
|
@ -19,3 +19,16 @@ class EditScoreCardReqBody(EditBaseModel):
|
|||
name: str = None
|
||||
description: str = None
|
||||
subcategory_id: str = None
|
||||
|
||||
|
||||
class SearchScoreCardReqBody(BaseModel):
|
||||
name: str = None
|
||||
subcategory_id: str = None
|
||||
page: int = 1
|
||||
pagesize: int = 20
|
||||
|
||||
|
||||
class SearchScoreCardResItem(BaseModel):
|
||||
id: str = None
|
||||
name: str = None
|
||||
subcategory: str = None
|
||||
|
|
Loading…
Reference in New Issue