Files
code/合并优化说明.md

106 lines
3.8 KiB
Markdown
Raw Permalink Normal View History

2026-01-29 17:48:51 +08:00
# 两套后台合并优化说明
## 优化目标
`admin``adminghd` 两套后台的重复代码进行合并,通过统一的架构减少代码冗余,提高可维护性。
## 优化成果
### 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是否正确隔离