2024-01-03 09:13:22 +08:00
|
|
|
package com.realtime.protection.server.task;
|
|
|
|
|
|
|
|
|
|
import com.realtime.protection.configuration.entity.task.Task;
|
|
|
|
|
import org.apache.ibatis.session.SqlSession;
|
|
|
|
|
import org.apache.ibatis.session.SqlSessionFactory;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
2024-01-03 22:53:02 +08:00
|
|
|
import java.util.List;
|
2024-01-03 09:13:22 +08:00
|
|
|
|
|
|
|
|
@Service
|
|
|
|
|
public class TaskService {
|
|
|
|
|
|
|
|
|
|
private final SqlSessionFactory sqlSessionFactory;
|
2024-01-03 22:53:02 +08:00
|
|
|
private final TaskMapper taskMapper;
|
2024-01-03 09:13:22 +08:00
|
|
|
|
2024-01-03 22:53:02 +08:00
|
|
|
public TaskService(SqlSessionFactory sqlSessionFactory, TaskMapper taskMapper) {
|
2024-01-03 09:13:22 +08:00
|
|
|
this.sqlSessionFactory = sqlSessionFactory;
|
2024-01-03 22:53:02 +08:00
|
|
|
this.taskMapper = taskMapper;
|
2024-01-03 09:13:22 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Integer newTask(Task task) {
|
|
|
|
|
SqlSession session = sqlSessionFactory.openSession(false);
|
|
|
|
|
TaskMapper taskMapper = session.getMapper(TaskMapper.class);
|
|
|
|
|
try {
|
|
|
|
|
taskMapper.newTask(task);
|
|
|
|
|
|
2024-01-03 22:53:02 +08:00
|
|
|
taskMapper.newTaskProtectObjectConcat(task.getTaskId(), task.getProtectObjectIds());
|
2024-01-03 09:13:22 +08:00
|
|
|
|
2024-01-03 22:53:02 +08:00
|
|
|
taskMapper.newTaskStaticRuleConcat(task.getTaskId(), task.getStaticRuleIds());
|
2024-01-03 09:13:22 +08:00
|
|
|
|
|
|
|
|
session.commit();
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
session.rollback();
|
|
|
|
|
throw e;
|
|
|
|
|
} finally {
|
|
|
|
|
session.close();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (task.getTaskId() == null) {
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
return task.getTaskId();
|
|
|
|
|
}
|
2024-01-03 22:53:02 +08:00
|
|
|
|
|
|
|
|
public List<Task> queryTasks(Integer taskStatus,
|
|
|
|
|
String taskType, String taskName, String taskCreator,
|
|
|
|
|
Integer page, Integer pageSize) {
|
|
|
|
|
return taskMapper.queryTasks(taskStatus, taskType, taskName, taskCreator, page, pageSize);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Task queryTask(Integer id) {
|
|
|
|
|
SqlSession session = sqlSessionFactory.openSession(false);
|
|
|
|
|
TaskMapper taskMapper = session.getMapper(TaskMapper.class);
|
|
|
|
|
Task task;
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
task = taskMapper.queryTask(id);
|
|
|
|
|
if (task == null) {
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
task.setProtectObjectIds(taskMapper.queryTaskConcatProtectObjectIds(task.getTaskId()));
|
|
|
|
|
// task.setDynamicRuleIds(taskMapper.queryTaskConcatDynamicRuleIds(task.getTaskId()));
|
|
|
|
|
task.setStaticRuleIds(taskMapper.queryTaskConcatStaticRuleIds(task.getTaskId()));
|
|
|
|
|
|
|
|
|
|
session.commit();
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
session.rollback();
|
|
|
|
|
throw e;
|
|
|
|
|
} finally {
|
|
|
|
|
session.close();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return task;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void updateTask(Task task) {
|
|
|
|
|
SqlSession session = sqlSessionFactory.openSession(false);
|
|
|
|
|
TaskMapper taskMapper = session.getMapper(TaskMapper.class);
|
|
|
|
|
try {
|
|
|
|
|
taskMapper.updateTask(task);
|
|
|
|
|
|
|
|
|
|
taskMapper.clearTaskProtectObjectConcat(task.getTaskId());
|
|
|
|
|
taskMapper.clearTaskConnectedStaticRule(task.getTaskId());
|
|
|
|
|
// taskMapper.clearTaskConnectedDynamicRule(task.getTaskId());
|
|
|
|
|
|
|
|
|
|
if (task.getProtectObjectIds() != null && !task.getProtectObjectIds().isEmpty()) {
|
|
|
|
|
taskMapper.newTaskProtectObjectConcat(task.getTaskId(), task.getProtectObjectIds());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (task.getStaticRuleIds() != null && !task.getStaticRuleIds().isEmpty()) {
|
|
|
|
|
taskMapper.newTaskStaticRuleConcat(task.getTaskId(), task.getStaticRuleIds());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (task.getDynamicRuleIds() != null && !task.getDynamicRuleIds().isEmpty()) {
|
|
|
|
|
taskMapper.newTaskDynamicRuleConcat(task.getTaskId(), task.getDynamicRuleIds());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
session.commit();
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
session.rollback();
|
|
|
|
|
throw e;
|
|
|
|
|
} finally {
|
|
|
|
|
session.close();
|
|
|
|
|
}
|
|
|
|
|
}
|
2024-01-03 09:13:22 +08:00
|
|
|
}
|