Files
fatemaster/README.md

289 lines
6.0 KiB
Markdown
Raw Permalink Normal View History

2025-10-03 11:24:11 +08:00
# 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或联系开发团队。