dev
This commit is contained in:
@@ -209,7 +209,8 @@ CREATE TABLE `orders` (
|
||||
`room_count` TINYINT UNSIGNED DEFAULT 1 COMMENT '房间数',
|
||||
`room_price` DECIMAL(10,2) UNSIGNED NOT NULL COMMENT '房费单价',
|
||||
`room_amount` DECIMAL(10,2) UNSIGNED NOT NULL COMMENT '房费总额',
|
||||
`service_fee` DECIMAL(10,2) UNSIGNED DEFAULT 0.00 COMMENT '服务费',
|
||||
`service_fee` DECIMAL(10,2) UNSIGNED DEFAULT 0.00 COMMENT '软件服务费',
|
||||
`merchant_income` DECIMAL(10,2) UNSIGNED DEFAULT 0.00 COMMENT '商家预计收入',
|
||||
`coupon_discount` DECIMAL(10,2) UNSIGNED DEFAULT 0.00 COMMENT '优惠券抵扣',
|
||||
`total_amount` DECIMAL(10,2) UNSIGNED NOT NULL COMMENT '订单总金额',
|
||||
`pay_amount` DECIMAL(10,2) UNSIGNED NOT NULL COMMENT '实付金额',
|
||||
|
||||
+64
-21
@@ -136,12 +136,32 @@
|
||||
|
||||
```
|
||||
待支付 ──支付成功──> 待确认 ──商家确认──> 待入住 ──入住──> 已入住 ──离店──> 已完成
|
||||
│ │
|
||||
└──超时/取消──> 已取消 └──商家拒绝──> 已取消
|
||||
│ │ │
|
||||
└──超时/取消──> 已取消 └──商家拒绝──> 已取消 └──用户退款──> 退款中
|
||||
│
|
||||
├──商家通过──> 已退款(恢复房量)
|
||||
└──商家拒绝──> 已取消
|
||||
|
||||
已完成 ──申请退款──> 退款中 ──平台处理──> 已退款
|
||||
待确认 ──用户退款──> 退款中 ──商家通过──> 已退款(恢复房量)
|
||||
```
|
||||
|
||||
### 用户订单操作
|
||||
|
||||
| 操作 | 接口 | 适用状态 | 说明 |
|
||||
| -------- | ------------------------- | ---------------------------- | ------------------------ |
|
||||
| 取消订单 | PUT /orders/:id/cancel | pending_pay, pending_confirm | 取消订单,已支付则退款 |
|
||||
| 申请退款 | PUT /orders/:id/refund | pending_confirm, pending_checkin | 提交退款申请 |
|
||||
|
||||
### 商家订单操作
|
||||
|
||||
| 操作 | 接口 | 适用状态 | 说明 |
|
||||
| ---------- | ----------------------------------------- | ----------------- | ----------------------------- |
|
||||
| 确认订单 | PUT /seller/orders/:id/confirm | pending_confirm | 确认后等待用户入住 |
|
||||
| 拒绝订单 | PUT /seller/orders/:id/reject | pending_confirm | 拒绝并退款 |
|
||||
| 办理入住 | PUT /seller/orders/:id/checkin | pending_checkin | 标记已入住 |
|
||||
| 通过退款 | PUT /seller/orders/:id/approve-refund | refunding | 同意退款,恢复房量日历库存 |
|
||||
| 拒绝退款 | PUT /seller/orders/:id/reject-refund | refunding | 拒绝退款,订单变为已取消 |
|
||||
|
||||
### 自动化规则
|
||||
|
||||
- 待支付订单: 30分钟未支付自动取消
|
||||
@@ -152,11 +172,17 @@
|
||||
|
||||
```
|
||||
房费总额 = 房价/晚 × 入住晚数 × 房间数
|
||||
服务费 = 房费总额 × 服务费比例(默认5%)
|
||||
订单总额 = 房费总额 + 服务费
|
||||
订单总额 = 房费总额
|
||||
实付金额 = 订单总额 - 优惠券抵扣
|
||||
软件服务费 = 实付金额 × 服务费比例(默认5%,平台后台可配置)
|
||||
商家预计收入 = 实付金额 - 软件服务费
|
||||
```
|
||||
|
||||
**说明**:
|
||||
- 软件服务费归平台所有,在订单创建时计算
|
||||
- 商家预计收入 = 实付金额 - 软件服务费
|
||||
- 费用明细仅在商家订单详情中展示,用户端不显示
|
||||
|
||||
### 佣金计算
|
||||
|
||||
```
|
||||
@@ -242,9 +268,9 @@
|
||||
### 提现规则
|
||||
|
||||
- 最低提现金额: 100元
|
||||
- 提现手续费: 默认0.6%
|
||||
- 提现手续费: 无
|
||||
- 到账时间: T+1工作日
|
||||
- 需绑定银行卡且实名认证
|
||||
- 需绑定银行卡
|
||||
|
||||
### 对账维度
|
||||
|
||||
@@ -330,6 +356,10 @@
|
||||
|
||||
## 11. 邀请返现活动模块
|
||||
|
||||
### 模块概述
|
||||
|
||||
邀请返现是平台级营销活动,独立于其他促销活动管理。平台管理后台有专门的「邀请返现」菜单入口,不与其他活动混在一起。
|
||||
|
||||
### 活动概述
|
||||
|
||||
平台级营销活动,用户(邀请人)通过分享邀请链接/海报邀请新用户注册并完成订单,邀请人获得返现奖励。被邀请人无额外收益。
|
||||
@@ -517,19 +547,19 @@
|
||||
|
||||
**平台管理端(需管理员Token):**
|
||||
|
||||
| 方法 | 路径 | 说明 |
|
||||
| ---- | ---------------------------------------------- | ------------- |
|
||||
| GET | /admin/activity/list | 活动列表 |
|
||||
| POST | /admin/activity/create | 创建活动 |
|
||||
| PUT | /admin/activity/:id/update | 编辑活动 |
|
||||
| PUT | /admin/activity/:id/toggle | 启用/停用活动 |
|
||||
| GET | /admin/activity/invite/stats | 邀请数据总览 |
|
||||
| GET | /admin/activity/invite/records | 邀请记录列表 |
|
||||
| GET | /admin/activity/invite/cashbacks | 返现记录列表 |
|
||||
| GET | /admin/activity/invite/withdrawals | 提现审核列表 |
|
||||
| PUT | /admin/activity/invite/withdrawals/:id/approve | 审核通过 |
|
||||
| PUT | /admin/activity/invite/withdrawals/:id/reject | 审核拒绝 |
|
||||
| PUT | /admin/activity/invite/withdrawals/:id/pay | 确认打款 |
|
||||
| 方法 | 路径 | 说明 |
|
||||
| ---- | ---------------------------------------------- | --------------- |
|
||||
| GET | /admin/activity/invite/stats | 邀请数据总览 |
|
||||
| GET | /admin/activity/invite/config | 获取活动配置 |
|
||||
| PUT | /admin/activity/invite/config | 更新活动配置 |
|
||||
| GET | /admin/activity/invite/records | 邀请记录列表 |
|
||||
| GET | /admin/activity/invite/cashbacks | 返现记录列表 |
|
||||
| GET | /admin/activity/invite/withdrawals | 提现审核列表 |
|
||||
| PUT | /admin/activity/invite/withdrawals/:id/approve | 审核通过 |
|
||||
| PUT | /admin/activity/invite/withdrawals/:id/reject | 审核拒绝 |
|
||||
| PUT | /admin/activity/invite/withdrawals/:id/pay | 确认打款 |
|
||||
|
||||
**注意**: 平台管理后台不再提供通用的活动列表CRUD,邀请返现活动有独立的配置管理页面。
|
||||
|
||||
### 小程序页面路由
|
||||
|
||||
@@ -538,4 +568,17 @@
|
||||
| 邀请首页 | /pages/invite/index | 邀请统计、海报生成、分享 |
|
||||
| 邀请记录 | /pages/invite/records | 邀请人数、被邀请人列表 |
|
||||
| 返现记录 | /pages/invite/cashbacks | 返现明细列表 |
|
||||
| 提现页面 | /pages/invite/withdraw | 余额展示、提现操作、提现记录 |
|
||||
| 提现页面 | /pages/invite/withdraw | 余额展示、提现操作 |
|
||||
| 提现记录 | /pages/invite/withdrawals | 提现历史列表 |
|
||||
| 邀请海报 | /pages/invite/poster | 生成分享海报 |
|
||||
|
||||
### 平台管理后台页面
|
||||
|
||||
| 页面 | 路径 | 说明 |
|
||||
| ------------ | -------- | ---------------------------------------------- |
|
||||
| 邀请返现管理 | /invite | 数据概览、提现审核、活动配置三个Tab |
|
||||
|
||||
**页面结构**:
|
||||
- 数据概览Tab: 统计卡片 + 邀请记录列表 + 返现记录列表
|
||||
- 提现审核Tab: 提现申请列表,支持审核通过/拒绝/确认打款
|
||||
- 活动配置Tab: 启用/停用开关 + 返现比例/金额限制/提现门槛配置表单
|
||||
|
||||
@@ -28,7 +28,7 @@ INSERT INTO `member_levels` (`name`, `level`, `min_points`, `discount`, `benefit
|
||||
-- 平台配置
|
||||
INSERT INTO `platform_configs` (`config_key`, `config_value`, `description`) VALUES
|
||||
('commission_rate', '0.10', '默认平台佣金比例'),
|
||||
('withdraw_fee_rate', '0.006', '提现手续费率'),
|
||||
('service_fee_rate', '0.05', '软件服务费比例'),
|
||||
('min_deposit', '5000', '最低保证金金额'),
|
||||
('auto_cancel_minutes', '30', '未支付订单自动取消时间(分钟)'),
|
||||
('auto_complete_hours', '24', '入住后自动完成订单时间(小时)'),
|
||||
|
||||
+76
-31
@@ -19,7 +19,7 @@
|
||||
| rooms | 房源表 | merchant_id, name, type, price, status, audit_status |
|
||||
| room_calendar | 房量房价日历 | room_id, date, price, stock, status |
|
||||
| room_calendar_logs | 房态变更日志 | room_id, operator_id, change_type |
|
||||
| orders | 订单表 | order_no, user_id, merchant_id, room_id, status |
|
||||
| orders | 订单表 | order_no, user_id, merchant_id, room_id, pay_amount, service_fee, merchant_income, status |
|
||||
| reviews | 评价表 | order_id, user_id, rating, content |
|
||||
| favorites | 收藏表 | user_id, room_id |
|
||||
| coupons | 优惠券模板 | name, type, value, scope |
|
||||
@@ -100,6 +100,29 @@ orders (1) ──── (1) settlements
|
||||
- `refunding` - 退款中
|
||||
- `refunded` - 已退款
|
||||
|
||||
### 订单状态流转
|
||||
|
||||
```
|
||||
待支付 ──支付成功──> 待确认 ──商家确认──> 待入住 ──入住──> 已入住 ──离店──> 已完成
|
||||
│ │ │
|
||||
└──超时/取消──> 已取消 └──商家拒绝──> 已取消 └──用户退款──> 退款中
|
||||
│
|
||||
├──商家通过──> 已退款(恢复房量)
|
||||
└──商家拒绝──> 已取消
|
||||
|
||||
待确认 ──用户退款──> 退款中 ──商家通过──> 已退款(恢复房量)
|
||||
```
|
||||
|
||||
### 订单取消/退款规则
|
||||
|
||||
| 操作 | 适用状态 | 说明 |
|
||||
| ------------ | ---------------------------- | --------------------------------------- |
|
||||
| 用户取消 | pending_pay | 直接取消,无退款 |
|
||||
| 用户取消 | pending_confirm | 取消并退款,恢复房量 |
|
||||
| 用户退款申请 | pending_confirm, pending_checkin | 状态变为 refunding,等待商家审核 |
|
||||
| 商家通过退款 | refunding | 状态变为 refunded,恢复房量日历库存 |
|
||||
| 商家拒绝退款 | refunding | 状态变为 cancelled |
|
||||
|
||||
### 房源状态 (rooms.status)
|
||||
|
||||
- `on_sale` - 在售
|
||||
@@ -210,6 +233,26 @@ mysql -u root -p rent_platform < database/seeds/001_init_data.sql
|
||||
|
||||
---
|
||||
|
||||
## 平台配置表 (platform_configs)
|
||||
|
||||
| 配置键 | 默认值 | 说明 |
|
||||
| ----------------- | ------ | ------------------------ |
|
||||
| commission_rate | 0.10 | 默认平台佣金比例 |
|
||||
| service_fee_rate | 0.05 | 软件服务费比例(可配置) |
|
||||
| min_deposit | 5000 | 最低保证金金额 |
|
||||
| auto_cancel_minutes | 30 | 未支付订单自动取消时间 |
|
||||
| auto_complete_hours | 24 | 入住后自动完成订单时间 |
|
||||
| sms_enabled | true | 是否启用短信通知 |
|
||||
| max_images_per_room | 20 | 每个房源最大图片数 |
|
||||
| max_images_per_review | 9 | 每条评价最大图片数 |
|
||||
|
||||
**服务费计算**:
|
||||
- 软件服务费 = 实付金额 × service_fee_rate
|
||||
- 商家预计收入 = 实付金额 - 软件服务费
|
||||
- 配置可通过平台管理后台「系统设置」页面调整
|
||||
|
||||
---
|
||||
|
||||
## 商家入驻流程
|
||||
|
||||
### 流程概述
|
||||
@@ -295,7 +338,9 @@ interface SellerLoginResult {
|
||||
| ------------- | ---------------------------- | ---------------------------- |
|
||||
| 个人中心 | /pages/mine/index | 入口:商家中心、商家入驻按钮 |
|
||||
| 商家注册/登录 | /pages/seller-register/index | 商家账号注册登录 |
|
||||
| 商家中心 | /pages/merchant/home | 商家管理入口 |
|
||||
| 商家中心 | /pages/seller/home | 商家管理入口 |
|
||||
| 商家订单列表 | /pages/seller/orders | 商家订单管理 |
|
||||
| 商家订单详情 | /pages/seller/order-detail | 商家订单详情 |
|
||||
| 创建店铺 | /pages/shop-create/index | 填写店铺信息提交审核 |
|
||||
| 修改店铺 | /pages/shop-edit/index | 修改店铺信息重新审核 |
|
||||
|
||||
@@ -437,39 +482,39 @@ async update(id, dto) {
|
||||
2. **商家实名认证**: 身份证上传、银行卡绑定
|
||||
3. **图片上传接口**: 营业执照真实上传功能
|
||||
|
||||
- 显示状态标签"已冻结"
|
||||
- 显示提示"店铺已被冻结,请联系平台客服"
|
||||
- 不显示修改按钮
|
||||
- 不显示数据概览和功能菜单
|
||||
---
|
||||
|
||||
### 修改店铺重新审核逻辑
|
||||
## 商家订单管理
|
||||
|
||||
**后端逻辑** (`merchant.service.ts`):
|
||||
### 商家订单接口
|
||||
|
||||
```typescript
|
||||
async update(id, dto) {
|
||||
const merchant = await this.findById(id);
|
||||
// 审核通过或拒绝后修改,重置为pending
|
||||
if (merchant.status === 'approved' || merchant.status === 'rejected') {
|
||||
await this.merchantRepo.update(id, { ...dto, status: 'pending', rejectReason: null });
|
||||
} else {
|
||||
await this.merchantRepo.update(id, dto);
|
||||
}
|
||||
return this.findById(id);
|
||||
}
|
||||
```
|
||||
| 接口 | 路径 | 说明 |
|
||||
| -------------- | --------------------------------- | ---------------------------- |
|
||||
| 订单列表 | GET /api/seller/orders | 支持状态筛选、订单号搜索 |
|
||||
| 订单详情 | GET /api/seller/orders/:id | 获取订单详情 |
|
||||
| 确认订单 | PUT /api/seller/orders/:id/confirm| pending_confirm → pending_checkin |
|
||||
| 拒绝订单 | PUT /api/seller/orders/:id/reject | pending_confirm → cancelled |
|
||||
| 办理入住 | PUT /api/seller/orders/:id/checkin| pending_checkin → checked_in |
|
||||
| 通过退款 | PUT /api/seller/orders/:id/approve-refund | refunding → refunded,恢复房量 |
|
||||
| 拒绝退款 | PUT /api/seller/orders/:id/reject-refund | refunding → cancelled |
|
||||
|
||||
**修改流程**:
|
||||
### 商家订单状态Tab
|
||||
|
||||
```
|
||||
点击"修改店铺信息" → 填写表单 → 提交修改
|
||||
→ 调用 PUT /merchant/update
|
||||
→ 后端自动将 status 重置为 pending,清空 rejectReason
|
||||
→ 跳转商家中心显示"审核中"状态
|
||||
```
|
||||
| Tab名称 | 对应状态 |
|
||||
| --------- | --------------------------------------------- |
|
||||
| 全部 | 所有状态 |
|
||||
| 待确认 | pending_confirm |
|
||||
| 待入住 | pending_checkin |
|
||||
| 已入住 | checked_in |
|
||||
| 已完成 | completed |
|
||||
| 已取消 | cancelled |
|
||||
| 已退款 | refunded, refunding |
|
||||
|
||||
### 后续迭代事项
|
||||
### 商家订单操作权限
|
||||
|
||||
1. **商家管理后台集成**: 商家后台跳转入口
|
||||
2. **商家实名认证**: 身份证上传、银行卡绑定
|
||||
3. **图片上传接口**: 营业执照真实上传功能
|
||||
| 状态 | 可操作 |
|
||||
| ---------------- | -------------------------- |
|
||||
| pending_confirm | 确认、拒绝 |
|
||||
| pending_checkin | 办理入住 |
|
||||
| refunding | 通过退款、拒绝退款 |
|
||||
| 其他状态 | 无操作 |
|
||||
Reference in New Issue
Block a user