fix:修复角色管理职业,删除失败问题

This commit is contained in:
xiamuceer
2026-01-09 21:19:18 +08:00
parent 1b32d87581
commit 87b41b8d81
2 changed files with 18 additions and 3 deletions
+15
View File
@@ -488,6 +488,8 @@ async def delete_character(
db: AsyncSession = Depends(get_db)
):
"""删除角色"""
from app.models.career import CharacterCareer
result = await db.execute(
select(Character).where(Character.id == character_id)
)
@@ -500,9 +502,22 @@ async def delete_character(
user_id = getattr(request.state, 'user_id', None)
await verify_project_access(character.project_id, user_id, db)
# 清理角色-职业关联关系
career_relations_result = await db.execute(
select(CharacterCareer).where(CharacterCareer.character_id == character_id)
)
career_relations = career_relations_result.scalars().all()
for relation in career_relations:
await db.delete(relation)
logger.info(f"删除角色职业关联:character_id={character_id}, career_id={relation.career_id}, type={relation.career_type}")
# 删除角色
await db.delete(character)
await db.commit()
logger.info(f"删除角色成功:{character.name} (ID: {character_id}), 清理了 {len(career_relations)} 条职业关联")
return {"message": "角色删除成功"}
+3 -3
View File
@@ -361,7 +361,7 @@ async def career_system_generator(
rules=world_data.get('rules', '未设定')
)
estimated_total = 8000
estimated_total = 5000
MAX_CAREER_RETRIES = 3 # 最多重试3次
career_retry_count = 0
career_generation_success = False
@@ -685,7 +685,7 @@ async def characters_generator(
yield await tracker.generating(
current_chars=0,
estimated_total=1000,
estimated_total=BATCH_SIZE * 800,
message=f"生成第{batch_idx+1}/{total_batches}批角色 ({current_batch_size}个)",
retry_count=retry_count,
max_retries=MAX_RETRIES
@@ -733,7 +733,7 @@ async def characters_generator(
accumulated_text = ""
chunk_count = 0
estimated_total = 1000
estimated_total = BATCH_SIZE * 800
async for chunk in user_ai_service.generate_text_stream(
prompt=prompt,