# 系统配置说明 ## 概述 系统配置表用于存储游戏平台的各种配置参数,支持动态配置和运行时修改。 ## 配置表结构 表名:`system_config` | 字段 | 类型 | 说明 | |------|------|------| | id | bigint | 主键ID | | config_key | varchar(100) | 配置键(唯一) | | config_value | text | 配置值 | | config_type | varchar(50) | 配置类型:STRING, INTEGER, BOOLEAN, JSON | | description | varchar(500) | 配置描述 | | is_system | tinyint(1) | 是否系统配置(1是,0否) | | created_at | datetime(3) | 创建时间 | | updated_at | datetime(3) | 更新时间 | ## 默认配置项 ### 链接生成相关配置 - `link.default_quantity`: 每次副本的奖励点数(默认值:50) - `link.refresh_interval`: 链接刷新间隔,单位:秒(默认值:300) - `link.qr_expire_time`: 二维码过期时间,单位:秒(默认值:600) - `link.max_times_per_batch`: 每批次最大打副本次数(默认值:100) - `link.min_quantity`: 最小奖励点数(默认值:10) - `link.max_quantity`: 最大奖励点数(默认值:1000) ### 脚本服务器相关配置 - `script.server_url`: 脚本服务器地址(默认值:http://36.138.184.60:12345) - `script.qr_path_template`: 二维码图片路径模板(默认值:/{machineId}/二维码.png) ## 参数说明 ### 链接生成接口参数 - **`times`**: 打多少次副本,决定总的目标值 - **`linkCount`**: 生成多少个链接,决定链接任务的数量(默认值:1) ### 业务逻辑 1. 每次副本的奖励点数从配置表 `link.default_quantity` 获取 2. 总目标值 = `times` × 配置表中的默认奖励点数 3. 生成 `linkCount` 个链接任务供用户使用 4. 用户完成链接后,根据 `times` 和配置的奖励点数计算总奖励 ## API接口 ### 获取配置列表 ``` GET /api/admin/config/list?page=1&size=20 ``` ### 根据键获取配置 ``` GET /api/admin/config/key/{configKey} ``` ### 根据类型获取配置 ``` GET /api/admin/config/type/{configType} ``` ### 创建配置 ``` POST /api/admin/config Content-Type: application/json { "configKey": "custom.setting", "configValue": "value", "configType": "STRING", "description": "自定义设置", "isSystem": false } ``` ### 更新配置 ``` PUT /api/admin/config/{id} Content-Type: application/json { "configKey": "custom.setting", "configValue": "new_value", "configType": "STRING", "description": "自定义设置", "isSystem": false } ``` ### 删除配置 ``` DELETE /api/admin/config/{id} DELETE /api/admin/config/key/{configKey} ``` ### 获取链接默认配置 ``` GET /api/admin/config/link/defaults ``` ### 获取脚本配置 ``` GET /api/admin/config/script/config ``` ## 使用示例 ### 在服务中使用配置 ```java @Autowired private SystemConfigService systemConfigService; // 获取默认奖励点数 Integer defaultQuantity = systemConfigService.getDefaultQuantity(); // 获取刷新间隔 Integer refreshInterval = systemConfigService.getRefreshInterval(); // 获取脚本服务器地址 String serverUrl = systemConfigService.getScriptServerUrl(); ``` ### 动态修改配置 ```java // 更新配置 SystemConfig config = systemConfigService.getConfigByKey("link.default_quantity"); config.setConfigValue("100"); systemConfigService.updateConfig(config); ``` ## 注意事项 1. **系统配置**:标记为系统配置的项(is_system=1)通常不建议删除,这些是平台运行必需的基础配置。 2. **配置类型**:根据实际需要选择合适的配置类型,数值类型建议使用INTEGER,布尔值使用BOOLEAN。 3. **配置键命名**:建议使用点号分隔的层次结构,如:`module.submodule.setting`。 4. **配置值验证**:在更新配置时,建议对配置值进行格式验证,确保符合预期类型。 5. **缓存策略**:对于频繁访问的配置,建议在服务层添加缓存机制,提高性能。 ## 扩展配置 可以根据业务需要添加更多配置项,例如: - 用户权限相关配置 - 游戏规则配置 - 第三方服务配置 - 日志级别配置 - 性能调优参数