Skip to content

Commit d71e69a

Browse files
committed
refactor(xxl-job): 优化日志页面 JobGroup 和 JobId 的处理逻辑
- 在 index 方法中添加 jobGroup 参数,优化任务组筛选逻辑 - 调整模板和脚本,使用 URL 参数替代异步请求获取任务列表 - 重构部分代码结构,提高可读性和维护性
1 parent 5429455 commit d71e69a

File tree

3 files changed

+44
-53
lines changed

3 files changed

+44
-53
lines changed

xxl-job-admin/src/main/java/com/xxl/job/admin/controller/biz/JobLogController.java

Lines changed: 33 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -50,41 +50,56 @@ public class JobLogController {
5050
public XxlJobLogMapper xxlJobLogMapper;
5151

5252
@RequestMapping
53-
public String index(HttpServletRequest request, Model model, @RequestParam(value = "jobId", required = false, defaultValue = "0") Integer jobId) {
53+
public String index(HttpServletRequest request, Model model,
54+
@RequestParam(value = "jobGroup", required = false, defaultValue = "0") Integer jobGroup,
55+
@RequestParam(value = "jobId", required = false, defaultValue = "0") Integer jobId) {
5456

55-
// 执行器列表
57+
// find jobGroup
5658
List<XxlJobGroup> jobGroupListTotal = xxlJobGroupMapper.findAll();
57-
58-
// filter group
59+
// filter jobGroup
5960
List<XxlJobGroup> jobGroupList = JobInfoController.filterJobGroupByPermission(request, jobGroupListTotal);
6061
if (jobGroupList==null || jobGroupList.isEmpty()) {
6162
throw new XxlJobException(I18nUtil.getString("jobgroup_empty"));
6263
}
63-
64+
// write jobGroup
6465
model.addAttribute("JobGroupList", jobGroupList);
6566

66-
// 任务
67+
// parse jobId、jobGroup
6768
if (jobId > 0) {
6869
XxlJobInfo jobInfo = xxlJobInfoMapper.loadById(jobId);
6970
if (jobInfo == null) {
7071
throw new RuntimeException(I18nUtil.getString("jobinfo_field_id") + I18nUtil.getString("system_unvalid"));
7172
}
73+
jobGroup = jobInfo.getJobGroup();
74+
} else if (jobGroup > 0){
75+
jobId = 0;
76+
}
77+
jobGroup = jobGroup > 0 ? jobGroup : jobGroupList.get(0).getId();
78+
// valid permission
79+
JobInfoController.validJobGroupPermission(request, jobGroup);
7280

73-
model.addAttribute("jobInfo", jobInfo);
81+
// find jobList
82+
List<XxlJobInfo> jobInfoList = xxlJobInfoMapper.getJobsByGroup(jobGroup);
7483

75-
// valid permission
76-
JobInfoController.validJobGroupPermission(request, jobInfo.getJobGroup());
77-
}
84+
// write
85+
model.addAttribute("jobInfoList", jobInfoList);
86+
model.addAttribute("jobGroup", jobGroup);
87+
model.addAttribute("jobId", jobId);
7888

7989
return "joblog/joblog.index";
8090
}
8191

82-
@RequestMapping("/getJobsByGroup")
92+
/*@RequestMapping("/getJobsByGroup")
8393
@ResponseBody
84-
public ReturnT<List<XxlJobInfo>> getJobsByGroup(@RequestParam("jobGroup") int jobGroup){
94+
public ReturnT<List<XxlJobInfo>> getJobsByGroup(HttpServletRequest request, @RequestParam("jobGroup") int jobGroup){
95+
96+
// valid permission
97+
JobInfoController.validJobGroupPermission(request, jobGroup);
98+
99+
// query
85100
List<XxlJobInfo> list = xxlJobInfoMapper.getJobsByGroup(jobGroup);
86101
return ReturnT.ofSuccess(list);
87-
}
102+
}*/
88103

89104
@RequestMapping("/pageList")
90105
@ResponseBody
@@ -209,7 +224,7 @@ private String filter(String originData){
209224

210225
@RequestMapping("/logKill")
211226
@ResponseBody
212-
public ReturnT<String> logKill(@RequestParam("id") int id){
227+
public ReturnT<String> logKill(HttpServletRequest request, @RequestParam("id") int id){
213228
// base check
214229
XxlJobLog log = xxlJobLogMapper.load(id);
215230
XxlJobInfo jobInfo = xxlJobInfoMapper.loadById(log.getJobId());
@@ -220,6 +235,9 @@ public ReturnT<String> logKill(@RequestParam("id") int id){
220235
return new ReturnT<String>(500, I18nUtil.getString("joblog_kill_log_limit"));
221236
}
222237

238+
// valid JobGroup permission
239+
JobInfoController.validJobGroupPermission(request, jobInfo.getJobGroup());
240+
223241
// request of kill
224242
ReturnT<String> runResult = null;
225243
try {
@@ -247,7 +265,7 @@ public ReturnT<String> clearLog(HttpServletRequest request,
247265
@RequestParam("jobGroup") int jobGroup,
248266
@RequestParam("jobId") int jobId,
249267
@RequestParam("type") int type){
250-
// valid permission
268+
// valid JobGroup permission
251269
JobInfoController.validJobGroupPermission(request, jobGroup);
252270

253271
// opt

xxl-job-admin/src/main/resources/static/js/joblog.index.1.js

Lines changed: 5 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,11 @@
11
$(function() {
22

3-
// jobGroup change, job list init and select
4-
$("#jobGroup").on("change", function () {
5-
var jobGroup = $(this).children('option:selected').val();
6-
$.ajax({
7-
type : 'POST',
8-
async: false, // async, avoid js invoke pagelist before jobId data init
9-
url : base_url + '/joblog/getJobsByGroup',
10-
data : {"jobGroup":jobGroup},
11-
dataType : "json",
12-
success : function(data){
13-
if (data.code == 200) {
14-
$("#jobId").html( '<option value="0" >'+ I18n.system_all +'</option>' );
15-
$.each(data.content, function (n, value) {
16-
$("#jobId").append('<option value="' + value.id + '" >' + value.jobDesc + '</option>');
17-
});
18-
if ($("#jobId").attr("paramVal")){
19-
$("#jobId").find("option[value='" + $("#jobId").attr("paramVal") + "']").attr("selected",true);
20-
}
21-
} else {
22-
layer.open({
23-
title: I18n.system_tips ,
24-
btn: [ I18n.system_ok ],
25-
content: (data.msg || I18n.system_api_error ),
26-
icon: '2'
27-
});
28-
}
29-
},
30-
});
3+
// jobGroup change
4+
$('#jobGroup').on('change', function(){
5+
//reload
6+
var jobGroup = $('#jobGroup').val();
7+
window.location.href = base_url + "/joblog?jobGroup=" + jobGroup;
318
});
32-
if ($("#jobGroup").attr("paramVal")){
33-
$("#jobGroup").find("option[value='" + $("#jobGroup").attr("paramVal") + "']").attr("selected",true);
34-
$("#jobGroup").change();
35-
}
369

3710
// filter Time
3811
var rangesConf = {};

xxl-job-admin/src/main/resources/templates/joblog/joblog.index.ftl

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,21 +29,21 @@
2929
<div class="col-xs-2">
3030
<div class="input-group">
3131
<span class="input-group-addon">${I18n.jobinfo_field_jobgroup}</span>
32-
<select class="form-control" id="jobGroup" paramVal="<#if jobInfo?exists>${jobInfo.jobGroup}</#if>" >
33-
<#--<#if xxl_sso_user.roleList?? && xxl_sso_user.roleList?seq_contains("ADMIN") >
34-
<option value="0" >${I18n.system_all}</option> &lt;#&ndash; 仅管理员支持查询全部;普通用户仅支持查询有权限的 jobGroup &ndash;&gt;
35-
</#if>-->
32+
<select class="form-control" id="jobGroup" >
3633
<#list JobGroupList as group>
37-
<option value="${group.id}" >${group.title}</option>
34+
<option value="${group.id}" <#if jobGroup==group.id>selected</#if> >${group.title}</option>
3835
</#list>
3936
</select>
4037
</div>
4138
</div>
4239
<div class="col-xs-2">
4340
<div class="input-group">
4441
<span class="input-group-addon">${I18n.jobinfo_job}</span>
45-
<select class="form-control" id="jobId" paramVal="<#if jobInfo?exists>${jobInfo.id}</#if>" >
42+
<select class="form-control" id="jobId" >
4643
<option value="0" >${I18n.system_all}</option>
44+
<#list jobInfoList as jobItem>
45+
<option value="${jobItem.id}" <#if jobId==jobItem.id>selected</#if> >${jobItem.jobDesc}</option>
46+
</#list>
4747
</select>
4848
</div>
4949
</div>

0 commit comments

Comments
 (0)