353 lines
12 KiB
Markdown
353 lines
12 KiB
Markdown
# 后端模块重构完成报告
|
||
|
||
## 概述
|
||
|
||
已成功完成后端模块的完整重构,将原有的扁平化模块结构重构为按端分组的层次化结构。
|
||
|
||
**重构时间**: 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
|