# FateMaster - 命运大师八字算命网站 一个功能完整的八字算命网站,支持多种卜卦方式、多语言、响应式设计。 ## 技术栈 ### 前端 - **Vue 3** + **TypeScript** + **Vite** - **Ant Design Vue** - UI组件库 - **Vue Router** - 路由管理 - **Pinia** - 状态管理 - **vue-i18n** - 国际化 - **Axios** - HTTP客户端 ### 后端 - **ASP.NET Core 8** - Web API框架 - **Entity Framework Core** - ORM - **Pomelo.EntityFrameworkCore.MySql** - MySQL数据库驱动 ### 数据库 - **MySQL** 8.0+ ## 项目结构 ``` fatemaster/ ├── frontend/ │ ├── fatemaster-web/ # 用户端前端 │ └── fatemaster-admin/ # 管理后台前端 ├── backend/ │ └── FateMaster.API/ # .NET后端API └── docs/ # 文档 ``` ## 功能特性 ### 用户端功能 - ✅ 批八字 - 详细的生辰八字分析 - ✅ 事业运势 - 职业发展预测 - ✅ 姻缘测算 - 婚姻关系分析 - ✅ 塔罗占卜 - 互动式塔罗牌选择 - ✅ 星座运势 - 12星座每日/每周/每月运势 - ✅ 多语言支持 - 简体中文、繁体中文、英文、日语 - ✅ 响应式设计 - 支持PC、平板、手机 - ✅ 支付集成 - 支付宝、PayPal、Stripe ### 管理后台功能 - ✅ 仪表盘 - 数据统计概览 - ✅ 卜卦记录管理 - 查看和筛选所有记录 - ✅ 价格配置 - 动态调整各服务价格 - ✅ 统计分析 - 订单量、收入等数据分析 ## 快速开始 ### 环境要求 - Node.js 18+ - .NET 8 SDK - MySQL 8.0+ ### 1. 安装前端依赖 ```bash # 用户端 cd frontend/fatemaster-web npm install # 管理后台 cd frontend/fatemaster-admin npm install ``` ### 2. 配置数据库 创建MySQL数据库: ```sql CREATE DATABASE fatemaster CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 修改 `backend/FateMaster.API/appsettings.json`: ```json { "ConnectionStrings": { "DefaultConnection": "Server=localhost;Port=3306;Database=fatemaster;User=root;Password=your_password;" } } ``` ### 3. 运行数据库迁移 ```bash cd backend/FateMaster.API dotnet ef migrations add InitialCreate dotnet ef database update ``` ### 4. 启动服务 ```bash # 启动后端API (端口5000) cd backend/FateMaster.API dotnet run # 启动用户端 (端口3000) cd frontend/fatemaster-web npm run dev # 启动管理后台 (端口3001) cd frontend/fatemaster-admin npm run dev ``` ### 访问地址 - 用户端: http://localhost:3000 - 管理后台: http://localhost:3001 - API文档: http://localhost:5000/swagger ## 配置说明 ### 支付配置 在 `appsettings.json` 中配置支付信息: ```json { "PaymentSettings": { "Alipay": { "AppId": "your_app_id", "PrivateKey": "your_private_key", "PublicKey": "alipay_public_key" }, "PayPal": { "ClientId": "your_client_id", "ClientSecret": "your_client_secret", "Mode": "sandbox" }, "Stripe": { "SecretKey": "your_secret_key", "PublishableKey": "your_publishable_key" } } } ``` ### AI配置 配置AI大模型API(用于解读算命结果): ```json { "AISettings": { "Provider": "OpenAI", "ApiKey": "your_api_key", "Model": "gpt-4", "BaseUrl": "https://api.openai.com/v1" } } ``` ## 数据库表结构 ### DivinationRecords - 卜卦记录表 - Id - 主键 - Type - 卜卦类型 (bazi, career, marriage, tarot, zodiac) - InputData - 用户输入数据(JSON) - TraditionalResult - 传统算法结果(JSON) - AIInterpretation - AI解读结果 - PaymentStatus - 支付状态 (pending, paid, failed) - PaymentMethod - 支付方式 - Amount - 金额 - ClientIp - 客户端IP - Language - 语言 - CreatedAt - 创建时间 ### PriceConfig - 价格配置表 - Id - 主键 - ServiceType - 服务类型 - Price - 价格 - Currency - 货币 - IsEnabled - 是否启用 ### SystemConfig - 系统配置表 - Id - 主键 - ConfigKey - 配置键 - ConfigValue - 配置值 - Description - 描述 ## 待实现功能 ### 支付集成 需要实现以下支付服务类: - AlipayService - 支付宝支付 - PayPalService - PayPal支付 - StripeService - Stripe支付 参考位置:`backend/FateMaster.API/Services/Payment/` ### AI集成 需要实现AI服务类: - AIService - 调用大模型API解读算命结果 参考位置:`backend/FateMaster.API/Services/AI/` ### 算命算法 需要实现传统算法类: - BaZiService - 八字排盘算法 - TarotService - 塔罗牌解读算法 - ZodiacService - 星座运势算法 参考位置:`backend/FateMaster.API/Services/Divination/` ## 部署建议 ### 生产环境配置 1. **前端** - 使用 `npm run build` 构建生产版本 - 部署到 Nginx 或其他静态文件服务器 - 配置反向代理到后端API 2. **后端** - 使用 `dotnet publish -c Release` 构建发布版本 - 部署到 Linux 服务器 - 使用 Nginx 作为反向代理 - 配置 SSL 证书 3. **数据库** - 使用独立的MySQL服务器 - 配置定期备份 - 优化索引和查询性能 ### Nginx配置示例 ```nginx # 用户端 server { listen 80; server_name your-domain.com; root /var/www/fatemaster-web/dist; location / { try_files $uri $uri/ /index.html; } location /api { proxy_pass http://localhost:5000; } } # 管理后台 server { listen 80; server_name admin.your-domain.com; root /var/www/fatemaster-admin/dist; location / { try_files $uri $uri/ /index.html; } location /api { proxy_pass http://localhost:5000; } } ``` ## 开发注意事项 1. **环境变量** - 敏感信息(API密钥、数据库密码)应使用环境变量 - 不要将密钥提交到代码仓库 2. **CORS配置** - 生产环境需要更新CORS白名单 - 移除开发环境的localhost地址 3. **日志记录** - 配置适当的日志级别 - 使用日志聚合工具(如ELK) 4. **性能优化** - 前端使用懒加载 - 后端使用缓存(Redis) - 数据库查询优化 ## License MIT License ## 联系方式 如有问题,请提交Issue或联系开发团队。