定时推送账单添加执行日志;
This commit is contained in:
+15
@@ -3,12 +3,15 @@ package com.mhd.basic.domain.scheduledTask.repository.task;
|
||||
import com.mhd.basic.domain.scheduledTask.entity.ScheduledTask;
|
||||
import com.mhd.basic.domain.scheduledTask.repository.facade.ScheduledTaskService;
|
||||
import com.mhd.basic.domain.scheduledTask.repository.mapper.ScheduledTaskMapper;
|
||||
import com.mhd.basic.domain.scheduledTaskLog.entity.ScheduledTaskLog;
|
||||
import com.mhd.basic.domain.scheduledTaskLog.repository.mapper.ScheduledTaskLogMapper;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
@@ -18,6 +21,9 @@ public class BillingScheduler {
|
||||
@Resource
|
||||
private ScheduledTaskMapper scheduledTaskMapper;
|
||||
|
||||
@Resource
|
||||
private ScheduledTaskLogMapper scheduledTaskLogMapper;
|
||||
|
||||
@Resource
|
||||
private ScheduledTaskService scheduledTaskService;
|
||||
|
||||
@@ -51,19 +57,28 @@ public class BillingScheduler {
|
||||
}
|
||||
|
||||
private void executeTask(ScheduledTask task) {
|
||||
String status = "";
|
||||
try {
|
||||
// 执行具体的出账逻辑
|
||||
scheduledTaskService.executeBilling(task.getBusId());
|
||||
|
||||
scheduledTaskMapper.updateStatus(task.getId(), "SUCCESS");
|
||||
status = "SUCCESS";
|
||||
} catch (Exception e) {
|
||||
// 重试机制
|
||||
scheduledTaskMapper.incrementRetryCount(task.getId());
|
||||
if (task.getRetryCount() < 3) {
|
||||
scheduledTaskMapper.updateStatus(task.getId(), "PENDING");
|
||||
} else {
|
||||
status = "FAILED";
|
||||
scheduledTaskMapper.updateStatus(task.getId(), "FAILED");
|
||||
}
|
||||
}
|
||||
ScheduledTaskLog log = new ScheduledTaskLog();
|
||||
log.setTaskId(task.getId());
|
||||
log.setBusId(task.getBusId());
|
||||
log.setTaskStatus(status);
|
||||
log.setExecuteTime(new Date());
|
||||
scheduledTaskLogMapper.insert(log);
|
||||
}
|
||||
}
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
package com.mhd.basic.domain.scheduledTaskLog.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalTime;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-06-07
|
||||
*/
|
||||
|
||||
@Data
|
||||
public class ScheduledTaskLog extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("id")
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("业务id")
|
||||
private Long busId;
|
||||
|
||||
@ApiModelProperty("任务id")
|
||||
private Long taskId;
|
||||
|
||||
@ApiModelProperty("结果")
|
||||
private String taskStatus;
|
||||
|
||||
@ApiModelProperty("执行时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date executeTime;
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
package com.mhd.basic.domain.scheduledTaskLog.repository.facade;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.mhd.basic.domain.scheduledTask.entity.ScheduledTask;
|
||||
import com.mhd.basic.domain.lease.entity.Lease;
|
||||
import com.mhd.basic.domain.scheduledTaskLog.entity.ScheduledTaskLog;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
public interface ScheduledTaskLogService extends IService<ScheduledTaskLog> {
|
||||
|
||||
}
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
package com.mhd.basic.domain.scheduledTaskLog.repository.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.mhd.basic.domain.scheduledTask.entity.ScheduledTask;
|
||||
import com.mhd.basic.domain.scheduledTaskLog.entity.ScheduledTaskLog;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Update;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
public interface ScheduledTaskLogMapper extends BaseMapper<ScheduledTaskLog> {
|
||||
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
package com.mhd.basic.domain.scheduledTaskLog.repository.persistence;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.mhd.basic.domain.scheduledTaskLog.entity.ScheduledTaskLog;
|
||||
import com.mhd.basic.domain.scheduledTaskLog.repository.facade.ScheduledTaskLogService;
|
||||
import com.mhd.basic.domain.scheduledTaskLog.repository.mapper.ScheduledTaskLogMapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
public class ScheduledTaskLogServiceImpl extends ServiceImpl<ScheduledTaskLogMapper, ScheduledTaskLog> implements ScheduledTaskLogService {
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user