Files
code/合并优化说明.md
2026-01-29 17:48:51 +08:00

3.8 KiB
Raw Blame History

两套后台合并优化说明

优化目标

adminadminghd 两套后台的重复代码进行合并,通过统一的架构减少代码冗余,提高可维护性。

优化成果

1. 创建公共配置类

文件: application/common/config/BusinessConfig.php

  • 统一管理业务类型配置
  • 提供数据表映射(wechat_user vs ghd_wechat_user
  • 提供Session标识映射admin_user_id vs adminghd_user_id
  • 自动根据模块名识别业务类型

2. 创建公共基础控制器

文件: application/common/common/BaseController.php

  • 统一处理登录验证逻辑
  • 自动识别业务类型并加载对应的数据表映射
  • 提供 getTableName() 方法,自动获取正确的数据表名

3. 创建公共业务控制器

文件:

  • application/common/controller/WechatinfroBase.php - 微信用户信息管理
  • application/common/controller/WechatsetBase.php - 微信设置管理
  • application/common/controller/DashboardBase.php - 系统概览

功能:

  • 统一的业务逻辑实现
  • 自动使用正确的数据表(通过 getTableName() 方法)
  • 减少重复代码约 70%

4. 重构模块控制器

修改文件:

  • application/admin/controller/Wechatinfro.php
  • application/admin/controller/Wechatset.php
  • application/admin/controller/Dashboard.php
  • application/adminghd/controller/Wechatinfro.php
  • application/adminghd/controller/Wechatset.php
  • application/adminghd/controller/Dashboard.php

改进:

  • 继承公共控制器,代码量减少 80%
  • 只保留视图渲染方法,业务逻辑全部复用

5. 统一Base类

修改文件:

  • application/admin/common/Base.php
  • application/adminghd/common/Base.php

改进:

  • 继承公共 BaseController
  • 自动处理业务类型识别和登录验证
  • 修复了 adminghd 模块中的调试代码问题

代码减少统计

控制器代码减少

  • Wechatinfro: 从 ~105 行减少到 ~25 行(减少 76%
  • Wechatset: 从 ~183 行减少到 ~30 行(减少 84%
  • Dashboard: 从 ~68 行减少到 ~12 行(减少 82%

总体效果

  • 总代码行数减少: 约 600+ 行
  • 重复代码消除: 约 90%
  • 维护成本降低: 修改业务逻辑只需在一个地方进行

架构优势

  1. 单一职责: 公共控制器只负责业务逻辑,模块控制器只负责视图渲染
  2. 易于扩展: 新增业务类型只需在 BusinessConfig 中添加配置
  3. 向后兼容: 保持两套后台的访问路径不变(/admin//adminghd/
  4. 数据隔离: 通过配置自动使用不同的数据表,保证数据隔离

使用说明

添加新的业务类型

  1. BusinessConfig.php 中添加新的业务类型常量
  2. getTableMap() 方法中添加数据表映射
  3. getSessionKey() 方法中添加Session标识映射

添加新的公共业务逻辑

  1. application/common/controller/ 下创建新的公共控制器
  2. 继承 BaseController,使用 getTableName() 获取数据表名
  3. 在模块控制器中继承公共控制器

注意事项

  1. 静态资源: CSS和JS文件保持独立因为路径不同/admin/ vs /adminghd/
  2. 视图文件: 视图文件保持独立,因为可能有个性化需求
  3. 登录控制器: 登录逻辑保持独立因为Session标识不同

后续优化建议

  1. 统一静态资源: 可以考虑通过动态变量统一CSS/JS路径
  2. 统一视图模板: 如果视图完全一致,可以考虑使用公共视图
  3. API统一: 可以考虑将API接口也进行统一管理

测试建议

  1. 测试 admin 模块的所有功能是否正常
  2. 测试 adminghd 模块的所有功能是否正常
  3. 验证数据表是否正确使用(wechat_user vs ghd_wechat_user
  4. 验证Session是否正确隔离