疯狂的狮子li
2023-03-24 53cb1c801fff002705c517e4b925ff560dde6af5
ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobLogController.java
@@ -1,7 +1,7 @@
package com.xxl.job.admin.controller;
import com.xxl.job.admin.core.complete.XxlJobCompleter;
import com.xxl.job.admin.core.exception.XxlJobException;
import com.xxl.job.admin.core.complete.XxlJobCompleter;
import com.xxl.job.admin.core.model.XxlJobGroup;
import com.xxl.job.admin.core.model.XxlJobInfo;
import com.xxl.job.admin.core.model.XxlJobLog;
@@ -60,7 +60,7 @@
            throw new XxlJobException(I18nUtil.getString("jobgroup_empty"));
        }
        model.addAttribute("JobGroupList" , jobGroupList);
        model.addAttribute("JobGroupList", jobGroupList);
        // 任务
        if (jobId > 0) {
@@ -69,7 +69,7 @@
                throw new RuntimeException(I18nUtil.getString("jobinfo_field_id") + I18nUtil.getString("system_unvalid"));
            }
            model.addAttribute("jobInfo" , jobInfo);
            model.addAttribute("jobInfo", jobInfo);
            // valid permission
            JobInfoController.validPermission(request, jobInfo.getJobGroup());
@@ -112,9 +112,9 @@
        // package result
        Map<String, Object> maps = new HashMap<String, Object>();
        maps.put("recordsTotal" , list_count);        // 总记录数
        maps.put("recordsFiltered" , list_count);    // 过滤后的总记录数
        maps.put("data" , list);                    // 分页列表
        maps.put("recordsTotal", list_count);        // 总记录数
        maps.put("recordsFiltered", list_count);    // 过滤后的总记录数
        maps.put("data", list);                    // 分页列表
        return maps;
    }
@@ -128,24 +128,28 @@
            throw new RuntimeException(I18nUtil.getString("joblog_logid_unvalid"));
        }
        model.addAttribute("triggerCode" , jobLog.getTriggerCode());
        model.addAttribute("handleCode" , jobLog.getHandleCode());
        model.addAttribute("executorAddress" , jobLog.getExecutorAddress());
        model.addAttribute("triggerTime" , jobLog.getTriggerTime().getTime());
        model.addAttribute("logId" , jobLog.getId());
        model.addAttribute("triggerCode", jobLog.getTriggerCode());
        model.addAttribute("handleCode", jobLog.getHandleCode());
        model.addAttribute("logId", jobLog.getId());
        return "joblog/joblog.detail";
    }
    @RequestMapping("/logDetailCat")
    @ResponseBody
    public ReturnT<LogResult> logDetailCat(String executorAddress, long triggerTime, long logId, int fromLineNum) {
    public ReturnT<LogResult> logDetailCat(long logId, int fromLineNum) {
        try {
            ExecutorBiz executorBiz = XxlJobScheduler.getExecutorBiz(executorAddress);
            ReturnT<LogResult> logResult = executorBiz.log(new LogParam(triggerTime, logId, fromLineNum));
            // valid
            XxlJobLog jobLog = xxlJobLogDao.load(logId);   // todo, need to improve performance
            if (jobLog == null) {
                return new ReturnT<LogResult>(ReturnT.FAIL_CODE, I18nUtil.getString("joblog_logid_unvalid"));
            }
            // log cat
            ExecutorBiz executorBiz = XxlJobScheduler.getExecutorBiz(jobLog.getExecutorAddress());
            ReturnT<LogResult> logResult = executorBiz.log(new LogParam(jobLog.getTriggerTime().getTime(), logId, fromLineNum));
            // is end
            if (logResult.getContent() != null && logResult.getContent().getFromLineNum() > logResult.getContent().getToLineNum()) {
                XxlJobLog jobLog = xxlJobLogDao.load(logId);
                if (jobLog.getHandleCode() > 0) {
                    logResult.getContent().setEnd(true);
                }