diff --git a/backend/src/main/java/io/metersphere/base/mapper/ext/ExtTaskMapper.xml b/backend/src/main/java/io/metersphere/base/mapper/ext/ExtTaskMapper.xml
index e63de76a0b..a7a4338b43 100644
--- a/backend/src/main/java/io/metersphere/base/mapper/ext/ExtTaskMapper.xml
+++ b/backend/src/main/java/io/metersphere/base/mapper/ext/ExtTaskMapper.xml
@@ -6,7 +6,10 @@
SELECT tt.* FROM (
(select t.id,if(t.scenario_id like "[\"%\"]", t.name,t.scenario_name) as name ,'SCENARIO' as executionModule,t.report_type, ifnull(t2.name,'LOCAL') as actuator, t1.`name` as executor,t.create_time as executionTime, t.trigger_mode as triggerMode ,t.status as executionStatus
from api_scenario_report t left join `user` t1 ON t.user_id = t1.id left join test_resource_pool t2 on t.actuator = t2.id
- where to_days(FROM_UNIXTIME(t.create_time/1000))= to_days(now()) and t.execute_type !='Debug' and t.execute_type !='Marge' and t.project_id= #{request.projectId}
+ where to_days(FROM_UNIXTIME(t.create_time/1000))= to_days(now()) and t.execute_type !='Debug' and t.execute_type !='Marge' and t.project_id in
+
+ #{id}
+
and t.trigger_mode = #{request.triggerMode}
@@ -20,8 +23,12 @@
UNION ALL
(select t.id,t.name,'API' as executionModule, t.report_type, ifnull(t2.name,'LOCAL') as actuator, t1.`name` as executor,t.create_time as executionTime, ifnull(t.trigger_mode,'MANUAL') as triggerMode ,ifnull(t.status,'Saved') as executionStatus
from api_definition_exec_result t left join `user` t1 ON t.user_id = t1.id left join test_resource_pool t2 on t.actuator = t2.id
- where to_days(FROM_UNIXTIME(t.create_time/1000))= to_days(now()) and t.project_id =#{request.projectId}
-
+ where to_days(FROM_UNIXTIME(t.create_time/1000))= to_days(now()) and t.project_id in
+
+ #{id}
+
+
+
and t.trigger_mode = #{request.triggerMode}
@@ -35,7 +42,10 @@
UNION ALL
(select t.id,t.name,'PERFORMANCE' as executionModule,'PERFORMANCE' as report_type, ifnull(t2.name,'LOCAL') as actuator, t1.`name` as executor,t.create_time as executionTime, t.trigger_mode as triggerMode ,t.`status` as executionStatus
from load_test_report t left join `user` t1 ON t.user_id = t1.id left join test_resource_pool t2 on t.test_resource_pool_id = t2.id
- where to_days(FROM_UNIXTIME(t.create_time/1000))= to_days(now()) and t.project_id= #{request.projectId}
+ where to_days(FROM_UNIXTIME(t.create_time/1000))= to_days(now()) and t.project_id in
+
+ #{id}
+
and t.trigger_mode = #{request.triggerMode}
@@ -70,20 +80,32 @@
SELECT count(tt.id) FROM (
(select t.id,t.create_time as executionTime
from api_scenario_report t left join `user` t1 ON t.user_id = t1.id left join test_resource_pool t2 on t.actuator = t2.id
- where to_days(FROM_UNIXTIME(t.create_time/1000))= to_days(now()) and t.execute_type !='Debug' and t.execute_type !='Marge' and t.project_id= #{request.projectId} and t.status not in ("saved","completed","success","error","STOP")
+ where to_days(FROM_UNIXTIME(t.create_time/1000))= to_days(now()) and t.execute_type !='Debug' and t.execute_type !='Marge' and t.project_id in
+
+ #{id}
+
+ and t.status not in ("saved","completed","success","error","STOP")
)
UNION ALL
(select t.id,t.create_time as executionTime
from api_definition_exec_result t left join `user` t1 ON t.user_id = t1.id left join test_resource_pool t2 on t.actuator = t2.id
where to_days(FROM_UNIXTIME(t.create_time/1000))= to_days(now())
and (t.integrated_report_id is null or t.integrated_report_id='null')
- and t.project_id =#{request.projectId}
+ and t.project_id in
+
+ #{id}
+
and t.status not in ("saved","completed","success","error","STOP")
)
UNION ALL
(select t.id,t.create_time as executionTime
from load_test_report t left join `user` t1 ON t.user_id = t1.id left join test_resource_pool t2 on t.test_resource_pool_id = t2.id
- where to_days(FROM_UNIXTIME(t.create_time/1000))= to_days(now()) and t.project_id= #{request.projectId} and t.status not in ("saved","completed","success","error")
+ where to_days(FROM_UNIXTIME(t.create_time/1000))= to_days(now()) and
+ t.project_id in
+
+ #{id}
+
+ and t.status not in ("saved","completed","success","error")
)
)tt ORDER BY tt.executionTime DESC;
diff --git a/backend/src/main/java/io/metersphere/service/CheckPermissionService.java b/backend/src/main/java/io/metersphere/service/CheckPermissionService.java
index 41b908b47d..aae51a5569 100644
--- a/backend/src/main/java/io/metersphere/service/CheckPermissionService.java
+++ b/backend/src/main/java/io/metersphere/service/CheckPermissionService.java
@@ -128,7 +128,8 @@ public class CheckPermissionService {
MSException.throwException(Translator.get("check_owner_review"));
}
}
- public List getOwnerProjects() {
+
+ public List getOwnerProjects() {
Set userRelatedProjectIds = getUserRelatedProjectIds();
if (CollectionUtils.isEmpty(userRelatedProjectIds)) {
return new ArrayList<>(0);
@@ -136,4 +137,17 @@ public class CheckPermissionService {
List projectIds = new ArrayList<>(userRelatedProjectIds);
return extProjectMapper.queryListByIds(projectIds);
}
+
+ public Set getOwnerByUserId(String userId) {
+ UserDTO userDTO = userService.getUserDTO(userId);
+ List groupIds = userDTO.getGroups()
+ .stream()
+ .filter(g -> StringUtils.equals(g.getType(), UserGroupType.PROJECT))
+ .map(Group::getId)
+ .collect(Collectors.toList());
+ return userDTO.getUserGroups().stream()
+ .filter(ur -> groupIds.contains(ur.getGroupId()))
+ .map(UserGroup::getSourceId)
+ .collect(Collectors.toSet());
+ }
}
diff --git a/backend/src/main/java/io/metersphere/task/controller/TaskController.java b/backend/src/main/java/io/metersphere/task/controller/TaskController.java
index d1e5089e10..0bbd4b7d7f 100644
--- a/backend/src/main/java/io/metersphere/task/controller/TaskController.java
+++ b/backend/src/main/java/io/metersphere/task/controller/TaskController.java
@@ -20,6 +20,7 @@ public class TaskController {
@PostMapping("/list/{goPage}/{pageSize}")
public Pager> getTasks(@PathVariable int goPage, @PathVariable int pageSize, @RequestBody TaskCenterRequest request) {
+ request.setProjects(taskService.getOwnerProjectIds(null));
request.setGoPage(goPage);
request.setPageSize(pageSize);
Page