package com.ruoyi.system.task.jobs;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.ruoyi.common.constant.Constants;
|
import com.ruoyi.common.core.domain.entity.SysUser;
|
import com.ruoyi.common.utils.DateUtils;
|
import com.ruoyi.system.model.TSysAppUser;
|
import com.ruoyi.system.model.TSysLive;
|
import com.ruoyi.system.task.base.AbstractJob;
|
import org.quartz.JobDataMap;
|
import org.quartz.JobExecutionContext;
|
import org.quartz.JobExecutionException;
|
import org.springframework.util.CollectionUtils;
|
|
import java.util.List;
|
import java.util.Objects;
|
import java.util.Set;
|
|
/**
|
* 直播推送定时任务
|
* @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();
|
String liveId = maps.getString("id");
|
Set<String> userIds = redisCache.getCacheSet(Constants.LIVE_APPOINTMENT_PUSH + liveId);
|
if(CollectionUtils.isEmpty(userIds)){
|
return;
|
}
|
try {
|
System.out.println("开始执行直播推送任务");
|
TSysLive sysLive = sysLiveService.getById(liveId);
|
if(Objects.nonNull(sysLive)){
|
String liveTitle = sysLive.getLiveTitle();
|
String startTime = DateUtils.localDateTimeToString(sysLive.getStartTime());
|
List<TSysAppUser> sysAppUsers = sysAppUserService.list(Wrappers.lambdaQuery(TSysAppUser.class)
|
.in(TSysAppUser::getId, userIds));
|
for(TSysAppUser sysAppUser : sysAppUsers){
|
templateMessageSendUtil.wxTemplateAppLiveResultRequest(sysAppUser.getOpenId(), liveTitle, startTime);
|
}
|
}
|
}catch(Exception e){
|
e.printStackTrace();
|
}
|
}
|
|
}
|