# Implementation Plan: 系统配置模块前端迁移 ## Overview 本实现计划将系统配置模块从老项目(PHP ThinkPHP + Layui)迁移到新项目(ASP.NET Core + Vue 3 + Element Plus)。后端API已基本完成,主要工作是前端页面开发和后端模型补充。 ## 任务概览 | 阶段 | 任务数 | 预计工时 | |------|--------|----------| | 1. 后端API验证和补充 | 3 | 2h | | 2. Checkpoint - 后端API验证 | 1 | 0.5h | | 3. 前端API层开发 | 2 | 1.5h | | 4. 前端基础设置页面 | 2 | 2h | | 5. 前端微信支付配置页面 | 3 | 3h | | 6. 前端支付宝配置页面 | 2 | 2h | | 7. 前端小程序配置页面 | 3 | 3h | | 8. 前端H5配置页面 | 3 | 3h | | 9. Checkpoint - 支付配置验证 | 1 | 0.5h | | 10. 前端上传配置页面 | 2 | 1.5h | | 11. 前端签到配置页面 | 2 | 1h | | 12. 前端系统设置页面 | 5 | 4h | | 13. Checkpoint - 配置页面验证 | 1 | 0.5h | | 14. 路由和菜单配置 | 2 | 1h | | 15. Checkpoint - 完整功能验证 | 1 | 0.5h | | 16. 属性测试 | 6 | 2h | | 17. Final Checkpoint | 1 | 0.5h | | **总计** | **40** | **28h** | --- ## Tasks - [x] 1. 后端API验证和补充 - [x] 1.1 验证现有ConfigController API - 使用Swagger测试 `GET /api/admin/business/config/{key}` 接口 - 测试所有配置键: base, weixinpay_setting, alipay_setting, miniprogram_setting, h5_setting, uploads, sign, systemconfig, app_setting, user_config, infinite_multiple, rank_setting, system_test - 验证返回数据格式是否正确 - _Requirements: 10.1, 10.3_ - [x] 1.2 补充支付宝配置验证逻辑 - 在 `AdminConfigService.cs` 添加 `ValidateAlipaySetting` 方法 - 验证商户列表不为空 - 验证AppId必填 - _Requirements: 3.3, 3.8_ - [x] 1.3 补充ConfigModels.cs中缺失的模型 - 添加 `AlipaySetting` 和 `AlipayMerchant` 模型 - 添加 `BaseSetting` 模型 - 添加 `SignSetting` 模型 - 添加 `AppSetting` 模型 - 添加 `UserConfig` 模型 - 添加 `SystemTest` 模型 - 添加 `InfiniteMultiple` 模型 - 添加 `RankSetting` 模型 - _Requirements: 10.1_ - [x] 2. Checkpoint - 后端API验证 - 确保所有配置键API正常工作 - 确保配置保存和获取功能正常 - 确保验证逻辑正确 - [x] 3. 前端API层开发 - [x] 3.1 创建配置管理API模块 - 创建 `src/api/business/config.ts` - 定义所有TypeScript接口(BaseSetting, WeixinPaySetting, AlipaySetting等) - 实现 `getConfig(key: ConfigKey)` 获取配置API - 实现 `updateConfig(key: ConfigKey, value: T)` 更新配置API - 实现 `getConfigKeys()` 获取配置键列表API - _Requirements: 10.1, 10.2, 10.3_ - [ ]* 3.2 编写API模块单元测试 - 创建 `src/api/business/config.test.ts` - 测试API调用参数构造 - 测试响应数据处理 - _Requirements: 10.4, 10.5_ - [x] 4. 前端基础设置页面开发 - [x] 4.1 创建基础设置页面 - 创建 `src/views/business/config/base.vue` - 实现页面布局(表单区域) - 实现网站名称、物流code、分销比例等基础配置项 - 实现赏券限制配置(特级/终极/高级/普通) - 实现包邮门槛和运费配置 - 实现锁箱时间配置 - 实现图片上传(福利进群二维码、分享图片) - 实现开关配置(首页弹窗、兑换开关) - 实现表单验证和保存功能 - _Requirements: 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 1.10, 1.11, 1.12_ - [ ]* 4.2 编写基础设置页面单元测试 - 测试表单验证逻辑 - 测试数据加载和保存 - _Requirements: 1.4_ - [x] 5. 前端微信支付配置页面开发 - [x] 5.1 创建微信支付配置页面 - 创建 `src/views/business/config/weixinpay.vue` - 实现页面布局(商户列表区域) - 实现商户列表展示 - 实现添加商户按钮 - 实现删除商户按钮(至少保留一个) - 实现保存按钮 - _Requirements: 2.1, 2.2, 2.7, 2.8_ - [x] 5.2 创建商户表单组件 - 创建 `src/views/business/config/components/WeixinMerchantForm.vue` - 实现商户名称、MCHID、Key输入 - 实现订单前缀输入(3位字符验证) - 实现权重输入 - 实现启用状态开关 - 实现备注输入 - 实现表单验证(必填、前缀唯一性) - _Requirements: 2.3, 2.4, 2.5, 2.6_ - [ ]* 5.3 编写微信支付配置页面单元测试 - 测试商户添加和删除逻辑 - 测试前缀唯一性验证 - _Requirements: 2.4, 2.7_ - [x] 6. 前端支付宝配置页面开发 - [x] 6.1 创建支付宝配置页面 - 创建 `src/views/business/config/alipay.vue` - 实现页面布局(商户列表区域) - 实现商户列表展示 - 实现添加/删除商户功能 - 实现保存功能 - _Requirements: 3.1, 3.2, 3.7, 3.8_ - [x] 6.2 创建支付宝商户表单组件 - 创建 `src/views/business/config/components/AlipayMerchantForm.vue` - 实现商户名称、AppId输入 - 实现应用私钥、支付宝公钥文本域 - 实现权重、启用状态、备注配置 - 实现表单验证 - _Requirements: 3.3, 3.4, 3.5, 3.6_ - [x] 7. 前端小程序配置页面开发 - [x] 7.1 创建小程序配置页面 - 创建 `src/views/business/config/miniprogram.vue` - 实现页面布局(小程序列表区域) - 实现小程序列表展示 - 实现添加/删除小程序功能 - 实现保存功能(验证必须有默认小程序) - _Requirements: 4.1, 4.2, 4.8, 4.9_ - [x] 7.2 创建小程序表单组件 - 创建 `src/views/business/config/components/MiniprogramForm.vue` - 实现小程序名称、AppId、AppSecret输入 - 实现域名输入 - 实现订单前缀输入(2位字符验证) - 实现是否默认单选框 - 实现关联商户多选(从微信支付配置获取商户列表) - 实现表单验证 - _Requirements: 4.3, 4.4, 4.5, 4.6, 4.7_ - [ ]* 7.3 编写小程序配置页面单元测试 - 测试默认小程序唯一性验证 - 测试前缀唯一性验证 - _Requirements: 4.4, 4.6_ - [x] 8. 前端H5配置页面开发 - [x] 8.1 创建H5配置页面 - 创建 `src/views/business/config/h5.vue` - 实现页面布局(H5应用列表区域) - 实现H5应用列表展示 - 实现添加/删除H5应用功能 - 实现保存功能(验证必须有默认H5应用) - _Requirements: 5.1, 5.2, 5.10, 5.11_ - [x] 8.2 创建H5应用表单组件 - 创建 `src/views/business/config/components/H5AppForm.vue` - 实现H5名称、AppId、AppSecret输入 - 实现域名输入 - 实现订单前缀输入(2位字符验证) - 实现是否默认单选框 - 实现支付方式选项卡(支付宝/微信) - 实现关联商户选择 - 实现表单验证 - _Requirements: 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9_ - [ ]* 8.3 编写H5配置页面单元测试 - 测试默认H5应用唯一性验证 - 测试支付方式切换逻辑 - _Requirements: 5.4, 5.7_ - [x] 9. Checkpoint - 支付配置验证 - 确保微信支付配置页面正常工作 - 确保支付宝配置页面正常工作 - 确保小程序配置页面正常工作 - 确保H5配置页面正常工作 - 测试商户添加、删除、保存功能 - 测试前缀唯一性验证 - 测试默认唯一性验证 - [x] 10. 前端上传配置页面开发 - [x] 10.1 创建上传配置页面 - 创建 `src/views/business/config/uploads.vue` - 实现页面布局(表单区域) - 实现存储类型单选(本地/阿里云/腾讯云) - 实现云存储配置字段(空间名称、地域、密钥、域名) - 实现根据存储类型显示/隐藏配置字段 - 实现表单验证和保存功能 - _Requirements: 6.1, 6.2, 6.3, 6.4, 6.5_ - [ ]* 10.2 编写上传配置页面单元测试 - 测试存储类型切换逻辑 - 测试表单验证 - _Requirements: 6.2, 6.4_ - [x] 11. 前端签到配置页面开发 - [x] 11.1 创建签到配置页面 - 创建 `src/views/business/config/sign.vue` - 实现页面布局(表单区域) - 实现7天签到奖励配置 - 实现表单验证(数字验证) - 实现保存功能 - _Requirements: 7.1, 7.2, 7.3_ - [ ]* 11.2 编写签到配置页面单元测试 - 测试数字验证逻辑 - _Requirements: 7.2_ - [x] 12. 前端系统设置页面开发 - [x] 12.1 创建系统设置主页面 - 创建 `src/views/business/config/system.vue` - 实现页面布局(多卡片区域) - 集成各配置卡片组件 - _Requirements: 8.1_ - [x] 12.2 创建应用设置卡片组件 - 创建 `src/views/business/config/components/AppSettingCard.vue` - 实现项目名称、购买弹窗设置 - 实现商城购买次数配置 - 实现货币名称和图标配置(余额/货币1/货币2) - 实现中奖音频上传 - 实现各项限制配置 - 实现独立保存功能 - _Requirements: 8.2, 8.3, 8.4, 8.5, 8.6, 8.7_ - [x] 12.3 创建用户UID设置卡片组件 - 创建 `src/views/business/config/components/UserConfigCard.vue` - 实现UID类型单选(真实ID/数字ID/随机字符和数字) - 实现UID长度配置(根据类型显示/隐藏) - 实现独立保存功能 - _Requirements: 8.8, 8.9_ - [x] 12.4 创建内测配置卡片组件 - 创建 `src/views/business/config/components/SystemTestCard.vue` - 实现内测开关 - 实现禁用微信支付开关 - 实现签到倍数配置 - 实现独立保存功能 - _Requirements: 8.10, 8.11_ - [x] 12.5 创建排行榜设置卡片组件 - 创建 `src/views/business/config/components/RankSettingCard.vue` - 实现达达券/钻石/UU币排行榜统计方式配置 - 实现自定义时间范围配置(根据类型显示/隐藏) - 实现无限赏抽奖倍数配置 - 实现独立保存功能 - _Requirements: 8.12, 8.13, 8.14, 8.15_ - [x] 13. Checkpoint - 配置页面验证 - 确保基础设置页面正常工作 - 确保上传配置页面正常工作 - 确保签到配置页面正常工作 - 确保系统设置页面各卡片正常工作 - 测试配置保存和加载功能 - [x] 14. 路由和菜单配置 - [x] 14.1 配置路由 - 在 `src/router/modules/business.ts` 添加系统配置路由配置 - 配置基础设置路由 `/business/config/base` - 配置微信支付配置路由 `/business/config/weixinpay` - 配置支付宝配置路由 `/business/config/alipay` - 配置小程序配置路由 `/business/config/miniprogram` - 配置H5配置路由 `/business/config/h5` - 配置上传配置路由 `/business/config/uploads` - 配置签到配置路由 `/business/config/sign` - 配置系统设置路由 `/business/config/system` - 配置权限标识 `config:view`, `config:edit` - _Requirements: 9.1, 9.2, 9.3, 9.4_ - [x] 14.2 创建菜单SQL脚本 - 在 `HoneyBox/scripts/` 创建 `seed_system_config_menus.sql` - 添加系统配置菜单项 - 添加各子菜单项 - 添加相关权限配置 - _Requirements: 9.3_ - [x] 15. Checkpoint - 完整功能验证 - 确保所有页面正常访问 - 测试完整的配置管理流程 - 验证权限控制正常工作 - [ ] 16. 属性测试 - [ ]* 16.1 编写配置保存一致性属性测试 - **Property 1: 配置保存后获取一致性** - **Validates: Requirements 1.2, 1.3, 1.4, 7.2** - [ ]* 16.2 编写微信支付商户前缀唯一性属性测试 - **Property 2: 微信支付商户前缀唯一性验证** - **Validates: Requirements 2.4** - [ ]* 16.3 编写小程序默认唯一性属性测试 - **Property 3: 小程序默认唯一性验证** - **Validates: Requirements 4.4, 4.9** - [ ]* 16.4 编写H5应用默认唯一性属性测试 - **Property 4: H5应用默认唯一性验证** - **Validates: Requirements 5.4, 5.11** - [ ]* 16.5 编写商户列表最少保留一个属性测试 - **Property 5: 商户列表最少保留一个** - **Validates: Requirements 2.7, 3.7** - [ ]* 16.6 编写API响应格式一致性属性测试 - **Property 6: API响应格式一致性** - **Validates: Requirements 10.1, 10.2, 10.3** - [ ] 17. Final Checkpoint - 最终验证 - 确保所有测试通过 - 确保所有功能正常工作 - 如有问题,询问用户 --- ## 验收检查清单 ### 功能验收 - [ ] 基础设置页面正常显示,支持配置保存 - [ ] 微信支付配置页面正常显示,支持多商户管理 - [ ] 支付宝配置页面正常显示,支持多商户管理 - [ ] 小程序配置页面正常显示,支持多小程序管理 - [ ] H5配置页面正常显示,支持多H5应用管理 - [ ] 上传配置页面正常显示,支持存储类型切换 - [ ] 签到配置页面正常显示,支持7天奖励配置 - [ ] 系统设置页面正常显示,各卡片独立保存 - [ ] 商户前缀唯一性验证正常 - [ ] 默认小程序/H5应用唯一性验证正常 - [ ] 商户列表至少保留一个验证正常 - [ ] 图片上传功能正常 - [ ] 表单验证正常 ### 非功能验收 - [ ] 页面加载性能正常 - [ ] 表单验证实时反馈 - [ ] 操作提示正确显示 - [ ] 属性测试全部通过 ## Notes - 每个Checkpoint确保增量验证 - 后端API已基本完成,主要补充验证逻辑和模型定义 - 属性测试验证通用正确性属性 - 多商户/多小程序/多H5应用的动态表单是核心复杂度 - 任务标记 `*` 为可选任务,可根据时间情况决定是否执行