From b306543c0e457f2f5aed6799a06c351070dfa64f Mon Sep 17 00:00:00 2001 From: sunjiabei Date: Wed, 5 Nov 2025 13:22:46 +0800 Subject: [PATCH] =?UTF-8?q?11=E6=9C=885=E6=97=A5=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/coin/RechargeActivityCenterMapper.java | 2 + .../coin/RechargeActivityCenterService.java | 2 + .../coin/RechargeActivityCenterServiceImpl.java | 44 ++++++++++++++++++++++ .../mapper/RechargeActivityCenterMapper.xml | 13 +++++++ 4 files changed, 61 insertions(+) diff --git a/src/main/java/com/example/demo/mapper/coin/RechargeActivityCenterMapper.java b/src/main/java/com/example/demo/mapper/coin/RechargeActivityCenterMapper.java index 3049f10..27e527e 100644 --- a/src/main/java/com/example/demo/mapper/coin/RechargeActivityCenterMapper.java +++ b/src/main/java/com/example/demo/mapper/coin/RechargeActivityCenterMapper.java @@ -18,6 +18,8 @@ import java.util.List; @Mapper public interface RechargeActivityCenterMapper { + // 查询所有活动(用于批量更新状态) + List listActivities(); // 根据ID查询活动 List queryActivity(RechargeActivity activity); diff --git a/src/main/java/com/example/demo/service/coin/RechargeActivityCenterService.java b/src/main/java/com/example/demo/service/coin/RechargeActivityCenterService.java index 7d5b419..5e97a88 100644 --- a/src/main/java/com/example/demo/service/coin/RechargeActivityCenterService.java +++ b/src/main/java/com/example/demo/service/coin/RechargeActivityCenterService.java @@ -26,6 +26,8 @@ public interface RechargeActivityCenterService { // 更新活动 void updateActivity(RechargeActivity activity); + // 更新状态 + void updateStatus(); // 删除活动 void deleteActivity(RechargeActivity activity); diff --git a/src/main/java/com/example/demo/serviceImpl/coin/RechargeActivityCenterServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/coin/RechargeActivityCenterServiceImpl.java index e2f4484..2281e38 100644 --- a/src/main/java/com/example/demo/serviceImpl/coin/RechargeActivityCenterServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/coin/RechargeActivityCenterServiceImpl.java @@ -31,6 +31,7 @@ public class RechargeActivityCenterServiceImpl implements RechargeActivityCenter // 根据ID查询活动 @Override public PageInfo queryActivity(Integer pageNum, Integer pageSize, RechargeActivity activity) { + updateStatus(); PageHelper.startPage(pageNum, pageSize); List activityList = rechargeActivityCenterMapper.queryActivity(activity); return new PageInfo<>(activityList); @@ -82,6 +83,49 @@ public class RechargeActivityCenterServiceImpl implements RechargeActivityCenter rechargeActivityCenterMapper.updateActivity(activity); } + @Override + public void updateStatus() { + // 查询所有活动 + List activityList = rechargeActivityCenterMapper.listActivities(); + + if (activityList == null || activityList.isEmpty()) { + return; + } + + Date now = new Date(); + + // 遍历所有活动,更新状态 + for (RechargeActivity activity : activityList) { + Date startTime = activity.getStartTime(); + Date endTime = activity.getEndTime(); + + // 跳过时间为空的活动 + if (startTime == null || endTime == null) { + continue; + } + + String newStatus; + + // 时间范围判断,设置对应状态 + if (now.before(startTime)) { + // 当前时间 < 开始时间 → 未开始(状态0) + newStatus = "0"; + } else if (now.after(endTime)) { + // 当前时间 > 结束时间 → 已结束(状态2) + newStatus = "2"; + } else { + // 开始时间 ≤ 当前时间 ≤ 结束时间 → 进行中(状态1) + newStatus = "1"; + } + + // 只有当状态发生变化时才更新 + if (!newStatus.equals(activity.getStatus())) { + activity.setStatus(newStatus); + rechargeActivityCenterMapper.updateActivity(activity); + } + } + } + // 删除活动 @Override public void deleteActivity(RechargeActivity activity) { diff --git a/src/main/resources/mapper/RechargeActivityCenterMapper.xml b/src/main/resources/mapper/RechargeActivityCenterMapper.xml index 5b7dd95..3db0c92 100644 --- a/src/main/resources/mapper/RechargeActivityCenterMapper.xml +++ b/src/main/resources/mapper/RechargeActivityCenterMapper.xml @@ -2,6 +2,19 @@ + + + +