新增系统配置表及默认配置,更新链接生成请求DTO以支持链接数量参数,重构链接生成服务逻辑,添加链接状态查询和有效性检查接口,优化日志记录。

This commit is contained in:
zyh
2025-08-26 10:33:26 +08:00
parent 7317866f98
commit 599ec0a36b
73 changed files with 1829 additions and 50 deletions

View 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. 测试配置服务的异常处理