package com.example.demo.serviceImpl.coin; import com.example.demo.domain.vo.coin.RechargeActivity; import com.example.demo.mapper.coin.RechargeActivityCenterMapper; import com.example.demo.service.coin.RechargeActivityCenterService; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.time.LocalDateTime; import java.util.Date; import java.util.List; /** * @program: gold-java * @ClassName RechargeActivityCenterServiceImpl * @description: 充值活动中心服务实现类 * @author: Double * @create: 2025−10-28 14:40 * @Version 1.0 **/ @Service public class RechargeActivityCenterServiceImpl implements RechargeActivityCenterService { @Autowired private RechargeActivityCenterMapper rechargeActivityCenterMapper; // 根据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); } // 新增活动 @Override public void addActivity(RechargeActivity activity) { Date startTime = activity.getStartTime(); Date endTime = activity.getEndTime(); //获取当前系统时间(本地时间,与活动时间时区保持一致) Date now = new Date(); //时间范围判断,设置对应状态 if (now.before(startTime)) { // 当前时间 < 开始时间 → 未开始(状态0) activity.setStatus("0"); } else if (now.after(endTime)) { // 当前时间 > 结束时间 → 已结束(状态2) activity.setStatus("2"); } else { // 开始时间 ≤ 当前时间 ≤ 结束时间 → 进行中(状态1) activity.setStatus("1"); } rechargeActivityCenterMapper.addActivity(activity); } // 更新活动 @Override public void updateActivity(RechargeActivity activity) { Date startTime = activity.getStartTime(); Date endTime = activity.getEndTime(); //获取当前系统时间(本地时间,与活动时间时区保持一致) Date now = new Date(); //时间范围判断,设置对应状态 if (now.before(startTime)) { // 当前时间 < 开始时间 → 未开始(状态0) activity.setStatus("0"); } else if (now.after(endTime)) { // 当前时间 > 结束时间 → 已结束(状态2) activity.setStatus("2"); } else { // 开始时间 ≤ 当前时间 ≤ 结束时间 → 进行中(状态1) activity.setStatus("1"); } 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) { rechargeActivityCenterMapper.deleteActivity(activity); } }