Forráskód Böngészése

MTSITE-88
比赛/考试/练习中调整分数功能,添加按邮箱搜索

wpx 5 éve
szülő
commit
ecb1a0f556

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

@@ -221,7 +221,7 @@ public class ExamController extends BaseSearchController {
     @RequiresPermissions("assignedTasks:view")
     @RequestMapping(value = UrlConstants.API + "workerAssignedTask", method = RequestMethod.GET)
     public AssignedTaskVO getAssignedTaskByExamIdAndWorkerId(@RequestParam(name = "examId") Long examId,
-        @RequestParam(name = "workerId") Long workerId ) throws Exception {
+        @RequestParam(name = "email") String email ) throws Exception {
         Long userId = (Long) SecurityUtils.getSubject().getSession().getAttribute("userId");
         String examPermissionStr = userId.toString() + ":task:view:" + examId.toString();
         if (!SecurityUtils.getSubject().isPermitted(new ExamPermission(examPermissionStr))) {
@@ -230,7 +230,7 @@ public class ExamController extends BaseSearchController {
 
         boolean hasScorePermission = SecurityUtils.getSubject().isPermitted(new ExamPermission(userId.toString() + ":task:score:" + examId.toString()));
         if(hasScorePermission){
-            return examLogic.getAssignedTask(examId,workerId);
+            return examLogic.getAssignedTask(examId, email);
         }else{
             throw new UnauthenticatedException("forbidden");
         }

+ 1 - 1
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/logic/ExamLogic.java

@@ -38,7 +38,7 @@ public interface ExamLogic {
 
     Page<AssignedTaskVO> getAssignedTasks(Long examId, String keyword, Boolean needFilter, Pageable pageable);
 
-    AssignedTaskVO getAssignedTask(Long examId, Long workerId);
+    AssignedTaskVO getAssignedTask(Long examId, String email);
 
     Page<UserVO> getUsers(Long examId, Boolean needFilter, Long userId, String keyword, Pageable pageable);
 

+ 4 - 3
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/logic/impl/ExamLogicImpl.java

@@ -296,10 +296,11 @@ public class ExamLogicImpl extends BaseLogic implements ExamLogic {
     }
 
     @Override
-    public AssignedTaskVO getAssignedTask(Long examId, Long workerId) {
-        SubmitRecord submitRecord = submitRecordService.getAssignedTask(examId,workerId);
+    public AssignedTaskVO getAssignedTask(Long examId, String email) {
+        UserDTOForMT worker = userService.findByEmail(email);
+        SubmitRecord submitRecord = submitRecordService.getAssignedTask(examId, worker.getId());
         AssignedTaskVO vo = assignedTaskVOWrapper.wrap(submitRecord);
-        UserDTOForMT worker = userService.findByUserId(workerId);
+
         vo.setWorkerName(worker.getName());
         vo.setWorkerSchool(worker.getSchool());
         vo.setWorkerId(worker.getId());

+ 50 - 2
mooctest-site-server/src/test/java/cn/iselab/mooctest/site/web/logic/impl/AssistManagerLogicImplTest.java

@@ -1,12 +1,15 @@
 package cn.iselab.mooctest.site.web.logic.impl;
 
+import cn.iselab.mooctest.site.data.UserDTOForMT;
 import cn.iselab.mooctest.site.models.Exam2AssistantManager;
+import cn.iselab.mooctest.site.models.instancePermission.ExamPermission;
 import cn.iselab.mooctest.site.service.Exam2AssistantManagerService;
 import cn.iselab.mooctest.site.service.User2RoleService;
 import cn.iselab.mooctest.site.service.UserService;
 import cn.iselab.mooctest.site.service.instancePermission.ExamPermissionService;
 import cn.iselab.mooctest.site.web.data.AssistManagerVO;
 import cn.iselab.mooctest.site.web.data.wrapper.AssistManagerVOWrapper;
+import cn.iselab.mooctest.site.web.exception.HttpNotFoundException;
 import cn.iselab.mooctest.site.web.logic.AssistManagerLogic;
 import org.junit.Assert;
 import org.junit.Test;
@@ -19,8 +22,8 @@ import org.springframework.test.context.web.WebAppConfiguration;
 import java.util.ArrayList;
 import java.util.List;
 
-import static org.mockito.Matchers.anyList;
-import static org.mockito.Matchers.anyLong;
+import static org.mockito.Matchers.*;
+import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.when;
 
 /**
@@ -56,8 +59,53 @@ public class AssistManagerLogicImplTest {
         when(assistManagerVOWrapper.wrap(anyList())).thenReturn(assistManagerVOS);
         List<AssistManagerVO> result = assistManagerLogic.getAssistantManagers(2333L);
         Assert.assertEquals("should_returnAssistantManagerVOs_when_getAssistantManagers", result.get(0).getName());
+    }
+
+    /**
+     * Added by wangpx
+     * 2020-09-14
+     * 对AssistManagerLogicImpl 类中的 addAssistantManagers()方法进行单元测试
+     */
+    @Test
+    public void should_throwHttpNotFoundException_when_addAssistantManagers(){
+        try{
+            List<AssistManagerVO> assistManagerVOS = new ArrayList<>();
+            when(userService.findByEmail(anyString())).thenReturn(null);
+            List<AssistManagerVO> result = assistManagerLogic.addAssistantManagers(2333L, 497L, assistManagerVOS);
+        } catch (HttpNotFoundException e){
+            Assert.assertEquals("用户不存在", e.getMessage());
+        }
+    }
+
+    /**
+     * Added by wangpx
+     * 2020-09-14
+     * 对AssistManagerLogicImpl 类中的 addAssistantManagers()方法进行单元测试
+     */
+    @Test
+    public void should_returnAssistantManagerVOs_when_addAssistantManagers(){
+        UserDTOForMT assistManager = new UserDTOForMT();
+        assistManager.setId(110L);
+        when(userService.findByEmail(anyString())).thenReturn(assistManager);
+        when(user2RoleService.checkManagerRole(anyLong())).thenReturn(Boolean.TRUE);
+        List<Exam2AssistantManager> exam2AssistantManagers = new ArrayList<>();
+        Exam2AssistantManager exam2AssistantManager = new Exam2AssistantManager();
+        exam2AssistantManager.setManagerId(114L);//这里测试的是 "阅卷老师已存在" 不存在的情况
+        exam2AssistantManagers.add(exam2AssistantManager);
+        when(exam2AssistantManagerService.getTask2AssistantManagerByTaskId(anyLong())).thenReturn(exam2AssistantManagers);
+        when(examPermissionService.addAssistantManagerForTask(anyLong(), anyLong())).thenReturn(new ExamPermission());
+        doNothing().when(exam2AssistantManagerService).save(anyList());
 
+        List<AssistManagerVO> assistManagerVOS = new ArrayList<>();
+        AssistManagerVO assistManagerVO = new AssistManagerVO();
+        assistManagerVO.setName("addAssistantManagers");
+        assistManagerVOS.add(assistManagerVO);
+        when(assistManagerVOWrapper.wrap(anyList())).thenReturn(assistManagerVOS);
+        List<AssistManagerVO> result = assistManagerLogic.addAssistantManagers(2333L, 497L, assistManagerVOS);
+        Assert.assertEquals("addAssistantManagers", result.get(0).getName());
     }
 
 
+
+
 }