06488f0237
功能: - Go后端 (Gin + GORM + PostgreSQL) - UniApp用户端 (iOS/Android/小程序) - DaisyUI5后台管理 - JWT认证 + 微信登录 - 盲选加权算法 - 会员系统 + 优惠券 - 打分评价 + 偏好学习
180 lines
3.7 KiB
Markdown
180 lines
3.7 KiB
Markdown
# 🎲 帮我选 - 盲选应用
|
||
|
||
> AI驱动的盲选应用,让用户盲选吃喝玩乐套餐,支持会员盈利,通过用户历史行为智能更新偏好权重。
|
||
|
||
## 📱 项目结构
|
||
|
||
```
|
||
blind-select/
|
||
├── backend/ # Go 后端服务
|
||
│ ├── cmd/server/ # 入口文件
|
||
│ ├── internal/ # 核心代码
|
||
│ │ ├── handler/ # HTTP 处理器
|
||
│ │ ├── middleware/ # 中间件 (JWT, CORS)
|
||
│ │ ├── model/ # 数据模型
|
||
│ │ ├── service/ # 业务逻辑
|
||
│ │ └── utils/ # 工具函数
|
||
│ ├── migrations/ # 数据库迁移
|
||
│ ├── config.yaml # 配置文件
|
||
│ └── Dockerfile
|
||
├── frontend-app/ # UniApp 用户端 (iOS/Android/小程序)
|
||
│ ├── pages/ # 页面
|
||
│ ├── api/ # API 封装
|
||
│ ├── store/ # 状态管理
|
||
│ └── App.vue
|
||
├── frontend-admin/ # DaisyUI5 后台管理
|
||
│ ├── src/
|
||
│ │ ├── views/ # 页面
|
||
│ │ ├── api/ # API 封装
|
||
│ │ └── router/ # 路由
|
||
│ └── index.html
|
||
└── PLAN.md # 详细开发文档
|
||
```
|
||
|
||
## 🛠 技术栈
|
||
|
||
| 组件 | 技术 |
|
||
|------|------|
|
||
| 后端 | Go + Gin + GORM + PostgreSQL |
|
||
| 用户端 | UniApp + Vue3 |
|
||
| 后台管理 | DaisyUI5 + Tailwind + Alpine.js |
|
||
| 认证 | JWT + 微信登录 |
|
||
| AI | OpenAI 兼容 API |
|
||
|
||
## 🚀 快速开始
|
||
|
||
### 1. 后端启动
|
||
|
||
```bash
|
||
cd backend
|
||
|
||
# 配置数据库
|
||
cp config.yaml.example config.yaml
|
||
# 编辑 config.yaml 填入数据库信息
|
||
|
||
# 安装依赖
|
||
go mod download
|
||
|
||
# 运行迁移
|
||
psql -U postgres -d blind_select < migrations/001_init.sql
|
||
|
||
# 启动服务
|
||
go run cmd/server/main.go
|
||
```
|
||
|
||
### 2. UniApp 前端
|
||
|
||
```bash
|
||
cd frontend-app
|
||
|
||
# 安装依赖
|
||
npm install
|
||
|
||
# H5 开发
|
||
npm run dev:h5
|
||
|
||
# 微信小程序
|
||
npm run dev:mp-weixin
|
||
|
||
# 构建
|
||
npm run build:mp-weixin
|
||
```
|
||
|
||
### 3. 后台管理
|
||
|
||
```bash
|
||
cd frontend-admin
|
||
|
||
# 安装依赖
|
||
npm install
|
||
|
||
# 开发
|
||
npm run dev
|
||
|
||
# 构建
|
||
npm run build
|
||
```
|
||
|
||
## 🐳 Docker 部署
|
||
|
||
```bash
|
||
# 后端
|
||
cd backend
|
||
docker-compose up -d
|
||
|
||
# 后台管理
|
||
cd frontend-admin
|
||
docker build -t blind-admin .
|
||
docker run -p 3000:80 blind-admin
|
||
```
|
||
|
||
## 📊 核心功能
|
||
|
||
### 盲选算法
|
||
```
|
||
权重 = 基础(1.0) × 用户偏好(1.0-2.5) × 套餐质量(0.5-1.0)
|
||
× 商家质量 × 去重惩罚(0.1-1.0) × 探索加成(1.0-1.5)
|
||
```
|
||
|
||
### 会员体系
|
||
- **免费用户**: 每天3次盲选,基础分类
|
||
- **VIP会员** (¥29/月 或 ¥199/年): 每天10次,全部分类,优先匹配,月报
|
||
|
||
### 打分权重更新
|
||
- 5星 → ×1.5 放大正向
|
||
- 1星 → ×-1.5 放大负向
|
||
- 再次前往 → +2.0 超高权重
|
||
|
||
## 🔌 API 端点
|
||
|
||
### 认证
|
||
- `POST /api/v1/auth/register` - 注册
|
||
- `POST /api/v1/auth/login` - 登录
|
||
- `POST /api/v1/auth/wechat/login` - 微信登录
|
||
|
||
### 盲选
|
||
- `GET /api/v1/blind/categories` - 获取分类
|
||
- `POST /api/v1/blind/choose` - 盲选
|
||
- `GET /api/v1/blind/history` - 历史
|
||
|
||
### 会员
|
||
- `GET /api/v1/member/status` - 状态查询
|
||
- `POST /api/v1/member/subscribe` - 订阅
|
||
|
||
### 优惠券
|
||
- `GET /api/v1/coupon/list` - 我的优惠券
|
||
- `POST /api/v1/coupon/claim` - 领取
|
||
|
||
### 后台管理
|
||
- `POST /api/v1/admin/login` - 管理员登录
|
||
- `GET /api/v1/admin/users` - 用户列表
|
||
- `GET /api/v1/admin/merchants` - 商家列表
|
||
|
||
## 📝 配置说明
|
||
|
||
### backend/config.yaml
|
||
```yaml
|
||
server:
|
||
port: 8080
|
||
mode: debug
|
||
|
||
database:
|
||
host: localhost
|
||
port: 5432
|
||
user: postgres
|
||
password: your_password
|
||
dbname: blind_select
|
||
|
||
jwt:
|
||
secret: your_jwt_secret
|
||
expire: 24h
|
||
|
||
wechat:
|
||
appid: your_appid
|
||
secret: your_secret
|
||
```
|
||
|
||
## 📄 License
|
||
|
||
MIT License
|