新增系统配置表及默认配置,更新链接生成请求DTO以支持链接数量参数,重构链接生成服务逻辑,添加链接状态查询和有效性检查接口,优化日志记录。
This commit is contained in:
151
docs/系统配置说明.md
Normal file
151
docs/系统配置说明.md
Normal file
@@ -0,0 +1,151 @@
|
||||
# 系统配置说明
|
||||
|
||||
## 概述
|
||||
系统配置表用于存储游戏平台的各种配置参数,支持动态配置和运行时修改。
|
||||
|
||||
## 配置表结构
|
||||
表名:`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. **缓存策略**:对于频繁访问的配置,建议在服务层添加缓存机制,提高性能。
|
||||
|
||||
## 扩展配置
|
||||
|
||||
可以根据业务需要添加更多配置项,例如:
|
||||
- 用户权限相关配置
|
||||
- 游戏规则配置
|
||||
- 第三方服务配置
|
||||
- 日志级别配置
|
||||
- 性能调优参数
|
||||
Reference in New Issue
Block a user