# 数据库修改总结 ## 修改概述 根据需求文档和用户要求,对游戏平台系统进行了以下主要修改: ## 1. LinkBatch表结构调整 ### 修改前 - `quantity`: 代表批次大小 - `times`: 代表生成次数 - `batchSize`: 每次的奖励点数 - `deductPoints`: 扣除的点数 ### 修改后 - `quantity`: 每次副本的奖励点数(从配置表获取,默认50) - `times`: 打副本的次数 - 移除了 `batchSize` 和 `deductPoints` 字段 ### 字段含义 - `quantity`: 每次副本完成后获得的点数,从配置表 `link.default_quantity` 获取 - `times`: 一个批次中打副本的总次数 - `agent_id`: 代理商ID - `operator_id`: 操作者ID - `created_at`: 创建时间 ### 参数说明 - **`times`**: 打多少次副本,决定总的目标值 - **`linkCount`**: 生成多少个链接,决定链接任务的数量(默认值:1) - **总目标值计算**: `times` × 配置表中的默认奖励点数 ## 2. 新增系统配置表 ### 表名:system_config 用于存储系统各种配置参数,支持动态配置和运行时修改。 #### 主要配置项 **链接生成相关:** - `link.default_quantity`: 默认奖励点数(50) - `link.refresh_interval`: 链接刷新间隔(300秒) - `link.qr_expire_time`: 二维码过期时间(600秒) **脚本服务器相关:** - `script.server_url`: 脚本服务器地址 - `script.qr_path_template`: 二维码图片路径模板 ## 3. 代码结构更新 ### 新增文件 1. **实体类** - `SystemConfig.java` - 系统配置实体 2. **Mapper接口** - `SystemConfigMapper.java` - 系统配置数据访问接口 3. **XML映射文件** - `SystemConfigMapper.xml` - MyBatis映射配置 4. **服务类** - `SystemConfigService.java` - 系统配置业务逻辑服务 5. **控制器** - `SystemConfigController.java` - 系统配置REST API接口 6. **DTO类** - `SystemConfigRequest.java` - 配置创建/更新请求 - `SystemConfigResponse.java` - 配置查询响应 - `SystemConfigConverter.java` - 配置对象转换工具 ### 修改文件 1. **LinkBatch.java** - 移除不需要的字段 2. **LinkBatchMapper.xml** - 更新SQL映射 3. **LinkGenerationService.java** - 使用配置服务,修复字段设置 ## 4. API接口 ### 系统配置管理接口 - `GET /api/admin/config/list` - 获取配置列表 - `GET /api/admin/config/key/{configKey}` - 根据键获取配置 - `GET /api/admin/config/type/{configType}` - 根据类型获取配置 - `POST /api/admin/config` - 创建配置 - `PUT /api/admin/config/{id}` - 更新配置 - `DELETE /api/admin/config/{id}` - 删除配置 - `GET /api/admin/config/link/defaults` - 获取链接默认配置 - `GET /api/admin/config/script/config` - 获取脚本配置 ## 5. 配置使用方式 ### 在服务中使用 ```java @Autowired private SystemConfigService systemConfigService; // 获取默认奖励点数 Integer defaultQuantity = systemConfigService.getDefaultQuantity(); // 获取刷新间隔 Integer refreshInterval = systemConfigService.getRefreshInterval(); ``` ### 动态修改配置 ```java // 更新配置 SystemConfig config = systemConfigService.getConfigByKey("link.default_quantity"); config.setConfigValue("100"); systemConfigService.updateConfig(config); ``` ## 6. 数据库脚本 ### 执行顺序 1. 执行 `docs/game.sql` 中的新表创建语句 2. 系统会自动插入默认配置数据 ### 注意事项 - 新表使用 `utf8mb4` 字符集 - 配置键具有唯一性约束 - 系统配置标记为 `is_system=1`,不建议删除 ## 7. 业务逻辑调整 ### LinkGenerationService - 使用配置服务获取过期时间等参数 - 修复了字段设置问题 - `quantity` 现在代表每次的奖励点数 - `times` 代表总次数 ### 配置管理 - 支持运行时动态修改配置 - 提供完整的CRUD操作 - 支持配置类型验证 - 提供便捷的配置获取方法 ## 8. 后续扩展建议 1. **缓存机制**: 对频繁访问的配置添加缓存 2. **配置验证**: 在更新配置时添加值格式验证 3. **配置变更日志**: 记录配置变更历史 4. **配置导入导出**: 支持配置文件导入导出 5. **权限控制**: 对敏感配置的修改权限控制 ## 9. 测试建议 1. 测试配置的增删改查功能 2. 验证LinkBatch表的字段映射 3. 测试配置的动态修改是否生效 4. 验证默认配置值的正确性 5. 测试配置服务的异常处理