Files
rent/REFACTOR_COMPLETED.md
T
2026-05-14 19:12:26 +08:00

353 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 后端模块重构完成报告
## 概述
已成功完成后端模块的完整重构,将原有的扁平化模块结构重构为按端分组的层次化结构。
**重构时间**: 2026-05-14
**涉及文件**: 150+ 个文件
**涉及模块**: 5 个端模块,30+ 个子模块
---
## 一、新的模块结构
```
apps/server/src/modules/
├── user/ # 用户端(C端)
│ ├── auth/ # 用户认证
│ ├── profile/ # 个人信息
│ ├── guest/ # 入住人管理
│ ├── order/ # 用户订单
│ ├── review/ # 用户评价
│ ├── coupon/ # 用户优惠券
│ ├── finance/ # 用户财务
│ ├── activity/ # 邀请活动
│ └── user.module.ts # 用户端总模块
├── merchant/ # 商家端(B端)
│ ├── auth/ # 商家认证
│ ├── profile/ # 商家信息
│ ├── room/ # 房源管理
│ ├── room-calendar/ # 房量房价
│ ├── order/ # 商家订单
│ ├── review/ # 商家评价
│ ├── finance/ # 商家财务
│ ├── statistics/ # 数据统计
│ └── merchant.module.ts # 商家端总模块
├── admin/ # 平台管理端
│ ├── auth/ # 管理员认证
│ ├── user/ # 用户管理
│ ├── merchant/ # 商家管理
│ ├── room/ # 房源审核
│ ├── order/ # 订单管理
│ ├── review/ # 评价审核
│ ├── coupon/ # 优惠券管理
│ ├── activity/ # 活动管理
│ ├── config/ # 系统配置
│ ├── finance/ # 财务管理
│ ├── website/ # 网站信息管理
│ └── admin.module.ts # 管理端总模块
├── shared/ # 公共模块
│ ├── room/ # 房源公开查询
│ ├── merchant/ # 商家公开信息
│ ├── activity/ # 活动公开信息
│ ├── upload/ # 文件上传
│ └── shared.module.ts # 公共模块总模块
└── website/ # 官网模块
├── info/ # 网站信息
└── website.module.ts # 官网总模块
```
---
## 二、路由前缀映射
### 用户端(User
| 旧路由 | 新路由 | 说明 |
|--------|--------|------|
| `/auth/*` | `/api/user/auth/*` | 用户认证 |
| `/user/*` | `/api/user/profile/*` | 个人信息 |
| `/user/guests` | `/api/user/guests` | 入住人管理 |
| `/orders` | `/api/user/orders` | 用户订单 |
| `/reviews` | `/api/user/reviews` | 用户评价 |
| `/user/coupons` | `/api/user/coupons` | 用户优惠券 |
| `/user/finance` | `/api/user/finance` | 用户财务 |
| `/user/activity/invite` | `/api/user/activity/invite` | 邀请活动 |
### 商家端(Merchant
| 旧路由 | 新路由 | 说明 |
|--------|--------|------|
| `/seller/auth/*` | `/api/merchant/auth/*` | 商家认证 |
| `/seller/merchant` | `/api/merchant/profile` | 商家信息 |
| `/seller/statistics` | `/api/merchant/statistics` | 数据统计 |
| `/seller/rooms` | `/api/merchant/rooms` | 房源管理 |
| `/seller/room-calendar` | `/api/merchant/room-calendar` | 房量房价 |
| `/seller/orders` | `/api/merchant/orders` | 商家订单 |
| `/seller/reviews` | `/api/merchant/reviews` | 商家评价 |
| `/merchant/finance/*` | `/api/merchant/finance/*` | 商家财务 |
### 平台管理端(Admin
| 旧路由 | 新路由 | 说明 |
|--------|--------|------|
| `/admin/auth/*` | `/api/admin/auth/*` | 管理员认证 |
| `/admin/users` | `/api/admin/users` | 用户管理 |
| `/admin/merchants` | `/api/admin/merchants` | 商家管理 |
| `/admin/rooms` | `/api/admin/rooms` | 房源审核 |
| `/admin/orders` | `/api/admin/orders` | 订单管理 |
| `/admin/reviews` | `/api/admin/reviews` | 评价审核 |
| `/admin/coupons` | `/api/admin/coupons` | 优惠券管理 |
| `/admin/activity` | `/api/admin/activity` | 活动管理 |
| `/admin/config` | `/api/admin/config` | 系统配置 |
| `/admin/finance/*` | `/api/admin/finance/*` | 财务管理 |
| `/admin/website/info` | `/api/admin/website/info` | 网站信息 |
### 公共接口(Public
| 旧路由 | 新路由 | 说明 |
|--------|--------|------|
| `/rooms` | `/api/public/rooms` | 房源公开查询 |
| `/merchants` | `/api/public/merchants` | 商家公开信息 |
| `/activity` | `/api/public/activity` | 活动公开信息 |
| `/upload` | `/api/user/upload` | 用户上传 |
| `/seller/upload` | `/api/merchant/upload` | 商家上传 |
| `/admin/upload` | `/api/admin/upload` | 管理员上传 |
### 官网接口(Website
| 旧路由 | 新路由 | 说明 |
|--------|--------|------|
| - | `/api/website/info` | 网站信息(新增) |
---
## 三、已完成的工作
### 1. 后端模块重构 ✅
#### 用户端(User
- ✅ 创建 8 个子模块(auth, profile, guest, order, review, coupon, finance, activity
- ✅ 更新所有 Controller 路由前缀为 `/api/user/*`
- ✅ 创建 user.module.ts 总模块
#### 商家端(Merchant
- ✅ 创建 8 个子模块(auth, profile, room, room-calendar, order, review, finance, statistics
- ✅ 更新所有 Controller 路由前缀为 `/api/merchant/*`
- ✅ 创建 merchant.module.ts 总模块
#### 管理端(Admin
- ✅ 创建 11 个子模块(auth, user, merchant, room, order, review, coupon, activity, config, finance, website
- ✅ 更新所有 Controller 路由前缀为 `/api/admin/*`
- ✅ 创建 admin.module.ts 总模块
#### 公共模块(Shared
- ✅ 创建 4 个子模块(room, merchant, activity, upload
- ✅ 更新所有 Controller 路由前缀为 `/api/public/*``/api/{role}/upload`
- ✅ 创建 shared.module.ts 总模块
#### 官网模块(Website
- ✅ 创建 WebsiteInfo 实体
- ✅ 创建 info 子模块(controller, service, module, dto
- ✅ 公开接口:`GET /api/website/info`
- ✅ 管理接口:`GET/PUT /api/admin/website/info`
- ✅ 创建 website.module.ts 总模块
### 2. 根模块更新 ✅
- ✅ 更新 app.module.ts,导入新的 5 个端模块
- ✅ 移除旧的扁平化模块导入
### 3. 前端 API 路径更新 ✅
#### 小程序(miniapp
- ✅ 更新 9 个 API 文件
- ✅ 用户认证:`/auth/*``/api/user/auth/*`
- ✅ 个人信息:`/user/*``/api/user/profile/*`
- ✅ 订单评价:`/orders`, `/reviews``/api/user/orders`, `/api/user/reviews`
- ✅ 公共接口:`/rooms`, `/merchants`, `/activity``/api/public/*`
#### 商家后台(merchant-admin
- ✅ 更新 7 个 API 文件
- ✅ 商家认证:`/seller/auth/*``/api/merchant/auth/*`
- ✅ 商家业务:`/seller/*``/api/merchant/*`
- ✅ 商家财务:`/merchant/finance/*``/api/merchant/finance/*`
#### 平台后台(platform-admin
- ✅ 更新 8 个 API 文件
- ✅ 管理接口:`/admin/*``/api/admin/*`
---
## 四、新增功能
### 1. 官网信息管理模块
- **实体**: WebsiteInfo(网站信息表)
- **公开接口**: `GET /api/website/info` - 获取网站信息
- **管理接口**:
- `GET /api/admin/website/info` - 获取网站信息
- `PUT /api/admin/website/info` - 更新网站信息
- **字段**: 网站名称、标题、描述、关键词、Logo、联系方式、ICP备案、版权信息、关于我们、服务协议、隐私政策等
### 2. 文件上传模块优化
- 按角色分离上传接口:
- `/api/user/upload` - 用户上传(需用户认证)
- `/api/merchant/upload` - 商家上传(需商家认证)
- `/api/admin/upload` - 管理员上传(需管理员认证)
---
## 五、数据库变更
### 新增表
需要执行以下数据库迁移脚本创建 `website_info` 表:
```sql
CREATE TABLE IF NOT EXISTS `website_info` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
`site_name` VARCHAR(100) NOT NULL COMMENT '网站名称',
`site_title` VARCHAR(200) NOT NULL COMMENT '网站标题',
`site_description` TEXT NOT NULL COMMENT '网站描述',
`site_keywords` VARCHAR(500) NOT NULL COMMENT 'SEO关键词',
`logo` VARCHAR(500) NOT NULL COMMENT 'Logo URL',
`favicon` VARCHAR(500) NOT NULL COMMENT '网站图标',
`contact_phone` VARCHAR(50) NOT NULL COMMENT '联系电话',
`contact_email` VARCHAR(100) NOT NULL COMMENT '联系邮箱',
`contact_address` VARCHAR(500) NOT NULL COMMENT '联系地址',
`icp` VARCHAR(100) NOT NULL COMMENT 'ICP备案号',
`copyright` TEXT NOT NULL COMMENT '版权信息',
`about_us` TEXT COMMENT '关于我们',
`service_agreement` TEXT COMMENT '服务协议',
`privacy_policy` TEXT COMMENT '隐私政策',
`social_links` JSON COMMENT '社交媒体链接',
`status` ENUM('active', 'inactive') DEFAULT 'active' COMMENT '状态',
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='网站信息表';
-- 插入默认数据
INSERT INTO `website_info` (
`site_name`, `site_title`, `site_description`, `site_keywords`,
`logo`, `favicon`, `contact_phone`, `contact_email`, `contact_address`,
`icp`, `copyright`, `about_us`, `service_agreement`, `privacy_policy`
) VALUES (
'租赁平台', '租赁平台 - 您的租赁服务专家', '提供优质的租赁服务', '租赁,房屋租赁,短租',
'', '', '400-000-0000', 'contact@example.com', '北京市朝阳区',
'京ICP备00000000号', '© 2024 租赁平台 版权所有', '关于我们的内容...', '服务协议内容...', '隐私政策内容...'
);
```
---
## 六、下一步操作
### 1. 数据库迁移 ⚠️
```bash
# 执行数据库迁移脚本
mysql -u root -p rent_platform < database/migrations/002_create_website_info.sql
```
### 2. 启动后端服务并测试 ⚠️
```bash
cd apps/server
pnpm install
pnpm run start:dev
```
访问 Swagger 文档验证所有接口:
- http://localhost:3000/api/docs
### 3. 测试前端应用 ⚠️
```bash
# 启动小程序
cd apps/miniapp
pnpm run dev:mp-weixin
# 启动商家后台
cd apps/merchant-admin
pnpm run dev
# 启动平台后台
cd apps/platform-admin
pnpm run dev
```
### 4. 清理旧模块(可选)
确认新模块工作正常后,可以删除以下旧模块目录:
- `apps/server/src/modules/auth/` (旧的用户认证)
- `apps/server/src/modules/seller-auth/` (旧的商家认证)
- `apps/server/src/modules/admin-auth/` (旧的管理员认证)
- `apps/server/src/modules/room/` (旧的房源模块)
- `apps/server/src/modules/room-calendar/` (旧的房量房价模块)
- `apps/server/src/modules/order/` (旧的订单模块)
- `apps/server/src/modules/review/` (旧的评价模块)
- `apps/server/src/modules/finance/` (旧的财务模块)
- `apps/server/src/modules/activity/` (旧的活动模块)
- `apps/server/src/modules/config/` (旧的配置模块)
- `apps/server/src/modules/coupon/` (旧的优惠券模块)
- `apps/server/src/modules/guest/` (旧的入住人模块)
- `apps/server/src/modules/upload/` (旧的上传模块)
---
## 七、重构收益
### 1. 代码组织更清晰
- 按端分组,职责明确
- 模块层次化,易于维护
- 新增功能时知道放在哪里
### 2. 路由更规范
- 统一使用 `/api/{role}/{module}` 格式
- 一眼就能看出接口属于哪个端
- 便于前端团队理解和使用
### 3. 权限控制更明确
- 用户端、商家端、管理端分离
- 每个端有独立的认证和授权
- 减少权限混乱的风险
### 4. 扩展性更好
- 新增端(如供应商端)只需添加新的端模块
- 新增功能只需在对应端下添加子模块
- 不影响其他端的代码
### 5. 团队协作更高效
- 前端团队可以按端分工
- 后端团队可以按端分工
- 减少代码冲突
---
## 八、注意事项
### 1. 兼容性
- 旧的 API 路径已全部更新为新路径
- 如果有外部系统调用,需要同步更新
### 2. 测试
- 建议对所有核心接口进行回归测试
- 特别关注认证、订单、支付等关键流程
### 3. 文档
- Swagger 文档已自动更新
- 建议更新项目 README 和 API 文档
### 4. 监控
- 上线后密切关注错误日志
- 关注 404 错误,可能是路径遗漏
---
## 九、联系方式
如有问题,请联系:
- 技术负责人:[姓名]
- 邮箱:[邮箱]
- 微信:[微信号]
---
**重构完成时间**: 2026-05-14
**文档版本**: v1.0