feat(card): 卡片展示/隐藏调整为批量接口
This commit is contained in:
@@ -274,19 +274,19 @@ async def update_card_price_info(
|
|||||||
return {'message': 'ok' if result is not None else 'fail'}
|
return {'message': 'ok' if result is not None else 'fail'}
|
||||||
|
|
||||||
|
|
||||||
@card_router.post('/{card_id}/display/', summary='卡片展示/隐藏', response_model=base_schema.BaseResponse)
|
@card_router.post('/display/', summary='卡片展示/隐藏', response_model=base_schema.BaseResponse)
|
||||||
async def display_card_status(
|
async def display_card_status(
|
||||||
card_id: int,
|
|
||||||
action: Literal['displayed', 'undisplayed'],
|
action: Literal['displayed', 'undisplayed'],
|
||||||
|
payload: schema.DisplayCardIn,
|
||||||
login_user: LoginUser = Depends(get_current_user_form_http),
|
login_user: LoginUser = Depends(get_current_user_form_http),
|
||||||
db_session: AsyncSession = Depends(get_async_session)
|
db_session: AsyncSession = Depends(get_async_session)
|
||||||
):
|
):
|
||||||
db_crud = CRUD(db_session, UserCollection)
|
db_crud = CRUD(db_session, UserCollection)
|
||||||
result = await db_crud.update(
|
result = await db_crud.updates(
|
||||||
data={
|
data={
|
||||||
'displayed': (action == 'displayed'),
|
'displayed': (action == 'displayed'),
|
||||||
},
|
},
|
||||||
filters={'card_id': card_id, 'user_id': login_user.user_id}
|
filters={'card_id__in': payload.card_ids, 'user_id': login_user.user_id}
|
||||||
)
|
)
|
||||||
return {'message': 'ok' if result is not None else 'fail'}
|
return {'message': 'ok' if result is not None else 'fail'}
|
||||||
|
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ class Card(BaseModel):
|
|||||||
class CardIn(Card):
|
class CardIn(Card):
|
||||||
category: CardCategoryType
|
category: CardCategoryType
|
||||||
source: PlatformSourceType
|
source: PlatformSourceType
|
||||||
diy_source: Optional[str] = None
|
diy_source: Optional[constr(max_length=50)] = None
|
||||||
reward: Optional[bool] = False
|
reward: Optional[bool] = False
|
||||||
|
|
||||||
|
|
||||||
@@ -71,8 +71,13 @@ class CardOut(CardVisitOut):
|
|||||||
card_year: str | None
|
card_year: str | None
|
||||||
purchase_price: Optional[condecimal(max_digits=10, decimal_places=2)] = None
|
purchase_price: Optional[condecimal(max_digits=10, decimal_places=2)] = None
|
||||||
display_price: Optional[condecimal(max_digits=10, decimal_places=2)] = None
|
display_price: Optional[condecimal(max_digits=10, decimal_places=2)] = None
|
||||||
|
displayed: Optional[bool] = True
|
||||||
diy_source: Optional[str] = None
|
diy_source: Optional[str] = None
|
||||||
|
|
||||||
|
|
||||||
|
class DisplayCardIn(BaseModel):
|
||||||
|
card_ids: list[int]
|
||||||
|
|
||||||
|
|
||||||
class DeleteCardIn(BaseModel):
|
class DeleteCardIn(BaseModel):
|
||||||
card_ids: list[int]
|
card_ids: list[int]
|
||||||
|
|||||||
Reference in New Issue
Block a user