Browse Source

11月5日活动管理

huangqizheng/feature-20251104113536-现金管理二期退款修改
sunjiabei 3 weeks ago
parent
commit
b306543c0e
  1. 2
      src/main/java/com/example/demo/mapper/coin/RechargeActivityCenterMapper.java
  2. 2
      src/main/java/com/example/demo/service/coin/RechargeActivityCenterService.java
  3. 44
      src/main/java/com/example/demo/serviceImpl/coin/RechargeActivityCenterServiceImpl.java
  4. 13
      src/main/resources/mapper/RechargeActivityCenterMapper.xml

2
src/main/java/com/example/demo/mapper/coin/RechargeActivityCenterMapper.java

@ -18,6 +18,8 @@ import java.util.List;
@Mapper
public interface RechargeActivityCenterMapper {
// 查询所有活动用于批量更新状态
List<RechargeActivity> listActivities();
// 根据ID查询活动
List<RechargeActivity> queryActivity(RechargeActivity activity);

2
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);

44
src/main/java/com/example/demo/serviceImpl/coin/RechargeActivityCenterServiceImpl.java

@ -31,6 +31,7 @@ public class RechargeActivityCenterServiceImpl implements RechargeActivityCenter
// 根据ID查询活动
@Override
public PageInfo<RechargeActivity> queryActivity(Integer pageNum, Integer pageSize, RechargeActivity activity) {
updateStatus();
PageHelper.startPage(pageNum, pageSize);
List<RechargeActivity> 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<RechargeActivity> 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) {

13
src/main/resources/mapper/RechargeActivityCenterMapper.xml

@ -2,6 +2,19 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.coin.RechargeActivityCenterMapper">
<!-- 查询所有活动(用于批量更新状态) -->
<select id="listActivities" resultType="com.example.demo.domain.vo.coin.RechargeActivity">
SELECT
ra.id,
ra.start_time as startTime,
ra.end_time as endTime,
ra.status as status
FROM recharge_activity ra
WHERE ra.flag = 1
ORDER BY ra.update_time DESC
</select>
<!-- 查询活动 -->
<select id="queryActivity" resultType="com.example.demo.domain.vo.coin.RechargeActivity">
SELECT

Loading…
Cancel
Save