主要修改: 1. 从文档和相关服务中移除`link.max_times_per_batch`、`link.min_quantity`和`link.max_quantity`配置项,简化奖励点数的管理。 2. 更新相关文档,确保与代码一致性。 技术细节: - 通过移除这些限制,提升了系统的灵活性,允许更自由的奖励点数配置。
4.3 KiB
4.3 KiB
数据库修改总结
修改概述
根据需求文档和用户要求,对游戏平台系统进行了以下主要修改:
1. LinkBatch表结构调整
修改前
quantity: 代表批次大小times: 代表生成次数batchSize: 每次的奖励点数deductPoints: 扣除的点数
修改后
quantity: 每次副本的奖励点数(从配置表获取,默认50)times: 打副本的次数- 移除了
batchSize和deductPoints字段
字段含义
quantity: 每次副本完成后获得的点数,从配置表link.default_quantity获取times: 一个批次中打副本的总次数agent_id: 代理商IDoperator_id: 操作者IDcreated_at: 创建时间
参数说明
times: 打多少次副本,决定总的目标值linkCount: 生成多少个链接,决定链接任务的数量(默认值:1)- 总目标值计算:
times× 配置表中的默认奖励点数
2. 新增系统配置表
表名:system_config
用于存储系统各种配置参数,支持动态配置和运行时修改。
主要配置项
链接生成相关:
link.default_quantity: 默认奖励点数(50)link.refresh_interval: 链接刷新间隔(300秒)link.qr_expire_time: 二维码过期时间(600秒)
脚本服务器相关:
script.server_url: 脚本服务器地址script.qr_path_template: 二维码图片路径模板
3. 代码结构更新
新增文件
-
实体类
SystemConfig.java- 系统配置实体
-
Mapper接口
SystemConfigMapper.java- 系统配置数据访问接口
-
XML映射文件
SystemConfigMapper.xml- MyBatis映射配置
-
服务类
SystemConfigService.java- 系统配置业务逻辑服务
-
控制器
SystemConfigController.java- 系统配置REST API接口
-
DTO类
SystemConfigRequest.java- 配置创建/更新请求SystemConfigResponse.java- 配置查询响应SystemConfigConverter.java- 配置对象转换工具
修改文件
- LinkBatch.java - 移除不需要的字段
- LinkBatchMapper.xml - 更新SQL映射
- 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. 配置使用方式
在服务中使用
@Autowired
private SystemConfigService systemConfigService;
// 获取默认奖励点数
Integer defaultQuantity = systemConfigService.getDefaultQuantity();
// 获取刷新间隔
Integer refreshInterval = systemConfigService.getRefreshInterval();
动态修改配置
// 更新配置
SystemConfig config = systemConfigService.getConfigByKey("link.default_quantity");
config.setConfigValue("100");
systemConfigService.updateConfig(config);
6. 数据库脚本
执行顺序
- 执行
docs/game.sql中的新表创建语句 - 系统会自动插入默认配置数据
注意事项
- 新表使用
utf8mb4字符集 - 配置键具有唯一性约束
- 系统配置标记为
is_system=1,不建议删除
7. 业务逻辑调整
LinkGenerationService
- 使用配置服务获取过期时间等参数
- 修复了字段设置问题
quantity现在代表每次的奖励点数times代表总次数
配置管理
- 支持运行时动态修改配置
- 提供完整的CRUD操作
- 支持配置类型验证
- 提供便捷的配置获取方法
8. 后续扩展建议
- 缓存机制: 对频繁访问的配置添加缓存
- 配置验证: 在更新配置时添加值格式验证
- 配置变更日志: 记录配置变更历史
- 配置导入导出: 支持配置文件导入导出
- 权限控制: 对敏感配置的修改权限控制
9. 测试建议
- 测试配置的增删改查功能
- 验证LinkBatch表的字段映射
- 测试配置的动态修改是否生效
- 验证默认配置值的正确性
- 测试配置服务的异常处理