1
This commit is contained in:
874
_doc/功能规划文档.md
Normal file
874
_doc/功能规划文档.md
Normal file
@@ -0,0 +1,874 @@
|
||||
# 自动找工作系统 - 功能规划文档
|
||||
|
||||
> 版本: v1.0 | 规划日期: 2025-12-25 | 状态: 待开发
|
||||
|
||||
## 文档说明
|
||||
|
||||
本文档规划了自动找工作系统的未开发功能,按优先级分为4个方向共20项功能。每项功能包含现状分析、待开发内容和预期价值,可直接转化为开发任务。
|
||||
|
||||
## 优先级说明
|
||||
|
||||
- **HIGH**: 核心功能,对系统价值提升明显,建议优先开发
|
||||
- **MEDIUM**: 重要优化,提升用户体验和系统性能,可分阶段实施
|
||||
- **LOW**: 未来规划,可根据实际需求决定是否开发
|
||||
|
||||
---
|
||||
|
||||
## 第一部分: 功能完善和补充
|
||||
|
||||
**优先级: HIGH** | **预计工期: 4-6周**
|
||||
|
||||
### 1.1 自动聊天功能完善 ⭐⭐⭐⭐⭐
|
||||
|
||||
**现状分析**
|
||||
- ✅ 聊天记录表结构完整 (`chat_records`)
|
||||
- ✅ AI聊天内容生成基础框架 (`aiService.generateChatContent`)
|
||||
- ✅ 聊天类型分类 (greeting/followup/interview/reply)
|
||||
- ❌ AI生成器未完整实现
|
||||
- ❌ 聊天时机判断逻辑缺失
|
||||
- ❌ 多轮对话上下文管理未实现
|
||||
|
||||
**待开发内容**
|
||||
1. **AI聊天内容生成器完整实现**
|
||||
- 完善 Prompt 模板(不同场景)
|
||||
- 集成简历信息和岗位描述
|
||||
- 个性化内容生成(根据HR回复调整策略)
|
||||
- 长度和语气控制
|
||||
|
||||
2. **聊天时机智能判断**
|
||||
- HR查看后多久发消息(规则+AI预测)
|
||||
- 避免过于频繁或过晚联系
|
||||
- 根据不同平台特性调整策略
|
||||
- 工作时间优先发送
|
||||
|
||||
3. **多轮对话上下文管理**
|
||||
- 记录对话历史
|
||||
- 上下文理解(避免重复询问)
|
||||
- 话题延续和自然过渡
|
||||
- 面试邀约智能识别和响应
|
||||
|
||||
4. **情感分析和回复策略调整**
|
||||
- 分析HR回复的情感倾向
|
||||
- 根据情感调整后续策略
|
||||
- 识别拒绝信号(及时停止沟通)
|
||||
- 识别兴趣信号(加大沟通力度)
|
||||
|
||||
**技术实现**
|
||||
- 文件路径: `api/middleware/job/chatManager.js`
|
||||
- 依赖: `aiService.js`, `chat_records表`
|
||||
- 预计工期: 2周
|
||||
|
||||
**预期价值**
|
||||
- 📈 HR回复率提升 30%+
|
||||
- 📈 面试邀约率提升 20%+
|
||||
- 💡 减少人工沟通成本 80%+
|
||||
- ✨ 提供24小时自动化沟通能力
|
||||
|
||||
---
|
||||
|
||||
### 1.2 账号保活任务 ⭐⭐⭐⭐⭐
|
||||
|
||||
**现状分析**
|
||||
- ✅ 配置项已有 (`pla_account.auto_active`, `active_interval`, `active_actions_json`)
|
||||
- ✅ 任务类型定义 (`auto_active_account`)
|
||||
- ❌ 执行逻辑未实现
|
||||
- ❌ 行为模拟策略缺失
|
||||
|
||||
**待开发内容**
|
||||
1. **定时浏览岗位模拟真实用户**
|
||||
- 随机浏览岗位详情
|
||||
- 模拟点击、滚动行为
|
||||
- 页面停留时间随机化(10-60秒)
|
||||
- 每日浏览次数控制(5-20次)
|
||||
|
||||
2. **随机时间间隔访问**
|
||||
- 避免固定时间访问(容易被识别)
|
||||
- 工作时间随机分布
|
||||
- 模拟午休和下班后的访问
|
||||
- 周末降低活跃频率
|
||||
|
||||
3. **多样化操作行为**
|
||||
- 搜索岗位(随机关键词)
|
||||
- 查看推荐岗位
|
||||
- 浏览公司主页
|
||||
- 修改简历可见性
|
||||
- 更新最后活跃时间
|
||||
|
||||
4. **避免账号被标记为机器人**
|
||||
- 行为模式随机化
|
||||
- 添加鼠标轨迹模拟
|
||||
- 操作速度人性化(不要太快)
|
||||
- 避免连续大量操作
|
||||
|
||||
**技术实现**
|
||||
- 文件路径: `api/middleware/schedule/taskHandlers.js` (新增 `handleAutoActiveTask`)
|
||||
- MQTT指令: 新增 `auto_active` 操作类型
|
||||
- 预计工期: 1周
|
||||
|
||||
**预期价值**
|
||||
- 📉 账号封禁风险降低 70%+
|
||||
- 📈 简历曝光率提升 40%+
|
||||
- 🔒 账号在线状态保持稳定
|
||||
- ✨ 自动维护账号活跃度
|
||||
|
||||
---
|
||||
|
||||
### 1.3 简历自动更新 ⭐⭐⭐⭐
|
||||
|
||||
**现状分析**
|
||||
- ✅ 简历同步功能完整
|
||||
- ✅ 简历信息存储完善
|
||||
- ❌ 简历刷新逻辑未实现
|
||||
- ❌ 简历优化建议缺失
|
||||
|
||||
**待开发内容**
|
||||
1. **定时刷新简历排名**
|
||||
- 每天自动刷新简历(提升排名)
|
||||
- 最佳刷新时间智能选择(如早上9点)
|
||||
- 通过MQTT下发刷新指令
|
||||
- 记录刷新历史和效果
|
||||
|
||||
2. **简历内容优化建议**
|
||||
- AI分析当前简历不足
|
||||
- 给出具体优化建议(哪些技能需要补充)
|
||||
- 对比同类岗位的简历特征
|
||||
- 建议调整项目经验描述
|
||||
|
||||
3. **A/B测试不同简历版本效果**
|
||||
- 支持多个简历版本
|
||||
- 自动切换测试
|
||||
- 统计不同版本的查看率和回复率
|
||||
- 推荐最优版本
|
||||
|
||||
**技术实现**
|
||||
- 文件路径: `api/middleware/job/resumeManager.js` (新增刷新方法)
|
||||
- MQTT指令: 新增 `refresh_resume` 操作
|
||||
- 数据库: `resume_info` 新增 `last_refresh_time` 字段
|
||||
- 预计工期: 1周
|
||||
|
||||
**预期价值**
|
||||
- 📈 简历曝光率提升 50%+
|
||||
- 📈 查看率提升 30%+
|
||||
- 💡 简历质量持续优化
|
||||
- ✨ 自动维护简历新鲜度
|
||||
|
||||
---
|
||||
|
||||
### 1.4 岗位黑名单和收藏 ⭐⭐⭐⭐
|
||||
|
||||
**现状分析**
|
||||
- ❌ 黑名单功能未实现
|
||||
- ❌ 收藏功能未实现
|
||||
- ❌ 岗位对比功能缺失
|
||||
|
||||
**待开发内容**
|
||||
1. **公司黑名单**
|
||||
- 不再投递某公司的岗位
|
||||
- 黑名单原因记录(薪资虚标、工作内容不符等)
|
||||
- 支持批量添加
|
||||
- 黑名单导入导出
|
||||
|
||||
2. **岗位类型黑名单**
|
||||
- 不再投递某类岗位(如外包、销售)
|
||||
- 支持自定义黑名单关键词
|
||||
- 黑名单优先级高于匹配规则
|
||||
|
||||
3. **收藏感兴趣岗位**
|
||||
- 标记收藏岗位
|
||||
- 收藏原因备注
|
||||
- 收藏夹分类管理
|
||||
- 收藏岗位状态跟踪(是否还在招聘)
|
||||
|
||||
4. **岗位对比功能**
|
||||
- 多个岗位并排对比
|
||||
- 对比维度: 薪资、技能要求、公司、地点、福利
|
||||
- AI给出推荐意见
|
||||
- 导出对比报告
|
||||
|
||||
**技术实现**
|
||||
- 数据库: 新增 `job_blacklist`, `job_favorites` 表
|
||||
- 文件路径: `api/controller_admin/` 新增相关API
|
||||
- 前端: `admin/src/views/work/` 新增黑名单和收藏页面
|
||||
- 预计工期: 1周
|
||||
|
||||
**预期价值**
|
||||
- 📈 投递精准度提升 40%+
|
||||
- 📉 无效投递减少 60%+
|
||||
- 💡 提供个性化岗位管理
|
||||
- ✨ 提高求职效率
|
||||
|
||||
---
|
||||
|
||||
### 1.5 多轮面试跟踪 ⭐⭐⭐⭐
|
||||
|
||||
**现状分析**
|
||||
- ✅ `apply_records` 表有 `hasInterview` 字段
|
||||
- ❌ 只记录是否有面试,未细分轮次
|
||||
- ❌ Offer管理功能缺失
|
||||
- ❌ 入职状态未追踪
|
||||
|
||||
**待开发内容**
|
||||
1. **一面/二面/三面状态追踪**
|
||||
- 新增面试轮次字段 (`interview_round`)
|
||||
- 每轮面试时间、地点、面试官记录
|
||||
- 面试类型(电话、视频、现场)
|
||||
- 面试状态(待面试、已面试、通过、淘汰)
|
||||
|
||||
2. **面试反馈记录**
|
||||
- 面试官反馈内容
|
||||
- 面试问题记录
|
||||
- 自我评价
|
||||
- 改进建议
|
||||
|
||||
3. **Offer管理**
|
||||
- Offer详情(薪资、福利、入职时间)
|
||||
- 接受/拒绝/谈薪状态
|
||||
- 谈薪记录(几轮谈判,最终结果)
|
||||
- Offer对比(如有多个Offer)
|
||||
|
||||
4. **入职状态追踪**
|
||||
- 入职日期
|
||||
- 试用期状态
|
||||
- 转正时间
|
||||
- 离职时间(如有)
|
||||
|
||||
**技术实现**
|
||||
- 数据库: `apply_records` 新增字段或新增 `interview_records`, `offer_records` 表
|
||||
- 文件路径: `api/controller_admin/apply_records.js` 扩展
|
||||
- 前端: `admin/src/views/work/apply_records.vue` 新增详情面板
|
||||
- 预计工期: 1.5周
|
||||
|
||||
**预期价值**
|
||||
- 📊 完整的求职生命周期管理
|
||||
- 📈 面试准备更充分
|
||||
- 💡 Offer决策更科学
|
||||
- ✨ 提供长期职业数据积累
|
||||
|
||||
---
|
||||
|
||||
## 第二部分: AI能力增强
|
||||
|
||||
**优先级: HIGH** | **预计工期: 5-7周**
|
||||
|
||||
### 2.1 简历智能优化 ⭐⭐⭐⭐⭐
|
||||
|
||||
**现状分析**
|
||||
- ✅ 简历AI分析基础功能 (`aiService.analyzeResume`)
|
||||
- ✅ 竞争力评分、技能提取、优劣势分析
|
||||
- ❌ 优化建议深度不足
|
||||
- ❌ 针对性改进方案缺失
|
||||
|
||||
**待开发内容**
|
||||
1. **AI简历分析深度提升**
|
||||
- 细粒度分析(每个项目、每段经历)
|
||||
- 识别简历中的弱项和亮点
|
||||
- 对比行业优秀简历
|
||||
- 生成详细分析报告
|
||||
|
||||
2. **简历改进建议(针对性)**
|
||||
- 针对目标岗位给出定制化建议
|
||||
- 建议补充哪些技能关键词
|
||||
- 建议如何重写工作描述
|
||||
- 建议哪些内容需要精简
|
||||
|
||||
3. **技能关键词优化建议**
|
||||
- 分析热门技能关键词
|
||||
- 建议替换为更专业的术语
|
||||
- 建议技能顺序排列
|
||||
- 建议补充相关技能
|
||||
|
||||
4. **项目经验描述优化**
|
||||
- 使用STAR法则重写项目描述
|
||||
- 量化项目成果(如提升XX%性能)
|
||||
- 突出个人贡献和技术难点
|
||||
- 精简冗长描述
|
||||
|
||||
**技术实现**
|
||||
- 文件路径: `api/middleware/job/aiService.js` 新增 `optimizeResume` 方法
|
||||
- Prompt工程: 设计专业的简历优化Prompt
|
||||
- 前端: `resume_info_detail.vue` 新增优化建议面板
|
||||
- 预计工期: 2周
|
||||
|
||||
**预期价值**
|
||||
- 📈 简历竞争力提升 20%+
|
||||
- 📈 查看率提升 35%+
|
||||
- 📈 回复率提升 25%+
|
||||
- 💡 简历质量专业化
|
||||
|
||||
---
|
||||
|
||||
### 2.2 面试问题预测 ⭐⭐⭐⭐
|
||||
|
||||
**待开发内容**
|
||||
1. **基于岗位描述预测面试问题**
|
||||
- 分析岗位职责和要求
|
||||
- 预测技术问题(如React性能优化、数据库索引等)
|
||||
- 预测行为问题(如团队合作、项目经验)
|
||||
- 预测HR问题(如离职原因、职业规划)
|
||||
|
||||
2. **提供参考答案**
|
||||
- 给出专业、结构化的答案
|
||||
- 提供多种回答思路
|
||||
- 标注答案亮点和注意事项
|
||||
- 面试官可能的追问
|
||||
|
||||
3. **根据简历生成个性化回答**
|
||||
- 结合简历中的项目经验
|
||||
- 使用简历中的真实案例
|
||||
- 避免空洞的回答
|
||||
- 突出个人优势
|
||||
|
||||
**技术实现**
|
||||
- 文件路径: `api/middleware/job/aiService.js` 新增 `predictInterviewQuestions` 方法
|
||||
- 数据来源: `job_postings.jobDescription`, `resume_info`
|
||||
- 前端: 新增 `interview_prep.vue` 面试准备页面
|
||||
- 预计工期: 1.5周
|
||||
|
||||
**预期价值**
|
||||
- 📈 面试通过率提升 30%+
|
||||
- ⏱️ 面试准备时间减少 70%+
|
||||
- 💡 回答更专业、更自信
|
||||
- ✨ 提供全方位面试辅导
|
||||
|
||||
---
|
||||
|
||||
### 2.3 薪资谈判策略 ⭐⭐⭐⭐
|
||||
|
||||
**待开发内容**
|
||||
1. **AI分析岗位薪资合理范围**
|
||||
- 根据岗位要求和地区计算合理薪资
|
||||
- 参考行业薪资数据(如拉勾、Boss薪资报告)
|
||||
- 考虑公司规模和融资阶段
|
||||
- 给出薪资范围建议(如18-22K)
|
||||
|
||||
2. **给出谈薪建议和话术**
|
||||
- 什么时候开始谈薪(面试哪个阶段)
|
||||
- 如何提薪资要求(不卑不亢)
|
||||
- 谈判策略(如先等对方报价)
|
||||
- 具体话术模板
|
||||
|
||||
3. **根据市场行情评估Offer价值**
|
||||
- 对比市场平均薪资
|
||||
- 综合评估(薪资+福利+发展空间)
|
||||
- 识别低于市场价的Offer
|
||||
- 给出接受/拒绝建议
|
||||
|
||||
**技术实现**
|
||||
- 文件路径: `api/middleware/job/aiService.js` 新增 `analyzeSalary` 方法
|
||||
- 数据源: 岗位描述、地区、公司、市场数据
|
||||
- 前端: `offer_analysis.vue` Offer分析页面
|
||||
- 预计工期: 1周
|
||||
|
||||
**预期价值**
|
||||
- 💰 薪资平均提升 10-15%
|
||||
- 📈 谈判成功率提升 40%+
|
||||
- 💡 避免接受低薪Offer
|
||||
- ✨ 提供科学的薪资决策
|
||||
|
||||
---
|
||||
|
||||
### 2.4 公司背景调查 ⭐⭐⭐⭐
|
||||
|
||||
**待开发内容**
|
||||
1. **整合企查查/天眼查数据**
|
||||
- 调用企查查API获取公司信息
|
||||
- 公司基本信息(注册资本、成立时间、法人)
|
||||
- 融资情况(融资轮次、投资方)
|
||||
- 诉讼记录、欠薪记录
|
||||
|
||||
2. **AI分析公司发展前景**
|
||||
- 根据融资情况评估发展阶段
|
||||
- 根据招聘规模判断业务状态
|
||||
- 根据行业趋势预测前景
|
||||
- 给出公司评级(A/B/C/D)
|
||||
|
||||
3. **风险预警**
|
||||
- 识别高风险公司(如多次欠薪、频繁裁员)
|
||||
- 识别虚假招聘(如招聘周期异常长)
|
||||
- 识别外包公司(尽管岗位描述未标注)
|
||||
- 给出风险提示和建议
|
||||
|
||||
**技术实现**
|
||||
- 文件路径: `api/services/company_background_service.js`
|
||||
- 数据源: 企查查API、`company_info` 表
|
||||
- 前端: `job_postings.vue` 新增公司背调入口
|
||||
- 预计工期: 1.5周
|
||||
|
||||
**预期价值**
|
||||
- 📉 入职风险降低 80%+
|
||||
- 💡 避免进入高风险公司
|
||||
- ✨ 提供全面的公司情报
|
||||
- 🔍 识别隐藏的问题公司
|
||||
|
||||
---
|
||||
|
||||
### 2.5 职业发展路径 ⭐⭐⭐
|
||||
|
||||
**待开发内容**
|
||||
1. **基于简历和目标生成职业规划**
|
||||
- 分析当前职业阶段(初级/中级/高级)
|
||||
- 根据目标岗位生成发展路径
|
||||
- 列出需要补充的技能和经验
|
||||
- 给出时间线规划(1年/3年/5年)
|
||||
|
||||
2. **技能提升建议**
|
||||
- 推荐学习资源(课程、书籍、开源项目)
|
||||
- 建议考取的证书
|
||||
- 建议参加的技术社区
|
||||
- 建议做的练手项目
|
||||
|
||||
3. **转行可行性分析**
|
||||
- 评估转行难度
|
||||
- 分析已有技能的可迁移性
|
||||
- 给出转行路径建议
|
||||
- 预测转行后的薪资变化
|
||||
|
||||
**技术实现**
|
||||
- 文件路径: `api/middleware/job/aiService.js` 新增 `generateCareerPath` 方法
|
||||
- 数据源: `resume_info`, 目标岗位描述
|
||||
- 前端: 新增 `career_plan.vue` 职业规划页面
|
||||
- 预计工期: 1.5周
|
||||
|
||||
**预期价值**
|
||||
- 📊 提供长期职业指导
|
||||
- 💡 明确发展方向和目标
|
||||
- 📈 技能提升更有针对性
|
||||
- ✨ 降低职业迷茫感
|
||||
|
||||
---
|
||||
|
||||
## 第三部分: 用户体验优化
|
||||
|
||||
**优先级: MEDIUM** | **预计工期: 4-5周**
|
||||
|
||||
### 3.1 数据可视化增强 ⭐⭐⭐⭐
|
||||
|
||||
**待开发内容**
|
||||
1. **投递转化漏斗图**
|
||||
- 投递数 → 查看数 → 回复数 → 面试数 → Offer数
|
||||
- 每个环节的转化率
|
||||
- 识别漏斗中的薄弱环节
|
||||
- 对比不同平台的漏斗差异
|
||||
|
||||
2. **面试成功率趋势**
|
||||
- 按时间展示面试通过率变化
|
||||
- 分析成功率提升/下降原因
|
||||
- 识别面试表现最好的时间段
|
||||
- 给出改进建议
|
||||
|
||||
3. **薪资分布统计**
|
||||
- 投递岗位的薪资分布
|
||||
- Offer薪资分布
|
||||
- 对比期望薪资和实际薪资
|
||||
- 不同技能栈的薪资对比
|
||||
|
||||
4. **不同平台效果对比**
|
||||
- Boss、猎聘等平台的效果对比
|
||||
- 投递量、回复率、面试率对比
|
||||
- 平台特点分析
|
||||
- 推荐最优平台
|
||||
|
||||
**技术实现**
|
||||
- 前端: `admin/src/views/statistics/` 新增统计页面
|
||||
- ECharts图表: 漏斗图、折线图、柱状图、饼图
|
||||
- API: `statistics_server.js` 新增统计接口
|
||||
- 预计工期: 1周
|
||||
|
||||
**预期价值**
|
||||
- 📊 数据洞察更直观
|
||||
- 💡 快速发现问题环节
|
||||
- 📈 数据驱动优化决策
|
||||
- ✨ 提供专业的数据分析
|
||||
|
||||
---
|
||||
|
||||
### 3.2 实时通知系统 ⭐⭐⭐⭐
|
||||
|
||||
**待开发内容**
|
||||
1. **浏览器通知**
|
||||
- 面试邀约即时通知
|
||||
- Offer通知
|
||||
- 重要聊天消息通知
|
||||
- 任务执行状态通知
|
||||
|
||||
2. **邮件通知**
|
||||
- 每日投递报告
|
||||
- 面试提醒(提前1天)
|
||||
- 重要事件邮件
|
||||
- 周报月报
|
||||
|
||||
3. **企业微信/钉钉集成**
|
||||
- 通过企业微信机器人推送
|
||||
- 支持快捷操作(如快速回复)
|
||||
- 群组通知
|
||||
- @指定人员
|
||||
|
||||
4. **关键事件提醒**
|
||||
- 面试邀约(立即通知)
|
||||
- Offer(立即通知)
|
||||
- 简历被查看(可配置)
|
||||
- 任务执行失败(立即通知)
|
||||
|
||||
**技术实现**
|
||||
- 文件路径: `api/services/notification_service.js`
|
||||
- 浏览器通知: Web Notification API
|
||||
- 邮件: nodemailer
|
||||
- 企业微信: 企业微信Webhook
|
||||
- 预计工期: 1.5周
|
||||
|
||||
**预期价值**
|
||||
- ⏱️ 响应时间缩短 90%+
|
||||
- 📲 不错过任何重要消息
|
||||
- 💡 多渠道及时触达
|
||||
- ✨ 提供主动式消息推送
|
||||
|
||||
---
|
||||
|
||||
### 3.3 批量操作功能 ⭐⭐⭐
|
||||
|
||||
**待开发内容**
|
||||
1. **批量启用/禁用账号**
|
||||
- 勾选多个账号
|
||||
- 一键启用/禁用
|
||||
- 批量设置自动化开关
|
||||
- 操作日志记录
|
||||
|
||||
2. **批量设置投递策略**
|
||||
- 批量修改投递时间范围
|
||||
- 批量修改每日上限
|
||||
- 批量设置关键词过滤
|
||||
- 应用模板到多个账号
|
||||
|
||||
3. **批量导出数据**
|
||||
- 勾选导出字段
|
||||
- 导出为CSV/Excel
|
||||
- 定时导出任务
|
||||
- 导出历史管理
|
||||
|
||||
**技术实现**
|
||||
- 前端: 各列表页面新增批量操作工具栏
|
||||
- API: 各模块新增批量操作接口
|
||||
- 预计工期: 1周
|
||||
|
||||
**预期价值**
|
||||
- ⏱️ 管理效率提升 80%+
|
||||
- 💡 降低重复操作
|
||||
- ✨ 提供便捷的批量工具
|
||||
|
||||
---
|
||||
|
||||
### 3.4 移动端适配 ⭐⭐⭐
|
||||
|
||||
**待开发内容**
|
||||
1. **响应式布局优化**
|
||||
- 适配手机、平板屏幕
|
||||
- 菜单改为抽屉式
|
||||
- 表格改为卡片式
|
||||
- 图表自适应尺寸
|
||||
|
||||
2. **移动端专属操作界面**
|
||||
- 大图标按钮
|
||||
- 手势操作(滑动、长按)
|
||||
- 底部操作栏
|
||||
- 快捷入口
|
||||
|
||||
3. **快捷操作入口**
|
||||
- 快捷查看今日统计
|
||||
- 快捷查看任务状态
|
||||
- 快捷回复聊天
|
||||
- 快捷查看面试安排
|
||||
|
||||
**技术实现**
|
||||
- 前端: 响应式CSS
|
||||
- 使用 iView 的响应式组件
|
||||
- 新增移动端专属组件
|
||||
- 预计工期: 1.5周
|
||||
|
||||
**预期价值**
|
||||
- 📱 随时随地管理
|
||||
- 💡 提升移动端体验
|
||||
- ✨ 扩大使用场景
|
||||
|
||||
---
|
||||
|
||||
### 3.5 智能推荐 ⭐⭐⭐
|
||||
|
||||
**待开发内容**
|
||||
1. **推荐最适合的岗位**
|
||||
- 基于简历和历史投递记录
|
||||
- AI预测岗位匹配度
|
||||
- 推荐优先投递的岗位
|
||||
- 推荐理由说明
|
||||
|
||||
2. **推荐最佳投递时间**
|
||||
- 分析不同时间投递的效果
|
||||
- 推荐最佳投递时段
|
||||
- 避开竞争激烈的时段
|
||||
- 根据平台特性调整
|
||||
|
||||
3. **推荐优化策略**
|
||||
- 分析数据找出问题
|
||||
- 推荐具体改进措施
|
||||
- 预测改进后的效果
|
||||
- 跟踪改进效果
|
||||
|
||||
**技术实现**
|
||||
- 文件路径: `api/middleware/job/recommendService.js`
|
||||
- AI模型: 基于历史数据训练
|
||||
- 前端: 首页新增推荐面板
|
||||
- 预计工期: 1周
|
||||
|
||||
**预期价值**
|
||||
- 📈 投递效果提升 25%+
|
||||
- 💡 降低决策成本
|
||||
- ✨ 提供智能化建议
|
||||
|
||||
---
|
||||
|
||||
## 第四部分: 系统性能提升
|
||||
|
||||
**优先级: MEDIUM** | **预计工期: 3-4周**
|
||||
|
||||
### 4.1 缓存策略优化 ⭐⭐⭐⭐
|
||||
|
||||
**待开发内容**
|
||||
1. **Redis缓存热点数据**
|
||||
- 缓存职位类型配置(5分钟→实时)
|
||||
- 缓存统计数据(避免重复计算)
|
||||
- 缓存简历信息(减少数据库查询)
|
||||
- 缓存设备状态
|
||||
|
||||
2. **职位类型配置缓存**
|
||||
- 当前5分钟缓存改为即时失效
|
||||
- 配置更新时清除缓存
|
||||
- 预加载常用配置
|
||||
|
||||
3. **简历信息缓存**
|
||||
- 缓存最近查询的简历
|
||||
- LRU淘汰策略
|
||||
- 简历更新时清除缓存
|
||||
|
||||
**技术实现**
|
||||
- Redis集成: `ioredis`
|
||||
- 文件路径: `api/middleware/cache/cacheManager.js`
|
||||
- 缓存策略: LRU, TTL
|
||||
- 预计工期: 1周
|
||||
|
||||
**预期价值**
|
||||
- 📈 响应速度提升 50%+
|
||||
- 📉 数据库压力降低 60%+
|
||||
- 💡 提升系统吞吐量
|
||||
- ✨ 提供更快的用户体验
|
||||
|
||||
---
|
||||
|
||||
### 4.2 数据库查询优化 ⭐⭐⭐⭐
|
||||
|
||||
**待开发内容**
|
||||
1. **慢查询分析和优化**
|
||||
- 开启MySQL慢查询日志
|
||||
- 分析TOP 10慢查询
|
||||
- 优化SQL语句
|
||||
- 添加必要索引
|
||||
|
||||
2. **索引优化**
|
||||
- 分析现有索引使用情况
|
||||
- 添加复合索引
|
||||
- 删除冗余索引
|
||||
- 定期索引维护
|
||||
|
||||
3. **分表分库策略**
|
||||
- 大表分表(如 `chat_records` 按月分表)
|
||||
- 历史数据归档
|
||||
- 读写分离(可选)
|
||||
|
||||
**技术实现**
|
||||
- 使用 `EXPLAIN` 分析查询
|
||||
- Sequelize 索引配置优化
|
||||
- 数据库迁移脚本
|
||||
- 预计工期: 1周
|
||||
|
||||
**预期价值**
|
||||
- 📈 查询性能提升 3-5倍
|
||||
- 📉 慢查询数量减少 80%+
|
||||
- 💡 数据库可支撑更大数据量
|
||||
- ✨ 提升系统稳定性
|
||||
|
||||
---
|
||||
|
||||
### 4.3 任务队列扩展 ⭐⭐⭐
|
||||
|
||||
**待开发内容**
|
||||
1. **支持更多任务类型**
|
||||
- 定时报告生成
|
||||
- 数据清理任务
|
||||
- 批量操作任务
|
||||
- 自定义任务
|
||||
|
||||
2. **任务优先级动态调整**
|
||||
- 根据紧急程度调整优先级
|
||||
- VIP用户任务优先执行
|
||||
- 失败任务降低优先级
|
||||
- 长时间等待的任务提升优先级
|
||||
|
||||
3. **任务失败自动重试优化**
|
||||
- 更智能的重试策略
|
||||
- 不同错误类型不同重试间隔
|
||||
- 重试次数动态调整
|
||||
- 重试失败后的降级处理
|
||||
|
||||
**技术实现**
|
||||
- 文件路径: `api/middleware/schedule/taskQueue.js` 优化
|
||||
- 新增任务类型处理器
|
||||
- 优化优先级算法
|
||||
- 预计工期: 1周
|
||||
|
||||
**预期价值**
|
||||
- 📈 任务处理更稳定
|
||||
- 💡 支持更复杂的任务场景
|
||||
- ✨ 提供更灵活的任务管理
|
||||
|
||||
---
|
||||
|
||||
### 4.4 并发控制优化 ⭐⭐⭐
|
||||
|
||||
**待开发内容**
|
||||
1. **增加并发设备数**
|
||||
- 当前最多5个设备
|
||||
- 支持动态配置并发数
|
||||
- 根据服务器性能自动调整
|
||||
- 支持分布式部署
|
||||
|
||||
2. **更精细的限流策略**
|
||||
- 不同任务类型不同限流
|
||||
- 不同平台不同限流
|
||||
- 根据时间段动态调整
|
||||
- API请求限流
|
||||
|
||||
3. **分布式锁机制**
|
||||
- 避免多实例冲突
|
||||
- Redis分布式锁
|
||||
- 锁超时自动释放
|
||||
- 死锁检测
|
||||
|
||||
**技术实现**
|
||||
- Redis分布式锁: `redlock`
|
||||
- 配置动态化
|
||||
- 负载均衡策略
|
||||
- 预计工期: 1周
|
||||
|
||||
**预期价值**
|
||||
- 📈 系统吞吐量提升 2-3倍
|
||||
- 💡 支持更大规模部署
|
||||
- ✨ 提供企业级并发控制
|
||||
|
||||
---
|
||||
|
||||
### 4.5 日志和监控 ⭐⭐⭐⭐
|
||||
|
||||
**待开发内容**
|
||||
1. **完善日志记录**
|
||||
- 统一日志格式(JSON)
|
||||
- 日志级别分级(DEBUG/INFO/WARN/ERROR)
|
||||
- 敏感信息脱敏
|
||||
- 日志文件按日期切割
|
||||
|
||||
2. **性能监控面板**
|
||||
- API响应时间监控
|
||||
- 数据库查询时间监控
|
||||
- 任务执行时间监控
|
||||
- 内存和CPU监控
|
||||
|
||||
3. **异常告警机制**
|
||||
- 错误率超过阈值告警
|
||||
- 任务失败立即告警
|
||||
- 系统资源不足告警
|
||||
- 钉钉/企业微信告警
|
||||
|
||||
4. **操作审计日志**
|
||||
- 记录所有关键操作
|
||||
- 操作人、操作时间、操作内容
|
||||
- 敏感操作二次确认
|
||||
- 审计日志导出
|
||||
|
||||
**技术实现**
|
||||
- 日志库: `winston`
|
||||
- 监控: `prometheus` + `grafana` (可选)
|
||||
- 告警: `api/services/alert_service.js`
|
||||
- 预计工期: 1.5周
|
||||
|
||||
**预期价值**
|
||||
- 🔍 问题定位效率提升 80%+
|
||||
- 📊 系统运行状态可视化
|
||||
- 🚨 及时发现和处理异常
|
||||
- ✨ 提供运维级别的监控
|
||||
|
||||
---
|
||||
|
||||
## 附录: 开发优先级建议
|
||||
|
||||
### 短期(1-2个月)
|
||||
**优先开发高价值、低成本功能**
|
||||
|
||||
| 功能 | 优先级 | 预计工期 | 价值 |
|
||||
|------|--------|----------|------|
|
||||
| 自动聊天功能完善 | ⭐⭐⭐⭐⭐ | 2周 | HR回复率+30% |
|
||||
| 账号保活任务 | ⭐⭐⭐⭐⭐ | 1周 | 封禁风险-70% |
|
||||
| 简历智能优化 | ⭐⭐⭐⭐⭐ | 2周 | 竞争力+20% |
|
||||
| 缓存策略优化 | ⭐⭐⭐⭐ | 1周 | 响应速度+50% |
|
||||
|
||||
**预计总工期: 6周**
|
||||
|
||||
### 中期(3-4个月)
|
||||
**完善核心功能和AI能力**
|
||||
|
||||
| 功能 | 优先级 | 预计工期 | 价值 |
|
||||
|------|--------|----------|------|
|
||||
| 简历自动更新 | ⭐⭐⭐⭐ | 1周 | 曝光率+50% |
|
||||
| 岗位黑名单和收藏 | ⭐⭐⭐⭐ | 1周 | 精准度+40% |
|
||||
| 多轮面试跟踪 | ⭐⭐⭐⭐ | 1.5周 | 完整生命周期 |
|
||||
| 面试问题预测 | ⭐⭐⭐⭐ | 1.5周 | 通过率+30% |
|
||||
| 数据可视化增强 | ⭐⭐⭐⭐ | 1周 | 数据洞察更直观 |
|
||||
|
||||
**预计总工期: 6周**
|
||||
|
||||
### 长期(5-6个月)
|
||||
**提升体验和系统性能**
|
||||
|
||||
| 功能 | 优先级 | 预计工期 | 价值 |
|
||||
|------|--------|----------|------|
|
||||
| 薪资谈判策略 | ⭐⭐⭐⭐ | 1周 | 薪资+10-15% |
|
||||
| 公司背景调查 | ⭐⭐⭐⭐ | 1.5周 | 风险-80% |
|
||||
| 实时通知系统 | ⭐⭐⭐⭐ | 1.5周 | 响应时间-90% |
|
||||
| 日志和监控 | ⭐⭐⭐⭐ | 1.5周 | 定位效率+80% |
|
||||
| 数据库查询优化 | ⭐⭐⭐⭐ | 1周 | 性能+3-5倍 |
|
||||
|
||||
**预计总工期: 6.5周**
|
||||
|
||||
---
|
||||
|
||||
## 总结
|
||||
|
||||
本规划文档共列出 **20项待开发功能**,分为4个优先级方向:
|
||||
|
||||
- **功能完善和补充** (5项, HIGH): 完善核心业务流程
|
||||
- **AI能力增强** (5项, HIGH): 提升智能化水平
|
||||
- **用户体验优化** (5项, MEDIUM): 改善交互和便捷性
|
||||
- **系统性能提升** (5项, MEDIUM): 优化性能和稳定性
|
||||
|
||||
**预期开发周期**:
|
||||
- 短期(1-2月): 6周
|
||||
- 中期(3-4月): 6周
|
||||
- 长期(5-6月): 6.5周
|
||||
- **总计**: 约4.5个月
|
||||
|
||||
**预期收益**:
|
||||
- 📈 整体求职成功率提升 **50%+**
|
||||
- 📈 用户使用效率提升 **80%+**
|
||||
- 📈 系统性能提升 **3-5倍**
|
||||
- 💰 用户平均薪资提升 **10-15%**
|
||||
|
||||
---
|
||||
|
||||
**文档维护**: 开发团队
|
||||
**最后更新**: 2025-12-25
|
||||
387
_doc/项目功能总结.md
Normal file
387
_doc/项目功能总结.md
Normal file
@@ -0,0 +1,387 @@
|
||||
# 自动找工作系统 - 项目功能总结
|
||||
|
||||
> 版本: v1.0 | 更新日期: 2025-12-25
|
||||
|
||||
## 一、项目概述
|
||||
|
||||
自动找工作系统(autoAiWorkSys)是一个基于AI的智能求职助手平台,通过自动化技术帮助求职者高效管理多个招聘平台账号、智能筛选匹配岗位、自动投递简历,并提供全流程的求职数据分析。系统集成Qwen 2.5 AI模型,实现简历智能分析、岗位匹配度评分、聊天内容生成等功能,大幅提升求职效率和成功率。
|
||||
|
||||
## 二、技术栈
|
||||
|
||||
### 前端技术
|
||||
- **框架**: Vue 2.6.14 + Vuex 3.6.2 + Vue Router 3.5.3
|
||||
- **UI组件**: View Design (iView) 4.7.0
|
||||
- **构建工具**: Webpack 5
|
||||
- **图表库**: ECharts
|
||||
- **HTTP客户端**: 自定义 framework.http
|
||||
|
||||
### 后端技术
|
||||
- **运行时**: Node.js
|
||||
- **Web框架**: Koa 2.16.3
|
||||
- **ORM**: Sequelize 5.22.5
|
||||
- **数据库**: MySQL 8.0
|
||||
- **消息队列**: MQTT (mqtt://192.144.167.231:1883)
|
||||
- **AI模型**: Qwen 2.5 (阿里云DashScope)
|
||||
- **缓存**: Redis (规划中)
|
||||
- **存储**: Ali OSS
|
||||
|
||||
### 核心框架
|
||||
- **Node Core Framework**: 自研框架,提供统一的API路由、数据库管理、日志管理
|
||||
|
||||
## 三、核心特性
|
||||
|
||||
1. **多平台账号管理** - 支持Boss直聘、猎聘等多个招聘平台,统一管理账号和授权
|
||||
2. **智能简历分析** - AI评估简历竞争力(0-100分),提取技能标签,给出优势劣势和职业建议
|
||||
3. **自动岗位投递** - 基于技能匹配和AI评分自动筛选岗位并投递,支持每日上限和时间范围控制
|
||||
4. **AI岗位匹配** - 多维度评分(技能、经验、薪资、公司质量),自动识别外包岗位
|
||||
5. **任务调度系统** - 优先级队列+MQTT通信,设备内串行、设备间并行执行
|
||||
6. **数据可视化统计** - 投递成功率、面试转化率、不同平台效果对比等多维度分析
|
||||
7. **设备实时监控** - 在线状态、健康度、错误信息、心跳检测
|
||||
8. **完整审计日志** - 任务执行、投递记录、聊天记录全链路追踪
|
||||
|
||||
## 四、功能模块一览
|
||||
|
||||
### 4.1 前端功能模块
|
||||
|
||||
| 模块 | 页面路径 | 主要功能 |
|
||||
|------|---------|----------|
|
||||
| **首页/仪表板** | `/home` | 设备选择、账户信息卡片、今日统计、当前任务列表、近7天趋势图 |
|
||||
| **账号管理** | `/account/pla_account` | 账号列表、新增/编辑、授权管理、批量位置解析、停止任务 |
|
||||
| **账号详情** | `/account/pla_account_detail` | 账号基本信息、任务历史、自动化配置、运行操作面板 |
|
||||
| **简历管理** | `/account/resume_info` | 简历列表、查看详情、AI分析结果展示、删除 |
|
||||
| **简历详情** | `/account/resume_info_detail` | 个人信息、教育背景、工作经验、期望信息、AI评分和建议 |
|
||||
| **岗位管理** | `/work/job_postings` | 岗位列表、过滤查询、打招呼、查看详情 |
|
||||
| **投递记录** | `/work/apply_records` | 投递状态追踪、反馈状态、面试/Offer信息 |
|
||||
| **职位类型** | `/work/job_types` | 职位类型配置、技能关键词、排除关键词 |
|
||||
| **任务管理** | `/task/task_status` | 任务列表、指令详情、取消/重试操作 |
|
||||
| **聊天管理** | `/chat/chat_list` | 双面板聊天界面、会话列表、AI生成回复 |
|
||||
| **聊天记录** | `/chat/chat_records` | 聊天历史记录、消息类型、发送状态 |
|
||||
| **系统配置** | `/system/system_config` | 系统参数配置、AI服务配置、MQTT配置 |
|
||||
|
||||
### 4.2 后端API模块
|
||||
|
||||
| 模块 | 接口前缀 | 主要功能 |
|
||||
|------|---------|----------|
|
||||
| **账号管理** | `/admin_api/account` | 列表、详情、新增、更新、删除、授权、停止任务、位置解析 |
|
||||
| **简历管理** | `/admin_api/resume` | 列表、详情、统计、删除、AI分析、按设备获取 |
|
||||
| **岗位管理** | `/admin_api/job` | 列表、详情、统计、删除、打招呼 |
|
||||
| **投递记录** | `/admin_api/apply` | 列表、详情、统计、删除 |
|
||||
| **聊天记录** | `/admin_api/chat` | 列表、详情、统计、删除 |
|
||||
| **设备监控** | `/admin_api/device` | 列表、概览、配置更新、错误重置 |
|
||||
| **任务状态** | `/admin_api/task` | 列表、详情、统计、更新、删除 |
|
||||
| **数据统计** | `/admin_api/dashboard` | 综合统计、投递转化率、平台对比、设备排名 |
|
||||
| **系统配置** | `/admin_api/system` | 配置列表、新增、更新、删除 |
|
||||
|
||||
### 4.3 核心业务流程
|
||||
|
||||
```
|
||||
┌─────────────────────┐
|
||||
│ 账号配置和授权 │
|
||||
└──────────┬──────────┘
|
||||
↓
|
||||
┌─────────────────────┐
|
||||
│ 获取在线简历(MQTT) │ → AI分析 → 竞争力评分、技能提取、优劣势分析
|
||||
└──────────┬──────────┘
|
||||
↓
|
||||
┌─────────────────────┐
|
||||
│ 创建自动投递任务 │
|
||||
└──────────┬──────────┘
|
||||
↓
|
||||
┌─────────────────────┐
|
||||
│ 搜索岗位(MQTT) │ → 保存到job_postings表
|
||||
└──────────┬──────────┘
|
||||
↓
|
||||
┌─────────────────────┐
|
||||
│ 岗位过滤和匹配 │ → 技能匹配+AI评分+外包识别
|
||||
└──────────┬──────────┘
|
||||
↓
|
||||
┌─────────────────────┐
|
||||
│ 自动投递(MQTT) │ → 记录apply_records
|
||||
└──────────┬──────────┘
|
||||
↓
|
||||
┌─────────────────────┐
|
||||
│ 聊天和面试跟踪 │ → AI生成聊天内容
|
||||
└──────────┬──────────┘
|
||||
↓
|
||||
┌─────────────────────┐
|
||||
│ 数据统计和分析 │
|
||||
└─────────────────────┘
|
||||
```
|
||||
|
||||
## 五、已实现功能清单
|
||||
|
||||
### 5.1 账号管理模块 ✅
|
||||
|
||||
- ✅ 多平台账号绑定(Boss直聘、猎聘)
|
||||
- ✅ 账号状态管理(启用/禁用、在线/离线、登录状态)
|
||||
- ✅ 自动化开关(自动投递、自动聊天、自动活跃)
|
||||
- ✅ 授权管理(设置授权日期、天数、过期时间计算)
|
||||
- ✅ 职位类型配置(关联job_types)
|
||||
- ✅ 投递配置(时间范围、每日上限、薪资范围、关键词过滤)
|
||||
- ✅ 沟通配置(时间范围、是否沟通外包岗位)
|
||||
- ✅ 活跃配置(活跃间隔、活跃动作)
|
||||
- ✅ 位置解析(单个/批量,经纬度获取)
|
||||
- ✅ 停止任务(取消该账号所有运行中任务)
|
||||
|
||||
### 5.2 简历管理模块 ✅
|
||||
|
||||
- ✅ 简历信息存储(个人信息、教育背景、工作经验、期望信息)
|
||||
- ✅ 简历获取(通过MQTT从设备获取在线简历)
|
||||
- ✅ AI竞争力评分(0-100分)
|
||||
- ✅ AI技能标签提取
|
||||
- ✅ AI优势劣势分析
|
||||
- ✅ AI职业建议生成
|
||||
- ✅ 简历与岗位匹配度计算
|
||||
- ✅ 简历统计(平均竞争力、工作年限分布、竞争力分布)
|
||||
- ✅ 按设备和平台查询简历
|
||||
|
||||
### 5.3 岗位管理模块 ✅
|
||||
|
||||
- ✅ 岗位信息存储(基本信息、要求、描述、薪资、地点)
|
||||
- ✅ 岗位搜索(通过MQTT下发搜索指令)
|
||||
- ✅ 岗位列表获取(通过MQTT获取列表)
|
||||
- ✅ AI岗位匹配评分(技能、经验、薪资、公司质量)
|
||||
- ✅ 外包岗位识别(规则+AI双层识别)
|
||||
- ✅ 岗位过滤(技能关键词匹配、排除关键词检测)
|
||||
- ✅ 综合评分计算(多维度权重评分)
|
||||
- ✅ 岗位统计(总数、平均匹配度、外包比例)
|
||||
- ✅ 打招呼功能(初次沟通)
|
||||
|
||||
### 5.4 自动投递模块 ✅
|
||||
|
||||
- ✅ 自动投递任务创建和调度
|
||||
- ✅ 每日投递上限控制
|
||||
- ✅ 投递时间范围控制(工作日/周末)
|
||||
- ✅ 简历刷新检查(2小时内刷新)
|
||||
- ✅ 岗位过滤和排序
|
||||
- ✅ 投递指令下发(MQTT)
|
||||
- ✅ 投递状态追踪(待投递、投递中、成功、失败、重复)
|
||||
- ✅ 反馈状态管理(无反馈、已查看、感兴趣、不合适、面试邀约)
|
||||
- ✅ 投递统计(成功率、面试转化率、Offer转化率)
|
||||
|
||||
### 5.5 AI分析模块 ✅
|
||||
|
||||
- ✅ Qwen 2.5模型集成(阿里云DashScope)
|
||||
- ✅ 简历智能分析
|
||||
- ✅ 技能标签提取
|
||||
- ✅ 竞争力评分(0-100)
|
||||
- ✅ 优势劣势分析
|
||||
- ✅ 职业发展建议
|
||||
- ✅ 岗位智能匹配
|
||||
- ✅ 技能匹配度(0-100)
|
||||
- ✅ 经验匹配度(0-100)
|
||||
- ✅ 薪资合理性(0-100)
|
||||
- ✅ 公司质量评分(0-100)
|
||||
- ✅ 外包岗位识别
|
||||
- ✅ 聊天内容生成(基础框架)
|
||||
|
||||
### 5.6 任务调度模块 ✅
|
||||
|
||||
- ✅ 优先级任务队列(堆实现,O(log n)性能)
|
||||
- ✅ 并发控制(全局5设备,每设备1任务)
|
||||
- ✅ 设备内串行、设备间并行执行
|
||||
- ✅ 任务状态管理(待执行、执行中、成功、失败、超时、取消)
|
||||
- ✅ 指数退避重试机制(最多3次)
|
||||
- ✅ 任务超时检测(10分钟)
|
||||
- ✅ 错误分类(可重试/不可重试)
|
||||
- ✅ 任务恢复(启动时恢复未完成任务)
|
||||
- ✅ 任务统计(岗位搜索数、过滤数、投递数、聊天数)
|
||||
|
||||
### 5.7 设备监控模块 ✅
|
||||
|
||||
- ✅ 设备状态追踪(在线/离线)
|
||||
- ✅ 心跳检测(通过MQTT)
|
||||
- ✅ 健康度评分
|
||||
- ✅ 错误信息记录
|
||||
- ✅ 最后心跳时间
|
||||
- ✅ 设备配置更新
|
||||
- ✅ 设备错误重置
|
||||
- ✅ 设备概览统计(在线数、离线数、健康度排名)
|
||||
|
||||
### 5.8 数据统计模块 ✅
|
||||
|
||||
- ✅ 投递成功率统计
|
||||
- ✅ 面试转化率统计
|
||||
- ✅ Offer转化率统计
|
||||
- ✅ 不同平台数据对比
|
||||
- ✅ 设备活跃度排名
|
||||
- ✅ 简历竞争力分布
|
||||
- ✅ 岗位外包比例统计
|
||||
- ✅ 近7天趋势图(投递、搜索、聊天)
|
||||
- ✅ 今日统计(实时刷新)
|
||||
|
||||
### 5.9 聊天管理模块 ✅
|
||||
|
||||
- ✅ 聊天记录存储
|
||||
- ✅ 聊天类型分类(打招呼、跟进、面试、回复)
|
||||
- ✅ 发送状态追踪
|
||||
- ✅ 回复检测和记录
|
||||
- ✅ 回复时长统计
|
||||
- ✅ 面试邀约识别
|
||||
- ✅ 情感分析(积极/中性/消极)
|
||||
- ✅ 效果评分
|
||||
- ✅ AI生成标记
|
||||
- ✅ 双面板聊天界面
|
||||
|
||||
### 5.10 其他功能 ✅
|
||||
|
||||
- ✅ 用户邀请和推广系统
|
||||
- ✅ 公司信息库(上市公司数据)
|
||||
- ✅ 版本管理
|
||||
- ✅ 邮件服务集成
|
||||
- ✅ OSS存储集成
|
||||
- ✅ 地理位置服务(百度地图API)
|
||||
- ✅ Swagger API文档
|
||||
- ✅ 数据导出(CSV)
|
||||
|
||||
## 六、数据模型
|
||||
|
||||
### 6.1 核心表结构
|
||||
|
||||
| 表名 | 说明 | 关键字段 |
|
||||
|------|------|---------|
|
||||
| **pla_account** | 平台账号表 | sn_code, platform_type, is_online, auto_deliver, deliver_config |
|
||||
| **resume_info** | 简历信息表 | resumeId, account_id, aiCompetitiveness, aiSkillTags, aiStrengths |
|
||||
| **job_postings** | 岗位信息表 | jobId, platform, aiMatchScore, isOutsourcing, applyStatus |
|
||||
| **apply_records** | 投递记录表 | resumeId, jobId, applyStatus, feedbackStatus, hasInterview, hasOffer |
|
||||
| **chat_records** | 聊天记录表 | conversationId, chatType, isAiGenerated, hasReply, sentiment |
|
||||
| **task_status** | 任务状态表 | taskType, status, priority, retryCount, progress |
|
||||
| **task_commands** | 任务指令表 | taskId, commandType, commandData, response, executeTime |
|
||||
| **job_types** | 职位类型表 | name, commonSkills, excludeKeywords, sortOrder |
|
||||
| **device_monitor** | 设备监控表 | sn_code, is_online, health_score, last_heartbeat_time |
|
||||
| **company_info** | 公司信息表 | company_name, is_listed, market_value, risk_level |
|
||||
|
||||
### 6.2 表关联关系
|
||||
|
||||
```
|
||||
pla_account (1) ──→ (N) resume_info
|
||||
│
|
||||
├─→ (N) apply_records ←── (1) job_postings
|
||||
│ │
|
||||
│ └─→ (N) chat_records
|
||||
│
|
||||
└─→ (N) task_status ──→ (N) task_commands
|
||||
|
||||
pla_account (1) ──→ (1) job_types (职位类型配置)
|
||||
pla_account (1) ──→ (N) device_monitor (设备监控)
|
||||
```
|
||||
|
||||
## 七、快速开始
|
||||
|
||||
### 7.1 环境要求
|
||||
|
||||
- Node.js >= 14.x
|
||||
- MySQL >= 8.0
|
||||
- Redis (可选,用于缓存)
|
||||
- MQTT Broker (已配置: mqtt://192.144.167.231:1883)
|
||||
|
||||
### 7.2 安装步骤
|
||||
|
||||
```bash
|
||||
# 1. 克隆项目
|
||||
git clone <repository-url>
|
||||
cd autoAiWorkSys
|
||||
|
||||
# 2. 安装后端依赖
|
||||
npm install
|
||||
|
||||
# 3. 安装前端依赖
|
||||
cd admin
|
||||
npm install
|
||||
|
||||
# 4. 配置数据库
|
||||
# 编辑 config/config.js
|
||||
# 设置MySQL连接信息
|
||||
|
||||
# 5. 初始化数据库
|
||||
# 执行 _sql 目录下的SQL脚本
|
||||
|
||||
# 6. 启动后端服务
|
||||
npm run dev
|
||||
|
||||
# 7. 启动前端服务(新终端)
|
||||
cd admin
|
||||
npm run dev
|
||||
```
|
||||
|
||||
### 7.3 核心配置
|
||||
|
||||
**config/config.js** - 主配置文件
|
||||
```javascript
|
||||
{
|
||||
db: {
|
||||
host: 'localhost',
|
||||
port: 3306,
|
||||
database: 'auto_job',
|
||||
username: 'root',
|
||||
password: 'your_password'
|
||||
},
|
||||
mqtt: {
|
||||
host: 'mqtt://192.144.167.231:1883',
|
||||
clientId: 'autoAiWorkSys_server'
|
||||
},
|
||||
ai: {
|
||||
apiKey: 'your_dashscope_api_key',
|
||||
model: 'qwen-turbo' // qwen-turbo/qwen-plus/qwen-max
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 7.4 访问地址
|
||||
|
||||
- 前端管理后台: http://localhost:8080
|
||||
- 后端API: http://localhost:3000/admin_api
|
||||
- API文档: http://localhost:3000/api/docs
|
||||
|
||||
## 八、项目文件结构
|
||||
|
||||
```
|
||||
autoAiWorkSys/
|
||||
├── admin/ # 前端管理后台
|
||||
│ ├── src/
|
||||
│ │ ├── views/ # 页面组件
|
||||
│ │ ├── api/ # API调用
|
||||
│ │ ├── router/ # 路由配置
|
||||
│ │ └── store/ # Vuex状态管理
|
||||
│ └── package.json
|
||||
│
|
||||
├── api/ # 后端服务
|
||||
│ ├── controller_admin/ # 后台管理API
|
||||
│ ├── middleware/ # 核心业务逻辑
|
||||
│ │ ├── job/ # 岗位、简历、聊天管理
|
||||
│ │ ├── schedule/ # 任务调度系统
|
||||
│ │ └── mqtt/ # MQTT通信
|
||||
│ ├── model/ # 数据库模型
|
||||
│ ├── services/ # 业务服务层
|
||||
│ └── utils/ # 工具函数
|
||||
│
|
||||
├── config/ # 配置文件
|
||||
├── framework/ # 核心框架
|
||||
├── _doc/ # 文档目录
|
||||
├── _sql/ # 数据库脚本
|
||||
└── package.json
|
||||
```
|
||||
|
||||
## 九、技术亮点
|
||||
|
||||
1. **优先级队列** - 堆实现,O(log n)性能,比数组提升10-100倍
|
||||
2. **双层过滤** - 规则过滤+AI评分,平衡性能和准确性
|
||||
3. **智能重试** - 指数退避策略,区分可重试和不可重试错误
|
||||
4. **MQTT通信** - 异步消息队列,高效的设备指令下发和响应
|
||||
5. **AI多场景应用** - 简历分析、岗位匹配、聊天生成、外包识别
|
||||
6. **完整审计** - 任务、投递、聊天全链路追踪
|
||||
7. **模块化设计** - 清晰的分层架构,易于扩展和维护
|
||||
|
||||
## 十、性能指标
|
||||
|
||||
- 任务调度延迟: < 100ms
|
||||
- 数据库查询: 95%在100ms内
|
||||
- MQTT消息延迟: < 50ms
|
||||
- 前端页面加载: < 2s
|
||||
- 并发支持: 最多5个设备同时执行
|
||||
|
||||
---
|
||||
|
||||
**文档维护**: 开发团队
|
||||
**最后更新**: 2025-12-25
|
||||
**联系方式**: 项目Issues
|
||||
@@ -861,7 +861,9 @@ export default {
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('位置解析失败:', error)
|
||||
this.$Message.error('位置解析失败:' + (error.message || '请稍后重试'))
|
||||
// 优先从 error.response.data.message 获取,然后是 error.message
|
||||
const errorMsg = error.response?.data?.message || error.message || '请稍后重试'
|
||||
this.$Message.error(errorMsg)
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -908,7 +910,9 @@ export default {
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('批量位置解析失败:', error)
|
||||
this.$Message.error('批量位置解析失败:' + (error.message || '请稍后重试'))
|
||||
// 优先从 error.response.data.message 获取,然后是 error.message
|
||||
const errorMsg = error.response?.data?.message || error.message || '请稍后重试'
|
||||
this.$Message.error(errorMsg)
|
||||
} finally {
|
||||
this.batchParseLoading = false
|
||||
}
|
||||
|
||||
@@ -331,7 +331,9 @@ export default {
|
||||
await this.loadResumeData(this.resumeData.resumeId)
|
||||
} catch (error) {
|
||||
console.error('AI 分析失败:', error)
|
||||
this.$Message.error('AI 分析失败: ' + (error.message || '请稍后重试'))
|
||||
// 优先从 error.response.data.message 获取,然后是 error.message
|
||||
const errorMsg = error.response?.data?.message || error.message || '请稍后重试'
|
||||
this.$Message.error(errorMsg)
|
||||
} finally {
|
||||
this.analyzing = false
|
||||
}
|
||||
|
||||
@@ -1 +1 @@
|
||||
import{a as t}from"./index-CMiak5Ls.js";class s{async getConfig(r){try{return await t.post("/user/delivery-config/get",{sn_code:r})}catch(e){throw console.error("获取投递配置失败:",e),e}}async saveConfig(r,e){try{return await t.post("/user/delivery-config/save",{sn_code:r,deliver_config:e})}catch(o){throw console.error("保存投递配置失败:",o),o}}}const i=new s;export{i as default};
|
||||
import{a as t}from"./index-BEa_v6Fs.js";class s{async getConfig(r){try{return await t.post("/user/delivery-config/get",{sn_code:r})}catch(e){throw console.error("获取投递配置失败:",e),e}}async saveConfig(r,e){try{return await t.post("/user/delivery-config/save",{sn_code:r,deliver_config:e})}catch(o){throw console.error("保存投递配置失败:",o),o}}}const i=new s;export{i as default};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
import{a as t}from"./index-Cia_UppJ.js";class s{async getConfig(r){try{return await t.post("/user/delivery-config/get",{sn_code:r})}catch(e){throw console.error("获取投递配置失败:",e),e}}async saveConfig(r,e){try{return await t.post("/user/delivery-config/save",{sn_code:r,deliver_config:e})}catch(o){throw console.error("保存投递配置失败:",o),o}}}const i=new s;export{i as default};
|
||||
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
|
Before Width: | Height: | Size: 334 KiB |
Binary file not shown.
Binary file not shown.
@@ -1,32 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>boss - 远程监听服务</title>
|
||||
<script type="module" crossorigin src="/app/assets/index-Cia_UppJ.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="/app/assets/index--P_P-eHg.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<!-- 启动加载动画 -->
|
||||
<div id="loading-screen" class="loading-screen">
|
||||
<div class="loading-content">
|
||||
<div class="loading-logo">
|
||||
<div class="logo-circle"></div>
|
||||
</div>
|
||||
<div class="loading-text">正在启动...</div>
|
||||
<div class="loading-progress">
|
||||
<div class="progress-bar-animated"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Vue 应用挂载点 -->
|
||||
<div id="app" ></div>
|
||||
|
||||
<!-- 在 body 底部加载 Vue 应用脚本 -->
|
||||
|
||||
</body>
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>boss - 远程监听服务</title>
|
||||
<script type="module" crossorigin src="/app/assets/index-CMiak5Ls.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="/app/assets/index-DDAU-aR1.css">
|
||||
<script type="module" crossorigin src="/app/assets/index-BEa_v6Fs.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="/app/assets/index-BHUtbpCz.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
Reference in New Issue
Block a user