feat(recruiter): 添加招聘者账号管理模块及相关支持

- 新增招聘者账号数据库表结构及SQL建表脚本
- 实现招聘者实体类及账号状态枚举
- 添加SQLAlchemy数据库模型及管理器支持招聘者数据存储
- 实现招聘者数据访问层(Mapper)进行增删改查操作
- 开发招聘者服务层,支持账号添加、启用、停用、删除、列表及爬虫注册
- 新增命令行工具add_recruiter.py,便于管理招聘者账号
- 修改主应用初始化流程,集成招聘者服务并通过数据库加载活跃账号爬虫
- 主程序示例中新增招聘者账号展示与调用爬取任务示范
- 更新项目依赖,增加SQLAlchemy、PyMySQL及Cryptography库支持
- 修改.gitignore,新增.qoder目录例外规则
This commit is contained in:
2026-03-24 14:36:01 +08:00
parent 6a5495005e
commit 04596d298b
12 changed files with 955 additions and 19 deletions

View File

@@ -2,7 +2,23 @@
-- 支持: MySQL 8.0+ / SQLite 3 / PostgreSQL
-- ============================================
-- 1. 候选人主表
-- 1. 招聘者账号表 (存储各平台账号信息)
-- ============================================
CREATE TABLE IF NOT EXISTS recruiters (
id VARCHAR(64) PRIMARY KEY,
name VARCHAR(128) NOT NULL, -- 招聘者名称/标识
source VARCHAR(32) NOT NULL, -- 平台: BOSS, LIEPIN, etc.
wt_token VARCHAR(512) NOT NULL, -- WT Token (加密存储)
status VARCHAR(32) DEFAULT 'ACTIVE', -- ACTIVE, INACTIVE, EXPIRED
last_used_at TIMESTAMP, -- 最后使用时间
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uk_source_token (source, wt_token(255)),
INDEX idx_status (status)
);
-- ============================================
-- 2. 候选人主表
-- ============================================
CREATE TABLE IF NOT EXISTS candidates (
id VARCHAR(64) PRIMARY KEY,
@@ -34,7 +50,7 @@ CREATE TABLE IF NOT EXISTS candidates (
);
-- ============================================
-- 2. 简历内容表
-- 3. 简历内容表
-- ============================================
CREATE TABLE IF NOT EXISTS resumes (
id VARCHAR(64) PRIMARY KEY,
@@ -51,7 +67,7 @@ CREATE TABLE IF NOT EXISTS resumes (
);
-- ============================================
-- 3. 职位信息表
-- 4. 职位信息表
-- ============================================
CREATE TABLE IF NOT EXISTS jobs (
id VARCHAR(64) PRIMARY KEY,
@@ -72,7 +88,7 @@ CREATE TABLE IF NOT EXISTS jobs (
);
-- ============================================
-- 4. 评价方案表
-- 5. 评价方案表
-- ============================================
CREATE TABLE IF NOT EXISTS evaluation_schemas (
id VARCHAR(64) PRIMARY KEY,
@@ -88,7 +104,7 @@ CREATE TABLE IF NOT EXISTS evaluation_schemas (
);
-- ============================================
-- 5. 评价记录表
-- 6. 评价记录表
-- ============================================
CREATE TABLE IF NOT EXISTS evaluations (
id VARCHAR(64) PRIMARY KEY,
@@ -114,7 +130,7 @@ CREATE TABLE IF NOT EXISTS evaluations (
);
-- ============================================
-- 6. 通知记录表
-- 7. 通知记录表
-- ============================================
CREATE TABLE IF NOT EXISTS notifications (
id VARCHAR(64) PRIMARY KEY,
@@ -134,7 +150,7 @@ CREATE TABLE IF NOT EXISTS notifications (
);
-- ============================================
-- 7. 插入默认评价方案
-- 8. 插入默认评价方案
-- ============================================
INSERT INTO evaluation_schemas (id, name, description, dimensions, weights, is_default) VALUES
('general', '通用评价方案', '适用于各类岗位的通用评价方案',