♻️ Refactoring code. pigx-quartz 适配最新V5 UI

This commit is contained in:
lbw committed 2023-04-06 15:48:07 +08:00
1 parent e6838a19e1
commit d6a86c275c
19 files changed
+141 -77

No files matched your search

@@ -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;
@@ -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;
@@ -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;
@@ -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));
}
}
@@ -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)));
}
}
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
/**
* 定时任务反射实现接口类
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
/**
@@ -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;
@@ -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 {
@@ -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);
}
}
@@ -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));
}
}