1、增加退回任务通知接口

This commit is contained in:
PushM
2024-06-24 16:01:19 +08:00
parent 8ed4903ae3
commit 31c0c31e63
7 changed files with 225 additions and 43 deletions

View File

@@ -148,5 +148,9 @@ public class Task {
@Schema(description = "日志表中到期时间", example = "", accessMode = Schema.AccessMode.READ_ONLY)
private LocalDateTime expireTime;
@JsonProperty("audit_info")
@Schema(description = "审核意见", example = "审核不同意", accessMode = Schema.AccessMode.READ_ONLY)
private String auditInfo;
}

View File

@@ -295,7 +295,7 @@ public class TaskController implements TaskControllerApi {
@Override
@PostMapping("/auditInfo/{ids}")
public ResponseResult updateAuditInfo(@PathVariable List<Integer> ids,
public ResponseResult updateAuditInfo(@PathVariable List<Long> ids,
@RequestBody Map<String, String> auditInfo) {
if (auditInfo.get("auditInfo") == null || auditInfo.get("auditInfo").isEmpty()) {
return ResponseResult.ok();
@@ -370,4 +370,13 @@ public class TaskController implements TaskControllerApi {
.setData("commands", taskCommandInfos);
}
@Override
@GetMapping("/auditinfo/alert/{userid}")
public ResponseResult auditInfoNotification(@PathVariable String userId){
return ResponseResult.ok()
.setData("success", true)
.setData("alert", taskService.auditInfoNotification(userId));
}
}

View File

@@ -650,7 +650,7 @@ public interface TaskControllerApi {
}
)
@PostMapping("/auditInfo/{ids}")
ResponseResult updateAuditInfo(@PathVariable List<Integer> ids,
ResponseResult updateAuditInfo(@PathVariable List<Long> ids,
@RequestBody Map<String, String> auditInfo);
@@ -822,4 +822,24 @@ public interface TaskControllerApi {
)
@GetMapping("/push")
ResponseResult pushWhiteList();
@Operation(
summary = "查询用户下未通知的任务数量",
description = "接收用户id返回所有该用户下审核退回且wei通知的任务数量",
responses = {
@io.swagger.v3.oas.annotations.responses.ApiResponse(
description = "返回是否成功",
content = @Content(
mediaType = "application/json",
schema = @Schema(implementation = ResponseResult.class)
)
)
},
parameters = {
@Parameter(name = "用户id", description = "用户的id", example = "0000148"),
}
)
@GetMapping("/auditinfo/alert/{userid}")
ResponseResult auditInfoNotification(@PathVariable String userId);
}

View File

@@ -92,7 +92,7 @@ public interface TaskMapper {
List<Integer> queryAuditStatusByIds(@Param("idWithAuditStatusBatch") Map<Integer, Integer> idsWithAuditStatusMap);
Boolean updateAuditInfo(@Param("ids")List<Integer> ids, @Param("auditInfo")String auditInfo);
Boolean updateAuditInfo(@Param("ids")List<Long> ids, @Param("auditInfo")String auditInfo);
String queryAuditInfo(Integer id);
@@ -128,4 +128,6 @@ public interface TaskMapper {
String queryEventTypeDepartment(String eventType);
String queryEventTypeAct(String eventType);
List<Task> queryAuditInfoNotification(String userId , Integer auditStatus);
}

View File

@@ -520,7 +520,7 @@ public class TaskService {
return taskMapper.queryAuditStatusByIds(idsWithAuditStatusMap);
}
public Boolean updateAuditInfo(List<Integer> ids, String auditInfo) {
public Boolean updateAuditInfo(List<Long> ids, String auditInfo) {
return taskMapper.updateAuditInfo(ids, auditInfo);
}
@@ -621,4 +621,8 @@ public class TaskService {
}
public List<Task> auditInfoNotification(String userId) {
return taskMapper.queryAuditInfoNotification(userId,AuditStatusEnum.RETURNED.getNum());
}
}

View File

@@ -256,7 +256,9 @@
</update>
<update id="updateAuditInfo">
UPDATE t_task
SET task_audit_info = #{auditInfo}
SET
task_audit_info = #{auditInfo},
is_need_notification = 1
WHERE task_id IN
<foreach collection="ids" item="id" open="(" separator="," close=")">
#{id}
@@ -678,4 +680,40 @@
dict_type = 'event_type'
AND dict_value = #{eventType}
</select>
<resultMap id="taskAuditMap" type="com.realtime.protection.configuration.entity.task.Task">
<id column="task_id" property="taskId"/>
<result column="task_name" property="taskName"/>
<result column="task_type" property="taskType"/>
<result column="task_act" property="taskAct"/>
<result column="task_range" property="taskRange"/>
<result column="task_status" property="taskStatus"/>
<result column="task_audit_status" property="taskAuditStatus"/>
<result column="task_start_time" property="taskStartTime"/>
<result column="task_end_time" property="taskEndTime"/>
<result column="task_create_username" property="taskCreateUsername"/>
<result column="task_create_depart" property="taskCreateDepart"/>
<result column="task_create_userid" property="taskCreateUserId"/>
<result column="task_audit_username" property="auditUserName"/>
<result column="task_audit_userid" property="auditUserId"/>
<result column="task_audit_depart" property="auditUserDepart"/>
<result column="task_display_id" property="taskDisplayId"/>
<result column="task_audit_info" property="auditInfo" />
</resultMap>
<select id="queryAuditInfoNotification" resultMap="taskAuditMap">
SELECT * from t_task
WHERE
task_create_userid = #{userId}
AND task_audit_status = #{auditStatus}
AND is_need_notification = 1
</select>
</mapper>

View File

@@ -24,6 +24,7 @@ import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.dao.DataIntegrityViolationException;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap;
@@ -148,7 +149,7 @@ class TaskServiceTest extends ProtectionApplicationTests {
//
List<Task> tasks = taskService.queryTasks(null, null, null, null, null, null, null, null, null,null,null,null,null,1, 10);
tasks.forEach(task -> System.out.println(task));
Integer tasksnum = taskService.queryTaskTotalNum(null, null, "", "", null, "", "", "", "上述",null,null,null,null);
Integer tasksnum = taskService.queryTaskTotalNum(null, null, "", "", null, "", "", "", "上述",null, String.valueOf(LocalDate.now()),null,null);
System.out.println(tasksnum);
//
// tasks = taskService.queryTasks(0, null, null, null, null,null, null, null, null, 1, 10);
@@ -237,48 +238,52 @@ class TaskServiceTest extends ProtectionApplicationTests {
@Test
void testStartStaticTask() throws DorisStartException {
for (int j = 0; j < 1; j++) {
List<Integer> staticRuleIds = new ArrayList<>();
for (int i = 0; i < 10000; i++) {
StaticRuleObject staticRuleTest = new StaticRuleObject();
staticRuleTest.setStaticRuleName("test_st3aticrule" + i);
staticRuleTest.setStaticRuleCreateUsername("NSADD管理员");
staticRuleTest.setStaticRuleCreateDepart("组织树");
staticRuleTest.setStaticRuleCreateUserId(22222222);
StaticRuleObject staticRuleTest = new StaticRuleObject();
staticRuleTest.setStaticRuleName("test_staticrule");
staticRuleTest.setStaticRuleCreateUsername("NSADD管理员");
staticRuleTest.setStaticRuleCreateDepart("组织树");
staticRuleTest.setStaticRuleCreateUserId(22222222);
staticRuleTest.setStaticRuleSip("32.33.3.1");
staticRuleTest.setStaticRuleDip("2.2.3.2");
staticRuleTest.setStaticRuleSport(i);
staticRuleTest.setStaticRuleProtocol("6");
staticRuleService.newStaticRuleObject(staticRuleTest);
staticRuleIds.add(staticRuleTest.getStaticRuleId());
staticRuleService.updateAuditStatus(staticRuleTest.getStaticRuleId(), 2, "NSADD管理员", 1111111, "组织树");
}
staticRuleTest.setStaticRuleSip("32.2.3.1");
staticRuleTest.setStaticRuleDip("2.2.3.2");
staticRuleTest.setStaticRuleSport(80);
staticRuleTest.setStaticRuleProtocol("6");
staticRuleService.newStaticRuleObject(staticRuleTest);
// staticRuleIds.add(staticRuleTest.getStaticRuleId());
staticRuleService.updateAuditStatus(staticRuleTest.getStaticRuleId(), 2, "NSADD管理员", 1111111, "组织树");
Task task = new Task();
task.setTaskName("静态task测试-10000指令"+j);
LocalDateTime taskStartTime = LocalDateTime.now().plusMinutes(1);
LocalDateTime taskEndTime = LocalDateTime.now().plusYears(1);
task.setTaskStartTime(taskStartTime);
task.setTaskEndTime(taskEndTime);
task.setTaskAct("23");
task.setTaskType(1);
task.setTaskRange("1009");
task.setEventType("泛洪型DDOS");
task.setTaskCreateUserId(111111);
task.setTaskCreateUsername("xxx管理员");
task.setTaskCreateDepart("xxx");
task.setStaticRuleIds(staticRuleIds);
Long taskId = taskService.newTask(task);
taskService.changeTaskAuditStatus(taskId, 2, "NSADD管理员", "1111111", "组织树");
stateChangeService.changeState(2, taskId, false);
}
Task task = new Task();
task.setTaskName("静态task测试s");
LocalDateTime taskStartTime = LocalDateTime.now().plusMinutes(1);
LocalDateTime taskEndTime = LocalDateTime.now().plusYears(1);
task.setTaskStartTime(taskStartTime);
task.setTaskEndTime(taskEndTime);
task.setTaskAct("23");
task.setTaskType(1);
task.setTaskRange("1007");
task.setTaskCreateUserId(111111);
task.setTaskCreateUsername("xxx管理员");
task.setTaskCreateDepart("xxx");
task.setStaticRuleIds(List.of(staticRuleTest.getStaticRuleId()));
Long taskId = taskService.newTask(task);
taskService.changeTaskAuditStatus(taskId, 2, "NSADD管理员", "1111111", "组织树");
stateChangeService.changeState(2, taskId, false);
// System.out.println(commandService.queryCommandInfos(taskId, null, null, null, null, 1, 5));
}
@@ -385,4 +390,104 @@ class TaskServiceTest extends ProtectionApplicationTests {
}
@Test
void testQueryTask() throws DorisStartException {
// task/44279/running/2
stateChangeService.changeState(2, 44279L, false);
}
@DSTransactional
@Test
void testStartStaticTask_command() throws DorisStartException {
for (int j = 0; j < 1; j++) {
List<Integer> staticRuleIds = new ArrayList<>();
staticRuleService.queryStaticRule(
null, null, null, null, null,null, null, 2,null,null,1, 39999)
.forEach(staticRuleObject -> staticRuleIds.add(staticRuleObject.getStaticRuleId()));
HashMap<Integer, Integer> map = new HashMap<>();
// for (Integer staticRuleId : staticRuleIds) {
// map.put(staticRuleId, 2);
// }
// staticRuleService.updateAuditStatusBatch(map);
Task task = new Task();
task.setTaskName("指令生成性能测试任务-2w-0619");
LocalDateTime taskStartTime = LocalDateTime.now().plusMinutes(1);
LocalDateTime taskEndTime = LocalDateTime.now().plusYears(1);
task.setTaskStartTime(taskStartTime);
task.setTaskEndTime(taskEndTime);
task.setTaskAct("23");
task.setTaskType(1);
task.setTaskRange("1009");
task.setEventType("网络后门");
task.setTaskCreateUserId(111111);
task.setTaskCreateUsername("NSADD管理员");
task.setTaskCreateDepart("一室");
task.setStaticRuleIds(staticRuleIds);
Long taskId = taskService.newTask(task);
System.out.println(staticRuleIds.size());
System.out.println(taskId);
taskService.changeTaskAuditStatus(taskId, 2, "NSADD管理员", "1111111", "组织树");
stateChangeService.changeState(2, taskId, false);
}
// System.out.println(commandService.queryCommandInfos(taskId, null, null, null, null, 1, 5));
}
@Test
void testNotificate(){
List<Integer> staticRuleIds = new ArrayList<>();
staticRuleService.queryStaticRule(
null, null, null, null, null,null, null, 2,null,null,1, 1)
.forEach(staticRuleObject -> staticRuleIds.add(staticRuleObject.getStaticRuleId()));
HashMap<Integer, Integer> map = new HashMap<>();
// for (Integer staticRuleId : staticRuleIds) {
// map.put(staticRuleId, 2);
// }
// staticRuleService.updateAuditStatusBatch(map);
Task task = new Task();
task.setTaskName("测试用户审核退回提醒");
LocalDateTime taskStartTime = LocalDateTime.now().plusMinutes(1);
LocalDateTime taskEndTime = LocalDateTime.now().plusYears(1);
task.setTaskStartTime(taskStartTime);
task.setTaskEndTime(taskEndTime);
task.setTaskAct("23");
task.setTaskType(1);
task.setTaskRange("1009");
task.setEventType("网络后门");
task.setTaskCreateUserId(12345);
task.setTaskCreateUsername("NSADD管理员");
task.setTaskCreateDepart("一室");
task.setStaticRuleIds(staticRuleIds);
Long taskId = taskService.newTask(task);
System.out.println(staticRuleIds.size());
System.out.println(taskId);
taskService.changeTaskAuditStatus(taskId, 1, "NSADD管理员", "123", "组织树");
taskService.updateAuditInfo(List.of(taskId),"审核不通过,拒绝");
List<Task> tasks = taskService.auditInfoNotification("12345");
System.out.println(tasks);
assert !tasks.isEmpty();
}
}