-- ============================================================ -- 官方日Roll定时任务 + 机器人管理页面 一次性数据库脚本 -- 目标库:ruoyi 业务库(与 tt_roll / tt_user / sys_menu / sys_job 同库) -- 说明:执行一次即可;执行后请【重启后端】,随后在"系统监控-定时任务"可见"官方日Roll生成"。 -- ============================================================ -- ------------------------------------------------------------ -- 1) 官方周期Roll房配置表 -- ------------------------------------------------------------ CREATE TABLE IF NOT EXISTS `tt_official_roll_config` ( `id` int NOT NULL AUTO_INCREMENT COMMENT '配置ID', `config_name` varchar(64) NOT NULL DEFAULT '' COMMENT '配置标识', `jackpot_id` int DEFAULT NULL COMMENT '奖池ID(tt_roll_jackpot.jackpot_id)', `period_type` varchar(16) NOT NULL DEFAULT 'DAILY' COMMENT '周期类型 DAILY每日/WEEKLY每周', `room_name` varchar(64) NOT NULL DEFAULT '' COMMENT '生成的房间名称', `description` varchar(255) DEFAULT '' COMMENT '房间描述', `roll_password` varchar(32) DEFAULT '' COMMENT '房间密码,为空则无密码', `min_recharge` decimal(10,2) DEFAULT '0.00' COMMENT '充值门槛,0为无门槛', `people_num` int DEFAULT '50' COMMENT '人数上限', `robot_num` int DEFAULT '0' COMMENT '每次自动加入的机器人数量,0则不加', `cdk_count` int DEFAULT '0' COMMENT '每次自动创建房间生成的CDK数量,0则不启用CDK', `sort_by` int DEFAULT '0' COMMENT '排序', `status` char(1) DEFAULT '0' COMMENT '状态 0启用 1停用', `last_generate_time` datetime DEFAULT NULL COMMENT '上次生成时间', `create_by` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志 0存在 2删除', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='官方周期Roll房配置' ROW_FORMAT=DYNAMIC; -- 若 tt_official_roll_config 表此前已创建(无 cdk_count 列),执行下句补列;全新执行本脚本已含该列,可跳过: -- ALTER TABLE `tt_official_roll_config` ADD COLUMN `cdk_count` int DEFAULT '0' COMMENT '每次自动创建房间生成的CDK数量,0则不启用CDK'; -- ------------------------------------------------------------ -- 2) tt_roll 增加 official_config_id 列(标记房间由哪条配置生成,用于每日幂等) -- 注意:MySQL 不支持 ADD COLUMN IF NOT EXISTS,若该列已存在请跳过本句。 -- ------------------------------------------------------------ ALTER TABLE `tt_roll` ADD COLUMN `official_config_id` int DEFAULT NULL COMMENT '官方周期Roll配置ID(tt_official_roll_config.id),手动创建为NULL'; -- ------------------------------------------------------------ -- 3) 注册定时任务到"系统监控-定时任务":每天10点创建官方日Roll房并自动加入机器人 -- ------------------------------------------------------------ SET @jobId = (SELECT IFNULL(MAX(job_id), 100) + 1 FROM sys_job); INSERT INTO `sys_job`(`job_id`,`job_name`,`job_group`,`invoke_target`,`cron_expression`,`misfire_policy`,`concurrent`,`status`,`create_by`,`create_time`,`remark`) VALUES (@jobId, '官方日Roll生成', 'DEFAULT', 'officialRollTask.generateDailyRolls()', '0 0 10 * * ?', '3', '1', '0', 'admin', NOW(), '每天10点为启用的日Roll配置自动创建官方Roll房并加入机器人'); -- ------------------------------------------------------------ -- 4) 菜单:机器人管理(挂"用户管理"下)、日Roll配置(挂"Roll房设置"下) -- 父菜单按名称查找;若你的父菜单名称不同,请调整下面 menu_name 的匹配值。 -- 若父菜单未找到(@xxxId 为 NULL),菜单将挂到顶级(parent_id=0),可在"菜单管理"里再拖动调整。 -- ------------------------------------------------------------ SET @userMgrId = (SELECT menu_id FROM (SELECT menu_id FROM sys_menu WHERE menu_name = '用户管理' AND menu_type = 'M' ORDER BY menu_id LIMIT 1) t); SET @rollMgrId = (SELECT menu_id FROM (SELECT menu_id FROM sys_menu WHERE menu_name = 'Roll房设置' AND menu_type = 'M' ORDER BY menu_id LIMIT 1) t); SET @menuBase = (SELECT IFNULL(MAX(menu_id), 2000) FROM sys_menu); INSERT INTO `sys_menu`(`menu_id`,`menu_name`,`parent_id`,`order_num`,`path`,`component`,`query`,`is_frame`,`is_cache`,`menu_type`,`visible`,`status`,`perms`,`icon`,`create_by`,`create_time`) VALUES (@menuBase + 1, '机器人管理', IFNULL(@userMgrId, 0), 5, 'robotUser', 'skins/robotUser/index', '', 1, 0, 'C', '0', '0', 'admin:robot:list', 'user', 'admin', NOW()); INSERT INTO `sys_menu`(`menu_id`,`menu_name`,`parent_id`,`order_num`,`path`,`component`,`query`,`is_frame`,`is_cache`,`menu_type`,`visible`,`status`,`perms`,`icon`,`create_by`,`create_time`) VALUES (@menuBase + 2, '日Roll配置', IFNULL(@rollMgrId, 0), 9, 'officialRollConfig', 'skins/ttRoll/officialRollConfig', '', 1, 0, 'C', '0', '0', 'admin:officialRollConfig:list', 'time', 'admin', NOW()); -- ============================================================ -- 完成。若为非 admin 角色,请在"角色管理"里为角色勾选以上两个菜单权限。 -- ============================================================