mirror of
http://git.pig4cloud.com/pig/pigx.git
synced 2026-11-12 21:49:01 +08:00
♻️ Refactoring code. pigx-quartz 适配最新V5 UI
This commit is contained in:
1 parent
e6838a19e1
commit
d6a86c275c
19 files changed
+141
-77
No files matched your search
+2
@@ -17,6 +17,8 @@
|
||||
|
||||
package com.pig4cloud.pigx.daemon.quartz.config;
|
||||
|
||||
import com.pig4cloud.pigx.daemon.quartz.constants.PigxQuartzEnum;
|
||||
import com.pig4cloud.pigx.daemon.quartz.service.SysJobService;
|
||||
import com.pig4cloud.pigx.daemon.quartz.constants.PigxQuartzEnum;
|
||||
import com.pig4cloud.pigx.daemon.quartz.service.SysJobService;
|
||||
import com.pig4cloud.pigx.daemon.quartz.util.TaskUtil;
|
||||
|
||||
+2
@@ -17,6 +17,8 @@
|
||||
|
||||
package com.pig4cloud.pigx.daemon.quartz.config;
|
||||
|
||||
import com.pig4cloud.pigx.daemon.quartz.constants.PigxQuartzEnum;
|
||||
import com.pig4cloud.pigx.daemon.quartz.entity.SysJob;
|
||||
import com.pig4cloud.pigx.daemon.quartz.constants.PigxQuartzEnum;
|
||||
import com.pig4cloud.pigx.daemon.quartz.entity.SysJob;
|
||||
import lombok.SneakyThrows;
|
||||
|
||||
+2
@@ -17,6 +17,8 @@
|
||||
|
||||
package com.pig4cloud.pigx.daemon.quartz.config;
|
||||
|
||||
import com.pig4cloud.pigx.daemon.quartz.entity.SysJob;
|
||||
import com.pig4cloud.pigx.daemon.quartz.event.SysJobEvent;
|
||||
import com.pig4cloud.pigx.daemon.quartz.entity.SysJob;
|
||||
import com.pig4cloud.pigx.daemon.quartz.event.SysJobEvent;
|
||||
import lombok.AllArgsConstructor;
|
||||
|
||||
+63
-33
@@ -17,13 +17,19 @@
|
||||
|
||||
package com.pig4cloud.pigx.daemon.quartz.controller;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.pig4cloud.pigx.common.core.util.R;
|
||||
import com.pig4cloud.pigx.common.excel.annotation.ResponseExcel;
|
||||
import com.pig4cloud.pigx.common.log.annotation.SysLog;
|
||||
import com.pig4cloud.pigx.common.security.util.SecurityUtils;
|
||||
import com.pig4cloud.pigx.daemon.quartz.constants.PigxQuartzEnum;
|
||||
import com.pig4cloud.pigx.daemon.quartz.service.SysJobLogService;
|
||||
import com.pig4cloud.pigx.daemon.quartz.service.SysJobService;
|
||||
import com.pig4cloud.pigx.daemon.quartz.entity.SysJob;
|
||||
import com.pig4cloud.pigx.daemon.quartz.entity.SysJobLog;
|
||||
import com.pig4cloud.pigx.daemon.quartz.service.SysJobLogService;
|
||||
@@ -38,6 +44,8 @@ import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static com.pig4cloud.pigx.daemon.quartz.constants.PigxQuartzEnum.*;
|
||||
|
||||
/**
|
||||
@@ -68,9 +76,15 @@ public class SysJobController {
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "分页定时业务查询")
|
||||
@Operation(description = "分页定时业务查询")
|
||||
public R getSysJobPage(Page page, SysJob sysJob) {
|
||||
return R.ok(sysJobService.page(page, Wrappers.query(sysJob)));
|
||||
LambdaQueryWrapper<SysJob> wrapper = Wrappers.<SysJob>lambdaQuery()
|
||||
.like(StrUtil.isNotBlank(sysJob.getJobName()), SysJob::getJobName, sysJob.getJobName())
|
||||
.like(StrUtil.isNotBlank(sysJob.getJobGroup()), SysJob::getJobGroup, sysJob.getJobGroup())
|
||||
.eq(StrUtil.isNotBlank(sysJob.getJobStatus()), SysJob::getJobStatus, sysJob.getJobGroup())
|
||||
.eq(StrUtil.isNotBlank(sysJob.getJobExecuteStatus()), SysJob::getJobExecuteStatus,
|
||||
sysJob.getJobExecuteStatus());
|
||||
return R.ok(sysJobService.page(page, wrapper));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -79,7 +93,7 @@ public class SysJobController {
|
||||
* @return R
|
||||
*/
|
||||
@GetMapping("/{id}")
|
||||
@Operation(summary = "唯一标识查询定时任务")
|
||||
@Operation(description = "唯一标识查询定时任务")
|
||||
public R getById(@PathVariable("id") Long id) {
|
||||
return R.ok(sysJobService.getById(id));
|
||||
}
|
||||
@@ -92,9 +106,9 @@ public class SysJobController {
|
||||
@SysLog("新增定时任务")
|
||||
@PostMapping
|
||||
@PreAuthorize("@pms.hasPermission('job_sys_job_add')")
|
||||
@Operation(summary = "新增定时任务")
|
||||
@Operation(description = "新增定时任务")
|
||||
public R save(@RequestBody SysJob sysJob) {
|
||||
sysJob.setJobStatus(JOB_STATUS_RELEASE.getType());
|
||||
sysJob.setJobStatus(PigxQuartzEnum.JOB_STATUS_RELEASE.getType());
|
||||
sysJob.setCreateBy(SecurityUtils.getUser().getUsername());
|
||||
return R.ok(sysJobService.save(sysJob));
|
||||
}
|
||||
@@ -107,15 +121,15 @@ public class SysJobController {
|
||||
@SysLog("修改定时任务")
|
||||
@PutMapping
|
||||
@PreAuthorize("@pms.hasPermission('job_sys_job_edit')")
|
||||
@Operation(summary = "修改定时任务")
|
||||
@Operation(description = "修改定时任务")
|
||||
public R updateById(@RequestBody SysJob sysJob) {
|
||||
sysJob.setUpdateBy(SecurityUtils.getUser().getUsername());
|
||||
SysJob querySysJob = this.sysJobService.getById(sysJob.getJobId());
|
||||
if (JOB_STATUS_NOT_RUNNING.getType().equals(querySysJob.getJobStatus())) {
|
||||
if (PigxQuartzEnum.JOB_STATUS_NOT_RUNNING.getType().equals(querySysJob.getJobStatus())) {
|
||||
this.taskUtil.addOrUpateJob(sysJob, scheduler);
|
||||
sysJobService.updateById(sysJob);
|
||||
}
|
||||
else if (JOB_STATUS_RELEASE.getType().equals(querySysJob.getJobStatus())) {
|
||||
else if (PigxQuartzEnum.JOB_STATUS_RELEASE.getType().equals(querySysJob.getJobStatus())) {
|
||||
sysJobService.updateById(sysJob);
|
||||
}
|
||||
return R.ok();
|
||||
@@ -129,14 +143,14 @@ public class SysJobController {
|
||||
@SysLog("删除定时任务")
|
||||
@DeleteMapping("/{id}")
|
||||
@PreAuthorize("@pms.hasPermission('job_sys_job_del')")
|
||||
@Operation(summary = "唯一标识查询定时任务,暂停任务才能删除")
|
||||
@Operation(description = "唯一标识查询定时任务,暂停任务才能删除")
|
||||
public R removeById(@PathVariable Long id) {
|
||||
SysJob querySysJob = this.sysJobService.getById(id);
|
||||
if (JOB_STATUS_NOT_RUNNING.getType().equals(querySysJob.getJobStatus())) {
|
||||
if (PigxQuartzEnum.JOB_STATUS_NOT_RUNNING.getType().equals(querySysJob.getJobStatus())) {
|
||||
this.taskUtil.removeJob(querySysJob, scheduler);
|
||||
this.sysJobService.removeById(id);
|
||||
}
|
||||
else if (JOB_STATUS_RELEASE.getType().equals(querySysJob.getJobStatus())) {
|
||||
else if (PigxQuartzEnum.JOB_STATUS_RELEASE.getType().equals(querySysJob.getJobStatus())) {
|
||||
this.sysJobService.removeById(id);
|
||||
}
|
||||
return R.ok();
|
||||
@@ -149,18 +163,20 @@ public class SysJobController {
|
||||
@SysLog("暂停全部定时任务")
|
||||
@PostMapping("/shutdown-jobs")
|
||||
@PreAuthorize("@pms.hasPermission('job_sys_job_shutdown_job')")
|
||||
@Operation(summary = "暂停全部定时任务")
|
||||
@Operation(description = "暂停全部定时任务")
|
||||
public R shutdownJobs() {
|
||||
taskUtil.pauseJobs(scheduler);
|
||||
long count = this.sysJobService
|
||||
.count(new LambdaQueryWrapper<SysJob>().eq(SysJob::getJobStatus, JOB_STATUS_RUNNING.getType()));
|
||||
long count = this.sysJobService.count(
|
||||
new LambdaQueryWrapper<SysJob>().eq(SysJob::getJobStatus, PigxQuartzEnum.JOB_STATUS_RUNNING.getType()));
|
||||
if (count <= 0) {
|
||||
return R.ok("无正在运行定时任务");
|
||||
}
|
||||
else {
|
||||
// 更新定时任务状态条件,运行状态2更新为暂停状态2
|
||||
this.sysJobService.update(SysJob.builder().jobStatus(JOB_STATUS_NOT_RUNNING.getType()).build(),
|
||||
new UpdateWrapper<SysJob>().lambda().eq(SysJob::getJobStatus, JOB_STATUS_RUNNING.getType()));
|
||||
this.sysJobService.update(
|
||||
SysJob.builder().jobStatus(PigxQuartzEnum.JOB_STATUS_NOT_RUNNING.getType()).build(),
|
||||
new UpdateWrapper<SysJob>().lambda().eq(SysJob::getJobStatus,
|
||||
PigxQuartzEnum.JOB_STATUS_RUNNING.getType()));
|
||||
return R.ok("暂停成功");
|
||||
}
|
||||
}
|
||||
@@ -172,11 +188,12 @@ public class SysJobController {
|
||||
@SysLog("启动全部定时任务")
|
||||
@PostMapping("/start-jobs")
|
||||
@PreAuthorize("@pms.hasPermission('job_sys_job_start_job')")
|
||||
@Operation(summary = "启动全部定时任务")
|
||||
@Operation(description = "启动全部定时任务")
|
||||
public R startJobs() {
|
||||
// 更新定时任务状态条件,暂停状态3更新为运行状态2
|
||||
this.sysJobService.update(SysJob.builder().jobStatus(JOB_STATUS_RUNNING.getType()).build(),
|
||||
new UpdateWrapper<SysJob>().lambda().eq(SysJob::getJobStatus, JOB_STATUS_NOT_RUNNING.getType()));
|
||||
this.sysJobService.update(SysJob.builder().jobStatus(PigxQuartzEnum.JOB_STATUS_RUNNING.getType()).build(),
|
||||
new UpdateWrapper<SysJob>().lambda().eq(SysJob::getJobStatus,
|
||||
PigxQuartzEnum.JOB_STATUS_NOT_RUNNING.getType()));
|
||||
taskUtil.startJobs(scheduler);
|
||||
return R.ok();
|
||||
}
|
||||
@@ -188,15 +205,15 @@ public class SysJobController {
|
||||
@SysLog("刷新全部定时任务")
|
||||
@PostMapping("/refresh-jobs")
|
||||
@PreAuthorize("@pms.hasPermission('job_sys_job_refresh_job')")
|
||||
@Operation(summary = "刷新全部定时任务")
|
||||
@Operation(description = "刷新全部定时任务")
|
||||
public R refreshJobs() {
|
||||
sysJobService.list().forEach((sysjob) -> {
|
||||
if (JOB_STATUS_RELEASE.getType().equals(sysjob.getJobStatus())
|
||||
|| JOB_STATUS_DEL.getType().equals(sysjob.getJobStatus())) {
|
||||
if (PigxQuartzEnum.JOB_STATUS_RELEASE.getType().equals(sysjob.getJobStatus())
|
||||
|| PigxQuartzEnum.JOB_STATUS_DEL.getType().equals(sysjob.getJobStatus())) {
|
||||
taskUtil.removeJob(sysjob, scheduler);
|
||||
}
|
||||
else if (JOB_STATUS_RUNNING.getType().equals(sysjob.getJobStatus())
|
||||
|| JOB_STATUS_NOT_RUNNING.getType().equals(sysjob.getJobStatus())) {
|
||||
else if (PigxQuartzEnum.JOB_STATUS_RUNNING.getType().equals(sysjob.getJobStatus())
|
||||
|| PigxQuartzEnum.JOB_STATUS_NOT_RUNNING.getType().equals(sysjob.getJobStatus())) {
|
||||
taskUtil.addOrUpateJob(sysjob, scheduler);
|
||||
}
|
||||
else {
|
||||
@@ -214,17 +231,18 @@ public class SysJobController {
|
||||
@SysLog("启动定时任务")
|
||||
@PostMapping("/start-job/{id}")
|
||||
@PreAuthorize("@pms.hasPermission('job_sys_job_start_job')")
|
||||
@Operation(summary = "启动定时任务")
|
||||
@Operation(description = "启动定时任务")
|
||||
public R startJob(@PathVariable("id") Long jobId) {
|
||||
SysJob querySysJob = this.sysJobService.getById(jobId);
|
||||
if (querySysJob != null && JOB_LOG_STATUS_FAIL.getType().equals(querySysJob.getJobStatus())) {
|
||||
if (querySysJob != null && PigxQuartzEnum.JOB_LOG_STATUS_FAIL.getType().equals(querySysJob.getJobStatus())) {
|
||||
taskUtil.addOrUpateJob(querySysJob, scheduler);
|
||||
}
|
||||
else {
|
||||
taskUtil.resumeJob(querySysJob, scheduler);
|
||||
}
|
||||
// 更新定时任务状态条件,暂停状态3更新为运行状态2
|
||||
this.sysJobService.updateById(SysJob.builder().jobId(jobId).jobStatus(JOB_STATUS_RUNNING.getType()).build());
|
||||
this.sysJobService.updateById(
|
||||
SysJob.builder().jobId(jobId).jobStatus(PigxQuartzEnum.JOB_STATUS_RUNNING.getType()).build());
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
@@ -236,7 +254,7 @@ public class SysJobController {
|
||||
@SysLog("立刻执行定时任务")
|
||||
@PostMapping("/run-job/{id}")
|
||||
@PreAuthorize("@pms.hasPermission('job_sys_job_run_job')")
|
||||
@Operation(summary = "立刻执行定时任务")
|
||||
@Operation(description = "立刻执行定时任务")
|
||||
public R runJob(@PathVariable("id") Long jobId) {
|
||||
SysJob querySysJob = this.sysJobService.getById(jobId);
|
||||
return TaskUtil.runOnce(scheduler, querySysJob) ? R.ok() : R.failed();
|
||||
@@ -249,12 +267,12 @@ public class SysJobController {
|
||||
@SysLog("暂停定时任务")
|
||||
@PostMapping("/shutdown-job/{id}")
|
||||
@PreAuthorize("@pms.hasPermission('job_sys_job_shutdown_job')")
|
||||
@Operation(summary = "暂停定时任务")
|
||||
@Operation(description = "暂停定时任务")
|
||||
public R shutdownJob(@PathVariable("id") Long id) {
|
||||
SysJob querySysJob = this.sysJobService.getById(id);
|
||||
// 更新定时任务状态条件,运行状态2更新为暂停状态3
|
||||
this.sysJobService.updateById(
|
||||
SysJob.builder().jobId(querySysJob.getJobId()).jobStatus(JOB_STATUS_NOT_RUNNING.getType()).build());
|
||||
this.sysJobService.updateById(SysJob.builder().jobId(querySysJob.getJobId())
|
||||
.jobStatus(PigxQuartzEnum.JOB_STATUS_NOT_RUNNING.getType()).build());
|
||||
taskUtil.pauseJob(querySysJob, scheduler);
|
||||
return R.ok();
|
||||
}
|
||||
@@ -264,7 +282,7 @@ public class SysJobController {
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/job-log")
|
||||
@Operation(summary = "唯一标识查询定时执行日志")
|
||||
@Operation(description = "唯一标识查询定时执行日志")
|
||||
public R getJobLog(Page page, SysJobLog sysJobLog) {
|
||||
return R.ok(sysJobLogService.page(page, Wrappers.query(sysJobLog)));
|
||||
}
|
||||
@@ -274,11 +292,23 @@ public class SysJobController {
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/is-valid-task-name")
|
||||
@Operation(summary = "检验任务名称和任务组联合是否唯一")
|
||||
@Operation(description = "检验任务名称和任务组联合是否唯一")
|
||||
public R isValidTaskName(@RequestParam String jobName, @RequestParam String jobGroup) {
|
||||
return this.sysJobService
|
||||
.count(Wrappers.query(SysJob.builder().jobName(jobName).jobGroup(jobGroup).build())) > 0
|
||||
? R.failed("任务重复,请检查此组内是否已包含同名任务") : R.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出任务
|
||||
* @param sysJob
|
||||
* @return
|
||||
*/
|
||||
@ResponseExcel
|
||||
@GetMapping("/export")
|
||||
@Operation(description = "导出任务")
|
||||
public List<SysJob> export(SysJob sysJob) {
|
||||
return sysJobService.list(Wrappers.query(sysJob));
|
||||
}
|
||||
|
||||
}
|
||||
+5
-4
@@ -21,6 +21,7 @@ import cn.hutool.core.collection.CollUtil;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.pig4cloud.pigx.common.core.util.R;
|
||||
import com.pig4cloud.pigx.daemon.quartz.service.SysJobLogService;
|
||||
import com.pig4cloud.pigx.daemon.quartz.entity.SysJobLog;
|
||||
import com.pig4cloud.pigx.daemon.quartz.service.SysJobLogService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
@@ -51,15 +52,15 @@ public class SysJobLogController {
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "分页定时任务日志查询")
|
||||
@Operation(description = "分页定时任务日志查询")
|
||||
public R getSysJobLogPage(Page page, SysJobLog sysJobLog) {
|
||||
return R.ok(sysJobLogService.page(page, Wrappers.query(sysJobLog)));
|
||||
}
|
||||
|
||||
@DeleteMapping
|
||||
@Operation(summary = "批量删除日志")
|
||||
public R deleteLogs(@RequestBody Long[] logIds) {
|
||||
return R.ok(sysJobLogService.removeBatchByIds(CollUtil.newArrayList(logIds)));
|
||||
@Operation(description = "批量删除日志")
|
||||
public R deleteLogs(@RequestBody Long[] ids) {
|
||||
return R.ok(sysJobLogService.removeBatchByIds(CollUtil.toList(ids)));
|
||||
}
|
||||
|
||||
}
|
||||
+1
@@ -17,6 +17,7 @@
|
||||
|
||||
package com.pig4cloud.pigx.daemon.quartz.event;
|
||||
|
||||
import com.pig4cloud.pigx.daemon.quartz.service.SysJobLogService;
|
||||
import com.pig4cloud.pigx.daemon.quartz.entity.SysJobLog;
|
||||
import com.pig4cloud.pigx.daemon.quartz.service.SysJobLogService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
+2
@@ -18,6 +18,8 @@
|
||||
package com.pig4cloud.pigx.daemon.quartz.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.pig4cloud.pigx.daemon.quartz.mapper.SysJobLogMapper;
|
||||
import com.pig4cloud.pigx.daemon.quartz.service.SysJobLogService;
|
||||
import com.pig4cloud.pigx.daemon.quartz.entity.SysJobLog;
|
||||
import com.pig4cloud.pigx.daemon.quartz.mapper.SysJobLogMapper;
|
||||
import com.pig4cloud.pigx.daemon.quartz.service.SysJobLogService;
|
||||
|
||||
+2
@@ -18,6 +18,8 @@
|
||||
package com.pig4cloud.pigx.daemon.quartz.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.pig4cloud.pigx.daemon.quartz.mapper.SysJobMapper;
|
||||
import com.pig4cloud.pigx.daemon.quartz.service.SysJobService;
|
||||
import com.pig4cloud.pigx.daemon.quartz.entity.SysJob;
|
||||
import com.pig4cloud.pigx.daemon.quartz.mapper.SysJobMapper;
|
||||
import com.pig4cloud.pigx.daemon.quartz.service.SysJobService;
|
||||
|
||||
+1
@@ -17,6 +17,7 @@
|
||||
|
||||
package com.pig4cloud.pigx.daemon.quartz.task;
|
||||
|
||||
import com.pig4cloud.pigx.daemon.quartz.constants.PigxQuartzEnum;
|
||||
import com.pig4cloud.pigx.daemon.quartz.constants.PigxQuartzEnum;
|
||||
import lombok.SneakyThrows;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
+1
-1
@@ -17,8 +17,8 @@
|
||||
|
||||
package com.pig4cloud.pigx.daemon.quartz.util;
|
||||
|
||||
import com.pig4cloud.pigx.daemon.quartz.entity.SysJob;
|
||||
import com.pig4cloud.pigx.daemon.quartz.exception.TaskException;
|
||||
import com.pig4cloud.pigx.daemon.quartz.entity.SysJob;
|
||||
|
||||
/**
|
||||
* 定时任务反射实现接口类
|
||||
|
||||
+2
@@ -20,6 +20,8 @@ package com.pig4cloud.pigx.daemon.quartz.util;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.pig4cloud.pigx.daemon.quartz.entity.SysJob;
|
||||
import com.pig4cloud.pigx.daemon.quartz.exception.TaskException;
|
||||
import com.pig4cloud.pigx.daemon.quartz.entity.SysJob;
|
||||
import com.pig4cloud.pigx.daemon.quartz.exception.TaskException;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
|
||||
+2
@@ -19,6 +19,8 @@ package com.pig4cloud.pigx.daemon.quartz.util;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.pig4cloud.pigx.daemon.quartz.constants.PigxQuartzEnum;
|
||||
import com.pig4cloud.pigx.daemon.quartz.exception.TaskException;
|
||||
import com.pig4cloud.pigx.daemon.quartz.constants.PigxQuartzEnum;
|
||||
import com.pig4cloud.pigx.daemon.quartz.entity.SysJob;
|
||||
import com.pig4cloud.pigx.daemon.quartz.exception.TaskException;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
+2
@@ -22,6 +22,8 @@ import cn.hutool.http.HttpUtil;
|
||||
import com.pig4cloud.pigx.common.core.constant.CommonConstants;
|
||||
import com.pig4cloud.pigx.daemon.quartz.entity.SysJob;
|
||||
import com.pig4cloud.pigx.daemon.quartz.exception.TaskException;
|
||||
import com.pig4cloud.pigx.daemon.quartz.entity.SysJob;
|
||||
import com.pig4cloud.pigx.daemon.quartz.exception.TaskException;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
+2
@@ -20,6 +20,8 @@ package com.pig4cloud.pigx.daemon.quartz.util;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.pig4cloud.pigx.common.core.util.SpringContextHolder;
|
||||
import com.pig4cloud.pigx.daemon.quartz.constants.PigxQuartzEnum;
|
||||
import com.pig4cloud.pigx.daemon.quartz.exception.TaskException;
|
||||
import com.pig4cloud.pigx.daemon.quartz.constants.PigxQuartzEnum;
|
||||
import com.pig4cloud.pigx.daemon.quartz.entity.SysJob;
|
||||
import com.pig4cloud.pigx.daemon.quartz.exception.TaskException;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
+1
@@ -4,6 +4,7 @@ import cn.hutool.core.util.StrUtil;
|
||||
import com.pig4cloud.pigx.common.core.util.SpringContextHolder;
|
||||
import com.pig4cloud.pigx.daemon.quartz.constants.JobTypeQuartzEnum;
|
||||
import com.pig4cloud.pigx.daemon.quartz.exception.TaskException;
|
||||
import com.pig4cloud.pigx.daemon.quartz.constants.JobTypeQuartzEnum;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
|
||||
+5
@@ -24,6 +24,11 @@ import com.pig4cloud.pigx.daemon.quartz.entity.SysJob;
|
||||
import com.pig4cloud.pigx.daemon.quartz.entity.SysJobLog;
|
||||
import com.pig4cloud.pigx.daemon.quartz.event.SysJobLogEvent;
|
||||
import com.pig4cloud.pigx.daemon.quartz.service.SysJobService;
|
||||
import com.pig4cloud.pigx.daemon.quartz.constants.PigxQuartzEnum;
|
||||
import com.pig4cloud.pigx.daemon.quartz.entity.SysJob;
|
||||
import com.pig4cloud.pigx.daemon.quartz.entity.SysJobLog;
|
||||
import com.pig4cloud.pigx.daemon.quartz.event.SysJobLogEvent;
|
||||
import com.pig4cloud.pigx.daemon.quartz.service.SysJobService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.SneakyThrows;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
+11
-8
@@ -17,6 +17,9 @@
|
||||
|
||||
package com.pig4cloud.pigx.daemon.quartz.util;
|
||||
|
||||
import com.pig4cloud.pigx.daemon.quartz.config.PigxQuartzFactory;
|
||||
import com.pig4cloud.pigx.daemon.quartz.constants.PigxQuartzEnum;
|
||||
import com.pig4cloud.pigx.daemon.quartz.entity.SysJob;
|
||||
import com.pig4cloud.pigx.daemon.quartz.config.PigxQuartzFactory;
|
||||
import com.pig4cloud.pigx.daemon.quartz.entity.SysJob;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -69,7 +72,7 @@ public class TaskUtil {
|
||||
// 新建一个工作任务 指定任务类型为串接进行的
|
||||
JobDetail jobDetail = JobBuilder.newJob(PigxQuartzFactory.class).withIdentity(jobKey).build();
|
||||
// 将任务信息添加到任务信息中
|
||||
jobDetail.getJobDataMap().put(SCHEDULE_JOB_KEY.getType(), sysjob);
|
||||
jobDetail.getJobDataMap().put(PigxQuartzEnum.SCHEDULE_JOB_KEY.getType(), sysjob);
|
||||
// 将cron表达式进行转换
|
||||
CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(sysjob.getCronExpression());
|
||||
cronScheduleBuilder = this.handleCronScheduleMisfirePolicy(sysjob, cronScheduleBuilder);
|
||||
@@ -86,12 +89,12 @@ public class TaskUtil {
|
||||
trigger = trigger.getTriggerBuilder().withIdentity(triggerKey).withSchedule(cronScheduleBuilder)
|
||||
.build();
|
||||
// 将任务信息更新到任务信息中
|
||||
trigger.getJobDataMap().put(SCHEDULE_JOB_KEY.getType(), sysjob);
|
||||
trigger.getJobDataMap().put(PigxQuartzEnum.SCHEDULE_JOB_KEY.getType(), sysjob);
|
||||
// 重启
|
||||
scheduler.rescheduleJob(triggerKey, trigger);
|
||||
}
|
||||
// 如任务状态为暂停
|
||||
if (sysjob.getJobStatus().equals(JOB_STATUS_NOT_RUNNING.getType())) {
|
||||
if (sysjob.getJobStatus().equals(PigxQuartzEnum.JOB_STATUS_NOT_RUNNING.getType())) {
|
||||
this.pauseJob(sysjob, scheduler);
|
||||
}
|
||||
}
|
||||
@@ -107,7 +110,7 @@ public class TaskUtil {
|
||||
try {
|
||||
// 参数
|
||||
JobDataMap dataMap = new JobDataMap();
|
||||
dataMap.put(SCHEDULE_JOB_KEY.getType(), sysJob);
|
||||
dataMap.put(PigxQuartzEnum.SCHEDULE_JOB_KEY.getType(), sysJob);
|
||||
|
||||
scheduler.triggerJob(getJobKey(sysJob), dataMap);
|
||||
}
|
||||
@@ -212,16 +215,16 @@ public class TaskUtil {
|
||||
*/
|
||||
private CronScheduleBuilder handleCronScheduleMisfirePolicy(SysJob sysJob,
|
||||
CronScheduleBuilder cronScheduleBuilder) {
|
||||
if (MISFIRE_DEFAULT.getType().equals(sysJob.getMisfirePolicy())) {
|
||||
if (PigxQuartzEnum.MISFIRE_DEFAULT.getType().equals(sysJob.getMisfirePolicy())) {
|
||||
return cronScheduleBuilder;
|
||||
}
|
||||
else if (MISFIRE_IGNORE_MISFIRES.getType().equals(sysJob.getMisfirePolicy())) {
|
||||
else if (PigxQuartzEnum.MISFIRE_IGNORE_MISFIRES.getType().equals(sysJob.getMisfirePolicy())) {
|
||||
return cronScheduleBuilder.withMisfireHandlingInstructionIgnoreMisfires();
|
||||
}
|
||||
else if (MISFIRE_FIRE_AND_PROCEED.getType().equals(sysJob.getMisfirePolicy())) {
|
||||
else if (PigxQuartzEnum.MISFIRE_FIRE_AND_PROCEED.getType().equals(sysJob.getMisfirePolicy())) {
|
||||
return cronScheduleBuilder.withMisfireHandlingInstructionFireAndProceed();
|
||||
}
|
||||
else if (MISFIRE_DO_NOTHING.getType().equals(sysJob.getMisfirePolicy())) {
|
||||
else if (PigxQuartzEnum.MISFIRE_DO_NOTHING.getType().equals(sysJob.getMisfirePolicy())) {
|
||||
return cronScheduleBuilder.withMisfireHandlingInstructionDoNothing();
|
||||
}
|
||||
else {
|
||||
|
||||
+3
-3
@@ -12,8 +12,8 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
@SpringBootApplication
|
||||
public class PigxReportPlatformApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(PigxReportPlatformApplication.class);
|
||||
}
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(PigxReportPlatformApplication.class);
|
||||
}
|
||||
|
||||
}
|
||||
+32
-28
@@ -33,42 +33,46 @@ import java.util.Optional;
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
public class SecurityRequestFilter extends OncePerRequestFilter {
|
||||
|
||||
private final RemoteTokenService remoteTokenService;
|
||||
private final RemoteTokenService remoteTokenService;
|
||||
|
||||
private final ObjectMapper objectMapper;
|
||||
private final ObjectMapper objectMapper;
|
||||
|
||||
@Override
|
||||
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
|
||||
@Override
|
||||
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
|
||||
throws ServletException, IOException {
|
||||
|
||||
String requestURI = request.getRequestURI();
|
||||
String requestURI = request.getRequestURI();
|
||||
|
||||
if (StrUtil.equalsAny(requestURI, "/", "/project/getData") || StrUtil.contains(requestURI,"/static")) {
|
||||
filterChain.doFilter(request, response);
|
||||
return;
|
||||
}
|
||||
if (StrUtil.equalsAny(requestURI, "/", "/project/getData") || StrUtil.contains(requestURI, "/static")) {
|
||||
filterChain.doFilter(request, response);
|
||||
return;
|
||||
}
|
||||
|
||||
String accessToken = request.getHeader("token");
|
||||
String tenantId = request.getHeader(CommonConstants.TENANT_ID);
|
||||
String accessToken = request.getHeader("token");
|
||||
String tenantId = request.getHeader(CommonConstants.TENANT_ID);
|
||||
|
||||
if (StrUtil.isBlank(accessToken) || StrUtil.isBlank(tenantId)) {
|
||||
sendErrorMsg(request, response);
|
||||
return;
|
||||
}
|
||||
if (StrUtil.isBlank(accessToken) || StrUtil.isBlank(tenantId)) {
|
||||
sendErrorMsg(request, response);
|
||||
return;
|
||||
}
|
||||
|
||||
Optional<String> principalName = RetOps.of(remoteTokenService.queryToken(accessToken, tenantId, SecurityConstants.FROM_IN)).getDataIf(RetOps.CODE_SUCCESS).map(o -> (String) o.get("principalName"));
|
||||
Optional<String> principalName = RetOps
|
||||
.of(remoteTokenService.queryToken(accessToken, tenantId, SecurityConstants.FROM_IN))
|
||||
.getDataIf(RetOps.CODE_SUCCESS).map(o -> (String) o.get("principalName"));
|
||||
|
||||
// 用户信息查不到
|
||||
if (!principalName.isPresent()) {
|
||||
sendErrorMsg(request, response);
|
||||
return;
|
||||
}
|
||||
// 用户信息查不到
|
||||
if (!principalName.isPresent()) {
|
||||
sendErrorMsg(request, response);
|
||||
return;
|
||||
}
|
||||
|
||||
filterChain.doFilter(request, response);
|
||||
}
|
||||
filterChain.doFilter(request, response);
|
||||
}
|
||||
|
||||
private void sendErrorMsg(HttpServletRequest request, HttpServletResponse response) throws IOException {
|
||||
AjaxResult error = AjaxResult.error(HttpStatus.UNAUTHORIZED.value(), "require login");
|
||||
response.setContentType(ContentType.JSON.getValue());
|
||||
response.getWriter().write(objectMapper.writeValueAsString(error));
|
||||
}
|
||||
|
||||
private void sendErrorMsg(HttpServletRequest request, HttpServletResponse response) throws IOException {
|
||||
AjaxResult error = AjaxResult.error(HttpStatus.UNAUTHORIZED.value(), "require login");
|
||||
response.setContentType(ContentType.JSON.getValue());
|
||||
response.getWriter().write(objectMapper.writeValueAsString(error));
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user