refactor(系统设置): 优化任务中心日志记录
This commit is contained in:
parent
bb6556ae4d
commit
c00bf37336
|
@ -15,6 +15,10 @@ ALTER TABLE test_plan_config ADD COLUMN test_planning BIT NOT NULL DEFAULT 0 CO
|
||||||
|
|
||||||
ALTER TABLE api_definition_mock ADD COLUMN update_user VARCHAR(50) COMMENT '更新人';
|
ALTER TABLE api_definition_mock ADD COLUMN update_user VARCHAR(50) COMMENT '更新人';
|
||||||
|
|
||||||
|
ALTER TABLE operation_history MODIFY COLUMN module VARCHAR(100);
|
||||||
|
|
||||||
|
ALTER TABLE operation_log MODIFY COLUMN module VARCHAR(100);
|
||||||
|
|
||||||
-- set innodb lock wait timeout to default
|
-- set innodb lock wait timeout to default
|
||||||
SET SESSION innodb_lock_wait_timeout = DEFAULT;
|
SET SESSION innodb_lock_wait_timeout = DEFAULT;
|
||||||
|
|
||||||
|
|
|
@ -281,11 +281,11 @@ public class ApiTaskCenterService {
|
||||||
extApiReportMapper.updateReportStatus(subList, System.currentTimeMillis(), userId);
|
extApiReportMapper.updateReportStatus(subList, System.currentTimeMillis(), userId);
|
||||||
extApiReportMapper.updateApiCaseStatus(subList);
|
extApiReportMapper.updateApiCaseStatus(subList);
|
||||||
//记录日志
|
//记录日志
|
||||||
saveLog(subList, userId, path, method, module, TaskCenterResourceType.API_CASE.toString());
|
saveLog(subList, userId, path, method, StringUtils.join(module, "_REAL_TIME_API_CASE"), TaskCenterResourceType.API_CASE.toString());
|
||||||
} else if (request.getModuleType().equals(TaskCenterResourceType.API_SCENARIO.toString())) {
|
} else if (request.getModuleType().equals(TaskCenterResourceType.API_SCENARIO.toString())) {
|
||||||
extApiScenarioReportMapper.updateReportStatus(subList, System.currentTimeMillis(), userId);
|
extApiScenarioReportMapper.updateReportStatus(subList, System.currentTimeMillis(), userId);
|
||||||
extApiScenarioReportMapper.updateApiScenario(subList);
|
extApiScenarioReportMapper.updateApiScenario(subList);
|
||||||
saveLog(subList, userId, path, method, module, TaskCenterResourceType.API_SCENARIO.toString());
|
saveLog(subList, userId, path, method, StringUtils.join(module,"_REAL_TIME_API_SCENARIO"), TaskCenterResourceType.API_SCENARIO.toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -66,7 +66,7 @@ public class TaskCenterController {
|
||||||
@CheckOwner(resourceId = "#id", resourceType = "schedule")
|
@CheckOwner(resourceId = "#id", resourceType = "schedule")
|
||||||
public void delete(@PathVariable String moduleType, @PathVariable String id) {
|
public void delete(@PathVariable String moduleType, @PathVariable String id) {
|
||||||
hasPermission(SYSTEM, moduleType);
|
hasPermission(SYSTEM, moduleType);
|
||||||
taskCenterService.delete(id, SessionUtils.getUserId(), "/task/center/system/schedule/delete/", OperationLogModule.SETTING_SYSTEM_TASK_CENTER);
|
taskCenterService.delete(id, moduleType, SessionUtils.getUserId(), "/task/center/system/schedule/delete/", OperationLogModule.SETTING_SYSTEM_TASK_CENTER);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/org/schedule/delete/{moduleType}/{id}")
|
@GetMapping("/org/schedule/delete/{moduleType}/{id}")
|
||||||
|
@ -74,7 +74,7 @@ public class TaskCenterController {
|
||||||
@CheckOwner(resourceId = "#id", resourceType = "schedule")
|
@CheckOwner(resourceId = "#id", resourceType = "schedule")
|
||||||
public void deleteOrg(@PathVariable String moduleType, @PathVariable String id) {
|
public void deleteOrg(@PathVariable String moduleType, @PathVariable String id) {
|
||||||
hasPermission(ORG, moduleType);
|
hasPermission(ORG, moduleType);
|
||||||
taskCenterService.delete(id, SessionUtils.getUserId(), "/task/center/org/schedule/delete/", OperationLogModule.SETTING_ORGANIZATION_TASK_CENTER);
|
taskCenterService.delete(id, moduleType,SessionUtils.getUserId(), "/task/center/org/schedule/delete/", OperationLogModule.SETTING_ORGANIZATION_TASK_CENTER);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/project/schedule/delete/{moduleType}/{id}")
|
@GetMapping("/project/schedule/delete/{moduleType}/{id}")
|
||||||
|
@ -82,7 +82,7 @@ public class TaskCenterController {
|
||||||
@CheckOwner(resourceId = "#id", resourceType = "schedule")
|
@CheckOwner(resourceId = "#id", resourceType = "schedule")
|
||||||
public void deleteProject(@PathVariable String moduleType, @PathVariable String id) {
|
public void deleteProject(@PathVariable String moduleType, @PathVariable String id) {
|
||||||
hasPermission(PROJECT, moduleType);
|
hasPermission(PROJECT, moduleType);
|
||||||
taskCenterService.delete(id, SessionUtils.getUserId(), "/task/center/project/schedule/delete/", OperationLogModule.PROJECT_MANAGEMENT_TASK_CENTER);
|
taskCenterService.delete(id, moduleType,SessionUtils.getUserId(), "/task/center/project/schedule/delete/", OperationLogModule.PROJECT_MANAGEMENT_TASK_CENTER);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/system/schedule/switch/{moduleType}/{id}")
|
@GetMapping("/system/schedule/switch/{moduleType}/{id}")
|
||||||
|
@ -90,7 +90,7 @@ public class TaskCenterController {
|
||||||
@CheckOwner(resourceId = "#id", resourceType = "schedule")
|
@CheckOwner(resourceId = "#id", resourceType = "schedule")
|
||||||
public void enable(@PathVariable String moduleType, @PathVariable String id) {
|
public void enable(@PathVariable String moduleType, @PathVariable String id) {
|
||||||
hasPermission(SYSTEM, moduleType);
|
hasPermission(SYSTEM, moduleType);
|
||||||
taskCenterService.enable(id, SessionUtils.getUserId(), "/task/center/system/schedule/switch/", OperationLogModule.SETTING_SYSTEM_TASK_CENTER);
|
taskCenterService.enable(id, moduleType,SessionUtils.getUserId(), "/task/center/system/schedule/switch/", OperationLogModule.SETTING_SYSTEM_TASK_CENTER);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -99,7 +99,7 @@ public class TaskCenterController {
|
||||||
@CheckOwner(resourceId = "#id", resourceType = "schedule")
|
@CheckOwner(resourceId = "#id", resourceType = "schedule")
|
||||||
public void enableOrg(@PathVariable String moduleType, @PathVariable String id) {
|
public void enableOrg(@PathVariable String moduleType, @PathVariable String id) {
|
||||||
hasPermission(ORG, moduleType);
|
hasPermission(ORG, moduleType);
|
||||||
taskCenterService.enable(id, SessionUtils.getUserId(), "/task/center/org/schedule/switch/", OperationLogModule.SETTING_ORGANIZATION_TASK_CENTER);
|
taskCenterService.enable(id, moduleType,SessionUtils.getUserId(), "/task/center/org/schedule/switch/", OperationLogModule.SETTING_ORGANIZATION_TASK_CENTER);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/project/schedule/switch/{moduleType}/{id}")
|
@GetMapping("/project/schedule/switch/{moduleType}/{id}")
|
||||||
|
@ -107,7 +107,7 @@ public class TaskCenterController {
|
||||||
@CheckOwner(resourceId = "#id", resourceType = "schedule")
|
@CheckOwner(resourceId = "#id", resourceType = "schedule")
|
||||||
public void enableProject(@PathVariable String moduleType, @PathVariable String id) {
|
public void enableProject(@PathVariable String moduleType, @PathVariable String id) {
|
||||||
hasPermission(PROJECT, moduleType);
|
hasPermission(PROJECT, moduleType);
|
||||||
taskCenterService.enable(id, SessionUtils.getUserId(), "/task/center/project/schedule/switch/", OperationLogModule.PROJECT_MANAGEMENT_TASK_CENTER);
|
taskCenterService.enable(id, moduleType,SessionUtils.getUserId(), "/task/center/project/schedule/switch/", OperationLogModule.PROJECT_MANAGEMENT_TASK_CENTER);
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/system/schedule/update/{moduleType}/{id}")
|
@PostMapping("/system/schedule/update/{moduleType}/{id}")
|
||||||
|
@ -115,7 +115,7 @@ public class TaskCenterController {
|
||||||
@CheckOwner(resourceId = "#id", resourceType = "schedule")
|
@CheckOwner(resourceId = "#id", resourceType = "schedule")
|
||||||
public void update(@PathVariable String moduleType, @PathVariable String id, @RequestBody Object cron) {
|
public void update(@PathVariable String moduleType, @PathVariable String id, @RequestBody Object cron) {
|
||||||
hasPermission(SYSTEM, moduleType);
|
hasPermission(SYSTEM, moduleType);
|
||||||
taskCenterService.update(id, cron.toString(), SessionUtils.getUserId(), "/task/center/system/schedule/update/", OperationLogModule.SETTING_SYSTEM_TASK_CENTER);
|
taskCenterService.update(id, moduleType,cron.toString(), SessionUtils.getUserId(), "/task/center/system/schedule/update/", OperationLogModule.SETTING_SYSTEM_TASK_CENTER);
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/org/schedule/update/{moduleType}/{id}")
|
@PostMapping("/org/schedule/update/{moduleType}/{id}")
|
||||||
|
@ -123,7 +123,7 @@ public class TaskCenterController {
|
||||||
@CheckOwner(resourceId = "#id", resourceType = "schedule")
|
@CheckOwner(resourceId = "#id", resourceType = "schedule")
|
||||||
public void updateOrg(@PathVariable String moduleType, @PathVariable String id, @RequestBody Object cron) {
|
public void updateOrg(@PathVariable String moduleType, @PathVariable String id, @RequestBody Object cron) {
|
||||||
hasPermission(ORG, moduleType);
|
hasPermission(ORG, moduleType);
|
||||||
taskCenterService.update(id, cron.toString(), SessionUtils.getUserId(), "/task/center/org/schedule/update/", OperationLogModule.SETTING_ORGANIZATION_TASK_CENTER);
|
taskCenterService.update(id, moduleType,cron.toString(), SessionUtils.getUserId(), "/task/center/org/schedule/update/", OperationLogModule.SETTING_ORGANIZATION_TASK_CENTER);
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/project/schedule/update/{moduleType}/{id}")
|
@PostMapping("/project/schedule/update/{moduleType}/{id}")
|
||||||
|
@ -131,7 +131,7 @@ public class TaskCenterController {
|
||||||
@CheckOwner(resourceId = "#id", resourceType = "schedule")
|
@CheckOwner(resourceId = "#id", resourceType = "schedule")
|
||||||
public void updateProject(@PathVariable String moduleType, @PathVariable String id, @RequestBody Object cron) {
|
public void updateProject(@PathVariable String moduleType, @PathVariable String id, @RequestBody Object cron) {
|
||||||
hasPermission(PROJECT, moduleType);
|
hasPermission(PROJECT, moduleType);
|
||||||
taskCenterService.update(id, cron.toString(), SessionUtils.getUserId(), "/task/center/project/schedule/update/", OperationLogModule.PROJECT_MANAGEMENT_TASK_CENTER);
|
taskCenterService.update(id, moduleType,cron.toString(), SessionUtils.getUserId(), "/task/center/project/schedule/update/", OperationLogModule.PROJECT_MANAGEMENT_TASK_CENTER);
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/system/schedule/batch-enable")
|
@PostMapping("/system/schedule/batch-enable")
|
||||||
|
|
|
@ -1,27 +1,14 @@
|
||||||
package io.metersphere.system.dto.taskcenter.enums;
|
package io.metersphere.system.dto.taskcenter.enums;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author: LAN
|
* @author: LAN
|
||||||
* @date: 2024/1/22 16:41
|
* @date: 2024/1/22 16:41
|
||||||
* @version: 1.0
|
* @version: 1.0
|
||||||
*/
|
*/
|
||||||
public enum ScheduleTagType {
|
public enum ScheduleTagType {
|
||||||
API_IMPORT("API_IMPORT"),
|
API_IMPORT,
|
||||||
API_SCENARIO("API_SCENARIO"),
|
API_SCENARIO,
|
||||||
UI_SCENARIO("UI_TEST"),
|
TEST_PLAN;
|
||||||
LOAD_TEST("LOAD_TEST"),
|
|
||||||
TEST_PLAN("TEST_PLAN");
|
|
||||||
|
|
||||||
private List<String> names;
|
|
||||||
|
|
||||||
ScheduleTagType(String... names) {
|
|
||||||
this.names = List.of(names);
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<String> getNames() {
|
|
||||||
return names;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -189,13 +189,22 @@ public class TaskCenterService {
|
||||||
return organization;
|
return organization;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void delete(String id, String userId, String path, String module) {
|
public void delete(String id,String moduleType, String userId, String path, String module) {
|
||||||
Schedule schedule = checkScheduleExit(id);
|
Schedule schedule = checkScheduleExit(id);
|
||||||
if (ScheduleTagType.API_IMPORT.getNames().contains(schedule.getResourceType())) {
|
String logModule = getLogModule(moduleType, module);
|
||||||
|
if (StringUtils.equals(schedule.getResourceType(), ScheduleTagType.API_IMPORT.name())) {
|
||||||
extSwaggerMapper.deleteByPrimaryKey(schedule.getResourceId());
|
extSwaggerMapper.deleteByPrimaryKey(schedule.getResourceId());
|
||||||
}
|
}
|
||||||
scheduleService.deleteByResourceId(schedule.getResourceId(), schedule.getJob());
|
scheduleService.deleteByResourceId(schedule.getResourceId(), schedule.getJob());
|
||||||
saveLog(List.of(schedule), userId, path, HttpMethodConstants.GET.name(), module, OperationLogType.DELETE.name());
|
saveLog(List.of(schedule), userId, path, HttpMethodConstants.GET.name(), logModule, OperationLogType.DELETE.name());
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String getLogModule(String moduleType, String module) {
|
||||||
|
return switch (ScheduleTagType.valueOf(moduleType)) {
|
||||||
|
case ScheduleTagType.API_IMPORT -> StringUtils.join(module, "_TIME_API_IMPORT");
|
||||||
|
case ScheduleTagType.API_SCENARIO -> StringUtils.join(module, "_TIME_API_SCENARIO");
|
||||||
|
default -> throw new MSException(Translator.get("module_type_error"));
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
private Schedule checkScheduleExit(String id) {
|
private Schedule checkScheduleExit(String id) {
|
||||||
|
@ -206,23 +215,25 @@ public class TaskCenterService {
|
||||||
return schedule;
|
return schedule;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void enable(String id, String userId, String path, String module) {
|
public void enable(String id,String moduleType, String userId, String path, String module) {
|
||||||
Schedule schedule = checkScheduleExit(id);
|
Schedule schedule = checkScheduleExit(id);
|
||||||
schedule.setEnable(!schedule.getEnable());
|
schedule.setEnable(!schedule.getEnable());
|
||||||
scheduleService.editSchedule(schedule);
|
scheduleService.editSchedule(schedule);
|
||||||
scheduleService.addOrUpdateCronJob(schedule, new JobKey(schedule.getKey(), schedule.getJob()),
|
scheduleService.addOrUpdateCronJob(schedule, new JobKey(schedule.getKey(), schedule.getJob()),
|
||||||
new TriggerKey(schedule.getKey(), schedule.getJob()), BaseScheduleJob.class);
|
new TriggerKey(schedule.getKey(), schedule.getJob()), BaseScheduleJob.class);
|
||||||
apiScheduleNoticeService.sendScheduleNotice(schedule, userId);
|
apiScheduleNoticeService.sendScheduleNotice(schedule, userId);
|
||||||
saveLog(List.of(schedule), userId, path, HttpMethodConstants.GET.name(), module, OperationLogType.UPDATE.name());
|
String logModule = getLogModule(moduleType, module);
|
||||||
|
saveLog(List.of(schedule), userId, path, HttpMethodConstants.GET.name(), logModule, OperationLogType.UPDATE.name());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void update(String id, String cron, String userId, String path, String module) {
|
public void update(String id,String moduleType, String cron, String userId, String path, String module) {
|
||||||
Schedule schedule = checkScheduleExit(id);
|
Schedule schedule = checkScheduleExit(id);
|
||||||
schedule.setValue(cron);
|
schedule.setValue(cron);
|
||||||
scheduleService.editSchedule(schedule);
|
scheduleService.editSchedule(schedule);
|
||||||
scheduleService.addOrUpdateCronJob(schedule, new JobKey(schedule.getKey(), schedule.getJob()),
|
scheduleService.addOrUpdateCronJob(schedule, new JobKey(schedule.getKey(), schedule.getJob()),
|
||||||
new TriggerKey(schedule.getKey(), schedule.getJob()), schedule.getJob().getClass());
|
new TriggerKey(schedule.getKey(), schedule.getJob()), schedule.getJob().getClass());
|
||||||
saveLog(List.of(schedule), userId, path, HttpMethodConstants.POST.name(), module, OperationLogType.UPDATE.name());
|
String logModule = getLogModule(moduleType, module);
|
||||||
|
saveLog(List.of(schedule), userId, path, HttpMethodConstants.POST.name(), logModule, OperationLogType.UPDATE.name());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void saveLog(List<Schedule> scheduleList, String userId, String path, String method, String module, String operationType) {
|
private void saveLog(List<Schedule> scheduleList, String userId, String path, String method, String module, String operationType) {
|
||||||
|
@ -293,7 +304,8 @@ public class TaskCenterService {
|
||||||
});
|
});
|
||||||
SqlSessionUtils.closeSqlSession(sqlSession, sqlSessionFactory);
|
SqlSessionUtils.closeSqlSession(sqlSession, sqlSessionFactory);
|
||||||
apiScheduleNoticeService.batchSendNotice(projectId, scheduleList, userMapper.selectByPrimaryKey(userId), enable ? NoticeConstants.Event.OPEN : NoticeConstants.Event.CLOSE);
|
apiScheduleNoticeService.batchSendNotice(projectId, scheduleList, userMapper.selectByPrimaryKey(userId), enable ? NoticeConstants.Event.OPEN : NoticeConstants.Event.CLOSE);
|
||||||
saveLog(scheduleList, userId, path, HttpMethodConstants.POST.name(), module, OperationLogType.UPDATE.name());
|
String logModule = getLogModule(request.getScheduleTagType(), module);
|
||||||
|
saveLog(scheduleList, userId, path, HttpMethodConstants.POST.name(), logModule, OperationLogType.UPDATE.name());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void batchEnableProject(TaskCenterScheduleBatchRequest request, String userId, String projectId, String path, String module, boolean enable) {
|
public void batchEnableProject(TaskCenterScheduleBatchRequest request, String userId, String projectId, String path, String module, boolean enable) {
|
||||||
|
|
|
@ -164,10 +164,6 @@ class TaskCenterScheduleControllerTests extends BaseTest {
|
||||||
this.requestGet("/task/center/system/schedule/delete/" + "API_IMPORT/" + scheduleId);
|
this.requestGet("/task/center/system/schedule/delete/" + "API_IMPORT/" + scheduleId);
|
||||||
Schedule schedule = scheduleMapper.selectByPrimaryKey(scheduleId);
|
Schedule schedule = scheduleMapper.selectByPrimaryKey(scheduleId);
|
||||||
Assertions.assertNull(schedule);
|
Assertions.assertNull(schedule);
|
||||||
if (ScheduleTagType.API_IMPORT.getNames().contains(oldSchedule.getType())) {
|
|
||||||
int count = extSwaggerMapper.selectByPrimaryKey(oldSchedule.getResourceId());
|
|
||||||
Assertions.assertTrue(count > 0);
|
|
||||||
}
|
|
||||||
this.requestGet("/task/center/org/schedule/delete/" + "API_IMPORT/" + "4");
|
this.requestGet("/task/center/org/schedule/delete/" + "API_IMPORT/" + "4");
|
||||||
this.requestGet("/task/center/project/schedule/delete/" + "API_SCENARIO/" + "2");
|
this.requestGet("/task/center/project/schedule/delete/" + "API_SCENARIO/" + "2");
|
||||||
this.requestGet("/task/center/system/schedule/delete/" + "API_SCENARIO/" + "schedule-121", ERROR_REQUEST_MATCHER);
|
this.requestGet("/task/center/system/schedule/delete/" + "API_SCENARIO/" + "schedule-121", ERROR_REQUEST_MATCHER);
|
||||||
|
|
Loading…
Reference in New Issue