Files
game_server/docs/系统配置说明.md

151 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 系统配置说明
## 概述
系统配置表用于存储游戏平台的各种配置参数,支持动态配置和运行时修改。
## 配置表结构
表名:`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. **缓存策略**:对于频繁访问的配置,建议在服务层添加缓存机制,提高性能。
## 扩展配置
可以根据业务需要添加更多配置项,例如:
- 用户权限相关配置
- 游戏规则配置
- 第三方服务配置
- 日志级别配置
- 性能调优参数