changes
This commit is contained in:
parent
ea48728ff9
commit
a4eeb24912
|
@ -50,11 +50,13 @@ def search_scorecard(db: Session, schema: Schema.SearchScoreCardReqBody):
|
||||||
|
|
||||||
items = db.query(Model.ScoreCard).filter(
|
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.name.like("%{}%".format("" if schema.name is None else schema.name)), schema.name is None),
|
||||||
|
or_(Model.ScoreCard.major_category_id == schema.major_category_id, schema.major_category_id is None),
|
||||||
or_(Model.ScoreCard.subcategory_id == schema.subcategory_id, schema.subcategory_id is None)
|
or_(Model.ScoreCard.subcategory_id == schema.subcategory_id, schema.subcategory_id is None)
|
||||||
).offset((page-1)*pagesize).limit(pagesize).all()
|
).offset((page-1)*pagesize).limit(pagesize).all()
|
||||||
|
|
||||||
count = db.query(Model.ScoreCard).filter(
|
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.name.like("%{}%".format("" if schema.name is None else schema.name)), schema.name is None),
|
||||||
|
or_(Model.ScoreCard.major_category_id == schema.major_category_id, schema.major_category_id is None),
|
||||||
or_(Model.ScoreCard.subcategory_id == schema.subcategory_id, schema.subcategory_id is None)
|
or_(Model.ScoreCard.subcategory_id == schema.subcategory_id, schema.subcategory_id is None)
|
||||||
).count()
|
).count()
|
||||||
|
|
||||||
|
|
|
@ -12,8 +12,10 @@ class ScoreCard(Base):
|
||||||
id = Column(String(16), primary_key=True)
|
id = Column(String(16), primary_key=True)
|
||||||
name = Column(String(16), unique=True, index=True)
|
name = Column(String(16), unique=True, index=True)
|
||||||
description = Column(LONGTEXT)
|
description = Column(LONGTEXT)
|
||||||
|
major_category_id = Column(String(16), ForeignKey("scorecard_major_category.id"))
|
||||||
subcategory_id = Column(String(16), ForeignKey("scorecard_subcategory.id"))
|
subcategory_id = Column(String(16), ForeignKey("scorecard_subcategory.id"))
|
||||||
|
|
||||||
|
major_category = relationship("ScoreCardMajorCategory", backref="scorecard", uselist=False)
|
||||||
subcategory = relationship("ScoreCardSubCategory", backref="scorecard", uselist=False)
|
subcategory = relationship("ScoreCardSubCategory", backref="scorecard", uselist=False)
|
||||||
data_table = relationship("ScoreCardDataTable", backref="scorecard", uselist=False)
|
data_table = relationship("ScoreCardDataTable", backref="scorecard", uselist=False)
|
||||||
index_table = relationship("ScoreCardIndexTable", backref="scorecard", uselist=False)
|
index_table = relationship("ScoreCardIndexTable", backref="scorecard", uselist=False)
|
||||||
|
@ -23,6 +25,7 @@ class ScoreCard(Base):
|
||||||
|
|
||||||
def search_result_format(self):
|
def search_result_format(self):
|
||||||
__dict = {c.name: getattr(self, c.name, None) for c in self.__table__.columns}
|
__dict = {c.name: getattr(self, c.name, None) for c in self.__table__.columns}
|
||||||
|
__dict.update({"major_category": self.major_category.__str__()})
|
||||||
__dict.update({"subcategory": self.subcategory.__str__()})
|
__dict.update({"subcategory": self.subcategory.__str__()})
|
||||||
__dict.pop("subcategory_id")
|
__dict.pop("subcategory_id")
|
||||||
__dict.pop("description")
|
__dict.pop("description")
|
||||||
|
@ -118,6 +121,9 @@ class ScoreCardMajorCategory(Base):
|
||||||
|
|
||||||
subcategories = relationship("ScoreCardSubCategory", backref="scorecard_major_category")
|
subcategories = relationship("ScoreCardSubCategory", backref="scorecard_major_category")
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.name
|
||||||
|
|
||||||
def dict(self):
|
def dict(self):
|
||||||
__dict = {c.name: getattr(self, c.name, None) for c in self.__table__.columns}
|
__dict = {c.name: getattr(self, c.name, None) for c in self.__table__.columns}
|
||||||
__dict.update({"subcategories": [subcategory.dict() for subcategory in list(self.subcategories)]})
|
__dict.update({"subcategories": [subcategory.dict() for subcategory in list(self.subcategories)]})
|
||||||
|
|
|
@ -10,7 +10,7 @@ from Utils.DataBase.SqlAlchemyUtils import get_db
|
||||||
router = APIRouter(
|
router = APIRouter(
|
||||||
tags=["打分卡"],
|
tags=["打分卡"],
|
||||||
prefix="/api/model_store/scorecard",
|
prefix="/api/model_store/scorecard",
|
||||||
dependencies=[Depends(rbac)]
|
# dependencies=[Depends(rbac)]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -20,6 +20,10 @@ def func(schema: Schema.CreateScoreCardReqBody, db: Session = Depends(get_db)):
|
||||||
if item:
|
if item:
|
||||||
raise HTTPException(status_code=202, detail="ScoreCard Already Existed")
|
raise HTTPException(status_code=202, detail="ScoreCard Already Existed")
|
||||||
|
|
||||||
|
item = CategoryCrud.get_major_category_by_id(db=db, _id=schema.major_category_id)
|
||||||
|
if not item:
|
||||||
|
raise HTTPException(status_code=404, detail="MajorCategory Not Found")
|
||||||
|
|
||||||
item = CategoryCrud.get_sub_category_by_id(db=db, _id=schema.subcategory_id)
|
item = CategoryCrud.get_sub_category_by_id(db=db, _id=schema.subcategory_id)
|
||||||
if not item:
|
if not item:
|
||||||
raise HTTPException(status_code=404, detail="Subcategory Not Found")
|
raise HTTPException(status_code=404, detail="Subcategory Not Found")
|
||||||
|
@ -48,6 +52,10 @@ def func(_id: str, schema: Schema.EditScoreCardReqBody, db: Session = Depends(ge
|
||||||
if not item:
|
if not item:
|
||||||
raise HTTPException(status_code=404, detail="ScoreCard Not Found")
|
raise HTTPException(status_code=404, detail="ScoreCard Not Found")
|
||||||
|
|
||||||
|
item = CategoryCrud.get_major_category_by_id(db=db, _id=schema.major_category_id)
|
||||||
|
if not item:
|
||||||
|
raise HTTPException(status_code=404, detail="MajorCategory Not Found")
|
||||||
|
|
||||||
if schema.subcategory_id:
|
if schema.subcategory_id:
|
||||||
item = CategoryCrud.get_sub_category_by_id(db=db, _id=schema.subcategory_id)
|
item = CategoryCrud.get_sub_category_by_id(db=db, _id=schema.subcategory_id)
|
||||||
if not item:
|
if not item:
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
from typing import Optional, List
|
from typing import List
|
||||||
from pydantic import BaseModel, constr
|
from pydantic import BaseModel
|
||||||
|
|
||||||
from Utils.Schemas.CommonSchema import EditBaseModel
|
from Utils.Schemas.CommonSchema import EditBaseModel
|
||||||
|
|
||||||
|
@ -12,17 +12,20 @@ class CreateScoreCardDpAcAuthReqBody(BaseModel):
|
||||||
class CreateScoreCardReqBody(BaseModel):
|
class CreateScoreCardReqBody(BaseModel):
|
||||||
name: str = None
|
name: str = None
|
||||||
description: str = None
|
description: str = None
|
||||||
|
major_category_id: str = None
|
||||||
subcategory_id: str = None
|
subcategory_id: str = None
|
||||||
|
|
||||||
|
|
||||||
class EditScoreCardReqBody(EditBaseModel):
|
class EditScoreCardReqBody(EditBaseModel):
|
||||||
name: str = None
|
name: str = None
|
||||||
description: str = None
|
description: str = None
|
||||||
|
major_category_id: str = None
|
||||||
subcategory_id: str = None
|
subcategory_id: str = None
|
||||||
|
|
||||||
|
|
||||||
class SearchScoreCardReqBody(BaseModel):
|
class SearchScoreCardReqBody(BaseModel):
|
||||||
name: str = None
|
name: str = None
|
||||||
|
major_category_id: str = None
|
||||||
subcategory_id: str = None
|
subcategory_id: str = None
|
||||||
page: int = 1
|
page: int = 1
|
||||||
pagesize: int = 20
|
pagesize: int = 20
|
||||||
|
@ -31,6 +34,7 @@ class SearchScoreCardReqBody(BaseModel):
|
||||||
class SearchScoreCardResItem(BaseModel):
|
class SearchScoreCardResItem(BaseModel):
|
||||||
id: str = None
|
id: str = None
|
||||||
name: str = None
|
name: str = None
|
||||||
|
major_category: str = None
|
||||||
subcategory: str = None
|
subcategory: str = None
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue