This commit is contained in:
aaron 2025-04-15 18:31:27 +08:00
parent b62b4dfb2e
commit 02c8d7f8ba
3 changed files with 30 additions and 3 deletions

View File

@ -79,4 +79,19 @@ async def delete_person_image(
) )
await person_image_service.delete_person_image(db=db, image_id=image_id) await person_image_service.delete_person_image(db=db, image_id=image_id)
return StandardResponse(code=200, message="删除人物形象成功") return StandardResponse(code=200, message="删除人物形象成功")
# 设置默认人物形象
@router.put("/{image_id}/set_default", tags=["person_images"])
async def set_default_person_image(
*,
db: AsyncSession = Depends(deps.get_db),
current_user: User = Depends(deps.get_current_user),
image_id: int
):
"""设置默认人物形象"""
image = await person_image_service.set_default_person_image(db=db, image_id=image_id, user_id=current_user.id)
if not image:
return BusinessError(code=400, message="设置默认人物形象失败")
return StandardResponse(code=200, message="设置默认人物形象成功", data=PersonImage.model_validate(image))

View File

@ -16,7 +16,7 @@ class UserCreate(UserBase):
"""创建用户请求模型""" """创建用户请求模型"""
pass pass
class UserUpdate(UserBase): class UserUpdate(BaseModel):
"""更新用户请求模型""" """更新用户请求模型"""
avatar: Optional[str] = None avatar: Optional[str] = None
nickname: Optional[str] = None nickname: Optional[str] = None

View File

@ -91,4 +91,16 @@ async def get_default_image(db: AsyncSession, user_id: int):
select(PersonImage) select(PersonImage)
.filter(PersonImage.user_id == user_id, PersonImage.is_default == True) .filter(PersonImage.user_id == user_id, PersonImage.is_default == True)
) )
return result.scalars().first() return result.scalars().first()
async def set_default_person_image(db: AsyncSession, image_id: int, user_id: int):
"""设置默认人物形象"""
db_image = await get_person_image(db, image_id)
if not db_image:
return None
# 先重置用户所有形象为非默认
await reset_default_images(db, user_id)
db_image.is_default = True
await db.commit()
await db.refresh(db_image)
return db_image