|
|
@@ -1,15 +1,21 @@
|
|
|
package cn.tr.module.smart.common.task;
|
|
|
|
|
|
+import cn.binarywang.wx.miniapp.api.WxMaOpenApiService;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.tr.core.exception.ServiceException;
|
|
|
import cn.tr.core.exception.TRExcCode;
|
|
|
import cn.tr.module.quartz.job.service.ISysJobService;
|
|
|
import cn.tr.module.quartz.utils.ScheduleUtils;
|
|
|
import cn.tr.module.smart.common.po.BizMpPublishTaskPO;
|
|
|
+import cn.tr.module.smart.common.po.BizWxUserSubscribePO;
|
|
|
+import cn.tr.module.smart.common.register.WxSendTemplateMsgRegister;
|
|
|
import cn.tr.module.smart.common.repository.BizMpPublishTaskRepository;
|
|
|
+import cn.tr.module.smart.common.repository.BizWxUserSubscribeRepository;
|
|
|
import cn.tr.plugin.lock.annotation.DistributeLock;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import me.chanjar.weixin.mp.api.WxMpService;
|
|
|
import org.quartz.SchedulerException;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
@@ -30,6 +36,12 @@ public class QuartzTaskExecutor {
|
|
|
private BizMpPublishTaskRepository bizMpPublishTaskRepository;
|
|
|
@Autowired
|
|
|
private ISysJobService sysJobService;
|
|
|
+ @Autowired
|
|
|
+ private BizWxUserSubscribeRepository wxUserSubscribeRepository;
|
|
|
+ @Autowired
|
|
|
+ private WxSendTemplateMsgRegister wxSendTemplateMsgRegister;
|
|
|
+ @Autowired
|
|
|
+ private WxMpService wxMpService;
|
|
|
|
|
|
/**
|
|
|
* @description: 定时任务执行逻辑
|
|
|
@@ -40,25 +52,31 @@ public class QuartzTaskExecutor {
|
|
|
@DistributeLock(name = "#taskId")
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void execute(String taskId) throws SchedulerException {
|
|
|
+ log.info("开始执行公众号发布任务,任务ID: {}", taskId);
|
|
|
BizMpPublishTaskPO bizMpPublishTaskPO = bizMpPublishTaskRepository.selectById(taskId);
|
|
|
if (ObjectUtil.isNull(bizMpPublishTaskPO)) {
|
|
|
- log.info("任务不存在");
|
|
|
+ log.info("任务不存在,任务ID: {}", taskId);
|
|
|
return;
|
|
|
}
|
|
|
if (!Objects.equals(bizMpPublishTaskPO.getPublishCount(), bizMpPublishTaskPO.getTotalCount())) {
|
|
|
- log.info("满足标准发送推送公众号");
|
|
|
+ log.info("满足标准发送推送公众号,任务ID: {}", taskId);
|
|
|
//更新执行次数
|
|
|
+ int newPublishCount = bizMpPublishTaskPO.getPublishCount() + 1;
|
|
|
bizMpPublishTaskRepository.update(null,new LambdaUpdateWrapper<BizMpPublishTaskPO>()
|
|
|
- .set(BizMpPublishTaskPO::getPublishCount,bizMpPublishTaskPO.getPublishCount()+1)
|
|
|
+ .set(BizMpPublishTaskPO::getPublishCount, newPublishCount)
|
|
|
.eq(BizMpPublishTaskPO::getId,taskId));
|
|
|
//执行推送数据
|
|
|
-
|
|
|
+ log.debug("执行推送数据逻辑,任务ID: {}", taskId);
|
|
|
+// wxUserSubscribeRepository.selectOne(new LambdaQueryWrapper<BizWxUserSubscribePO>()
|
|
|
+// .eq())
|
|
|
+// wxSendTemplateMsgRegister.sendMessage(wxMpService,)
|
|
|
} else {
|
|
|
- log.info("任务执行次数已完成");
|
|
|
+ log.info("任务执行次数已完成,准备清理任务数据,任务ID: {}", taskId);
|
|
|
//删除任务
|
|
|
bizMpPublishTaskRepository.deleteById(taskId);
|
|
|
//删除触发器
|
|
|
sysJobService.removeSysJobByIds(new ArrayList<>());
|
|
|
}
|
|
|
+ log.info("公众号发布任务执行结束,任务ID: {}", taskId);
|
|
|
}
|
|
|
}
|