|
@@ -8,8 +8,10 @@ import cn.iselab.mooctest.site.web.data.CaseBlockVO;
|
|
|
import cn.iselab.mooctest.site.web.data.TaskVO;
|
|
import cn.iselab.mooctest.site.web.data.TaskVO;
|
|
|
import cn.iselab.mooctest.site.web.data.wrapper.*;
|
|
import cn.iselab.mooctest.site.web.data.wrapper.*;
|
|
|
import cn.iselab.mooctest.site.web.exception.HttpBadRequestException;
|
|
import cn.iselab.mooctest.site.web.exception.HttpBadRequestException;
|
|
|
|
|
+import cn.iselab.mooctest.site.web.exception.HttpForbiddenException;
|
|
|
import cn.iselab.mooctest.site.web.logic.BaseLogic;
|
|
import cn.iselab.mooctest.site.web.logic.BaseLogic;
|
|
|
import cn.iselab.mooctest.site.web.logic.TaskLogic;
|
|
import cn.iselab.mooctest.site.web.logic.TaskLogic;
|
|
|
|
|
+import org.apache.commons.collections.CollectionUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
@@ -143,38 +145,64 @@ public class TaskLogicImpl extends BaseLogic implements TaskLogic {
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
- public List<TaskVO> getWorkerTasks(long workerId) {
|
|
|
|
|
|
|
+ public List<AssignedTaskVO> getWorkerTasks(long workerId) {
|
|
|
|
|
|
|
|
List<Task> tasks = taskService.getTaskListByWorkerId(workerId);
|
|
List<Task> tasks = taskService.getTaskListByWorkerId(workerId);
|
|
|
- List<TaskVO> taskVOs = taskVOWrapper.wrap(tasks);
|
|
|
|
|
|
|
+ Map<Long, Task> taskMap = tasks.stream().collect(Collectors.toMap(Task::getId, task -> task));
|
|
|
|
|
|
|
|
Set<Long> managerIds = new HashSet<>();
|
|
Set<Long> managerIds = new HashSet<>();
|
|
|
- taskVOs.forEach(taskVO -> managerIds.add(taskVO.getManagerId()));
|
|
|
|
|
-
|
|
|
|
|
|
|
+ tasks.forEach(task -> managerIds.add(task.getManagerId()));
|
|
|
Map<Long, Manager> managerMap = managerService.getManagersMap(new ArrayList<>(managerIds));
|
|
Map<Long, Manager> managerMap = managerService.getManagersMap(new ArrayList<>(managerIds));
|
|
|
- taskVOs.forEach(taskVO -> taskVO.setManagerName(managerMap.get(taskVO.getManagerId()).getName()));
|
|
|
|
|
|
|
|
|
|
- return taskVOs;
|
|
|
|
|
|
|
+ List<AssignedTask> assignedTasks = assignedTaskService.getAssignedTasksByWorkerId(workerId);
|
|
|
|
|
+ List<AssignedTaskVO> assignedTaskVOs = assignedTaskVOWrapper.wrap(assignedTasks);
|
|
|
|
|
+
|
|
|
|
|
+ assignedTaskVOs.forEach(assignedTaskVO -> {
|
|
|
|
|
+ Task task = taskMap.get(assignedTaskVO.getTaskId());
|
|
|
|
|
+ assignedTaskVO.setManagerName(managerMap.get(task.getManagerId()).getName());
|
|
|
|
|
+ assignedTaskVO.setBeginTime(task.getBeginTime().getTime());
|
|
|
|
|
+ assignedTaskVO.setEndTime(task.getEndTime().getTime());
|
|
|
|
|
+ assignedTaskVO.setSubsiteId(task.getSubsiteId());
|
|
|
|
|
+ assignedTaskVO.setTaskName(task.getName());
|
|
|
|
|
+ assignedTaskVO.setEntrance("");
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ return assignedTaskVOs;
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
- public List<TaskVO> getWorkerTasksOfGroup(long groupId, long workerId) {
|
|
|
|
|
|
|
+ public List<AssignedTaskVO> getWorkerTasksOfGroup(long groupId, long workerId) {
|
|
|
|
|
|
|
|
List<Group> groups = groupService.getGroupsByWorkerId(workerId);
|
|
List<Group> groups = groupService.getGroupsByWorkerId(workerId);
|
|
|
- if (groups.contains(groupService.getGroup(groupId))) {
|
|
|
|
|
|
|
+
|
|
|
|
|
+ if (!CollectionUtils.isEmpty(groups.stream().filter(group -> group.getId() == groupId).
|
|
|
|
|
+ collect(Collectors.toList()))) {
|
|
|
|
|
|
|
|
List<Task> tasks = taskService.getTaskListByGroupId(groupId);
|
|
List<Task> tasks = taskService.getTaskListByGroupId(groupId);
|
|
|
- List<TaskVO> taskVOs = taskVOWrapper.wrap(tasks);
|
|
|
|
|
- Set<Long> managerIds = new HashSet<>();
|
|
|
|
|
- taskVOs.forEach(taskVO -> managerIds.add(taskVO.getManagerId()));
|
|
|
|
|
|
|
+ Map<Long, Task> taskMap = tasks.stream().collect(Collectors.toMap(Task::getId, task -> task));
|
|
|
|
|
|
|
|
|
|
+ Set<Long> managerIds = new HashSet<>();
|
|
|
|
|
+ tasks.forEach(task -> managerIds.add(task.getManagerId()));
|
|
|
Map<Long, Manager> managerMap = managerService.getManagersMap(new ArrayList<>(managerIds));
|
|
Map<Long, Manager> managerMap = managerService.getManagersMap(new ArrayList<>(managerIds));
|
|
|
- taskVOs.forEach(taskVO -> taskVO.setManagerName(managerMap.get(taskVO.getManagerId()).getName()));
|
|
|
|
|
- return taskVOs;
|
|
|
|
|
|
|
+
|
|
|
|
|
+ List<AssignedTask> assignedTasks = assignedTaskService.getAssignedTasks(workerId, groupId);
|
|
|
|
|
+ List<AssignedTaskVO> assignedTaskVOs = assignedTaskVOWrapper.wrap(assignedTasks);
|
|
|
|
|
+
|
|
|
|
|
+ assignedTaskVOs.forEach(assignedTaskVO -> {
|
|
|
|
|
+ Task task = taskMap.get(assignedTaskVO.getTaskId());
|
|
|
|
|
+ assignedTaskVO.setManagerName(managerMap.get(task.getManagerId()).getName());
|
|
|
|
|
+ assignedTaskVO.setBeginTime(task.getBeginTime().getTime());
|
|
|
|
|
+ assignedTaskVO.setEndTime(task.getEndTime().getTime());
|
|
|
|
|
+ assignedTaskVO.setSubsiteId(task.getSubsiteId());
|
|
|
|
|
+ assignedTaskVO.setTaskName(task.getName());
|
|
|
|
|
+ assignedTaskVO.setEntrance("");
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ return assignedTaskVOs;
|
|
|
|
|
|
|
|
} else {
|
|
} else {
|
|
|
- return null;
|
|
|
|
|
|
|
+ throw new HttpForbiddenException("Worker not in group");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|