289 lines
6.0 KiB
Markdown
289 lines
6.0 KiB
Markdown
|
|
# 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或联系开发团队。
|