# career_api **Repository Path**: zhiqipin/career_api ## Basic Information - **Project Name**: career_api - **Description**: 智企聘后端 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-01 - **Last Updated**: 2025-12-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 央国企考编选岗小程序 - 后端API ## 项目简介 央国企考编选岗小程序是一个专门为央国企考试和岗位选择提供服务的平台。本项目提供完整的后端API支持,包括用户管理、职位信息、智能匹配、会员服务、学习资源、系统管理等功能模块。 ## 技术架构 ### 核心技术栈 - **后端框架**: Python 3.8+ / Django 4.2+ - **API框架**: Django REST Framework 3.14+ - **数据库**: MySQL 8.0+ - **缓存**: Redis 6.0+ - **任务队列**: Celery - **认证**: JWT Token + 微信认证 - **管理后台**: Django Admin + SimpleUI ### 系统架构 ``` ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ 前端小程序 │ │ 管理后台 │ │ 第三方服务 │ │ │ │ │ │ │ └─────────┬───────┘ └─────────┬───────┘ └─────────┬───────┘ │ │ │ └──────────────────────┼──────────────────────┘ │ ┌─────────────┴─────────────┐ │ Django API 层 │ │ │ │ ┌─────────────────────┐ │ │ │ 认证 & 权限 │ │ │ └─────────────────────┘ │ │ ┌─────────────────────┐ │ │ │ 业务逻辑层 │ │ │ └─────────────────────┘ │ │ ┌─────────────────────┐ │ │ │ 数据访问层 │ │ │ └─────────────────────┘ │ └─────────────┬─────────────┘ │ ┌─────────────┴─────────────┐ │ 数据存储层 │ │ │ │ ┌─────────┐ ┌─────────┐ │ │ │ MySQL │ │ Redis │ │ │ └─────────┘ └─────────┘ │ └───────────────────────────┘ ``` ## 功能模块 ### 1. 用户管理 (apps.users) - 用户注册、登录、认证 - 微信登录集成 - 用户资料管理 - 会员等级管理 - 收藏夹管理 - 学习记录 ### 2. 职位管理 (apps.jobs) - 公司信息管理 - 职位分类管理 - 职位信息发布 - 职位搜索和筛选 - 职位申请管理 - 公司排名统计 ### 3. 匹配管理 (apps.matching) - 匹配规则配置 - 用户匹配偏好设置 - 匹配历史记录 ### 4. 学习资源 (apps.learning) - 题库管理 - 在线练习 - 视频课程 - 学习进度跟踪 - 练习记录统计 ### 5. 会员服务 (apps.membership) - 会员计划管理 - 订单管理 - 激活码系统 - 会员升级/续费 - 支付回调处理 ### 6. 系统管理 (apps.system) - 系统配置管理 - 横幅/广告管理 - 通知消息管理 - 操作日志记录 - 数据统计分析 ## 快速开始 ### 环境要求 - Python 3.8+ - MySQL 8.0+ - Redis 6.0+ - Node.js 14+ (可选,用于前端构建) ### 安装步骤 1. **克隆项目** ```bash git clone cd career_api ``` 2. **创建虚拟环境** ```bash python -m venv venv # Windows venv\Scripts\activate # Linux/Mac source venv/bin/activate ``` 3. **安装依赖** ```bash pip install -r requirements.txt ``` 4. **环境配置** ```bash cp .env.example .env # 编辑 .env 文件,配置数据库等信息 ``` 5. **数据库配置** ```bash # 确保MySQL服务运行在localhost:3307 # 创建数据库 mysql -u root -p -h localhost -P 3307 CREATE DATABASE career CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 6. **运行迁移** ```bash python manage.py makemigrations python manage.py migrate ``` 7. **创建超级用户** ```bash python manage.py createsuperuser ``` 8. **启动服务** ```bash # 启动Django开发服务器 python manage.py runserver # 新终端启动Celery工作进程 celery -A career worker --loglevel=info # 新终端启动Celery监控 celery -A career flower ``` ### 使用启动脚本 ```bash python start_project.py ``` ## API文档 ### 访问地址 - API文档: http://localhost:8000/api/docs/ - 管理后台: http://localhost:8000/admin/ ### 主要接口 #### 认证接口 - `POST /api/v1/auth/register/` - 用户注册 - `POST /api/v1/auth/login/` - 用户登录 - `POST /api/v1/auth/wechat-login/` - 微信登录 - `POST /api/v1/auth/refresh/` - 刷新Token #### 用户接口 - `GET /api/v1/users/profile/` - 获取用户信息 - `PUT /api/v1/users/profile/` - 更新用户信息 - `GET /api/v1/users/membership/` - 获取会员信息 - `GET /api/v1/users/favorites/` - 获取收藏列表 #### 职位接口 - `GET /api/v1/jobs/` - 获取职位列表 - `GET /api/v1/jobs/{id}/` - 获取职位详情 - `GET /api/v1/jobs/search/` - 搜索职位 - `GET /api/v1/jobs/companies/` - 获取公司列表 - `GET /api/v1/jobs/categories/` - 获取职位分类 #### 匹配接口 - `GET /api/v1/matching/records/` - 获取匹配记录 - `GET /api/v1/matching/rules/` - 获取匹配规则 - `GET /api/v1/matching/preferences/` - 获取匹配偏好 #### 学习接口 - `GET /api/v1/learning/question-banks/` - 获取题库列表 - `GET /api/v1/learning/questions/` - 获取题目列表 - `GET /api/v1/learning/courses/` - 获取课程列表 - `POST /api/v1/learning/practice/` - 提交练习答案 #### 会员接口 - `GET /api/v1/membership/plans/` - 获取会员计划 - `POST /api/v1/membership/orders/` - 创建订单 - `GET /api/v1/membership/orders/my-orders/` - 获取我的订单 ## 数据库设计 ### 核心表结构 - **users_user**: 用户基础信息 - **users_userprofile**: 用户详细资料 - **users_membership**: 会员信息 - **jobs_company**: 公司信息 - **jobs_job**: 职位信息 - **jobs_jobcategory**: 职位分类 - **matching_matchrecord**: 匹配记录 - **learning_questionbank**: 题库 - **learning_question**: 题目 - **learning_course**: 课程 - **membership_membershipplan**: 会员计划 - **membership_order**: 订单 - **system_config**: 系统配置 ## 配置说明 ### 环境变量 ```bash # 数据库配置 DB_HOST=localhost DB_PORT=3307 DB_NAME=career DB_USER=root DB_PASSWORD=career12345 # Redis配置 REDIS_HOST=localhost REDIS_PORT=6379 REDIS_DB=0 # AI服务配置 AI_API_KEY=your_api_key AI_API_URL=https://api.doubao.com/v1 # 微信配置 WECHAT_APP_ID=your_app_id WECHAT_APP_SECRET=your_app_secret # 文件存储配置 OSS_ACCESS_KEY_ID=your_access_key OSS_ACCESS_KEY_SECRET=your_secret_key OSS_BUCKET_NAME=your_bucket OSS_ENDPOINT=your_endpoint ``` ### 权限配置 - **游客**: 可查看公开信息 - **普通用户**: 基础功能访问 - **VIP会员**: 智能匹配、高级功能 - **超级会员**: 全部功能访问 - **管理员**: 系统管理权限 ## 开发指南 ### 代码规范 - 遵循PEP 8 Python代码规范 - 使用类型提示 - 编写详细的文档字符串 - 遵循Django最佳实践 ### 测试 ```bash # 运行API测试 python test_api.py # 运行Django测试 python manage.py test # 代码覆盖率检查 coverage run --source='.' manage.py test coverage report ``` ### 部署 ```bash # 生产环境设置 export DJANGO_SETTINGS_MODULE=career.settings.production # 收集静态文件 python manage.py collectstatic --noinput # 使用Gunicorn启动 gunicorn career.wsgi:application --bind 0.0.0.0:8000 ``` ## 常见问题 ### Q: 数据库连接失败 A: 检查MySQL服务是否运行,确认端口3307是否正确,检查用户名密码 ### Q: Redis连接失败 A: 确保Redis服务正在运行,检查端口6379是否可用 ### Q: 微信登录失败 A: 检查微信AppID和AppSecret配置是否正确 ### Q: AI服务调用失败 A: 检查AI API密钥配置,确认网络连接正常 ## 贡献指南 1. Fork项目 2. 创建功能分支 3. 提交更改 4. 推送到分支 5. 创建Pull Request ## 许可证 本项目采用MIT许可证 ## 联系方式 - 项目维护者: [维护者姓名] - 邮箱: [联系邮箱] - 项目地址: [项目仓库地址] ## 更新日志 ### v1.0.0 (2024-01-XX) - 初始版本发布 - 完整的用户管理系统 - 职位管理和搜索功能 - 智能匹配算法 - 学习资源管理 - 会员服务体系 - 系统管理功能