feat(domain): 添加ResumeParsed对象转字典方法和日志打印
- 在ResumeParsed类中新增to_dict方法,将对象转换为字典 - 在account_sync_job.py中增加VIP等级、简历查看次数相关日志打印 - 从resume_process_job.py中删除简历查看次数判断及跳过逻辑,简化同步流程
This commit is contained in:
@@ -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:
|
||||||
|
|||||||
@@ -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}")
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user