# dcloud-interview **Repository Path**: sparklc/dcloud-interview ## Basic Information - **Project Name**: dcloud-interview - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-10-18 - **Last Updated**: 2026-10-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DCloud Interview 智能面试平台 一个基于 Spring Cloud 微服务与 Vue 3 的 AI 求职面试练习项目,覆盖统一网关、账户登录、商品订单、微信支付、权益发放、简历分析和综合面试等完整业务链路。 > 本仓库用于个人学习、工程实践和作品展示。请遵守原课程及相关素材的版权要求,不要将仓库中的第三方素材或代码用于未经授权的商业用途。 ## 主要功能 - 账户模块:图形验证码、短信验证码登录、微信扫码登录、账户信息和权益查询。 - 商品模块:单项权益与套餐查询、订单创建、微信支付二维码、支付回调、订单超时关闭、权益发放及补偿检查。 - AI 模块:简历上传与异步分析、四轮综合面试、逐题异步评估、分轮评价和最终面试报告。 - 网关模块:外部请求统一经过网关转发到各微服务,并对内部接口进行访问控制。 - MCP 服务:向 AI 服务提供简历分析工具。 - Web 前端:登录、简历分析、综合面试、商品购买、订单和个人中心等页面。 ## 技术栈 - Java 21、Spring Boot、Spring Cloud、Spring Cloud Alibaba - Nacos、MySQL、Redis、RabbitMQ - MyBatis-Plus、OpenFeign - Spring AI、通义千问 DashScope、MCP - 微信测试号登录、微信支付 API v3、阿里云短信与 OSS - Vue 3、TypeScript、Vite、Pinia、Axios、Tailwind CSS ## 项目结构 | 目录 | 说明 | 默认端口 | | --- | --- | --- | | common | 公共 DTO、枚举、工具类、拦截器与 Feign 公共能力 | - | | gateway | 统一 API 网关 | 8000 | | account-service | 账户、登录与权益服务 | 9001 | | ai-service | 简历分析与综合面试服务 | 9002 | | product-service | 商品、订单、支付和权益发放服务 | 9003 | | mcp-server | 简历分析 MCP 工具服务 | 8090 | | dcloud-interview-web | Vue 3 前端 | 3000 | ## 公开仓库的配置说明 为了防止账号、密码、API Key、支付证书和线上地址泄露,以下本地配置不会上传: - 所有 .env、.env.* 文件 - 各业务服务的 application-dev.yml、application-prod.yml - gateway/src/main/resources/application.yaml - mcp-server/src/main/resources/application.yaml - product-service/src/main/resources/cert 下的微信支付证书和私钥 - 本地 MyBatis-Plus 代码生成器配置 - target、node_modules、dist、日志和运行输出 仓库中的 env.example 只列出变量名称,不包含真实值。请在本地自行创建配置,任何真实密钥都不要提交到 Git。 ### 通用基础设施 三个业务服务都需要配置: - Nacos:NACOS_SERVER、NACOS_USER、NACOS_PASSWORD - MySQL:MYSQL_SERVER、MYSQL_USER、MYSQL_PASSWORD - Redis:REDIS_SERVER、REDIS_PASSWORD - RabbitMQ:RABBITMQ_SERVER、RABBITMQ_USER、RABBITMQ_PASSWORD,以及所使用的 virtual host - JWT:JWT_SECRET,使用至少 32 字节的随机字符串 数据库初始化脚本位于 dcloud-interview-web/sql。公开仓库中的脚本只包含表结构,不包含本地测试账户、简历、订单或 AI 分析数据: - account_db.sql - ai_db.sql - product_db.sql ### account-service 除通用基础设施外,还需要: - 阿里云短信:SMS_APP_CODE、短信模板 ID;真实联调时关闭 mock - 阿里云 OSS:OSS_ACCESS_KEY_ID、OSS_ACCESS_KEY_SECRET、Endpoint、Bucket 和访问域名 - 微信测试号登录:WECHAT_APP_ID、WECHAT_APP_SECRET、WECHAT_TOKEN - 微信测试号后台配置与项目回调地址保持一致;公网回调应使用可访问的 HTTPS 地址 本地创建 account-service/src/main/resources/application-dev.yml,并在其中配置 Nacos、RabbitMQ、MySQL、Redis、OSS、短信和 wechat.login。 ### ai-service 除通用基础设施外,还需要: - DashScope:API_KEY,以及使用的模型、温度和最大 Token 数 - MCP 客户端:MCP 服务 URL 和 Endpoint - 可选搜索服务:SearXNG Base URL、语言和搜索引擎 - OSS:用于简历文件访问时配置 AccessKey、Endpoint、Bucket 和域名 本地创建 ai-service/src/main/resources/application-dev.yml,并配置 spring.ai.dashscope、spring.ai.mcp、消息队列、数据库和缓存。 ### product-service 除通用基础设施外,还需要微信支付 API v3 配置: - 商户号 mch-id - 应用 app-id - 商户证书序列号 cert-serial-no - API v3 Key - 商户私钥路径 private-key-path - 微信支付公钥路径、public-key-id - HTTPS 支付回调地址 notify-url 证书文件放在本地 product-service/src/main/resources/cert 目录,不能提交到 Git。notify-url 必须是微信支付平台可以从公网访问的 HTTPS 地址,并应经网关转发到商品服务回调接口。 本地创建 product-service/src/main/resources/application-dev.yml,并配置 wechat.pay、消息队列、数据库和缓存。 ### gateway 本地创建 gateway/src/main/resources/application.yaml,至少包含: - server.port:8000 - Nacos 注册中心地址、用户名和密码 - account-service、ai-service、product-service 三组路由 - Path 谓词、StripPrefix 等过滤器 - internal.api.blacklist 内部接口访问控制列表 可通过 NACOS_SERVER_ADDR 注入 Nacos 地址。浏览器和第三方回调访问后端时应先进入网关,服务间 OpenFeign 调用除外。 ### mcp-server 本地创建 mcp-server/src/main/resources/application.yaml,至少包含: - SERVER_PORT,默认 8090 - DASHSCOPE_API_KEY - AI_MODEL - Spring AI MCP Server 的名称、版本、协议和 Endpoint ### Web 前端 在 dcloud-interview-web 下创建 .env.development: ~~~dotenv VITE_API_BASE_URL=/api ~~~ 开发环境可通过 Vite 代理将 /api 转发到 http://localhost:8000,避免前端绕过网关直接请求微服务。 ## 本地启动 ### 1. 准备环境 - JDK 21 - Maven 3.9+ - Node.js 20+ - MySQL、Redis、RabbitMQ、Nacos - 可用的 DashScope、短信、OSS、微信测试号和微信支付配置 先执行 dcloud-interview-web/sql 下的三个 SQL 脚本,并完成上面的本地配置。 ### 2. 构建后端 ~~~bash mvn clean install -DskipTests ~~~ ### 3. 启动服务 建议顺序: 1. MySQL、Redis、RabbitMQ、Nacos 2. mcp-server 3. account-service、ai-service、product-service 4. gateway 5. dcloud-interview-web 可以在 IDE 中分别启动各模块的 Application 类,也可以在完成根项目安装后进入对应模块运行: ~~~bash mvn spring-boot:run ~~~ ### 4. 启动前端 ~~~bash cd dcloud-interview-web npm install npm run dev ~~~ 访问 http://localhost:3000。 ## 安全提示 - 不要提交真实密码、AccessKey、API Key、Token、JWT 密钥、支付 API v3 Key 或证书私钥。 - 公网回调地址、商户信息和测试号信息应通过本地配置或环境变量管理。 - 如果密钥曾进入 Git 历史,仅加入 .gitignore 不会删除历史记录,必须立即轮换密钥并清理历史。本仓库使用独立的新 Git 历史发布,避免携带原仓库中的本地配置记录。