From 32bf3cf5d22ef0378b250371dcb36dea42ac42f5 Mon Sep 17 00:00:00 2001 From: Fdily <2949549024@qq.com> Date: Fri, 15 May 2026 20:21:24 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/service/impl/TtRollServiceImpl.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/skins-service/service-admin/src/main/java/com/ruoyi/admin/service/impl/TtRollServiceImpl.java b/skins-service/service-admin/src/main/java/com/ruoyi/admin/service/impl/TtRollServiceImpl.java index 0aa81bb..a630810 100644 --- a/skins-service/service-admin/src/main/java/com/ruoyi/admin/service/impl/TtRollServiceImpl.java +++ b/skins-service/service-admin/src/main/java/com/ruoyi/admin/service/impl/TtRollServiceImpl.java @@ -167,6 +167,26 @@ public class TtRollServiceImpl extends ServiceImpl impleme if (ObjectUtil.isEmpty(one)) return AjaxResult.error("不存在的roll房。"); + Date oldEndTime = one.getEndTime(); + + // 此刻 + Calendar c = Calendar.getInstance(); + + // 已结束的房间可以随时修改时间,不受任何限制 + boolean isEnded = c.getTime().compareTo(oldEndTime) >= 0 || !"0".equals(one.getRollStatus()); + if (!isEnded) { + long endTime = ttRoll.getEndTime().getTime(); + long difference = endTime - c.getTimeInMillis(); + if (difference < 10) return AjaxResult.error("开奖时间不能早于现在。"); + + // 临界区检查(仅对未结束的房间生效) + c.add(Calendar.MINUTE, 5); + long criticalTime = c.getTimeInMillis(); + if (criticalTime > oldEndTime.getTime()) { + return AjaxResult.error("该roll房开奖时间已处于临界保护区【5分钟】内,请勿修改开奖时间。"); + } + } + baseMapper.updateById(ttRoll); return AjaxResult.success(); }