package com.ruoyi.system.task.jobs; import com.google.common.collect.ImmutableMap; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.system.model.TCommunityActivity; import com.ruoyi.system.model.TDeliberationVote; import com.ruoyi.system.task.base.AbstractJob; import com.ruoyi.system.task.base.QuartzManager; import com.ruoyi.system.task.base.TimeJobType; import org.quartz.JobDataMap; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import java.time.LocalDateTime; import java.util.Map; import java.util.Objects; /** * 直播推送定时任务 * @author Administrator * */ public class ActivityPush extends AbstractJob { public static final String name = "activityPush_"; @Override public void execute(JobExecutionContext context) throws JobExecutionException { JobDataMap maps = context.getMergedJobDataMap(); String activityId = maps.getString("id"); String type = maps.getString("type"); try { TCommunityActivity communityActivity = communityActivityService.getById(activityId); if(Objects.isNull(communityActivity)){ return; } LocalDateTime startTime = communityActivity.getStartTime(); LocalDateTime endTime = communityActivity.getEndTime(); LocalDateTime now = LocalDateTime.now(); if("1".equals(type) && now.compareTo(startTime) > -1 && now.compareTo(endTime) < 1){ communityActivity.setStatus(2); // 添加定时任务 Map map = new ImmutableMap.Builder(). put("id", communityActivity.getId()).put("type","2") .build(); QuartzManager.addJob( ActivityPush.class, (DeliberationVotePush.name+communityActivity.getId()).toUpperCase(), TimeJobType.ACTIVITY_PUSH, DateUtils.localDateTimeToDate(communityActivity.getEndTime()), map ); } if("2".equals(type) && now.isAfter(endTime)){ communityActivity.setStatus(3); } communityActivityService.updateById(communityActivity); }catch(Exception e){ e.printStackTrace(); } } }