定制简历 添加 原简历id 简历名字段
This commit is contained in:
@@ -72,8 +72,11 @@ def _rollback_key(user_id: int, job_id: int) -> str:
|
||||
return f"{ROLLBACK_PREFIX}{user_id}:{job_id}"
|
||||
|
||||
|
||||
async def save(user_id: int, job_id: int, cr: CustomizeResume) -> None:
|
||||
"""保存定制简历:备份旧版本到 Redis 用于回滚 + 写数据库"""
|
||||
async def save(user_id: int, job_id: int, cr: CustomizeResume, resume_id: int | None = None, resume_name: str | None = None) -> None:
|
||||
"""保存定制简历:备份旧版本到 Redis 用于回滚 + 写数据库
|
||||
|
||||
resume_id / resume_name 仅在首次创建(INSERT)时写入,UPDATE 不更新。
|
||||
"""
|
||||
content = cr.model_dump(by_alias=True)
|
||||
|
||||
async for session in get_db():
|
||||
@@ -86,23 +89,33 @@ async def save(user_id: int, job_id: int, cr: CustomizeResume) -> None:
|
||||
await session.execute(update(UserJobCustomizeResume).where(
|
||||
UserJobCustomizeResume.id == record.id).values(content=content))
|
||||
else:
|
||||
session.add(UserJobCustomizeResume(id=next_id(), user_id=user_id, job_id=job_id, content=content))
|
||||
session.add(UserJobCustomizeResume(id=next_id(), user_id=user_id, job_id=job_id, resume_id=resume_id, resume_name=resume_name, content=content))
|
||||
|
||||
|
||||
async def get(user_id: int, job_id: int) -> dict | None:
|
||||
"""查询定制简历,查不到则加载默认简历构建返回"""
|
||||
data = None
|
||||
"""查询定制简历,查不到则加载默认简历构建返回
|
||||
|
||||
返回结构:{id, resumeId, resumeName, resume, education, work, internship, project, competition}
|
||||
fallback 默认简历时:id=None, resumeId=默认简历id, resumeName=原简历名
|
||||
"""
|
||||
async for session in get_db():
|
||||
result = await session.execute(select(UserJobCustomizeResume).where(
|
||||
UserJobCustomizeResume.user_id == user_id, UserJobCustomizeResume.job_id == job_id))
|
||||
result = await session.execute(select(UserJobCustomizeResume).where(UserJobCustomizeResume.user_id == user_id, UserJobCustomizeResume.job_id == job_id))
|
||||
record = result.scalar_one_or_none()
|
||||
if record:
|
||||
data = CustomizeResume.model_validate(record.content).model_dump(by_alias=True)
|
||||
data["id"] = record.id
|
||||
data["resumeId"] = record.resume_id
|
||||
data["resumeName"] = record.resume_name
|
||||
return data
|
||||
else:
|
||||
# 没有定制简历,加载默认简历构建
|
||||
detail = await load_default_resume_detail(session, user_id)
|
||||
data = build_from_detail(detail).model_dump(by_alias=True)
|
||||
return data
|
||||
data["id"] = None
|
||||
data["resumeId"] = detail.resume.id
|
||||
data["resumeName"] = detail.resume.resume_name or ""
|
||||
return data
|
||||
return None
|
||||
|
||||
|
||||
async def rollback(user_id: int, job_id: int) -> None:
|
||||
|
||||
@@ -99,7 +99,7 @@ class JobAgentChatService:
|
||||
continue
|
||||
self._apply_optimize_result(cr, mod_name, idx, result)
|
||||
# 5. 存数据库
|
||||
await customize_resume_store.save(user_id, job_id, cr)
|
||||
await customize_resume_store.save(user_id, job_id, cr, resume_id=detail.resume.id, resume_name=f"{detail.resume.resume_name or ''}-定制")
|
||||
log.info(f"岗位简历优化已保存 [user={user_id}, job={job_id}]")
|
||||
# 6. 返回
|
||||
return cr.model_dump(by_alias=True)
|
||||
|
||||
@@ -132,7 +132,7 @@ class SkillGapService:
|
||||
if new_skills:
|
||||
log.info(f"定制简历追加技能: {new_skills}")
|
||||
# 6. 存数据库
|
||||
await customize_resume_store.save(user_id, job_id, cr)
|
||||
await customize_resume_store.save(user_id, job_id, cr, resume_id=detail.resume.id, resume_name=f"{detail.resume.resume_name or ''}-定制")
|
||||
log.info(f"定制简历已保存 [user={user_id}, job={job_id}]")
|
||||
|
||||
@staticmethod
|
||||
|
||||
Reference in New Issue
Block a user