package cn.lili.job;
|
|
import cn.lili.common.enums.ActivityStatusEnum;
|
import cn.lili.modules.lmk.domain.entity.Activity;
|
import cn.lili.modules.lmk.domain.entity.CustomerBlack;
|
import cn.lili.modules.lmk.domain.vo.ActivityVO;
|
import cn.lili.modules.lmk.domain.vo.CollectTypeNumVO;
|
import cn.lili.modules.lmk.enums.general.CollectTypeEnum;
|
import cn.lili.modules.lmk.mapper.ActivityMapper;
|
import cn.lili.modules.lmk.service.ActivityService;
|
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
|
import com.xxl.job.core.context.XxlJobHelper;
|
import com.xxl.job.core.handler.annotation.XxlJob;
|
import lombok.RequiredArgsConstructor;
|
import org.apache.commons.collections4.CollectionUtils;
|
import org.springframework.stereotype.Component;
|
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.stream.Collectors;
|
|
/**
|
* 活动相关任务
|
* */
|
@Component
|
@RequiredArgsConstructor
|
public class ActivityJob {
|
|
private final ActivityMapper activityMapper;
|
|
/**
|
* 更具报名时间段与活冻时间段,改变活动状态
|
*
|
* */
|
@XxlJob("activityStatusJob")
|
public void activityStatusJob() throws Exception {
|
XxlJobHelper.log("开始执行:活动状态改变");
|
//获得所有 活动
|
List<Activity> activeActivities = new LambdaQueryChainWrapper<Activity>(activityMapper)
|
.orderByAsc(Activity::getCreateTime) // 按创建时间升序
|
.list();
|
Date now = new Date(); // 获取当前时间
|
|
|
|
for (Activity activity : activeActivities) {
|
if (isInProgress(now, activity)) {
|
activity.setStatus(ActivityStatusEnum.IN_PROGRESS.getType());
|
} else if (isRecruiting(now, activity)) {
|
activity.setStatus(ActivityStatusEnum.REPORT.getType());
|
} else if (now.before(activity.getReportStartTime())) {
|
activity.setStatus(ActivityStatusEnum.NOT_STARTED.getType());
|
} else {
|
activity.setStatus(ActivityStatusEnum.ENDED.getType());
|
}
|
}
|
activityMapper.batchUpdateActivities(activeActivities);
|
|
// 修改
|
XxlJobHelper.log("执行完成:活动状态改变");
|
|
}
|
|
private boolean isInProgress(Date now, Activity activity) {
|
return !now.before(activity.getStartTime()) && !now.after(activity.getEndTime());
|
}
|
|
private boolean isRecruiting(Date now, Activity activity) {
|
return !now.before(activity.getReportStartTime()) && !now.after(activity.getReportEndTime());
|
}
|
|
}
|