From ac73646e689ac2be81e7f970f44593cf80da4748 Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期五, 05 九月 2025 10:05:58 +0800 Subject: [PATCH] 直播开始推送 --- /dev/null | 25 ------------ ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java | 9 ++++ ruoyi-system/src/main/java/com/ruoyi/system/task/jobs/LivePushJob.java | 29 ++++++++++++++ ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysLiveServiceImpl.java | 25 +++++++++++- ruoyi-system/src/main/java/com/ruoyi/system/task/base/AbstractJob.java | 7 +-- ruoyi-system/src/main/java/com/ruoyi/system/task/base/TimeJobType.java | 2 6 files changed, 65 insertions(+), 32 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java index 9042014..5086ef8 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java @@ -369,6 +369,15 @@ } /** + * LocalDateTime转为Date + * @param time + * @return + */ + public static Date localDateTimeToDate(LocalDateTime time) { + return Date.from(time.atZone(ZoneId.systemDefault()).toInstant()); + } + + /** * localdate转为字符串 * * @param time localdate diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysLiveServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysLiveServiceImpl.java index 496e7eb..c5456e0 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysLiveServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysLiveServiceImpl.java @@ -1,18 +1,25 @@ package com.ruoyi.system.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.google.common.collect.ImmutableMap; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.utils.DateUtils; import com.ruoyi.system.mapper.TSysLiveMapper; import com.ruoyi.system.model.TSysEducationalInfo; import com.ruoyi.system.model.TSysLive; import com.ruoyi.system.query.TSysLiveQuery; import com.ruoyi.system.service.TSysLiveService; +import com.ruoyi.system.task.base.QuartzManager; +import com.ruoyi.system.task.base.TimeJobType; +import com.ruoyi.system.task.jobs.LivePushJob; import com.ruoyi.system.vo.TSysLiveVO; import org.springframework.stereotype.Service; import java.time.LocalDateTime; +import java.util.Date; import java.util.List; +import java.util.Map; import java.util.Objects; /** @@ -30,10 +37,24 @@ public R pushUser(String id, String pushType) { TSysLive sysLive = this.getById(id); if (Objects.nonNull(sysLive)){ + // 判断直播开始时间是否在当前时间之后 + if (sysLive.getStartTime().isBefore(LocalDateTime.now())){ + return R.fail("直播已开始,无法配置推送"); + } sysLive.setPushType(pushType); this.updateById(sysLive); - // TODO 添加定时推送 - + // 添加定时任务 直播开始推送 + Map<String, ? extends Object> maps = + new ImmutableMap.Builder<String, String>(). + put("id", sysLive.getId()) + .build(); + QuartzManager.addJob( + LivePushJob.class, + (LivePushJob.name+sysLive.getId()).toUpperCase(), + TimeJobType.LIVE_PUSH, + DateUtils.localDateTimeToDate(sysLive.getStartTime()), + maps + ); } return R.ok(); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/task/base/AbstractJob.java b/ruoyi-system/src/main/java/com/ruoyi/system/task/base/AbstractJob.java index 0950214..e738867 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/task/base/AbstractJob.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/task/base/AbstractJob.java @@ -3,6 +3,7 @@ import com.aizuda.bpm.mybatisplus.mapper.FlwTaskActorMapper; import com.aizuda.bpm.mybatisplus.mapper.FlwTaskMapper; import com.ruoyi.system.service.ISysUserService; +import com.ruoyi.system.service.TSysLiveService; import com.ruoyi.system.task.utils.SpringContextsUtil; import org.quartz.Job; import org.quartz.JobExecutionContext; @@ -16,14 +17,12 @@ @Override public abstract void execute(JobExecutionContext context) throws JobExecutionException; - protected FlwTaskMapper flwTaskMapper; - protected FlwTaskActorMapper flwTaskActorMapper; protected ISysUserService sysUserService; + protected TSysLiveService sysLiveService; public AbstractJob(){ - this.flwTaskMapper = SpringContextsUtil.getBean(FlwTaskMapper.class); - this.flwTaskActorMapper = SpringContextsUtil.getBean(FlwTaskActorMapper.class); this.sysUserService = SpringContextsUtil.getBean(ISysUserService.class); + this.sysLiveService = SpringContextsUtil.getBean(TSysLiveService.class); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/task/base/TimeJobType.java b/ruoyi-system/src/main/java/com/ruoyi/system/task/base/TimeJobType.java index 8bacc4a..67782ff 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/task/base/TimeJobType.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/task/base/TimeJobType.java @@ -5,7 +5,7 @@ * @date 2025年2月17日 下午7:22:28 */ public enum TimeJobType { - AUTO_AUDIT("auto_audit","自动审核"); + LIVE_PUSH("live_push","直播推送"); private String type; private String desc; private TimeJobType(String type, String desc) { diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/task/jobs/LivePushJob.java b/ruoyi-system/src/main/java/com/ruoyi/system/task/jobs/LivePushJob.java new file mode 100644 index 0000000..defd05a --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/task/jobs/LivePushJob.java @@ -0,0 +1,29 @@ +package com.ruoyi.system.task.jobs; + +import com.ruoyi.system.task.base.AbstractJob; +import org.quartz.JobDataMap; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; + +/** + * 直播推送定时任务 + * @author Administrator + * + */ +public class LivePushJob extends AbstractJob { + + public static final String name = "livePush_"; + + @Override + public void execute(JobExecutionContext context) + throws JobExecutionException { + JobDataMap maps = context.getMergedJobDataMap(); + Long liveId = maps.getLong("id"); + try { + System.out.println("开始执行直播推送任务"); + }catch(Exception e){ + e.printStackTrace(); + } + } + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/task/jobs/StateProcessJob.java b/ruoyi-system/src/main/java/com/ruoyi/system/task/jobs/StateProcessJob.java deleted file mode 100644 index 025f67f..0000000 --- a/ruoyi-system/src/main/java/com/ruoyi/system/task/jobs/StateProcessJob.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.ruoyi.system.task.jobs; - -import com.ruoyi.system.task.base.AbstractJob; -import org.quartz.JobExecutionContext; -import org.quartz.JobExecutionException; - -/** - * 发票定时任务 - * @author Administrator - * - */ -public class StateProcessJob extends AbstractJob { - - public static final String name = "stateProcess_"; - - @Override - public void execute(JobExecutionContext context) - throws JobExecutionException { - try { - }catch(Exception e){ - e.printStackTrace(); - } - } - -} -- Gitblit v1.7.1