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或联系开发团队。
|