parent
34a28a49a2
commit
d99271c9d5
@ -1,4 +1,4 @@
|
|||||||
package com.xxl.job.admin.controller.annotation;
|
package com.xxl.job.admin.annotation;
|
||||||
|
|
||||||
|
|
||||||
import java.lang.annotation.ElementType;
|
import java.lang.annotation.ElementType;
|
@ -1,7 +1,7 @@
|
|||||||
package com.xxl.job.admin.controller;
|
package com.xxl.job.admin.controller.biz;
|
||||||
|
|
||||||
import com.xxl.job.admin.controller.annotation.PermissionLimit;
|
import com.xxl.job.admin.annotation.PermissionLimit;
|
||||||
import com.xxl.job.admin.core.conf.XxlJobAdminConfig;
|
import com.xxl.job.admin.scheduler.conf.XxlJobAdminConfig;
|
||||||
import com.xxl.job.core.biz.AdminBiz;
|
import com.xxl.job.core.biz.AdminBiz;
|
||||||
import com.xxl.job.core.biz.model.HandleCallbackParam;
|
import com.xxl.job.core.biz.model.HandleCallbackParam;
|
||||||
import com.xxl.job.core.biz.model.RegistryParam;
|
import com.xxl.job.core.biz.model.RegistryParam;
|
@ -1,105 +1,105 @@
|
|||||||
package com.xxl.job.admin.controller;
|
package com.xxl.job.admin.controller.biz;
|
||||||
|
|
||||||
import com.xxl.job.admin.controller.interceptor.PermissionInterceptor;
|
import com.xxl.job.admin.web.interceptor.PermissionInterceptor;
|
||||||
import com.xxl.job.admin.core.model.XxlJobInfo;
|
import com.xxl.job.admin.model.XxlJobInfo;
|
||||||
import com.xxl.job.admin.core.model.XxlJobLogGlue;
|
import com.xxl.job.admin.model.XxlJobLogGlue;
|
||||||
import com.xxl.job.admin.core.util.I18nUtil;
|
import com.xxl.job.admin.util.I18nUtil;
|
||||||
import com.xxl.job.admin.dao.XxlJobInfoDao;
|
import com.xxl.job.admin.mapper.XxlJobInfoDao;
|
||||||
import com.xxl.job.admin.dao.XxlJobLogGlueDao;
|
import com.xxl.job.admin.mapper.XxlJobLogGlueDao;
|
||||||
import com.xxl.job.core.biz.model.ReturnT;
|
import com.xxl.job.core.biz.model.ReturnT;
|
||||||
import com.xxl.job.core.glue.GlueTypeEnum;
|
import com.xxl.job.core.glue.GlueTypeEnum;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.ui.Model;
|
import org.springframework.ui.Model;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* job code controller
|
* job code controller
|
||||||
* @author xuxueli 2015-12-19 16:13:16
|
* @author xuxueli 2015-12-19 16:13:16
|
||||||
*/
|
*/
|
||||||
@Controller
|
@Controller
|
||||||
@RequestMapping("/jobcode")
|
@RequestMapping("/jobcode")
|
||||||
public class JobCodeController {
|
public class JobCodeController {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private XxlJobInfoDao xxlJobInfoDao;
|
private XxlJobInfoDao xxlJobInfoDao;
|
||||||
@Resource
|
@Resource
|
||||||
private XxlJobLogGlueDao xxlJobLogGlueDao;
|
private XxlJobLogGlueDao xxlJobLogGlueDao;
|
||||||
|
|
||||||
@RequestMapping
|
@RequestMapping
|
||||||
public String index(HttpServletRequest request, Model model, @RequestParam("jobId") int jobId) {
|
public String index(HttpServletRequest request, Model model, @RequestParam("jobId") int jobId) {
|
||||||
XxlJobInfo jobInfo = xxlJobInfoDao.loadById(jobId);
|
XxlJobInfo jobInfo = xxlJobInfoDao.loadById(jobId);
|
||||||
List<XxlJobLogGlue> jobLogGlues = xxlJobLogGlueDao.findByJobId(jobId);
|
List<XxlJobLogGlue> jobLogGlues = xxlJobLogGlueDao.findByJobId(jobId);
|
||||||
|
|
||||||
if (jobInfo == null) {
|
if (jobInfo == null) {
|
||||||
throw new RuntimeException(I18nUtil.getString("jobinfo_glue_jobid_unvalid"));
|
throw new RuntimeException(I18nUtil.getString("jobinfo_glue_jobid_unvalid"));
|
||||||
}
|
}
|
||||||
if (GlueTypeEnum.BEAN == GlueTypeEnum.match(jobInfo.getGlueType())) {
|
if (GlueTypeEnum.BEAN == GlueTypeEnum.match(jobInfo.getGlueType())) {
|
||||||
throw new RuntimeException(I18nUtil.getString("jobinfo_glue_gluetype_unvalid"));
|
throw new RuntimeException(I18nUtil.getString("jobinfo_glue_gluetype_unvalid"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// valid permission
|
// valid permission
|
||||||
PermissionInterceptor.validJobGroupPermission(request, jobInfo.getJobGroup());
|
PermissionInterceptor.validJobGroupPermission(request, jobInfo.getJobGroup());
|
||||||
|
|
||||||
// Glue类型-字典
|
// Glue类型-字典
|
||||||
model.addAttribute("GlueTypeEnum", GlueTypeEnum.values());
|
model.addAttribute("GlueTypeEnum", GlueTypeEnum.values());
|
||||||
|
|
||||||
model.addAttribute("jobInfo", jobInfo);
|
model.addAttribute("jobInfo", jobInfo);
|
||||||
model.addAttribute("jobLogGlues", jobLogGlues);
|
model.addAttribute("jobLogGlues", jobLogGlues);
|
||||||
return "jobcode/jobcode.index";
|
return "jobcode/jobcode.index";
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping("/save")
|
@RequestMapping("/save")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ReturnT<String> save(HttpServletRequest request,
|
public ReturnT<String> save(HttpServletRequest request,
|
||||||
@RequestParam("id") int id,
|
@RequestParam("id") int id,
|
||||||
@RequestParam("glueSource") String glueSource,
|
@RequestParam("glueSource") String glueSource,
|
||||||
@RequestParam("glueRemark") String glueRemark) {
|
@RequestParam("glueRemark") String glueRemark) {
|
||||||
|
|
||||||
// valid
|
// valid
|
||||||
if (glueRemark==null) {
|
if (glueRemark==null) {
|
||||||
return new ReturnT<String>(500, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobinfo_glue_remark")) );
|
return new ReturnT<String>(500, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobinfo_glue_remark")) );
|
||||||
}
|
}
|
||||||
if (glueRemark.length()<4 || glueRemark.length()>100) {
|
if (glueRemark.length()<4 || glueRemark.length()>100) {
|
||||||
return new ReturnT<String>(500, I18nUtil.getString("jobinfo_glue_remark_limit"));
|
return new ReturnT<String>(500, I18nUtil.getString("jobinfo_glue_remark_limit"));
|
||||||
}
|
}
|
||||||
XxlJobInfo existsJobInfo = xxlJobInfoDao.loadById(id);
|
XxlJobInfo existsJobInfo = xxlJobInfoDao.loadById(id);
|
||||||
if (existsJobInfo == null) {
|
if (existsJobInfo == null) {
|
||||||
return new ReturnT<String>(500, I18nUtil.getString("jobinfo_glue_jobid_unvalid"));
|
return new ReturnT<String>(500, I18nUtil.getString("jobinfo_glue_jobid_unvalid"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// valid permission
|
// valid permission
|
||||||
PermissionInterceptor.validJobGroupPermission(request, existsJobInfo.getJobGroup());
|
PermissionInterceptor.validJobGroupPermission(request, existsJobInfo.getJobGroup());
|
||||||
|
|
||||||
// update new code
|
// update new code
|
||||||
existsJobInfo.setGlueSource(glueSource);
|
existsJobInfo.setGlueSource(glueSource);
|
||||||
existsJobInfo.setGlueRemark(glueRemark);
|
existsJobInfo.setGlueRemark(glueRemark);
|
||||||
existsJobInfo.setGlueUpdatetime(new Date());
|
existsJobInfo.setGlueUpdatetime(new Date());
|
||||||
|
|
||||||
existsJobInfo.setUpdateTime(new Date());
|
existsJobInfo.setUpdateTime(new Date());
|
||||||
xxlJobInfoDao.update(existsJobInfo);
|
xxlJobInfoDao.update(existsJobInfo);
|
||||||
|
|
||||||
// log old code
|
// log old code
|
||||||
XxlJobLogGlue xxlJobLogGlue = new XxlJobLogGlue();
|
XxlJobLogGlue xxlJobLogGlue = new XxlJobLogGlue();
|
||||||
xxlJobLogGlue.setJobId(existsJobInfo.getId());
|
xxlJobLogGlue.setJobId(existsJobInfo.getId());
|
||||||
xxlJobLogGlue.setGlueType(existsJobInfo.getGlueType());
|
xxlJobLogGlue.setGlueType(existsJobInfo.getGlueType());
|
||||||
xxlJobLogGlue.setGlueSource(glueSource);
|
xxlJobLogGlue.setGlueSource(glueSource);
|
||||||
xxlJobLogGlue.setGlueRemark(glueRemark);
|
xxlJobLogGlue.setGlueRemark(glueRemark);
|
||||||
|
|
||||||
xxlJobLogGlue.setAddTime(new Date());
|
xxlJobLogGlue.setAddTime(new Date());
|
||||||
xxlJobLogGlue.setUpdateTime(new Date());
|
xxlJobLogGlue.setUpdateTime(new Date());
|
||||||
xxlJobLogGlueDao.save(xxlJobLogGlue);
|
xxlJobLogGlueDao.save(xxlJobLogGlue);
|
||||||
|
|
||||||
// remove code backup more than 30
|
// remove code backup more than 30
|
||||||
xxlJobLogGlueDao.removeOld(existsJobInfo.getId(), 30);
|
xxlJobLogGlueDao.removeOld(existsJobInfo.getId(), 30);
|
||||||
|
|
||||||
return ReturnT.ofSuccess();
|
return ReturnT.ofSuccess();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -1,12 +1,12 @@
|
|||||||
package com.xxl.job.admin.controller;
|
package com.xxl.job.admin.controller.biz;
|
||||||
|
|
||||||
import com.xxl.job.admin.controller.annotation.PermissionLimit;
|
import com.xxl.job.admin.annotation.PermissionLimit;
|
||||||
import com.xxl.job.admin.core.model.XxlJobGroup;
|
import com.xxl.job.admin.model.XxlJobGroup;
|
||||||
import com.xxl.job.admin.core.model.XxlJobRegistry;
|
import com.xxl.job.admin.model.XxlJobRegistry;
|
||||||
import com.xxl.job.admin.core.util.I18nUtil;
|
import com.xxl.job.admin.util.I18nUtil;
|
||||||
import com.xxl.job.admin.dao.XxlJobGroupDao;
|
import com.xxl.job.admin.mapper.XxlJobGroupDao;
|
||||||
import com.xxl.job.admin.dao.XxlJobInfoDao;
|
import com.xxl.job.admin.mapper.XxlJobInfoDao;
|
||||||
import com.xxl.job.admin.dao.XxlJobRegistryDao;
|
import com.xxl.job.admin.mapper.XxlJobRegistryDao;
|
||||||
import com.xxl.job.core.biz.model.ReturnT;
|
import com.xxl.job.core.biz.model.ReturnT;
|
||||||
import com.xxl.job.core.enums.RegistryConfig;
|
import com.xxl.job.core.enums.RegistryConfig;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
@ -1,16 +1,16 @@
|
|||||||
package com.xxl.job.admin.controller;
|
package com.xxl.job.admin.controller.biz;
|
||||||
|
|
||||||
import com.xxl.job.admin.controller.interceptor.PermissionInterceptor;
|
import com.xxl.job.admin.web.interceptor.PermissionInterceptor;
|
||||||
import com.xxl.job.admin.core.exception.XxlJobException;
|
import com.xxl.job.admin.scheduler.exception.XxlJobException;
|
||||||
import com.xxl.job.admin.core.model.XxlJobGroup;
|
import com.xxl.job.admin.model.XxlJobGroup;
|
||||||
import com.xxl.job.admin.core.model.XxlJobInfo;
|
import com.xxl.job.admin.model.XxlJobInfo;
|
||||||
import com.xxl.job.admin.core.model.XxlJobUser;
|
import com.xxl.job.admin.model.XxlJobUser;
|
||||||
import com.xxl.job.admin.core.route.ExecutorRouteStrategyEnum;
|
import com.xxl.job.admin.scheduler.route.ExecutorRouteStrategyEnum;
|
||||||
import com.xxl.job.admin.core.scheduler.MisfireStrategyEnum;
|
import com.xxl.job.admin.scheduler.scheduler.MisfireStrategyEnum;
|
||||||
import com.xxl.job.admin.core.scheduler.ScheduleTypeEnum;
|
import com.xxl.job.admin.scheduler.scheduler.ScheduleTypeEnum;
|
||||||
import com.xxl.job.admin.core.thread.JobScheduleHelper;
|
import com.xxl.job.admin.scheduler.thread.JobScheduleHelper;
|
||||||
import com.xxl.job.admin.core.util.I18nUtil;
|
import com.xxl.job.admin.util.I18nUtil;
|
||||||
import com.xxl.job.admin.dao.XxlJobGroupDao;
|
import com.xxl.job.admin.mapper.XxlJobGroupDao;
|
||||||
import com.xxl.job.admin.service.XxlJobService;
|
import com.xxl.job.admin.service.XxlJobService;
|
||||||
import com.xxl.job.core.biz.model.ReturnT;
|
import com.xxl.job.core.biz.model.ReturnT;
|
||||||
import com.xxl.job.core.enums.ExecutorBlockStrategyEnum;
|
import com.xxl.job.core.enums.ExecutorBlockStrategyEnum;
|
@ -1,290 +1,290 @@
|
|||||||
package com.xxl.job.admin.controller;
|
package com.xxl.job.admin.controller.biz;
|
||||||
|
|
||||||
import com.xxl.job.admin.controller.interceptor.PermissionInterceptor;
|
import com.xxl.job.admin.web.interceptor.PermissionInterceptor;
|
||||||
import com.xxl.job.admin.core.complete.XxlJobCompleter;
|
import com.xxl.job.admin.scheduler.complete.XxlJobCompleter;
|
||||||
import com.xxl.job.admin.core.exception.XxlJobException;
|
import com.xxl.job.admin.scheduler.exception.XxlJobException;
|
||||||
import com.xxl.job.admin.core.model.XxlJobGroup;
|
import com.xxl.job.admin.model.XxlJobGroup;
|
||||||
import com.xxl.job.admin.core.model.XxlJobInfo;
|
import com.xxl.job.admin.model.XxlJobInfo;
|
||||||
import com.xxl.job.admin.core.model.XxlJobLog;
|
import com.xxl.job.admin.model.XxlJobLog;
|
||||||
import com.xxl.job.admin.core.scheduler.XxlJobScheduler;
|
import com.xxl.job.admin.scheduler.scheduler.XxlJobScheduler;
|
||||||
import com.xxl.job.admin.core.util.I18nUtil;
|
import com.xxl.job.admin.util.I18nUtil;
|
||||||
import com.xxl.job.admin.dao.XxlJobGroupDao;
|
import com.xxl.job.admin.mapper.XxlJobGroupDao;
|
||||||
import com.xxl.job.admin.dao.XxlJobInfoDao;
|
import com.xxl.job.admin.mapper.XxlJobInfoDao;
|
||||||
import com.xxl.job.admin.dao.XxlJobLogDao;
|
import com.xxl.job.admin.mapper.XxlJobLogDao;
|
||||||
import com.xxl.job.core.biz.ExecutorBiz;
|
import com.xxl.job.core.biz.ExecutorBiz;
|
||||||
import com.xxl.job.core.biz.model.KillParam;
|
import com.xxl.job.core.biz.model.KillParam;
|
||||||
import com.xxl.job.core.biz.model.LogParam;
|
import com.xxl.job.core.biz.model.LogParam;
|
||||||
import com.xxl.job.core.biz.model.LogResult;
|
import com.xxl.job.core.biz.model.LogResult;
|
||||||
import com.xxl.job.core.biz.model.ReturnT;
|
import com.xxl.job.core.biz.model.ReturnT;
|
||||||
import com.xxl.job.core.util.DateUtil;
|
import com.xxl.job.core.util.DateUtil;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.ui.Model;
|
import org.springframework.ui.Model;
|
||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
import org.springframework.web.util.HtmlUtils;
|
import org.springframework.web.util.HtmlUtils;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* index controller
|
* index controller
|
||||||
* @author xuxueli 2015-12-19 16:13:16
|
* @author xuxueli 2015-12-19 16:13:16
|
||||||
*/
|
*/
|
||||||
@Controller
|
@Controller
|
||||||
@RequestMapping("/joblog")
|
@RequestMapping("/joblog")
|
||||||
public class JobLogController {
|
public class JobLogController {
|
||||||
private static Logger logger = LoggerFactory.getLogger(JobLogController.class);
|
private static Logger logger = LoggerFactory.getLogger(JobLogController.class);
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private XxlJobGroupDao xxlJobGroupDao;
|
private XxlJobGroupDao xxlJobGroupDao;
|
||||||
@Resource
|
@Resource
|
||||||
public XxlJobInfoDao xxlJobInfoDao;
|
public XxlJobInfoDao xxlJobInfoDao;
|
||||||
@Resource
|
@Resource
|
||||||
public XxlJobLogDao xxlJobLogDao;
|
public XxlJobLogDao xxlJobLogDao;
|
||||||
|
|
||||||
@RequestMapping
|
@RequestMapping
|
||||||
public String index(HttpServletRequest request, Model model, @RequestParam(value = "jobId", required = false, defaultValue = "0") Integer jobId) {
|
public String index(HttpServletRequest request, Model model, @RequestParam(value = "jobId", required = false, defaultValue = "0") Integer jobId) {
|
||||||
|
|
||||||
// 执行器列表
|
// 执行器列表
|
||||||
List<XxlJobGroup> jobGroupList_all = xxlJobGroupDao.findAll();
|
List<XxlJobGroup> jobGroupList_all = xxlJobGroupDao.findAll();
|
||||||
|
|
||||||
// filter group
|
// filter group
|
||||||
List<XxlJobGroup> jobGroupList = PermissionInterceptor.filterJobGroupByRole(request, jobGroupList_all);
|
List<XxlJobGroup> jobGroupList = PermissionInterceptor.filterJobGroupByRole(request, jobGroupList_all);
|
||||||
if (jobGroupList==null || jobGroupList.size()==0) {
|
if (jobGroupList==null || jobGroupList.size()==0) {
|
||||||
throw new XxlJobException(I18nUtil.getString("jobgroup_empty"));
|
throw new XxlJobException(I18nUtil.getString("jobgroup_empty"));
|
||||||
}
|
}
|
||||||
|
|
||||||
model.addAttribute("JobGroupList", jobGroupList);
|
model.addAttribute("JobGroupList", jobGroupList);
|
||||||
|
|
||||||
// 任务
|
// 任务
|
||||||
if (jobId > 0) {
|
if (jobId > 0) {
|
||||||
XxlJobInfo jobInfo = xxlJobInfoDao.loadById(jobId);
|
XxlJobInfo jobInfo = xxlJobInfoDao.loadById(jobId);
|
||||||
if (jobInfo == null) {
|
if (jobInfo == null) {
|
||||||
throw new RuntimeException(I18nUtil.getString("jobinfo_field_id") + I18nUtil.getString("system_unvalid"));
|
throw new RuntimeException(I18nUtil.getString("jobinfo_field_id") + I18nUtil.getString("system_unvalid"));
|
||||||
}
|
}
|
||||||
|
|
||||||
model.addAttribute("jobInfo", jobInfo);
|
model.addAttribute("jobInfo", jobInfo);
|
||||||
|
|
||||||
// valid permission
|
// valid permission
|
||||||
PermissionInterceptor.validJobGroupPermission(request, jobInfo.getJobGroup());
|
PermissionInterceptor.validJobGroupPermission(request, jobInfo.getJobGroup());
|
||||||
}
|
}
|
||||||
|
|
||||||
return "joblog/joblog.index";
|
return "joblog/joblog.index";
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping("/getJobsByGroup")
|
@RequestMapping("/getJobsByGroup")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ReturnT<List<XxlJobInfo>> getJobsByGroup(@RequestParam("jobGroup") int jobGroup){
|
public ReturnT<List<XxlJobInfo>> getJobsByGroup(@RequestParam("jobGroup") int jobGroup){
|
||||||
List<XxlJobInfo> list = xxlJobInfoDao.getJobsByGroup(jobGroup);
|
List<XxlJobInfo> list = xxlJobInfoDao.getJobsByGroup(jobGroup);
|
||||||
return ReturnT.ofSuccess(list);
|
return ReturnT.ofSuccess(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping("/pageList")
|
@RequestMapping("/pageList")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public Map<String, Object> pageList(HttpServletRequest request,
|
public Map<String, Object> pageList(HttpServletRequest request,
|
||||||
@RequestParam(value = "start", required = false, defaultValue = "0") int start,
|
@RequestParam(value = "start", required = false, defaultValue = "0") int start,
|
||||||
@RequestParam(value = "length", required = false, defaultValue = "10") int length,
|
@RequestParam(value = "length", required = false, defaultValue = "10") int length,
|
||||||
@RequestParam("jobGroup") int jobGroup,
|
@RequestParam("jobGroup") int jobGroup,
|
||||||
@RequestParam("jobId") int jobId,
|
@RequestParam("jobId") int jobId,
|
||||||
@RequestParam("logStatus") int logStatus,
|
@RequestParam("logStatus") int logStatus,
|
||||||
@RequestParam("filterTime") String filterTime) {
|
@RequestParam("filterTime") String filterTime) {
|
||||||
|
|
||||||
// valid permission
|
// valid permission
|
||||||
PermissionInterceptor.validJobGroupPermission(request, jobGroup); // 仅管理员支持查询全部;普通用户仅支持查询有权限的 jobGroup
|
PermissionInterceptor.validJobGroupPermission(request, jobGroup); // 仅管理员支持查询全部;普通用户仅支持查询有权限的 jobGroup
|
||||||
|
|
||||||
// parse param
|
// parse param
|
||||||
Date triggerTimeStart = null;
|
Date triggerTimeStart = null;
|
||||||
Date triggerTimeEnd = null;
|
Date triggerTimeEnd = null;
|
||||||
if (filterTime!=null && filterTime.trim().length()>0) {
|
if (filterTime!=null && filterTime.trim().length()>0) {
|
||||||
String[] temp = filterTime.split(" - ");
|
String[] temp = filterTime.split(" - ");
|
||||||
if (temp.length == 2) {
|
if (temp.length == 2) {
|
||||||
triggerTimeStart = DateUtil.parseDateTime(temp[0]);
|
triggerTimeStart = DateUtil.parseDateTime(temp[0]);
|
||||||
triggerTimeEnd = DateUtil.parseDateTime(temp[1]);
|
triggerTimeEnd = DateUtil.parseDateTime(temp[1]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// page query
|
// page query
|
||||||
List<XxlJobLog> list = xxlJobLogDao.pageList(start, length, jobGroup, jobId, triggerTimeStart, triggerTimeEnd, logStatus);
|
List<XxlJobLog> list = xxlJobLogDao.pageList(start, length, jobGroup, jobId, triggerTimeStart, triggerTimeEnd, logStatus);
|
||||||
int list_count = xxlJobLogDao.pageListCount(start, length, jobGroup, jobId, triggerTimeStart, triggerTimeEnd, logStatus);
|
int list_count = xxlJobLogDao.pageListCount(start, length, jobGroup, jobId, triggerTimeStart, triggerTimeEnd, logStatus);
|
||||||
|
|
||||||
// package result
|
// package result
|
||||||
Map<String, Object> maps = new HashMap<String, Object>();
|
Map<String, Object> maps = new HashMap<String, Object>();
|
||||||
maps.put("recordsTotal", list_count); // 总记录数
|
maps.put("recordsTotal", list_count); // 总记录数
|
||||||
maps.put("recordsFiltered", list_count); // 过滤后的总记录数
|
maps.put("recordsFiltered", list_count); // 过滤后的总记录数
|
||||||
maps.put("data", list); // 分页列表
|
maps.put("data", list); // 分页列表
|
||||||
return maps;
|
return maps;
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping("/logDetailPage")
|
@RequestMapping("/logDetailPage")
|
||||||
public String logDetailPage(HttpServletRequest request, @RequestParam("id") int id, Model model){
|
public String logDetailPage(HttpServletRequest request, @RequestParam("id") int id, Model model){
|
||||||
|
|
||||||
// base check
|
// base check
|
||||||
XxlJobLog jobLog = xxlJobLogDao.load(id);
|
XxlJobLog jobLog = xxlJobLogDao.load(id);
|
||||||
if (jobLog == null) {
|
if (jobLog == null) {
|
||||||
throw new RuntimeException(I18nUtil.getString("joblog_logid_unvalid"));
|
throw new RuntimeException(I18nUtil.getString("joblog_logid_unvalid"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// valid permission
|
// valid permission
|
||||||
PermissionInterceptor.validJobGroupPermission(request, jobLog.getJobGroup());
|
PermissionInterceptor.validJobGroupPermission(request, jobLog.getJobGroup());
|
||||||
|
|
||||||
// data
|
// data
|
||||||
model.addAttribute("triggerCode", jobLog.getTriggerCode());
|
model.addAttribute("triggerCode", jobLog.getTriggerCode());
|
||||||
model.addAttribute("handleCode", jobLog.getHandleCode());
|
model.addAttribute("handleCode", jobLog.getHandleCode());
|
||||||
model.addAttribute("logId", jobLog.getId());
|
model.addAttribute("logId", jobLog.getId());
|
||||||
return "joblog/joblog.detail";
|
return "joblog/joblog.detail";
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping("/logDetailCat")
|
@RequestMapping("/logDetailCat")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ReturnT<LogResult> logDetailCat(@RequestParam("logId") long logId, @RequestParam("fromLineNum") int fromLineNum){
|
public ReturnT<LogResult> logDetailCat(@RequestParam("logId") long logId, @RequestParam("fromLineNum") int fromLineNum){
|
||||||
try {
|
try {
|
||||||
// valid
|
// valid
|
||||||
XxlJobLog jobLog = xxlJobLogDao.load(logId); // todo, need to improve performance
|
XxlJobLog jobLog = xxlJobLogDao.load(logId); // todo, need to improve performance
|
||||||
if (jobLog == null) {
|
if (jobLog == null) {
|
||||||
return new ReturnT<LogResult>(ReturnT.FAIL_CODE, I18nUtil.getString("joblog_logid_unvalid"));
|
return new ReturnT<LogResult>(ReturnT.FAIL_CODE, I18nUtil.getString("joblog_logid_unvalid"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// log cat
|
// log cat
|
||||||
ExecutorBiz executorBiz = XxlJobScheduler.getExecutorBiz(jobLog.getExecutorAddress());
|
ExecutorBiz executorBiz = XxlJobScheduler.getExecutorBiz(jobLog.getExecutorAddress());
|
||||||
ReturnT<LogResult> logResult = executorBiz.log(new LogParam(jobLog.getTriggerTime().getTime(), logId, fromLineNum));
|
ReturnT<LogResult> logResult = executorBiz.log(new LogParam(jobLog.getTriggerTime().getTime(), logId, fromLineNum));
|
||||||
|
|
||||||
// is end
|
// is end
|
||||||
if (logResult.getContent()!=null && logResult.getContent().getFromLineNum() > logResult.getContent().getToLineNum()) {
|
if (logResult.getContent()!=null && logResult.getContent().getFromLineNum() > logResult.getContent().getToLineNum()) {
|
||||||
if (jobLog.getHandleCode() > 0) {
|
if (jobLog.getHandleCode() > 0) {
|
||||||
logResult.getContent().setEnd(true);
|
logResult.getContent().setEnd(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// fix xss
|
// fix xss
|
||||||
if (logResult.getContent()!=null && StringUtils.hasText(logResult.getContent().getLogContent())) {
|
if (logResult.getContent()!=null && StringUtils.hasText(logResult.getContent().getLogContent())) {
|
||||||
String newLogContent = filter(logResult.getContent().getLogContent());
|
String newLogContent = filter(logResult.getContent().getLogContent());
|
||||||
logResult.getContent().setLogContent(newLogContent);
|
logResult.getContent().setLogContent(newLogContent);
|
||||||
}
|
}
|
||||||
|
|
||||||
return logResult;
|
return logResult;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.error(e.getMessage(), e);
|
logger.error(e.getMessage(), e);
|
||||||
return new ReturnT<LogResult>(ReturnT.FAIL_CODE, e.getMessage());
|
return new ReturnT<LogResult>(ReturnT.FAIL_CODE, e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* filter xss tag
|
* filter xss tag
|
||||||
*
|
*
|
||||||
* @param originData
|
* @param originData
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private String filter(String originData){
|
private String filter(String originData){
|
||||||
|
|
||||||
// exclude tag
|
// exclude tag
|
||||||
Map<String, String> excludeTagMap = new HashMap<String, String>();
|
Map<String, String> excludeTagMap = new HashMap<String, String>();
|
||||||
excludeTagMap.put("<br>", "###TAG_BR###");
|
excludeTagMap.put("<br>", "###TAG_BR###");
|
||||||
excludeTagMap.put("<b>", "###TAG_BOLD###");
|
excludeTagMap.put("<b>", "###TAG_BOLD###");
|
||||||
excludeTagMap.put("</b>", "###TAG_BOLD_END###");
|
excludeTagMap.put("</b>", "###TAG_BOLD_END###");
|
||||||
|
|
||||||
// replace
|
// replace
|
||||||
for (String key : excludeTagMap.keySet()) {
|
for (String key : excludeTagMap.keySet()) {
|
||||||
String value = excludeTagMap.get(key);
|
String value = excludeTagMap.get(key);
|
||||||
originData = originData.replaceAll(key, value);
|
originData = originData.replaceAll(key, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
// htmlEscape
|
// htmlEscape
|
||||||
originData = HtmlUtils.htmlEscape(originData, "UTF-8");
|
originData = HtmlUtils.htmlEscape(originData, "UTF-8");
|
||||||
|
|
||||||
// replace back
|
// replace back
|
||||||
for (String key : excludeTagMap.keySet()) {
|
for (String key : excludeTagMap.keySet()) {
|
||||||
String value = excludeTagMap.get(key);
|
String value = excludeTagMap.get(key);
|
||||||
originData = originData.replaceAll(value, key);
|
originData = originData.replaceAll(value, key);
|
||||||
}
|
}
|
||||||
|
|
||||||
return originData;
|
return originData;
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping("/logKill")
|
@RequestMapping("/logKill")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ReturnT<String> logKill(@RequestParam("id") int id){
|
public ReturnT<String> logKill(@RequestParam("id") int id){
|
||||||
// base check
|
// base check
|
||||||
XxlJobLog log = xxlJobLogDao.load(id);
|
XxlJobLog log = xxlJobLogDao.load(id);
|
||||||
XxlJobInfo jobInfo = xxlJobInfoDao.loadById(log.getJobId());
|
XxlJobInfo jobInfo = xxlJobInfoDao.loadById(log.getJobId());
|
||||||
if (jobInfo==null) {
|
if (jobInfo==null) {
|
||||||
return new ReturnT<String>(500, I18nUtil.getString("jobinfo_glue_jobid_unvalid"));
|
return new ReturnT<String>(500, I18nUtil.getString("jobinfo_glue_jobid_unvalid"));
|
||||||
}
|
}
|
||||||
if (ReturnT.SUCCESS_CODE != log.getTriggerCode()) {
|
if (ReturnT.SUCCESS_CODE != log.getTriggerCode()) {
|
||||||
return new ReturnT<String>(500, I18nUtil.getString("joblog_kill_log_limit"));
|
return new ReturnT<String>(500, I18nUtil.getString("joblog_kill_log_limit"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// request of kill
|
// request of kill
|
||||||
ReturnT<String> runResult = null;
|
ReturnT<String> runResult = null;
|
||||||
try {
|
try {
|
||||||
ExecutorBiz executorBiz = XxlJobScheduler.getExecutorBiz(log.getExecutorAddress());
|
ExecutorBiz executorBiz = XxlJobScheduler.getExecutorBiz(log.getExecutorAddress());
|
||||||
runResult = executorBiz.kill(new KillParam(jobInfo.getId()));
|
runResult = executorBiz.kill(new KillParam(jobInfo.getId()));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.error(e.getMessage(), e);
|
logger.error(e.getMessage(), e);
|
||||||
runResult = new ReturnT<String>(500, e.getMessage());
|
runResult = new ReturnT<String>(500, e.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ReturnT.SUCCESS_CODE == runResult.getCode()) {
|
if (ReturnT.SUCCESS_CODE == runResult.getCode()) {
|
||||||
log.setHandleCode(ReturnT.FAIL_CODE);
|
log.setHandleCode(ReturnT.FAIL_CODE);
|
||||||
log.setHandleMsg( I18nUtil.getString("joblog_kill_log_byman")+":" + (runResult.getMsg()!=null?runResult.getMsg():""));
|
log.setHandleMsg( I18nUtil.getString("joblog_kill_log_byman")+":" + (runResult.getMsg()!=null?runResult.getMsg():""));
|
||||||
log.setHandleTime(new Date());
|
log.setHandleTime(new Date());
|
||||||
XxlJobCompleter.updateHandleInfoAndFinish(log);
|
XxlJobCompleter.updateHandleInfoAndFinish(log);
|
||||||
return ReturnT.ofSuccess(runResult.getMsg());
|
return ReturnT.ofSuccess(runResult.getMsg());
|
||||||
} else {
|
} else {
|
||||||
return ReturnT.ofFail(runResult.getMsg());
|
return ReturnT.ofFail(runResult.getMsg());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping("/clearLog")
|
@RequestMapping("/clearLog")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ReturnT<String> clearLog(HttpServletRequest request,
|
public ReturnT<String> clearLog(HttpServletRequest request,
|
||||||
@RequestParam("jobGroup") int jobGroup,
|
@RequestParam("jobGroup") int jobGroup,
|
||||||
@RequestParam("jobId") int jobId,
|
@RequestParam("jobId") int jobId,
|
||||||
@RequestParam("type") int type){
|
@RequestParam("type") int type){
|
||||||
// valid permission
|
// valid permission
|
||||||
PermissionInterceptor.validJobGroupPermission(request, jobGroup);
|
PermissionInterceptor.validJobGroupPermission(request, jobGroup);
|
||||||
|
|
||||||
// opt
|
// opt
|
||||||
Date clearBeforeTime = null;
|
Date clearBeforeTime = null;
|
||||||
int clearBeforeNum = 0;
|
int clearBeforeNum = 0;
|
||||||
if (type == 1) {
|
if (type == 1) {
|
||||||
clearBeforeTime = DateUtil.addMonths(new Date(), -1); // 清理一个月之前日志数据
|
clearBeforeTime = DateUtil.addMonths(new Date(), -1); // 清理一个月之前日志数据
|
||||||
} else if (type == 2) {
|
} else if (type == 2) {
|
||||||
clearBeforeTime = DateUtil.addMonths(new Date(), -3); // 清理三个月之前日志数据
|
clearBeforeTime = DateUtil.addMonths(new Date(), -3); // 清理三个月之前日志数据
|
||||||
} else if (type == 3) {
|
} else if (type == 3) {
|
||||||
clearBeforeTime = DateUtil.addMonths(new Date(), -6); // 清理六个月之前日志数据
|
clearBeforeTime = DateUtil.addMonths(new Date(), -6); // 清理六个月之前日志数据
|
||||||
} else if (type == 4) {
|
} else if (type == 4) {
|
||||||
clearBeforeTime = DateUtil.addYears(new Date(), -1); // 清理一年之前日志数据
|
clearBeforeTime = DateUtil.addYears(new Date(), -1); // 清理一年之前日志数据
|
||||||
} else if (type == 5) {
|
} else if (type == 5) {
|
||||||
clearBeforeNum = 1000; // 清理一千条以前日志数据
|
clearBeforeNum = 1000; // 清理一千条以前日志数据
|
||||||
} else if (type == 6) {
|
} else if (type == 6) {
|
||||||
clearBeforeNum = 10000; // 清理一万条以前日志数据
|
clearBeforeNum = 10000; // 清理一万条以前日志数据
|
||||||
} else if (type == 7) {
|
} else if (type == 7) {
|
||||||
clearBeforeNum = 30000; // 清理三万条以前日志数据
|
clearBeforeNum = 30000; // 清理三万条以前日志数据
|
||||||
} else if (type == 8) {
|
} else if (type == 8) {
|
||||||
clearBeforeNum = 100000; // 清理十万条以前日志数据
|
clearBeforeNum = 100000; // 清理十万条以前日志数据
|
||||||
} else if (type == 9) {
|
} else if (type == 9) {
|
||||||
clearBeforeNum = 0; // 清理所有日志数据
|
clearBeforeNum = 0; // 清理所有日志数据
|
||||||
} else {
|
} else {
|
||||||
return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("joblog_clean_type_unvalid"));
|
return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("joblog_clean_type_unvalid"));
|
||||||
}
|
}
|
||||||
|
|
||||||
List<Long> logIds = null;
|
List<Long> logIds = null;
|
||||||
do {
|
do {
|
||||||
logIds = xxlJobLogDao.findClearLogIds(jobGroup, jobId, clearBeforeTime, clearBeforeNum, 1000);
|
logIds = xxlJobLogDao.findClearLogIds(jobGroup, jobId, clearBeforeTime, clearBeforeNum, 1000);
|
||||||
if (logIds!=null && logIds.size()>0) {
|
if (logIds!=null && logIds.size()>0) {
|
||||||
xxlJobLogDao.clearLog(logIds);
|
xxlJobLogDao.clearLog(logIds);
|
||||||
}
|
}
|
||||||
} while (logIds!=null && logIds.size()>0);
|
} while (logIds!=null && logIds.size()>0);
|
||||||
|
|
||||||
return ReturnT.ofSuccess();
|
return ReturnT.ofSuccess();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -1,12 +1,12 @@
|
|||||||
package com.xxl.job.admin.controller;
|
package com.xxl.job.admin.controller.biz;
|
||||||
|
|
||||||
import com.xxl.job.admin.controller.annotation.PermissionLimit;
|
import com.xxl.job.admin.annotation.PermissionLimit;
|
||||||
import com.xxl.job.admin.controller.interceptor.PermissionInterceptor;
|
import com.xxl.job.admin.web.interceptor.PermissionInterceptor;
|
||||||
import com.xxl.job.admin.core.model.XxlJobGroup;
|
import com.xxl.job.admin.model.XxlJobGroup;
|
||||||
import com.xxl.job.admin.core.model.XxlJobUser;
|
import com.xxl.job.admin.model.XxlJobUser;
|
||||||
import com.xxl.job.admin.core.util.I18nUtil;
|
import com.xxl.job.admin.util.I18nUtil;
|
||||||
import com.xxl.job.admin.dao.XxlJobGroupDao;
|
import com.xxl.job.admin.mapper.XxlJobGroupDao;
|
||||||
import com.xxl.job.admin.dao.XxlJobUserDao;
|
import com.xxl.job.admin.mapper.XxlJobUserDao;
|
||||||
import com.xxl.job.core.biz.model.ReturnT;
|
import com.xxl.job.core.biz.model.ReturnT;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
@ -1,6 +1,6 @@
|
|||||||
package com.xxl.job.admin.dao;
|
package com.xxl.job.admin.mapper;
|
||||||
|
|
||||||
import com.xxl.job.admin.core.model.XxlJobGroup;
|
import com.xxl.job.admin.model.XxlJobGroup;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
package com.xxl.job.admin.dao;
|
package com.xxl.job.admin.mapper;
|
||||||
|
|
||||||
import com.xxl.job.admin.core.model.XxlJobInfo;
|
import com.xxl.job.admin.model.XxlJobInfo;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
package com.xxl.job.admin.dao;
|
package com.xxl.job.admin.mapper;
|
||||||
|
|
||||||
import com.xxl.job.admin.core.model.XxlJobLog;
|
import com.xxl.job.admin.model.XxlJobLog;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
package com.xxl.job.admin.dao;
|
package com.xxl.job.admin.mapper;
|
||||||
|
|
||||||
import com.xxl.job.admin.core.model.XxlJobLogGlue;
|
import com.xxl.job.admin.model.XxlJobLogGlue;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
package com.xxl.job.admin.dao;
|
package com.xxl.job.admin.mapper;
|
||||||
|
|
||||||
import com.xxl.job.admin.core.model.XxlJobLogReport;
|
import com.xxl.job.admin.model.XxlJobLogReport;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
package com.xxl.job.admin.dao;
|
package com.xxl.job.admin.mapper;
|
||||||
|
|
||||||
import com.xxl.job.admin.core.model.XxlJobRegistry;
|
import com.xxl.job.admin.model.XxlJobRegistry;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
package com.xxl.job.admin.dao;
|
package com.xxl.job.admin.mapper;
|
||||||
|
|
||||||
import com.xxl.job.admin.core.model.XxlJobUser;
|
import com.xxl.job.admin.model.XxlJobUser;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
import java.util.List;
|
import java.util.List;
|
@ -1,4 +1,4 @@
|
|||||||
package com.xxl.job.admin.core.model;
|
package com.xxl.job.admin.model;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
@ -1,4 +1,4 @@
|
|||||||
package com.xxl.job.admin.core.model;
|
package com.xxl.job.admin.model;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.xxl.job.admin.core.model;
|
package com.xxl.job.admin.model;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
@ -1,75 +1,75 @@
|
|||||||
package com.xxl.job.admin.core.model;
|
package com.xxl.job.admin.model;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* xxl-job log for glue, used to track job code process
|
* xxl-job log for glue, used to track job code process
|
||||||
* @author xuxueli 2016-5-19 17:57:46
|
* @author xuxueli 2016-5-19 17:57:46
|
||||||
*/
|
*/
|
||||||
public class XxlJobLogGlue {
|
public class XxlJobLogGlue {
|
||||||
|
|
||||||
private int id;
|
private int id;
|
||||||
private int jobId; // 任务主键ID
|
private int jobId; // 任务主键ID
|
||||||
private String glueType; // GLUE类型 #com.xxl.job.core.glue.GlueTypeEnum
|
private String glueType; // GLUE类型 #com.xxl.job.core.glue.GlueTypeEnum
|
||||||
private String glueSource;
|
private String glueSource;
|
||||||
private String glueRemark;
|
private String glueRemark;
|
||||||
private Date addTime;
|
private Date addTime;
|
||||||
private Date updateTime;
|
private Date updateTime;
|
||||||
|
|
||||||
public int getId() {
|
public int getId() {
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setId(int id) {
|
public void setId(int id) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getJobId() {
|
public int getJobId() {
|
||||||
return jobId;
|
return jobId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setJobId(int jobId) {
|
public void setJobId(int jobId) {
|
||||||
this.jobId = jobId;
|
this.jobId = jobId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getGlueType() {
|
public String getGlueType() {
|
||||||
return glueType;
|
return glueType;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setGlueType(String glueType) {
|
public void setGlueType(String glueType) {
|
||||||
this.glueType = glueType;
|
this.glueType = glueType;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getGlueSource() {
|
public String getGlueSource() {
|
||||||
return glueSource;
|
return glueSource;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setGlueSource(String glueSource) {
|
public void setGlueSource(String glueSource) {
|
||||||
this.glueSource = glueSource;
|
this.glueSource = glueSource;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getGlueRemark() {
|
public String getGlueRemark() {
|
||||||
return glueRemark;
|
return glueRemark;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setGlueRemark(String glueRemark) {
|
public void setGlueRemark(String glueRemark) {
|
||||||
this.glueRemark = glueRemark;
|
this.glueRemark = glueRemark;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Date getAddTime() {
|
public Date getAddTime() {
|
||||||
return addTime;
|
return addTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setAddTime(Date addTime) {
|
public void setAddTime(Date addTime) {
|
||||||
this.addTime = addTime;
|
this.addTime = addTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Date getUpdateTime() {
|
public Date getUpdateTime() {
|
||||||
return updateTime;
|
return updateTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setUpdateTime(Date updateTime) {
|
public void setUpdateTime(Date updateTime) {
|
||||||
this.updateTime = updateTime;
|
this.updateTime = updateTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package com.xxl.job.admin.core.model;
|
package com.xxl.job.admin.model;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.xxl.job.admin.core.model;
|
package com.xxl.job.admin.model;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.xxl.job.admin.core.model;
|
package com.xxl.job.admin.model;
|
||||||
|
|
||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
package com.xxl.job.admin.core.alarm;
|
package com.xxl.job.admin.scheduler.alarm;
|
||||||
|
|
||||||
import com.xxl.job.admin.core.model.XxlJobInfo;
|
import com.xxl.job.admin.model.XxlJobInfo;
|
||||||
import com.xxl.job.admin.core.model.XxlJobLog;
|
import com.xxl.job.admin.model.XxlJobLog;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author xuxueli 2020-01-19
|
* @author xuxueli 2020-01-19
|
@ -1,7 +1,7 @@
|
|||||||
package com.xxl.job.admin.core.alarm;
|
package com.xxl.job.admin.scheduler.alarm;
|
||||||
|
|
||||||
import com.xxl.job.admin.core.model.XxlJobInfo;
|
import com.xxl.job.admin.model.XxlJobInfo;
|
||||||
import com.xxl.job.admin.core.model.XxlJobLog;
|
import com.xxl.job.admin.model.XxlJobLog;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.BeansException;
|
import org.springframework.beans.BeansException;
|
@ -1,11 +1,11 @@
|
|||||||
package com.xxl.job.admin.core.alarm.impl;
|
package com.xxl.job.admin.scheduler.alarm.impl;
|
||||||
|
|
||||||
import com.xxl.job.admin.core.alarm.JobAlarm;
|
import com.xxl.job.admin.scheduler.alarm.JobAlarm;
|
||||||
import com.xxl.job.admin.core.conf.XxlJobAdminConfig;
|
import com.xxl.job.admin.scheduler.conf.XxlJobAdminConfig;
|
||||||
import com.xxl.job.admin.core.model.XxlJobGroup;
|
import com.xxl.job.admin.model.XxlJobGroup;
|
||||||
import com.xxl.job.admin.core.model.XxlJobInfo;
|
import com.xxl.job.admin.model.XxlJobInfo;
|
||||||
import com.xxl.job.admin.core.model.XxlJobLog;
|
import com.xxl.job.admin.model.XxlJobLog;
|
||||||
import com.xxl.job.admin.core.util.I18nUtil;
|
import com.xxl.job.admin.util.I18nUtil;
|
||||||
import com.xxl.job.core.biz.model.ReturnT;
|
import com.xxl.job.core.biz.model.ReturnT;
|
||||||
import jakarta.mail.internet.MimeMessage;
|
import jakarta.mail.internet.MimeMessage;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
@ -1,11 +1,11 @@
|
|||||||
package com.xxl.job.admin.core.complete;
|
package com.xxl.job.admin.scheduler.complete;
|
||||||
|
|
||||||
import com.xxl.job.admin.core.conf.XxlJobAdminConfig;
|
import com.xxl.job.admin.scheduler.conf.XxlJobAdminConfig;
|
||||||
import com.xxl.job.admin.core.model.XxlJobInfo;
|
import com.xxl.job.admin.model.XxlJobInfo;
|
||||||
import com.xxl.job.admin.core.model.XxlJobLog;
|
import com.xxl.job.admin.model.XxlJobLog;
|
||||||
import com.xxl.job.admin.core.thread.JobTriggerPoolHelper;
|
import com.xxl.job.admin.scheduler.thread.JobTriggerPoolHelper;
|
||||||
import com.xxl.job.admin.core.trigger.TriggerTypeEnum;
|
import com.xxl.job.admin.scheduler.trigger.TriggerTypeEnum;
|
||||||
import com.xxl.job.admin.core.util.I18nUtil;
|
import com.xxl.job.admin.util.I18nUtil;
|
||||||
import com.xxl.job.core.biz.model.ReturnT;
|
import com.xxl.job.core.biz.model.ReturnT;
|
||||||
import com.xxl.job.core.context.XxlJobContext;
|
import com.xxl.job.core.context.XxlJobContext;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
@ -1,8 +1,8 @@
|
|||||||
package com.xxl.job.admin.core.conf;
|
package com.xxl.job.admin.scheduler.conf;
|
||||||
|
|
||||||
import com.xxl.job.admin.core.alarm.JobAlarmer;
|
import com.xxl.job.admin.scheduler.alarm.JobAlarmer;
|
||||||
import com.xxl.job.admin.core.scheduler.XxlJobScheduler;
|
import com.xxl.job.admin.scheduler.scheduler.XxlJobScheduler;
|
||||||
import com.xxl.job.admin.dao.*;
|
import com.xxl.job.admin.mapper.*;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.springframework.beans.factory.DisposableBean;
|
import org.springframework.beans.factory.DisposableBean;
|
||||||
import org.springframework.beans.factory.InitializingBean;
|
import org.springframework.beans.factory.InitializingBean;
|
@ -1,4 +1,4 @@
|
|||||||
package com.xxl.job.admin.core.cron;
|
package com.xxl.job.admin.scheduler.cron;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
@ -1,4 +1,4 @@
|
|||||||
package com.xxl.job.admin.core.exception;
|
package com.xxl.job.admin.scheduler.exception;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author xuxueli 2019-05-04 23:19:29
|
* @author xuxueli 2019-05-04 23:19:29
|
@ -1,7 +1,7 @@
|
|||||||
package com.xxl.job.admin.core.route;
|
package com.xxl.job.admin.scheduler.route;
|
||||||
|
|
||||||
import com.xxl.job.admin.core.route.strategy.*;
|
import com.xxl.job.admin.scheduler.route.strategy.*;
|
||||||
import com.xxl.job.admin.core.util.I18nUtil;
|
import com.xxl.job.admin.util.I18nUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by xuxueli on 17/3/10.
|
* Created by xuxueli on 17/3/10.
|
@ -1,4 +1,4 @@
|
|||||||
package com.xxl.job.admin.core.route;
|
package com.xxl.job.admin.scheduler.route;
|
||||||
|
|
||||||
import com.xxl.job.core.biz.model.ReturnT;
|
import com.xxl.job.core.biz.model.ReturnT;
|
||||||
import com.xxl.job.core.biz.model.TriggerParam;
|
import com.xxl.job.core.biz.model.TriggerParam;
|
@ -1,8 +1,8 @@
|
|||||||
package com.xxl.job.admin.core.route.strategy;
|
package com.xxl.job.admin.scheduler.route.strategy;
|
||||||
|
|
||||||
import com.xxl.job.admin.core.scheduler.XxlJobScheduler;
|
import com.xxl.job.admin.scheduler.scheduler.XxlJobScheduler;
|
||||||
import com.xxl.job.admin.core.route.ExecutorRouter;
|
import com.xxl.job.admin.scheduler.route.ExecutorRouter;
|
||||||
import com.xxl.job.admin.core.util.I18nUtil;
|
import com.xxl.job.admin.util.I18nUtil;
|
||||||
import com.xxl.job.core.biz.ExecutorBiz;
|
import com.xxl.job.core.biz.ExecutorBiz;
|
||||||
import com.xxl.job.core.biz.model.IdleBeatParam;
|
import com.xxl.job.core.biz.model.IdleBeatParam;
|
||||||
import com.xxl.job.core.biz.model.ReturnT;
|
import com.xxl.job.core.biz.model.ReturnT;
|
@ -1,6 +1,6 @@
|
|||||||
package com.xxl.job.admin.core.route.strategy;
|
package com.xxl.job.admin.scheduler.route.strategy;
|
||||||
|
|
||||||
import com.xxl.job.admin.core.route.ExecutorRouter;
|
import com.xxl.job.admin.scheduler.route.ExecutorRouter;
|
||||||
import com.xxl.job.core.biz.model.ReturnT;
|
import com.xxl.job.core.biz.model.ReturnT;
|
||||||
import com.xxl.job.core.biz.model.TriggerParam;
|
import com.xxl.job.core.biz.model.TriggerParam;
|
||||||
|
|
@ -1,8 +1,8 @@
|
|||||||
package com.xxl.job.admin.core.route.strategy;
|
package com.xxl.job.admin.scheduler.route.strategy;
|
||||||
|
|
||||||
import com.xxl.job.admin.core.scheduler.XxlJobScheduler;
|
import com.xxl.job.admin.scheduler.scheduler.XxlJobScheduler;
|
||||||
import com.xxl.job.admin.core.route.ExecutorRouter;
|
import com.xxl.job.admin.scheduler.route.ExecutorRouter;
|
||||||
import com.xxl.job.admin.core.util.I18nUtil;
|
import com.xxl.job.admin.util.I18nUtil;
|
||||||
import com.xxl.job.core.biz.ExecutorBiz;
|
import com.xxl.job.core.biz.ExecutorBiz;
|
||||||
import com.xxl.job.core.biz.model.ReturnT;
|
import com.xxl.job.core.biz.model.ReturnT;
|
||||||
import com.xxl.job.core.biz.model.TriggerParam;
|
import com.xxl.job.core.biz.model.TriggerParam;
|
@ -1,6 +1,6 @@
|
|||||||
package com.xxl.job.admin.core.route.strategy;
|
package com.xxl.job.admin.scheduler.route.strategy;
|
||||||
|
|
||||||
import com.xxl.job.admin.core.route.ExecutorRouter;
|
import com.xxl.job.admin.scheduler.route.ExecutorRouter;
|
||||||
import com.xxl.job.core.biz.model.ReturnT;
|
import com.xxl.job.core.biz.model.ReturnT;
|
||||||
import com.xxl.job.core.biz.model.TriggerParam;
|
import com.xxl.job.core.biz.model.TriggerParam;
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
package com.xxl.job.admin.core.route.strategy;
|
package com.xxl.job.admin.scheduler.route.strategy;
|
||||||
|
|
||||||
import com.xxl.job.admin.core.route.ExecutorRouter;
|
import com.xxl.job.admin.scheduler.route.ExecutorRouter;
|
||||||
import com.xxl.job.core.biz.model.ReturnT;
|
import com.xxl.job.core.biz.model.ReturnT;
|
||||||
import com.xxl.job.core.biz.model.TriggerParam;
|
import com.xxl.job.core.biz.model.TriggerParam;
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
package com.xxl.job.admin.core.route.strategy;
|
package com.xxl.job.admin.scheduler.route.strategy;
|
||||||
|
|
||||||
import com.xxl.job.admin.core.route.ExecutorRouter;
|
import com.xxl.job.admin.scheduler.route.ExecutorRouter;
|
||||||
import com.xxl.job.core.biz.model.ReturnT;
|
import com.xxl.job.core.biz.model.ReturnT;
|
||||||
import com.xxl.job.core.biz.model.TriggerParam;
|
import com.xxl.job.core.biz.model.TriggerParam;
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
package com.xxl.job.admin.core.route.strategy;
|
package com.xxl.job.admin.scheduler.route.strategy;
|
||||||
|
|
||||||
import com.xxl.job.admin.core.route.ExecutorRouter;
|
import com.xxl.job.admin.scheduler.route.ExecutorRouter;
|
||||||
import com.xxl.job.core.biz.model.ReturnT;
|
import com.xxl.job.core.biz.model.ReturnT;
|
||||||
import com.xxl.job.core.biz.model.TriggerParam;
|
import com.xxl.job.core.biz.model.TriggerParam;
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
package com.xxl.job.admin.core.route.strategy;
|
package com.xxl.job.admin.scheduler.route.strategy;
|
||||||
|
|
||||||
import com.xxl.job.admin.core.route.ExecutorRouter;
|
import com.xxl.job.admin.scheduler.route.ExecutorRouter;
|
||||||
import com.xxl.job.core.biz.model.ReturnT;
|
import com.xxl.job.core.biz.model.ReturnT;
|
||||||
import com.xxl.job.core.biz.model.TriggerParam;
|
import com.xxl.job.core.biz.model.TriggerParam;
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
package com.xxl.job.admin.core.route.strategy;
|
package com.xxl.job.admin.scheduler.route.strategy;
|
||||||
|
|
||||||
import com.xxl.job.admin.core.route.ExecutorRouter;
|
import com.xxl.job.admin.scheduler.route.ExecutorRouter;
|
||||||
import com.xxl.job.core.biz.model.ReturnT;
|
import com.xxl.job.core.biz.model.ReturnT;
|
||||||
import com.xxl.job.core.biz.model.TriggerParam;
|
import com.xxl.job.core.biz.model.TriggerParam;
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
package com.xxl.job.admin.core.scheduler;
|
package com.xxl.job.admin.scheduler.scheduler;
|
||||||
|
|
||||||
import com.xxl.job.admin.core.util.I18nUtil;
|
import com.xxl.job.admin.util.I18nUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author xuxueli 2020-10-29 21:11:23
|
* @author xuxueli 2020-10-29 21:11:23
|
@ -1,6 +1,6 @@
|
|||||||
package com.xxl.job.admin.core.scheduler;
|
package com.xxl.job.admin.scheduler.scheduler;
|
||||||
|
|
||||||
import com.xxl.job.admin.core.util.I18nUtil;
|
import com.xxl.job.admin.util.I18nUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author xuxueli 2020-10-29 21:11:23
|
* @author xuxueli 2020-10-29 21:11:23
|
@ -1,8 +1,8 @@
|
|||||||
package com.xxl.job.admin.core.scheduler;
|
package com.xxl.job.admin.scheduler.scheduler;
|
||||||
|
|
||||||
import com.xxl.job.admin.core.conf.XxlJobAdminConfig;
|
import com.xxl.job.admin.scheduler.conf.XxlJobAdminConfig;
|
||||||
import com.xxl.job.admin.core.thread.*;
|
import com.xxl.job.admin.scheduler.thread.*;
|
||||||
import com.xxl.job.admin.core.util.I18nUtil;
|
import com.xxl.job.admin.util.I18nUtil;
|
||||||
import com.xxl.job.core.biz.ExecutorBiz;
|
import com.xxl.job.core.biz.ExecutorBiz;
|
||||||
import com.xxl.job.core.biz.client.ExecutorBizClient;
|
import com.xxl.job.core.biz.client.ExecutorBizClient;
|
||||||
import com.xxl.job.core.enums.ExecutorBlockStrategyEnum;
|
import com.xxl.job.core.enums.ExecutorBlockStrategyEnum;
|
@ -1,9 +1,9 @@
|
|||||||
package com.xxl.job.admin.core.thread;
|
package com.xxl.job.admin.scheduler.thread;
|
||||||
|
|
||||||
import com.xxl.job.admin.core.complete.XxlJobCompleter;
|
import com.xxl.job.admin.scheduler.complete.XxlJobCompleter;
|
||||||
import com.xxl.job.admin.core.conf.XxlJobAdminConfig;
|
import com.xxl.job.admin.scheduler.conf.XxlJobAdminConfig;
|
||||||
import com.xxl.job.admin.core.model.XxlJobLog;
|
import com.xxl.job.admin.model.XxlJobLog;
|
||||||
import com.xxl.job.admin.core.util.I18nUtil;
|
import com.xxl.job.admin.util.I18nUtil;
|
||||||
import com.xxl.job.core.biz.model.HandleCallbackParam;
|
import com.xxl.job.core.biz.model.HandleCallbackParam;
|
||||||
import com.xxl.job.core.biz.model.ReturnT;
|
import com.xxl.job.core.biz.model.ReturnT;
|
||||||
import com.xxl.job.core.util.DateUtil;
|
import com.xxl.job.core.util.DateUtil;
|
@ -1,10 +1,10 @@
|
|||||||
package com.xxl.job.admin.core.thread;
|
package com.xxl.job.admin.scheduler.thread;
|
||||||
|
|
||||||
import com.xxl.job.admin.core.conf.XxlJobAdminConfig;
|
import com.xxl.job.admin.scheduler.conf.XxlJobAdminConfig;
|
||||||
import com.xxl.job.admin.core.model.XxlJobInfo;
|
import com.xxl.job.admin.model.XxlJobInfo;
|
||||||
import com.xxl.job.admin.core.model.XxlJobLog;
|
import com.xxl.job.admin.model.XxlJobLog;
|
||||||
import com.xxl.job.admin.core.trigger.TriggerTypeEnum;
|
import com.xxl.job.admin.scheduler.trigger.TriggerTypeEnum;
|
||||||
import com.xxl.job.admin.core.util.I18nUtil;
|
import com.xxl.job.admin.util.I18nUtil;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
package com.xxl.job.admin.core.thread;
|
package com.xxl.job.admin.scheduler.thread;
|
||||||
|
|
||||||
import com.xxl.job.admin.core.conf.XxlJobAdminConfig;
|
import com.xxl.job.admin.scheduler.conf.XxlJobAdminConfig;
|
||||||
import com.xxl.job.admin.core.model.XxlJobLogReport;
|
import com.xxl.job.admin.model.XxlJobLogReport;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
@ -1,8 +1,8 @@
|
|||||||
package com.xxl.job.admin.core.thread;
|
package com.xxl.job.admin.scheduler.thread;
|
||||||
|
|
||||||
import com.xxl.job.admin.core.conf.XxlJobAdminConfig;
|
import com.xxl.job.admin.scheduler.conf.XxlJobAdminConfig;
|
||||||
import com.xxl.job.admin.core.model.XxlJobGroup;
|
import com.xxl.job.admin.model.XxlJobGroup;
|
||||||
import com.xxl.job.admin.core.model.XxlJobRegistry;
|
import com.xxl.job.admin.model.XxlJobRegistry;
|
||||||
import com.xxl.job.core.biz.model.RegistryParam;
|
import com.xxl.job.core.biz.model.RegistryParam;
|
||||||
import com.xxl.job.core.biz.model.ReturnT;
|
import com.xxl.job.core.biz.model.ReturnT;
|
||||||
import com.xxl.job.core.enums.RegistryConfig;
|
import com.xxl.job.core.enums.RegistryConfig;
|
@ -1,11 +1,11 @@
|
|||||||
package com.xxl.job.admin.core.thread;
|
package com.xxl.job.admin.scheduler.thread;
|
||||||
|
|
||||||
import com.xxl.job.admin.core.conf.XxlJobAdminConfig;
|
import com.xxl.job.admin.scheduler.conf.XxlJobAdminConfig;
|
||||||
import com.xxl.job.admin.core.cron.CronExpression;
|
import com.xxl.job.admin.scheduler.cron.CronExpression;
|
||||||
import com.xxl.job.admin.core.model.XxlJobInfo;
|
import com.xxl.job.admin.model.XxlJobInfo;
|
||||||
import com.xxl.job.admin.core.scheduler.MisfireStrategyEnum;
|
import com.xxl.job.admin.scheduler.scheduler.MisfireStrategyEnum;
|
||||||
import com.xxl.job.admin.core.scheduler.ScheduleTypeEnum;
|
import com.xxl.job.admin.scheduler.scheduler.ScheduleTypeEnum;
|
||||||
import com.xxl.job.admin.core.trigger.TriggerTypeEnum;
|
import com.xxl.job.admin.scheduler.trigger.TriggerTypeEnum;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
@ -1,8 +1,8 @@
|
|||||||
package com.xxl.job.admin.core.thread;
|
package com.xxl.job.admin.scheduler.thread;
|
||||||
|
|
||||||
import com.xxl.job.admin.core.conf.XxlJobAdminConfig;
|
import com.xxl.job.admin.scheduler.conf.XxlJobAdminConfig;
|
||||||
import com.xxl.job.admin.core.trigger.TriggerTypeEnum;
|
import com.xxl.job.admin.scheduler.trigger.TriggerTypeEnum;
|
||||||
import com.xxl.job.admin.core.trigger.XxlJobTrigger;
|
import com.xxl.job.admin.scheduler.trigger.XxlJobTrigger;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
package com.xxl.job.admin.core.trigger;
|
package com.xxl.job.admin.scheduler.trigger;
|
||||||
|
|
||||||
import com.xxl.job.admin.core.util.I18nUtil;
|
import com.xxl.job.admin.util.I18nUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* trigger type enum
|
* trigger type enum
|
@ -1,12 +1,12 @@
|
|||||||
package com.xxl.job.admin.core.trigger;
|
package com.xxl.job.admin.scheduler.trigger;
|
||||||
|
|
||||||
import com.xxl.job.admin.core.conf.XxlJobAdminConfig;
|
import com.xxl.job.admin.scheduler.conf.XxlJobAdminConfig;
|
||||||
import com.xxl.job.admin.core.model.XxlJobGroup;
|
import com.xxl.job.admin.model.XxlJobGroup;
|
||||||
import com.xxl.job.admin.core.model.XxlJobInfo;
|
import com.xxl.job.admin.model.XxlJobInfo;
|
||||||
import com.xxl.job.admin.core.model.XxlJobLog;
|
import com.xxl.job.admin.model.XxlJobLog;
|
||||||
import com.xxl.job.admin.core.route.ExecutorRouteStrategyEnum;
|
import com.xxl.job.admin.scheduler.route.ExecutorRouteStrategyEnum;
|
||||||
import com.xxl.job.admin.core.scheduler.XxlJobScheduler;
|
import com.xxl.job.admin.scheduler.scheduler.XxlJobScheduler;
|
||||||
import com.xxl.job.admin.core.util.I18nUtil;
|
import com.xxl.job.admin.util.I18nUtil;
|
||||||
import com.xxl.job.core.biz.ExecutorBiz;
|
import com.xxl.job.core.biz.ExecutorBiz;
|
||||||
import com.xxl.job.core.biz.model.ReturnT;
|
import com.xxl.job.core.biz.model.ReturnT;
|
||||||
import com.xxl.job.core.biz.model.TriggerParam;
|
import com.xxl.job.core.biz.model.TriggerParam;
|
@ -1,98 +1,98 @@
|
|||||||
package com.xxl.job.admin.core.util;
|
package com.xxl.job.admin.util;
|
||||||
|
|
||||||
import jakarta.servlet.http.Cookie;
|
import jakarta.servlet.http.Cookie;
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Cookie.Util
|
* Cookie.Util
|
||||||
*
|
*
|
||||||
* @author xuxueli 2015-12-12 18:01:06
|
* @author xuxueli 2015-12-12 18:01:06
|
||||||
*/
|
*/
|
||||||
public class CookieUtil {
|
public class CookieUtil {
|
||||||
|
|
||||||
// 默认缓存时间,单位/秒, 2H
|
// 默认缓存时间,单位/秒, 2H
|
||||||
private static final int COOKIE_MAX_AGE = Integer.MAX_VALUE;
|
private static final int COOKIE_MAX_AGE = Integer.MAX_VALUE;
|
||||||
// 保存路径,根路径
|
// 保存路径,根路径
|
||||||
private static final String COOKIE_PATH = "/";
|
private static final String COOKIE_PATH = "/";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 保存
|
* 保存
|
||||||
*
|
*
|
||||||
* @param response
|
* @param response
|
||||||
* @param key
|
* @param key
|
||||||
* @param value
|
* @param value
|
||||||
* @param ifRemember
|
* @param ifRemember
|
||||||
*/
|
*/
|
||||||
public static void set(HttpServletResponse response, String key, String value, boolean ifRemember) {
|
public static void set(HttpServletResponse response, String key, String value, boolean ifRemember) {
|
||||||
int age = ifRemember?COOKIE_MAX_AGE:-1;
|
int age = ifRemember?COOKIE_MAX_AGE:-1;
|
||||||
set(response, key, value, null, COOKIE_PATH, age, true);
|
set(response, key, value, null, COOKIE_PATH, age, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 保存
|
* 保存
|
||||||
*
|
*
|
||||||
* @param response
|
* @param response
|
||||||
* @param key
|
* @param key
|
||||||
* @param value
|
* @param value
|
||||||
* @param maxAge
|
* @param maxAge
|
||||||
*/
|
*/
|
||||||
private static void set(HttpServletResponse response, String key, String value, String domain, String path, int maxAge, boolean isHttpOnly) {
|
private static void set(HttpServletResponse response, String key, String value, String domain, String path, int maxAge, boolean isHttpOnly) {
|
||||||
Cookie cookie = new Cookie(key, value);
|
Cookie cookie = new Cookie(key, value);
|
||||||
if (domain != null) {
|
if (domain != null) {
|
||||||
cookie.setDomain(domain);
|
cookie.setDomain(domain);
|
||||||
}
|
}
|
||||||
cookie.setPath(path);
|
cookie.setPath(path);
|
||||||
cookie.setMaxAge(maxAge);
|
cookie.setMaxAge(maxAge);
|
||||||
cookie.setHttpOnly(isHttpOnly);
|
cookie.setHttpOnly(isHttpOnly);
|
||||||
response.addCookie(cookie);
|
response.addCookie(cookie);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询value
|
* 查询value
|
||||||
*
|
*
|
||||||
* @param request
|
* @param request
|
||||||
* @param key
|
* @param key
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static String getValue(HttpServletRequest request, String key) {
|
public static String getValue(HttpServletRequest request, String key) {
|
||||||
Cookie cookie = get(request, key);
|
Cookie cookie = get(request, key);
|
||||||
if (cookie != null) {
|
if (cookie != null) {
|
||||||
return cookie.getValue();
|
return cookie.getValue();
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询Cookie
|
* 查询Cookie
|
||||||
*
|
*
|
||||||
* @param request
|
* @param request
|
||||||
* @param key
|
* @param key
|
||||||
*/
|
*/
|
||||||
private static Cookie get(HttpServletRequest request, String key) {
|
private static Cookie get(HttpServletRequest request, String key) {
|
||||||
Cookie[] arr_cookie = request.getCookies();
|
Cookie[] arr_cookie = request.getCookies();
|
||||||
if (arr_cookie != null && arr_cookie.length > 0) {
|
if (arr_cookie != null && arr_cookie.length > 0) {
|
||||||
for (Cookie cookie : arr_cookie) {
|
for (Cookie cookie : arr_cookie) {
|
||||||
if (cookie.getName().equals(key)) {
|
if (cookie.getName().equals(key)) {
|
||||||
return cookie;
|
return cookie;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除Cookie
|
* 删除Cookie
|
||||||
*
|
*
|
||||||
* @param request
|
* @param request
|
||||||
* @param response
|
* @param response
|
||||||
* @param key
|
* @param key
|
||||||
*/
|
*/
|
||||||
public static void remove(HttpServletRequest request, HttpServletResponse response, String key) {
|
public static void remove(HttpServletRequest request, HttpServletResponse response, String key) {
|
||||||
Cookie cookie = get(request, key);
|
Cookie cookie = get(request, key);
|
||||||
if (cookie != null) {
|
if (cookie != null) {
|
||||||
set(response, key, "", null, COOKIE_PATH, 0, true);
|
set(response, key, "", null, COOKIE_PATH, 0, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package com.xxl.job.admin.core.util;
|
package com.xxl.job.admin.util;
|
||||||
|
|
||||||
import freemarker.ext.beans.BeansWrapper;
|
import freemarker.ext.beans.BeansWrapper;
|
||||||
import freemarker.ext.beans.BeansWrapperBuilder;
|
import freemarker.ext.beans.BeansWrapperBuilder;
|
@ -1,6 +1,6 @@
|
|||||||
package com.xxl.job.admin.core.util;
|
package com.xxl.job.admin.util;
|
||||||
|
|
||||||
import com.xxl.job.admin.core.conf.XxlJobAdminConfig;
|
import com.xxl.job.admin.scheduler.conf.XxlJobAdminConfig;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.core.io.ClassPathResource;
|
import org.springframework.core.io.ClassPathResource;
|
@ -1,4 +1,4 @@
|
|||||||
package com.xxl.job.admin.core.util;
|
package com.xxl.job.admin.util;
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.JsonGenerationException;
|
import com.fasterxml.jackson.core.JsonGenerationException;
|
||||||
import com.fasterxml.jackson.core.JsonParseException;
|
import com.fasterxml.jackson.core.JsonParseException;
|
@ -1,4 +1,4 @@
|
|||||||
package com.xxl.job.admin.core.util;
|
package com.xxl.job.admin.util;
|
||||||
|
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
import java.util.concurrent.ConcurrentMap;
|
import java.util.concurrent.ConcurrentMap;
|
@ -1,42 +1,42 @@
|
|||||||
package com.xxl.job.admin.controller.interceptor;
|
package com.xxl.job.admin.web.interceptor;
|
||||||
|
|
||||||
import com.xxl.job.admin.core.util.FtlUtil;
|
import com.xxl.job.admin.util.FtlUtil;
|
||||||
import com.xxl.job.admin.core.util.I18nUtil;
|
import com.xxl.job.admin.util.I18nUtil;
|
||||||
import jakarta.servlet.http.Cookie;
|
import jakarta.servlet.http.Cookie;
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.web.servlet.AsyncHandlerInterceptor;
|
import org.springframework.web.servlet.AsyncHandlerInterceptor;
|
||||||
import org.springframework.web.servlet.ModelAndView;
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* push cookies to model as cookieMap
|
* push cookies to model as cookieMap
|
||||||
*
|
*
|
||||||
* @author xuxueli 2015-12-12 18:09:04
|
* @author xuxueli 2015-12-12 18:09:04
|
||||||
*/
|
*/
|
||||||
@Component
|
@Component
|
||||||
public class CookieInterceptor implements AsyncHandlerInterceptor {
|
public class CookieInterceptor implements AsyncHandlerInterceptor {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
|
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
|
||||||
ModelAndView modelAndView) throws Exception {
|
ModelAndView modelAndView) throws Exception {
|
||||||
|
|
||||||
// cookie
|
// cookie
|
||||||
if (modelAndView!=null && request.getCookies()!=null && request.getCookies().length>0) {
|
if (modelAndView!=null && request.getCookies()!=null && request.getCookies().length>0) {
|
||||||
HashMap<String, Cookie> cookieMap = new HashMap<String, Cookie>();
|
HashMap<String, Cookie> cookieMap = new HashMap<String, Cookie>();
|
||||||
for (Cookie ck : request.getCookies()) {
|
for (Cookie ck : request.getCookies()) {
|
||||||
cookieMap.put(ck.getName(), ck);
|
cookieMap.put(ck.getName(), ck);
|
||||||
}
|
}
|
||||||
modelAndView.addObject("cookieMap", cookieMap);
|
modelAndView.addObject("cookieMap", cookieMap);
|
||||||
}
|
}
|
||||||
|
|
||||||
// static method
|
// static method
|
||||||
if (modelAndView != null) {
|
if (modelAndView != null) {
|
||||||
modelAndView.addObject("I18nUtil", FtlUtil.generateStaticModel(I18nUtil.class.getName()));
|
modelAndView.addObject("I18nUtil", FtlUtil.generateStaticModel(I18nUtil.class.getName()));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -1,131 +1,131 @@
|
|||||||
package com.xxl.job.admin.controller.interceptor;
|
package com.xxl.job.admin.web.interceptor;
|
||||||
|
|
||||||
import com.xxl.job.admin.controller.annotation.PermissionLimit;
|
import com.xxl.job.admin.annotation.PermissionLimit;
|
||||||
import com.xxl.job.admin.core.model.XxlJobGroup;
|
import com.xxl.job.admin.model.XxlJobGroup;
|
||||||
import com.xxl.job.admin.core.model.XxlJobUser;
|
import com.xxl.job.admin.model.XxlJobUser;
|
||||||
import com.xxl.job.admin.core.util.I18nUtil;
|
import com.xxl.job.admin.util.I18nUtil;
|
||||||
import com.xxl.job.admin.service.impl.LoginService;
|
import com.xxl.job.admin.service.impl.LoginService;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.web.method.HandlerMethod;
|
import org.springframework.web.method.HandlerMethod;
|
||||||
import org.springframework.web.servlet.AsyncHandlerInterceptor;
|
import org.springframework.web.servlet.AsyncHandlerInterceptor;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 权限拦截
|
* 权限拦截
|
||||||
*
|
*
|
||||||
* @author xuxueli 2015-12-12 18:09:04
|
* @author xuxueli 2015-12-12 18:09:04
|
||||||
*/
|
*/
|
||||||
@Component
|
@Component
|
||||||
public class PermissionInterceptor implements AsyncHandlerInterceptor {
|
public class PermissionInterceptor implements AsyncHandlerInterceptor {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private LoginService loginService;
|
private LoginService loginService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
|
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
|
||||||
|
|
||||||
if (!(handler instanceof HandlerMethod)) {
|
if (!(handler instanceof HandlerMethod)) {
|
||||||
return true; // proceed with the next interceptor
|
return true; // proceed with the next interceptor
|
||||||
}
|
}
|
||||||
|
|
||||||
// if need login
|
// if need login
|
||||||
boolean needLogin = true;
|
boolean needLogin = true;
|
||||||
boolean needAdminuser = false;
|
boolean needAdminuser = false;
|
||||||
HandlerMethod method = (HandlerMethod)handler;
|
HandlerMethod method = (HandlerMethod)handler;
|
||||||
PermissionLimit permission = method.getMethodAnnotation(PermissionLimit.class);
|
PermissionLimit permission = method.getMethodAnnotation(PermissionLimit.class);
|
||||||
if (permission!=null) {
|
if (permission!=null) {
|
||||||
needLogin = permission.limit();
|
needLogin = permission.limit();
|
||||||
needAdminuser = permission.adminuser();
|
needAdminuser = permission.adminuser();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (needLogin) {
|
if (needLogin) {
|
||||||
XxlJobUser loginUser = loginService.ifLogin(request, response);
|
XxlJobUser loginUser = loginService.ifLogin(request, response);
|
||||||
if (loginUser == null) {
|
if (loginUser == null) {
|
||||||
response.setStatus(302);
|
response.setStatus(302);
|
||||||
response.setHeader("location", request.getContextPath()+"/toLogin");
|
response.setHeader("location", request.getContextPath()+"/toLogin");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (needAdminuser && loginUser.getRole()!=1) {
|
if (needAdminuser && loginUser.getRole()!=1) {
|
||||||
throw new RuntimeException(I18nUtil.getString("system_permission_limit"));
|
throw new RuntimeException(I18nUtil.getString("system_permission_limit"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// set loginUser, with request
|
// set loginUser, with request
|
||||||
setLoginUser(request, loginUser);
|
setLoginUser(request, loginUser);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true; // proceed with the next interceptor
|
return true; // proceed with the next interceptor
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// -------------------- permission tool --------------------
|
// -------------------- permission tool --------------------
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* set loginUser
|
* set loginUser
|
||||||
*
|
*
|
||||||
* @param request
|
* @param request
|
||||||
* @param loginUser
|
* @param loginUser
|
||||||
*/
|
*/
|
||||||
private static void setLoginUser(HttpServletRequest request, XxlJobUser loginUser){
|
private static void setLoginUser(HttpServletRequest request, XxlJobUser loginUser){
|
||||||
request.setAttribute("loginUser", loginUser);
|
request.setAttribute("loginUser", loginUser);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* get loginUser
|
* get loginUser
|
||||||
*
|
*
|
||||||
* @param request
|
* @param request
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static XxlJobUser getLoginUser(HttpServletRequest request){
|
public static XxlJobUser getLoginUser(HttpServletRequest request){
|
||||||
XxlJobUser loginUser = (XxlJobUser) request.getAttribute("loginUser"); // get loginUser, with request
|
XxlJobUser loginUser = (XxlJobUser) request.getAttribute("loginUser"); // get loginUser, with request
|
||||||
return loginUser;
|
return loginUser;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* valid permission by JobGroup
|
* valid permission by JobGroup
|
||||||
*
|
*
|
||||||
* @param request
|
* @param request
|
||||||
* @param jobGroup
|
* @param jobGroup
|
||||||
*/
|
*/
|
||||||
public static void validJobGroupPermission(HttpServletRequest request, int jobGroup) {
|
public static void validJobGroupPermission(HttpServletRequest request, int jobGroup) {
|
||||||
XxlJobUser loginUser = getLoginUser(request);
|
XxlJobUser loginUser = getLoginUser(request);
|
||||||
if (!loginUser.validPermission(jobGroup)) {
|
if (!loginUser.validPermission(jobGroup)) {
|
||||||
throw new RuntimeException(I18nUtil.getString("system_permission_limit") + "[username="+ loginUser.getUsername() +"]");
|
throw new RuntimeException(I18nUtil.getString("system_permission_limit") + "[username="+ loginUser.getUsername() +"]");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* filter XxlJobGroup by role
|
* filter XxlJobGroup by role
|
||||||
*
|
*
|
||||||
* @param request
|
* @param request
|
||||||
* @param jobGroupList_all
|
* @param jobGroupList_all
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static List<XxlJobGroup> filterJobGroupByRole(HttpServletRequest request, List<XxlJobGroup> jobGroupList_all){
|
public static List<XxlJobGroup> filterJobGroupByRole(HttpServletRequest request, List<XxlJobGroup> jobGroupList_all){
|
||||||
List<XxlJobGroup> jobGroupList = new ArrayList<>();
|
List<XxlJobGroup> jobGroupList = new ArrayList<>();
|
||||||
if (jobGroupList_all!=null && jobGroupList_all.size()>0) {
|
if (jobGroupList_all!=null && jobGroupList_all.size()>0) {
|
||||||
XxlJobUser loginUser = PermissionInterceptor.getLoginUser(request);
|
XxlJobUser loginUser = PermissionInterceptor.getLoginUser(request);
|
||||||
if (loginUser.getRole() == 1) {
|
if (loginUser.getRole() == 1) {
|
||||||
jobGroupList = jobGroupList_all;
|
jobGroupList = jobGroupList_all;
|
||||||
} else {
|
} else {
|
||||||
List<String> groupIdStrs = new ArrayList<>();
|
List<String> groupIdStrs = new ArrayList<>();
|
||||||
if (loginUser.getPermission()!=null && loginUser.getPermission().trim().length()>0) {
|
if (loginUser.getPermission()!=null && loginUser.getPermission().trim().length()>0) {
|
||||||
groupIdStrs = Arrays.asList(loginUser.getPermission().trim().split(","));
|
groupIdStrs = Arrays.asList(loginUser.getPermission().trim().split(","));
|
||||||
}
|
}
|
||||||
for (XxlJobGroup groupItem:jobGroupList_all) {
|
for (XxlJobGroup groupItem:jobGroupList_all) {
|
||||||
if (groupIdStrs.contains(String.valueOf(groupItem.getId()))) {
|
if (groupIdStrs.contains(String.valueOf(groupItem.getId()))) {
|
||||||
jobGroupList.add(groupItem);
|
jobGroupList.add(groupItem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return jobGroupList;
|
return jobGroupList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package com.xxl.job.admin.controller.interceptor;
|
package com.xxl.job.admin.web.interceptor;
|
||||||
|
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
@ -1,4 +1,4 @@
|
|||||||
package com.xxl.job.admin.controller.resolver;
|
package com.xxl.job.admin.web.resolver;
|
||||||
|
|
||||||
import org.springframework.boot.web.server.ErrorPage;
|
import org.springframework.boot.web.server.ErrorPage;
|
||||||
import org.springframework.boot.web.server.ErrorPageRegistrar;
|
import org.springframework.boot.web.server.ErrorPageRegistrar;
|
@ -1,8 +1,8 @@
|
|||||||
package com.xxl.job.admin.controller.resolver;
|
package com.xxl.job.admin.web.resolver;
|
||||||
|
|
||||||
import com.xxl.job.admin.core.exception.XxlJobException;
|
import com.xxl.job.admin.scheduler.exception.XxlJobException;
|
||||||
import com.xxl.job.core.biz.model.ReturnT;
|
import com.xxl.job.core.biz.model.ReturnT;
|
||||||
import com.xxl.job.admin.core.util.JacksonUtil;
|
import com.xxl.job.admin.util.JacksonUtil;
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
Loading…
Reference in new issue