Commit db1fadae by zhangxingmin

push

parent b1afc495
package com.yd.csf.api.handler;
import com.alibaba.fastjson.JSON;
import com.xxl.job.core.context.XxlJobHelper;
import com.xxl.job.core.handler.annotation.XxlJob;
import com.yd.csf.service.model.CalmTask;
import com.yd.csf.service.service.ICalmTaskService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
/**
* 邮件发送任务处理器 - XXL-Job定时任务执行器
* 使用@XxlJob注解方式
*/
@Component
@Slf4j
public class ExpectedFortuneJobHandler {
@Autowired
private ICalmTaskService iCalmTaskService;
/**
* XXL-Job任务执行入口方法
*/
@XxlJob("calmSendJobHandler")
public void execute() throws Exception {
//主任务发送时间
LocalDateTime taskSendTime = LocalDateTime.now();
// 从XXL-Job参数中获取任务ID
String param = XxlJobHelper.getJobParam();
// 记录任务开始日志
log.info("开始执行邮件发送任务,参数: {}", param);
// 解析任务参数(参数为保单冷静期任务业务ID)
String taskBizId = param;
// 根据保单冷静期任务业务ID查询冷静期任务信息
CalmTask calmTask = iCalmTaskService.queryOne(taskBizId);
log.info("根据保单冷静期任务ID查询冷静期任务信息: {}: " + JSON.toJSONString(calmTask));
// 检查保单冷静期任务是否存在
if (Objects.isNull(calmTask)) {
// 记录错误并返回
XxlJobHelper.log("保单冷静期任务不存在: " + taskBizId);
XxlJobHelper.handleFail("保单冷静期任务不存在");
return;
}
// 更新任务状态为执行中
calmTask.setExecutionStatus("1");
iCalmTaskService.saveOrUpdate(calmTask);
try {
//更新
} catch (Exception e) {
// 任务执行过程中发生异常
log.error("保单冷静期任务执行异常", e);
// 更新任务状态为执行异常
calmTask.setExecutionStatus("3");
iCalmTaskService.saveOrUpdate(calmTask);
// 返回任务执行异常信息
XxlJobHelper.handleFail("任务执行异常: " + e.getMessage());
}
}
}
\ No newline at end of file
......@@ -86,12 +86,18 @@ public class CalmTask implements Serializable {
private LocalDateTime executionTime;
/**
* 执行状态(未执行,已执行
* 执行状态(0-未执行,1-执行中,2-已执行,3-执行异常
*/
@TableField("execution_status")
private String executionStatus;
/**
* 执行异常日志
*/
@TableField("error_msg")
private String errorMsg;
/**
* 通用备注
*/
@TableField("remark")
......
......@@ -13,4 +13,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface ICalmTaskService extends IService<CalmTask> {
CalmTask queryOne(String calmTaskBizId);
}
package com.yd.csf.service.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yd.csf.service.model.CalmTask;
import com.yd.csf.service.dao.CalmTaskMapper;
import com.yd.csf.service.service.ICalmTaskService;
......@@ -17,4 +18,11 @@ import org.springframework.stereotype.Service;
@Service
public class CalmTaskServiceImpl extends ServiceImpl<CalmTaskMapper, CalmTask> implements ICalmTaskService {
@Override
public CalmTask queryOne(String calmTaskBizId) {
return baseMapper.selectOne(new LambdaQueryWrapper<CalmTask>()
.eq(CalmTask::getCalmTaskBizId,calmTaskBizId)
.last(" limit 1 ")
);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment