新增系统配置表及默认配置,更新链接生成请求DTO以支持链接数量参数,重构链接生成服务逻辑,添加链接状态查询和有效性检查接口,优化日志记录。
This commit is contained in:
150
docs/数据库修改总结.md
Normal file
150
docs/数据库修改总结.md
Normal file
@@ -0,0 +1,150 @@
|
||||
# 数据库修改总结
|
||||
|
||||
## 修改概述
|
||||
根据需求文档和用户要求,对游戏平台系统进行了以下主要修改:
|
||||
|
||||
## 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秒)
|
||||
- `link.max_times_per_batch`: 每批次最大刷奖励次数(100)
|
||||
- `link.min_quantity`: 最小奖励点数(10)
|
||||
- `link.max_quantity`: 最大奖励点数(1000)
|
||||
|
||||
**脚本服务器相关:**
|
||||
- `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. 测试配置服务的异常处理
|
||||
Reference in New Issue
Block a user