Files
game_server/docs/数据库修改总结.md

4.5 KiB
Raw Blame History

数据库修改总结

修改概述

根据需求文档和用户要求,对游戏平台系统进行了以下主要修改:

1. LinkBatch表结构调整

修改前

  • quantity: 代表批次大小
  • times: 代表生成次数
  • batchSize: 每次的奖励点数
  • deductPoints: 扣除的点数

修改后

  • quantity: 每次副本的奖励点数从配置表获取默认50
  • times: 打副本的次数
  • 移除了 batchSizedeductPoints 字段

字段含义

  • 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. 配置使用方式

在服务中使用

@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. 数据库脚本

执行顺序

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