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

12 KiB
Raw Blame History

后端模块重构完成报告

概述

已成功完成后端模块的完整重构,将原有的扁平化模块结构重构为按端分组的层次化结构。

重构时间: 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 表:

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. 数据库迁移 ⚠️

# 执行数据库迁移脚本
mysql -u root -p rent_platform < database/migrations/002_create_website_info.sql

2. 启动后端服务并测试 ⚠️

cd apps/server
pnpm install
pnpm run start:dev

访问 Swagger 文档验证所有接口:

3. 测试前端应用 ⚠️

# 启动小程序
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