Procházet zdrojové kódy

ADD: some fields of worker assignedTaskVO

guoyc před 8 roky
rodič
revize
70f5be3062

+ 2 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/AssignedTaskService.java

@@ -21,5 +21,7 @@ public interface AssignedTaskService {
 
     List<AssignedTask> getAssignedTasks(long taskId);
 
+    List<AssignedTask> getAssignedTasksByWorkerId(long workerId);
+
     AssignedTask getAssignedTask(long taskId, long workerId);
 }

+ 5 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/impl/AssignedTaskServiceImpl.java

@@ -104,6 +104,11 @@ public class AssignedTaskServiceImpl extends BaseService implements AssignedTask
     }
 
     @Override
+    public List<AssignedTask> getAssignedTasksByWorkerId(long workerId) {
+        return assignedTaskDao.findByWorkerId(workerId);
+    }
+
+    @Override
     public AssignedTask getAssignedTask(long taskId, long workerId) {
         return assignedTaskDao.findByTaskIdAndWorkerId(taskId, workerId);
     }

+ 2 - 2
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/ctrl/TaskController.java

@@ -49,13 +49,13 @@ public class TaskController extends BaseController {
     }
 
     @RequestMapping(value = UrlConstants.API_WORKER + "task", method = RequestMethod.GET)
-    public List<TaskVO> getWorkerTasks(HttpServletRequest request) {
+    public List<AssignedTaskVO> getWorkerTasks(HttpServletRequest request) {
         long workerId = RequestUtils.getWorkerId(request);
         return taskLogic.getWorkerTasks(workerId);
     }
 
     @RequestMapping(value = UrlConstants.API_WORKER + "group/{id:\\d+}/task", method = RequestMethod.GET)
-    public List<TaskVO> getWorkerTasksOfGroup(HttpServletRequest request, @PathVariable("id") long groupId) {
+    public List<AssignedTaskVO> getWorkerTasksOfGroup(HttpServletRequest request, @PathVariable("id") long groupId) {
         long workId = RequestUtils.getWorkerId(request);
         return taskLogic.getWorkerTasksOfGroup(groupId, workId);
     }

+ 60 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/data/AssignedTaskVO.java

@@ -15,12 +15,24 @@ public class AssignedTaskVO extends BaseVO {
 
     private long taskId;
 
+    private String taskName;
+
+    private long subsiteId;
+
     private Double score;
 
+    private long beginTime;
+
+    private long endTime;
+
+    private String entrance;
+
     private long workerId;
 
     private String workerName;
 
+    private String managerName;
+
     private List<AssignedCaseVO> assignedCases;
 
     public Long getId() {
@@ -70,4 +82,52 @@ public class AssignedTaskVO extends BaseVO {
     public void setAssignedCases(List<AssignedCaseVO> assignedCases) {
         this.assignedCases = assignedCases;
     }
+
+    public long getBeginTime() {
+        return beginTime;
+    }
+
+    public void setBeginTime(long beginTime) {
+        this.beginTime = beginTime;
+    }
+
+    public long getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(long endTime) {
+        this.endTime = endTime;
+    }
+
+    public String getEntrance() {
+        return entrance;
+    }
+
+    public void setEntrance(String entrance) {
+        this.entrance = entrance;
+    }
+
+    public String getManagerName() {
+        return managerName;
+    }
+
+    public void setManagerName(String managerName) {
+        this.managerName = managerName;
+    }
+
+    public String getTaskName() {
+        return taskName;
+    }
+
+    public void setTaskName(String taskName) {
+        this.taskName = taskName;
+    }
+
+    public long getSubsiteId() {
+        return subsiteId;
+    }
+
+    public void setSubsiteId(long subsiteId) {
+        this.subsiteId = subsiteId;
+    }
 }

+ 3 - 3
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/logic/TaskLogic.java

@@ -17,12 +17,12 @@ public interface TaskLogic {
 
     TaskVO createTask(TaskVO task, long managerId);
 
-    List<TaskVO> getWorkerTasks(long workerId);
+    List<AssignedTaskVO> getWorkerTasks(long workerId);
 
-    List<TaskVO> getWorkerTasksOfGroup(long groupId, long workerId);
+    List<AssignedTaskVO> getWorkerTasksOfGroup(long groupId, long workerId);
 
     List<TaskVO> getAllTasks();
 
     List<AssignedTaskVO> getAssignedTasks(long managerId, long taskId);
-    
+
 }

+ 42 - 14
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/logic/impl/TaskLogicImpl.java

@@ -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.wrapper.*;
 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.TaskLogic;
+import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -143,38 +145,64 @@ public class TaskLogicImpl extends BaseLogic implements TaskLogic {
 
 
     @Override
-    public List<TaskVO> getWorkerTasks(long workerId) {
+    public List<AssignedTaskVO> getWorkerTasks(long 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<>();
-        taskVOs.forEach(taskVO -> managerIds.add(taskVO.getManagerId()));
-
+        tasks.forEach(task -> managerIds.add(task.getManagerId()));
         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
-    public List<TaskVO> getWorkerTasksOfGroup(long groupId, long workerId) {
+    public List<AssignedTaskVO> getWorkerTasksOfGroup(long groupId, long 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<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));
-            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 {
-            return null;
+            throw new HttpForbiddenException("Worker not in group");
         }
 
     }