Files
game_server/docs/系统配置说明.md
zyh 6bca300ff9 feat: 移除链接配置中的最大次数和数量限制
主要修改:
1. 从文档和相关服务中移除`link.max_times_per_batch`、`link.min_quantity`和`link.max_quantity`配置项,简化奖励点数的管理。
2. 更新相关文档,确保与代码一致性。

技术细节:
- 通过移除这些限制,提升了系统的灵活性,允许更自由的奖励点数配置。
2025-08-27 22:16:19 +08:00

4.7 KiB
Raw Permalink Blame History

系统配置说明

概述

系统配置表用于存储游戏平台的各种配置参数,支持动态配置和运行时修改。

配置表结构

表名: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

脚本服务器相关配置

  • script.server_url: 脚本服务器地址(默认值:http://36.138.184.60:12345
  • script.qr_path_template: 二维码图片路径模板(默认值:/{machineId}/二维码.png

设备检测相关配置

  • device.idle_status: 设备空闲状态的字符串标识(默认值:空闲)

参数说明

链接生成接口参数

  • 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

使用示例

在服务中使用配置

@Autowired
private SystemConfigService systemConfigService;

// 获取默认奖励点数
Integer defaultQuantity = systemConfigService.getDefaultQuantity();

// 获取刷新间隔
Integer refreshInterval = systemConfigService.getRefreshInterval();

// 获取脚本服务器地址
String serverUrl = systemConfigService.getScriptServerUrl();

// 获取设备空闲状态字符串
String idleStatus = systemConfigService.getDeviceIdleStatus();

动态修改配置

// 更新配置
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. 缓存策略:对于频繁访问的配置,建议在服务层添加缓存机制,提高性能。

扩展配置

可以根据业务需要添加更多配置项,例如:

  • 用户权限相关配置
  • 游戏规则配置
  • 第三方服务配置
  • 日志级别配置
  • 性能调优参数
  • 设备状态检测相关配置

配置变更说明

设备空闲状态检测优化

为了提高系统的灵活性,将设备空闲状态的判断字符串从硬编码改为可配置:

影响的服务:

  • DeviceStatusService: 设备状态解析服务
  • DeviceStatusCheckService: 设备状态检查服务

配置项:

  • device.idle_status: 用于判断设备是否空闲的字符串(默认:空闲)

使用场景:

  • 当设备管理系统返回的空闲状态字符串发生变化时,只需修改配置即可
  • 支持多语言环境下的设备状态标识
  • 便于系统维护和扩展