Search in sources :

Example 1 with QuartzBean

use of com.yh.weatherpush.dto.QuartzBean in project weather-push by yangh124.

the class SchTaskServiceImpl method updateTask.

@Transactional(rollbackFor = Exception.class)
@Override
public void updateTask(Long id, UpdateTaskDTO dto) {
    SchTask task = super.getById(id);
    Integer status = dto.getStatus();
    String cronExp = dto.getCronExp();
    List<Long> tagIds = dto.getTagIds();
    if (ObjectUtil.isNull(status) || StrUtil.isBlank(cronExp) || CollUtil.isEmpty(tagIds)) {
        throw new ApiException("参数错误!");
    }
    BeanUtil.copyProperties(dto, task);
    super.updateById(task);
    taskRelTagService.remove(new QueryWrapper<TaskRelTag>().lambda().eq(TaskRelTag::getTaskId, id));
    List<TaskRelTag> list = new ArrayList<>(tagIds.size());
    for (Long tagId : tagIds) {
        TaskRelTag taskRelTag = new TaskRelTag();
        taskRelTag.setTaskId(id);
        taskRelTag.setTagId(tagId);
        taskRelTag.setCtime(LocalDateTime.now());
        list.add(taskRelTag);
    }
    taskRelTagService.saveBatch(list);
    if (StrUtil.isNotBlank(cronExp)) {
        QuartzBean quartzBean = new QuartzBean();
        quartzBean.setId(String.valueOf(id));
        quartzBean.setCronExp(cronExp);
        quartzClient.update(scheduler, quartzBean);
    }
    if (ObjectUtil.isNotNull(status)) {
        if (0 == status) {
            quartzClient.start(scheduler, String.valueOf(id));
        } else {
            quartzClient.stop(scheduler, String.valueOf(id));
        }
    }
}
Also used : ArrayList(java.util.ArrayList) SchTask(com.yh.weatherpush.entity.SchTask) TaskRelTag(com.yh.weatherpush.entity.TaskRelTag) ApiException(com.yh.weatherpush.exception.ApiException) QuartzBean(com.yh.weatherpush.dto.QuartzBean) Transactional(org.springframework.transaction.annotation.Transactional)

Example 2 with QuartzBean

use of com.yh.weatherpush.dto.QuartzBean in project weather-push by yangh124.

the class SchTaskServiceImpl method create.

@Transactional(rollbackFor = Exception.class)
@Override
public void create(AddTaskParam param) {
    SchTask schTask = new SchTask();
    BeanUtil.copyProperties(param, schTask);
    schTask.setCtime(LocalDateTime.now());
    super.save(schTask);
    Long taskId = schTask.getId();
    List<Long> tagIds = param.getTagIds();
    List<TaskRelTag> list = new ArrayList<>(tagIds.size());
    for (Long tagId : tagIds) {
        TaskRelTag taskRelTag = new TaskRelTag();
        taskRelTag.setTaskId(taskId);
        taskRelTag.setTagId(tagId);
        taskRelTag.setCtime(LocalDateTime.now());
        list.add(taskRelTag);
    }
    taskRelTagService.saveBatch(list);
    QuartzBean quartzBean = new QuartzBean();
    BeanUtil.copyProperties(schTask, quartzBean);
    quartzBean.setId(String.valueOf(taskId));
    quartzClient.create(scheduler, quartzBean);
}
Also used : ArrayList(java.util.ArrayList) SchTask(com.yh.weatherpush.entity.SchTask) TaskRelTag(com.yh.weatherpush.entity.TaskRelTag) QuartzBean(com.yh.weatherpush.dto.QuartzBean) Transactional(org.springframework.transaction.annotation.Transactional)

Aggregations

QuartzBean (com.yh.weatherpush.dto.QuartzBean)2 SchTask (com.yh.weatherpush.entity.SchTask)2 TaskRelTag (com.yh.weatherpush.entity.TaskRelTag)2 ArrayList (java.util.ArrayList)2 Transactional (org.springframework.transaction.annotation.Transactional)2 ApiException (com.yh.weatherpush.exception.ApiException)1