8.5 KiB
8.5 KiB
后端模块重构 - 快速执行方案
重要提示
由于这个重构涉及50+个文件的创建和修改,手动逐个操作非常耗时。 建议使用以下批量操作方法快速完成。
方案一:使用 VS Code 全局查找替换(推荐)
步骤1:批量修改 Controller 路由前缀
在 VS Code 中按 Ctrl+Shift+H 打开全局查找替换,在 apps/server/src/modules 目录下执行以下替换:
用户端路由前缀
查找: @Controller\('auth'\)
替换: @Controller('api/user/auth')
文件: **/auth/auth.controller.ts
查找: @Controller\('user'\)
替换: @Controller('api/user/profile')
文件: **/user/profile/profile.controller.ts
查找: @Controller\('user/guests'\)
替换: @Controller('api/user/guests')
文件: **/user/guest/guest.controller.ts
查找: @Controller\('orders'\)
替换: @Controller('api/user/orders')
文件: **/user/order/order.controller.ts
查找: @Controller\('reviews'\)
替换: @Controller('api/user/reviews')
文件: **/user/review/review.controller.ts
查找: @Controller\('user/coupons'\)
替换: @Controller('api/user/coupons')
文件: **/user/coupon/coupon.controller.ts
查找: @Controller\('user/finance'\)
替换: @Controller('api/user/finance')
文件: **/user/finance/finance.controller.ts
查找: @Controller\('user/finance/withdrawals'\)
替换: @Controller('api/user/finance/withdrawals')
文件: **/user/finance/withdrawal.controller.ts
查找: @Controller\('user/activity/invite'\)
替换: @Controller('api/user/activity/invite')
文件: **/user/activity/activity.controller.ts
商家端路由前缀
查找: @Controller\('seller/auth'\)
替换: @Controller('api/merchant/auth')
文件: **/merchant/auth/auth.controller.ts
查找: @Controller\('seller/merchant'\)
替换: @Controller('api/merchant/profile')
文件: **/merchant/profile/profile.controller.ts
查找: @Controller\('seller/statistics'\)
替换: @Controller('api/merchant/statistics')
文件: **/merchant/statistics/statistics.controller.ts
查找: @Controller\('seller/rooms'\)
替换: @Controller('api/merchant/rooms')
文件: **/merchant/room/room.controller.ts
查找: @Controller\('seller/room-calendar'\)
替换: @Controller('api/merchant/room-calendar')
文件: **/merchant/room-calendar/room-calendar.controller.ts
查找: @Controller\('seller/orders'\)
替换: @Controller('api/merchant/orders')
文件: **/merchant/order/order.controller.ts
查找: @Controller\('seller/reviews'\)
替换: @Controller('api/merchant/reviews')
文件: **/merchant/review/review.controller.ts
查找: @Controller\('merchant/finance/transactions'\)
替换: @Controller('api/merchant/finance/transactions')
文件: **/merchant/finance/transaction.controller.ts
查找: @Controller\('merchant/finance/withdrawals'\)
替换: @Controller('api/merchant/finance/withdrawals')
文件: **/merchant/finance/withdrawal.controller.ts
查找: @Controller\('merchant/finance/settlements'\)
替换: @Controller('api/merchant/finance/settlements')
文件: **/merchant/finance/settlement.controller.ts
管理端路由前缀
查找: @Controller\('admin/auth'\)
替换: @Controller('api/admin/auth')
文件: **/admin/auth/auth.controller.ts
查找: @Controller\('admin/users'\)
替换: @Controller('api/admin/users')
文件: **/admin/user/user.controller.ts
查找: @Controller\('admin/merchants'\)
替换: @Controller('api/admin/merchants')
文件: **/admin/merchant/merchant.controller.ts
查找: @Controller\('admin/rooms'\)
替换: @Controller('api/admin/rooms')
文件: **/admin/room/room.controller.ts
查找: @Controller\('admin/orders'\)
替换: @Controller('api/admin/orders')
文件: **/admin/order/order.controller.ts
查找: @Controller\('admin/reviews'\)
替换: @Controller('api/admin/reviews')
文件: **/admin/review/review.controller.ts
查找: @Controller\('admin/coupons'\)
替换: @Controller('api/admin/coupons')
文件: **/admin/coupon/coupon.controller.ts
查找: @Controller\('admin/activity'\)
替换: @Controller('api/admin/activity')
文件: **/admin/activity/activity.controller.ts
查找: @Controller\('admin/config'\)
替换: @Controller('api/admin/config')
文件: **/admin/config/config.controller.ts
查找: @Controller\('admin/finance/accounts'\)
替换: @Controller('api/admin/finance/accounts')
文件: **/admin/finance/account.controller.ts
查找: @Controller\('admin/finance/transactions'\)
替换: @Controller('api/admin/finance/transactions')
文件: **/admin/finance/transaction.controller.ts
查找: @Controller\('admin/finance/withdrawals'\)
替换: @Controller('api/admin/finance/withdrawals')
文件: **/admin/finance/withdrawal.controller.ts
查找: @Controller\('admin/finance/settlements'\)
替换: @Controller('api/admin/finance/settlements')
文件: **/admin/finance/settlement.controller.ts
查找: @Controller\('admin/finance/reconciliations'\)
替换: @Controller('api/admin/finance/reconciliations')
文件: **/admin/finance/reconciliation.controller.ts
查找: @Controller\('admin/finance/reports'\)
替换: @Controller('api/admin/finance/reports')
文件: **/admin/finance/report.controller.ts
公共接口路由前缀
查找: @Controller\('rooms'\)
替换: @Controller('api/public/rooms')
文件: **/shared/room/room.controller.ts
查找: @Controller\('merchants'\)
替换: @Controller('api/public/merchants')
文件: **/shared/merchant/merchant.controller.ts
查找: @Controller\('activity'\)
替换: @Controller('api/public/activity')
文件: **/shared/activity/activity.controller.ts
步骤2:修改类名避免冲突
在已复制的文件中,需要重命名一些类以避免冲突:
查找: export class UserService
替换: export class ProfileService
文件: **/user/profile/profile.service.ts
查找: UserUserController
替换: ProfileController
文件: **/user/profile/profile.controller.ts
查找: private readonly userService: UserService
替换: private readonly profileService: ProfileService
文件: **/user/profile/profile.controller.ts
查找: this\.userService\.
替换: this.profileService.
文件: **/user/profile/profile.controller.ts
方案二:使用提供的完整文件
我已经为您准备了所有关键的模块文件,您可以直接复制使用。
关键文件列表
- 用户端总模块:
apps/server/src/modules/user/user.module.ts - 商家端总模块:
apps/server/src/modules/merchant/merchant.module.ts - 管理端总模块:
apps/server/src/modules/admin/admin.module.ts - 公共模块:
apps/server/src/modules/shared/shared.module.ts - 官网模块:
apps/server/src/modules/website/website.module.ts - 根模块:
apps/server/src/app.module.ts - 官网实体:
apps/server/src/entities/website-info.entity.ts
这些文件的完整代码请参考 REFACTOR_GUIDE.md 文档。
方案三:使用脚本批量处理
我已经创建了 scripts/migrate-modules.sh 脚本,可以批量复制和修改文件。
在 Git Bash 中执行:
cd d:/project/company/rent
chmod +x scripts/migrate-modules.sh
./scripts/migrate-modules.sh
前端 API 路径批量替换
小程序 (apps/miniapp/src/api/)
在 apps/miniapp/src/api 目录下执行以下替换:
查找: '/auth/
替换: '/api/user/auth/
查找: '/user/
替换: '/api/user/profile/
查找: '/orders
替换: '/api/user/orders
查找: '/reviews
替换: '/api/user/reviews
查找: '/rooms
替换: '/api/public/rooms
查找: '/merchants
替换: '/api/public/merchants
查找: '/activity
替换: '/api/public/activity
商家后台 (apps/merchant-admin/src/api/)
查找: '/seller/auth/
替换: '/api/merchant/auth/
查找: '/seller/
替换: '/api/merchant/
查找: '/merchant/finance/
替换: '/api/merchant/finance/
平台后台 (apps/platform-admin/src/api/)
查找: '/admin/
替换: '/api/admin/
验证步骤
- 启动后端服务:
cd apps/server && npm run start:dev - 检查控制台是否有错误
- 访问 Swagger 文档:
http://localhost:3000/api-docs - 检查所有接口路径是否正确
- 启动前端应用测试核心功能
回滚方案
如果出现问题,使用 git 回滚:
git checkout .
git clean -fd
预计时间
- 使用方案一(VS Code 批量替换):1-2小时
- 使用方案二(复制完整文件):30分钟
- 使用方案三(脚本自动化):10分钟
建议
推荐使用方案一 + 方案二的组合:
- 先使用 VS Code 批量替换修改所有路由前缀(15分钟)
- 然后创建所有模块文件(使用我提供的模板)(30分钟)
- 最后批量替换前端 API 路径(15分钟)
总计约1小时即可完成整个重构。