feat(domain): 添加ResumeParsed对象转字典方法和日志打印

- 在ResumeParsed类中新增to_dict方法,将对象转换为字典
- 在account_sync_job.py中增加VIP等级、简历查看次数相关日志打印
- 从resume_process_job.py中删除简历查看次数判断及跳过逻辑,简化同步流程
This commit is contained in:
2026-03-24 18:17:28 +08:00
parent 91a4094881
commit 7e60476175
3 changed files with 10 additions and 6 deletions

View File

@@ -1,5 +1,5 @@
"""Resume entity definitions""" """Resume entity definitions"""
from dataclasses import dataclass, field from dataclasses import dataclass, field, asdict
from datetime import datetime from datetime import datetime
from typing import Optional, List, Dict, Any from typing import Optional, List, Dict, Any
@@ -38,6 +38,10 @@ class ResumeParsed:
# 原始解析数据 # 原始解析数据
raw_data: Optional[Dict[str, Any]] = None raw_data: Optional[Dict[str, Any]] = None
def to_dict(self) -> Dict[str, Any]:
"""将对象转换为字典"""
return asdict(self)
@dataclass @dataclass
class Resume: class Resume:

View File

@@ -238,6 +238,7 @@ class AccountSyncJob:
# 解析VIP信息 # 解析VIP信息
if hasattr(data, 'vipLevel'): if hasattr(data, 'vipLevel'):
recruiter.privilege.vip_level = str(data.vipLevel) recruiter.privilege.vip_level = str(data.vipLevel)
print(f"[{datetime.now()}] 账号 {recruiter.name} VIP等级: {data.vipLevel}")
elif isinstance(data, dict) and 'vipLevel' in data: elif isinstance(data, dict) and 'vipLevel' in data:
recruiter.privilege.vip_level = str(data['vipLevel']) recruiter.privilege.vip_level = str(data['vipLevel'])
@@ -260,14 +261,18 @@ class AccountSyncJob:
# 解析简历查看次数 # 解析简历查看次数
if hasattr(data, 'remainCount'): if hasattr(data, 'remainCount'):
print(f"[{datetime.now()}] 账号 {recruiter.name} 剩余简历查看次数: {data.remainCount}")
recruiter.privilege.resume_view_count = int(data.remainCount) recruiter.privilege.resume_view_count = int(data.remainCount)
elif isinstance(data, dict) and 'remainCount' in data: elif isinstance(data, dict) and 'remainCount' in data:
print(f"[{datetime.now()}] 账号 {recruiter.name} 剩余简历查看次数: {data['remainCount']}")
recruiter.privilege.resume_view_count = int(data['remainCount']) recruiter.privilege.resume_view_count = int(data['remainCount'])
if hasattr(data, 'totalCount'): if hasattr(data, 'totalCount'):
recruiter.privilege.resume_view_total = int(data.totalCount) recruiter.privilege.resume_view_total = int(data.totalCount)
print(f"[{datetime.now()}] 账号 {recruiter.name} 总简历查看次数: {data.totalCount}")
elif isinstance(data, dict) and 'totalCount' in data: elif isinstance(data, dict) and 'totalCount' in data:
recruiter.privilege.resume_view_total = int(data['totalCount']) recruiter.privilege.resume_view_total = int(data['totalCount'])
print(f"[{datetime.now()}] 账号 {recruiter.name} 总简历查看次数: {data['totalCount']}")
except Exception as e: except Exception as e:
print(f"[{datetime.now()}] 解析权益数据失败: {e}") print(f"[{datetime.now()}] 解析权益数据失败: {e}")

View File

@@ -132,11 +132,6 @@ class ResumeProcessJob:
print(f"[{datetime.now()}] 账号 {recruiter.name} 上次同步失败,跳过") print(f"[{datetime.now()}] 账号 {recruiter.name} 上次同步失败,跳过")
continue continue
# 检查是否有查看次数(可选,有些平台可能不限制)
if recruiter.privilege and recruiter.privilege.resume_view_count == 0:
print(f"[{datetime.now()}] 账号 {recruiter.name} 简历查看次数已用完,跳过")
continue
eligible_recruiters.append(recruiter) eligible_recruiters.append(recruiter)
return eligible_recruiters return eligible_recruiters