浏览代码

Merge branch 'refactor-exam-list' into 'DEV'

Refactor exam list



See merge request !401

tangss 8 年之前
父节点
当前提交
7e43c9859f
共有 16 个文件被更改,包括 171 次插入118 次删除
  1. 14 0
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/dao/ContestMentorExamDao.java
  2. 0 17
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/dao/ExamGroupUserDao.java
  3. 18 0
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/dao/ParticipantExamDao.java
  4. 57 0
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/models/ContestMentorExam.java
  5. 1 1
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/models/ParticipantExam.java
  6. 9 3
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/ExamService.java
  7. 0 2
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/Task2AssistantManagerService.java
  8. 4 7
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/application/impl/WechatServiceImpl.java
  9. 32 15
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/impl/ExamServiceImpl.java
  10. 0 49
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/impl/Task2AssistantManagerServiceImpl.java
  11. 4 1
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/ctrl/ExamController.java
  12. 5 4
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/data/wrapper/ExamVOWrapper.java
  13. 2 0
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/logic/ExamLogic.java
  14. 17 5
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/logic/impl/ExamLogicImpl.java
  15. 5 7
      mooctest-site-server/src/test/java/cn/iselab/mooctest/site/service/impl/ExamServiceTest.java
  16. 3 7
      mooctest-site-server/src/test/java/cn/iselab/mooctest/site/web/logic/impl/ExamLogicImplTest.java

+ 14 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/dao/ContestMentorExamDao.java

@@ -0,0 +1,14 @@
+package cn.iselab.mooctest.site.dao;
+
+import cn.iselab.mooctest.site.models.ContestMentorExam;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.repository.PagingAndSortingRepository;
+
+import javax.transaction.Transactional;
+
+/**
+ * Created by tangshanshan on 2017/12/4.
+ */
+@Transactional
+public interface ContestMentorExamDao extends PagingAndSortingRepository<ContestMentorExam, Long>,JpaSpecificationExecutor<ContestMentorExam> {
+}

+ 0 - 17
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/dao/ExamGroupUserDao.java

@@ -1,17 +0,0 @@
-package cn.iselab.mooctest.site.dao;
-
-import cn.iselab.mooctest.site.models.ExamGroupUser;
-import cn.iselab.mooctest.site.models.Task;
-import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
-import org.springframework.data.repository.PagingAndSortingRepository;
-
-import java.util.List;
-
-/**
- * Created by shanshan on 2017/7/25.
- */
-public interface ExamGroupUserDao extends PagingAndSortingRepository<ExamGroupUser, Long>,JpaSpecificationExecutor<ExamGroupUser> {
-    ExamGroupUser findByIdAndParticipantId(Long examId, Long participantId);
-
-    List<ExamGroupUser> findByParticipantId(Long participantId);
-}

+ 18 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/dao/ParticipantExamDao.java

@@ -0,0 +1,18 @@
+package cn.iselab.mooctest.site.dao;
+
+import cn.iselab.mooctest.site.models.ParticipantExam;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.repository.PagingAndSortingRepository;
+
+import javax.transaction.Transactional;
+import java.util.List;
+
+/**
+ * Created by shanshan on 2017/7/25.
+ */
+@Transactional
+public interface ParticipantExamDao extends PagingAndSortingRepository<ParticipantExam, Long>,JpaSpecificationExecutor<ParticipantExam> {
+    ParticipantExam findByIdAndParticipantId(Long examId, Long participantId);
+
+    List<ParticipantExam> findByParticipantId(Long participantId);
+}

+ 57 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/models/ContestMentorExam.java

@@ -0,0 +1,57 @@
+package cn.iselab.mooctest.site.models;
+
+import lombok.Data;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.sql.Timestamp;
+
+/**
+ * Created by tangshanshan on 2017/12/3.
+ */
+@Entity
+@Data
+@Table(name = "exam_contest_mentor")
+public class ContestMentorExam {
+    @Id
+    private Long id;
+
+    @Column(name = "name")
+    private String name;
+
+    @Column(name = "begin_time")
+    private Timestamp beginTime;
+
+    @Column(name = "end_time")
+    private Timestamp endTime;
+
+    @Column(name = "duration")
+    private Integer duration;
+
+    @Column(name = "manager_id")
+    private Long managerId;
+
+    @Column(name = "information")
+    private String information;
+
+    @Column(name = "subsite_id")
+    private Long subsiteId;
+
+    @Column(name = "owner_id")
+    private Long ownerId;
+
+    @Column(name = "type")
+    private Byte type;// exam: 0, exercise: 1, activity: 2
+
+    @Column(name = "status")
+    private Integer status;
+
+    @Column(name = "is_third_party")
+    private Integer owningParty ;
+
+    @Column(name = "contest_mentor_id")
+    private Long ContestMentorId;
+}
+

+ 1 - 1
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/models/ExamGroupUser.java → mooctest-site-server/src/main/java/cn/iselab/mooctest/site/models/ParticipantExam.java

@@ -14,7 +14,7 @@ import java.sql.Timestamp;
 @Entity
 @Data
 @Table(name = "exam_group_user")
-public class ExamGroupUser{
+public class ParticipantExam {
     @Id
     private Long id;
 

+ 9 - 3
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/ExamService.java

@@ -1,10 +1,12 @@
 package cn.iselab.mooctest.site.service;
 
-import cn.iselab.mooctest.site.data.CaseBlock;
-import cn.iselab.mooctest.site.models.ExamGroupUser;
+import cn.iselab.mooctest.site.models.AssistManagerExam;
+import cn.iselab.mooctest.site.models.ContestMentorExam;
+import cn.iselab.mooctest.site.models.ParticipantExam;
 import cn.iselab.mooctest.site.models.Task;
 import org.springframework.data.domain.Page;
 
+import org.springframework.data.domain.PageRequest;
 import org.springframework.data.domain.Pageable;
 
 import java.util.List;
@@ -16,7 +18,11 @@ public interface ExamService {
 
     Page<Task> getExams(Long organizerId, Byte type, Integer status, String keyword, Pageable pageable);
 
-    Page<ExamGroupUser> getExamsByParticipantId(Long participantId, Byte type, Integer status, String keyword, Pageable pageable);
+    Page<ParticipantExam> getExamsByParticipantId(Long participantId, Byte type, Integer status, String keyword, Pageable pageable);
+
+    Page<AssistManagerExam> getExamsByAssistManagerId(Long assistManagerId, Byte type, Integer status, String keyword, PageRequest pageable);
+
+    Page<ContestMentorExam> getExamsByContestMentorId(Long contestMentorId, Byte type, Integer status, String keyword, PageRequest pageable);
 
     Task getExamByIdAndParticipantIdIfPermited(Long examId, Long participantId);
 

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

@@ -24,6 +24,4 @@ public interface Task2AssistantManagerService {
     List<Task2AssistantManager> getTask2AssistantManagerByManagerId(long managerId);
 
     void deleteAssistManager(List<Task2AssistantManager> deleteAssistantManagers);
-
-    Page<AssistManagerExam> getExamsByAssistManagerId(Long assistManagerId, Byte type, Integer status, String keyword, PageRequest pageable);
 }

+ 4 - 7
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/application/impl/WechatServiceImpl.java

@@ -1,14 +1,11 @@
 package cn.iselab.mooctest.site.service.application.impl;
 
-import cn.iselab.mooctest.site.common.constant.MailConstants;
 import cn.iselab.mooctest.site.dao.*;
 import cn.iselab.mooctest.site.models.*;
 import cn.iselab.mooctest.site.service.ExamService;
 import cn.iselab.mooctest.site.service.User2RoleService;
 import cn.iselab.mooctest.site.service.application.WechatService;
 import cn.iselab.mooctest.site.util.data.EncryptionUtil;
-import cn.iselab.mooctest.site.web.data.fromKibug.TakeCaseVO;
-import net.sf.json.JSON;
 import org.json.JSONArray;
 import org.json.JSONObject;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -54,7 +51,7 @@ public class WechatServiceImpl implements WechatService {
     private Task2GroupDao task2GroupDao;
 
     @Autowired
-    private ExamGroupUserDao examGroupUserDao;
+    private ParticipantExamDao participantExamDao;
 
     @Autowired
     private ExamService examService;
@@ -81,9 +78,9 @@ public class WechatServiceImpl implements WechatService {
         if (user == null){
             return null;
         }
-        List<ExamGroupUser> examGroupUsers=examGroupUserDao.findByParticipantId(user.getId());
-        for(ExamGroupUser examGroupUser:examGroupUsers){
-            Task task = examService.getExamByName(examGroupUser.getName());
+        List<ParticipantExam> participantExams = participantExamDao.findByParticipantId(user.getId());
+        for(ParticipantExam participantExam : participantExams){
+            Task task = examService.getExamByName(participantExam.getName());
             Timestamp currentTimestamp = new Timestamp(System.currentTimeMillis());
             if (task.getEndTime().after(currentTimestamp)){
                 JSONObject taskObj = new JSONObject();

+ 32 - 15
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/impl/ExamServiceImpl.java

@@ -1,7 +1,6 @@
 package cn.iselab.mooctest.site.service.impl;
 
 import cn.iselab.mooctest.site.dao.*;
-import cn.iselab.mooctest.site.data.CaseBlock;
 import cn.iselab.mooctest.site.models.*;
 import cn.iselab.mooctest.site.service.BaseService;
 import cn.iselab.mooctest.site.service.ExamService;
@@ -10,7 +9,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.authz.UnauthorizedException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
-
+import org.springframework.data.domain.PageRequest;
 import org.springframework.data.domain.Pageable;
 import org.springframework.data.jpa.domain.Specification;
 import org.springframework.data.jpa.domain.Specifications;
@@ -33,13 +32,15 @@ public class ExamServiceImpl extends BaseService implements ExamService {
     @Autowired
     GroupDao groupDao;
     @Autowired
-    ExamGroupUserDao examGroupUserDao;
+    ParticipantExamDao participantExamDao;
     @Autowired
     Task2GroupDao task2GroupDao;
     @Autowired
     Exam2PaperDao exam2PaperDao;
     @Autowired
-    Exam2CaseDao exam2CaseDao;
+    AssistManagerExamDao assistManagerExamDao;
+    @Autowired
+    ContestMentorExamDao contestMentorExamDao;
 
     @Override
     public Page<Task> getExams(Long organizerId, Byte type, Integer status, String keyword, Pageable pageable) {
@@ -49,18 +50,33 @@ public class ExamServiceImpl extends BaseService implements ExamService {
     }
 
     @Override
-    public Page<ExamGroupUser> getExamsByParticipantId(Long participantId, Byte type, Integer status, String keyword, Pageable pageable) {
-        Specifications<ExamGroupUser> where =  Specifications.where(getExamUserWhereClause(participantId,status, type, keyword));
-        return examGroupUserDao.findAll(where, pageable);
+    public Page<ParticipantExam> getExamsByParticipantId(Long participantId, Byte type, Integer status, String keyword, Pageable pageable) {
+        Specifications<ParticipantExam> where =  Specifications.where(
+                getExamListQuery(ParticipantExam.class,"participantId",participantId,status, type, keyword));
+        return participantExamDao.findAll(where, pageable);
+    }
+
+    @Override
+    public Page<AssistManagerExam> getExamsByAssistManagerId(Long assistManagerId, Byte type, Integer status, String keyword, PageRequest pageable) {
+        Specifications<AssistManagerExam> where =  Specifications.where(
+                getExamListQuery(AssistManagerExam.class,"assistManagerId",assistManagerId,status, type, keyword));
+        return assistManagerExamDao.findAll(where, pageable);
+    }
+
+    @Override
+    public Page<ContestMentorExam> getExamsByContestMentorId(Long contestMentorId, Byte type, Integer status, String keyword, PageRequest pageable) {
+        Specifications<ContestMentorExam> where =  Specifications.where(
+                getExamListQuery(ContestMentorExam.class,"ContestMentorId",contestMentorId,status, type, keyword));
+        return contestMentorExamDao.findAll(where, pageable);
     }
 
     @Override
     public Task getExamByIdAndParticipantIdIfPermited(Long examId, Long participantId) {
-        ExamGroupUser examGroupUser = examGroupUserDao.findByIdAndParticipantId(examId, participantId);
-        if(examGroupUser == null){
+        ParticipantExam participantExam = participantExamDao.findByIdAndParticipantId(examId, participantId);
+        if(participantExam == null){
             throw new UnauthorizedException("unauthorized");
         }
-        return Converter.convert(Task.class, examGroupUser);
+        return Converter.convert(Task.class, participantExam);
     }
 
     @Override
@@ -141,14 +157,15 @@ public class ExamServiceImpl extends BaseService implements ExamService {
             }
         };
     }
-    private Specification<ExamGroupUser> getExamUserWhereClause(Long participantId, Integer status, Byte type, String keyword) {
-        return new Specification<ExamGroupUser>() {
+    private <T> Specification<T> getExamListQuery(Class<T> model,String JoinedUserColumn,Long userId, Integer status, Byte type, String keyword) {
+        return new Specification<T>(){
+
             @Override
-            public Predicate toPredicate(Root<ExamGroupUser> a, CriteriaQuery<?> q, CriteriaBuilder cb) {
+            public Predicate toPredicate(Root a, CriteriaQuery q, CriteriaBuilder cb) {
                 Predicate predicate = cb.conjunction();
-                if(participantId!=null) {
+                if(userId!=null) {
                     predicate.getExpressions().add(
-                            cb.equal(a.<Long>get("participantId"), participantId)
+                            cb.equal(a.<Long>get(JoinedUserColumn), userId)
                     );
                 }
                 if(status!=null) {

+ 0 - 49
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/impl/Task2AssistantManagerServiceImpl.java

@@ -1,24 +1,12 @@
 package cn.iselab.mooctest.site.service.impl;
 
-import cn.iselab.mooctest.site.dao.AssistManagerExamDao;
 import cn.iselab.mooctest.site.dao.Task2AssistantManagerDao;
-import cn.iselab.mooctest.site.models.AssistManagerExam;
-import cn.iselab.mooctest.site.models.ExamGroupUser;
 import cn.iselab.mooctest.site.models.Task2AssistantManager;
 import cn.iselab.mooctest.site.service.BaseService;
 import cn.iselab.mooctest.site.service.Task2AssistantManagerService;
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.PageRequest;
-import org.springframework.data.jpa.domain.Specification;
-import org.springframework.data.jpa.domain.Specifications;
 import org.springframework.stereotype.Service;
 
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
 import java.util.List;
 
 /**
@@ -30,8 +18,6 @@ public class Task2AssistantManagerServiceImpl extends BaseService implements Tas
 
     @Autowired
     private Task2AssistantManagerDao task2AssistantManagerDao;
-    @Autowired
-    AssistManagerExamDao assistManagerExamDao;
 
     @Override
     public List<Task2AssistantManager> getTask2AssistantManagerByTaskId(long taskId) {
@@ -63,39 +49,4 @@ public class Task2AssistantManagerServiceImpl extends BaseService implements Tas
         task2AssistantManagerDao.delete(deleteAssistantManagers);
     }
 
-    @Override
-    public Page<AssistManagerExam> getExamsByAssistManagerId(Long assistManagerId, Byte type, Integer status, String keyword, PageRequest pageable) {
-        Specifications<AssistManagerExam> where =  Specifications.where(getAssistManagerClause(assistManagerId,status, type, keyword));
-        return assistManagerExamDao.findAll(where, pageable);
-    }
-
-    private Specification<AssistManagerExam> getAssistManagerClause(Long assistManagerId, Integer status, Byte type, String keyword) {
-        return new Specification<AssistManagerExam>() {
-            @Override
-            public Predicate toPredicate(Root<AssistManagerExam> a, CriteriaQuery<?> q, CriteriaBuilder cb) {
-                Predicate predicate = cb.conjunction();
-                if(assistManagerId!=null) {
-                    predicate.getExpressions().add(
-                            cb.equal(a.<Long>get("assistManagerId"), assistManagerId)
-                    );
-                }
-                if(status!=null) {
-                    predicate.getExpressions().add(
-                            cb.equal(a.<Integer>get("status"), status)
-                    );
-                }
-                if(type!=null) {
-                    predicate.getExpressions().add(
-                            cb.equal(a.<Byte>get("type"), type)
-                    );
-                }
-                if(keyword!=null) {
-                    predicate.getExpressions().add(
-                            cb.like(a.<String>get("name"), "%" + StringUtils.trim(keyword) + "%")
-                    );
-                }
-                return predicate;
-            }
-        };
-    }
 }

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

@@ -55,12 +55,15 @@ public class ExamController extends BaseController {
         Sort sortByStatus = new Sort(Sort.Direction.ASC, "status");
         Sort sortById = new Sort(Sort.Direction.DESC, "id");
         User user = (User) SecurityUtils.getSubject().getSession().getAttribute("User");
+
         if (queryBy.equals("organizer")) {
             return examLogic.getExamList(user.getId(), type, status, keyword, new PageRequest(activePage - 1, rowsOnPage, sortById));
         } else if(queryBy.equals("participant")) {
             return examLogic.getParticipantExamList(user.getId(), type, status, keyword, new PageRequest(activePage - 1, rowsOnPage, sortByStatus));
-        } else{
+        } else if(queryBy.equals("assistManager")){
             return examLogic.getAssistManagerExamList(user.getId(), type, status, keyword, new PageRequest(activePage - 1, rowsOnPage, sortByStatus));
+        } else{
+            return examLogic.getContestMentorExamList(user.getId(), type, status, keyword, new PageRequest(activePage - 1, rowsOnPage, sortByStatus));
         }
     }
 

+ 5 - 4
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/data/wrapper/ExamVOWrapper.java

@@ -1,8 +1,9 @@
 package cn.iselab.mooctest.site.web.data.wrapper;
 
 import cn.iselab.mooctest.site.dao.AssignedTaskDao;
-import cn.iselab.mooctest.site.dao.ExamGroupUserDao;
+
 import cn.iselab.mooctest.site.dao.instancePermission.TaskPermissionDao;
+import cn.iselab.mooctest.site.dao.ParticipantExamDao;
 import cn.iselab.mooctest.site.models.*;
 import cn.iselab.mooctest.site.service.GroupService;
 import cn.iselab.mooctest.site.service.PaperService;
@@ -31,7 +32,7 @@ public class ExamVOWrapper extends BaseWrapper<ExamVO, Task> {
     PaperService paperService;
 
     @Autowired
-    ExamGroupUserDao examGroupUserDao;
+    ParticipantExamDao participantExamDao;
 
     @Autowired
     AssignedTaskDao assignedTaskDao;
@@ -63,14 +64,14 @@ public class ExamVOWrapper extends BaseWrapper<ExamVO, Task> {
         Paper paper = paperService.getByExamId(task.getId());
         if(paper!=null){
             vo.setPaperId(paper.getId());
-            vo.setPaperIsPublic(paper.getIsPublic());
+            vo.setPaperIsPublic(paper.getIsPublic()!=null?paper.getIsPublic():false);
         }
         return vo;
     }
 
     public ExamVO wrapWithHasEnteredAndHasQualify(Task task, Long userId){
         ExamVO vo = wrap(task);
-        ExamGroupUser result = examGroupUserDao.findByIdAndParticipantId(task.getId(), userId);
+        ParticipantExam result = participantExamDao.findByIdAndParticipantId(task.getId(), userId);
         long exerciseId = this.getExerciseIdByTaskId(task.getId());
         List<AssignedTask> assignedTasks = assignedTaskDao.findByTaskIdAndParticipantId(exerciseId,userId);
         if(assignedTasks.size()==0){

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

@@ -24,6 +24,8 @@ public interface ExamLogic {
 
     Page<ExamVO> getAssistManagerExamList(Long assistManagerId, Byte type, Integer status, String keyword, PageRequest pageRequest);
 
+    Page<ExamVO> getContestMentorExamList(Long contestMentorId, Byte type, Integer status, String keyword, PageRequest pageRequest);
+
     ExamVO createExam(ExamVO examVO);
 
     ExamVO updateExam(ExamVO examVO);

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

@@ -18,7 +18,6 @@ import cn.iselab.mooctest.site.web.exception.HttpBadRequestException;
 import cn.iselab.mooctest.site.web.exception.HttpNotFoundException;
 import cn.iselab.mooctest.site.web.logic.BaseLogic;
 import cn.iselab.mooctest.site.web.logic.ExamLogic;
-import org.apache.shiro.SecurityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.convert.converter.Converter;
 import org.springframework.data.domain.Page;
@@ -113,10 +112,10 @@ public class ExamLogicImpl extends BaseLogic implements ExamLogic {
 
     @Override
     public Page<ExamVO> getParticipantExamList(Long participantId, Byte type, Integer status, String keyword, Pageable pageable) {
-        Page<ExamGroupUser> taskPage = examService.getExamsByParticipantId(participantId, type, status, keyword, pageable);
-        Page<ExamVO> examVOPage = taskPage.map(new Converter<ExamGroupUser, ExamVO>() {
+        Page<ParticipantExam> taskPage = examService.getExamsByParticipantId(participantId, type, status, keyword, pageable);
+        Page<ExamVO> examVOPage = taskPage.map(new Converter<ParticipantExam, ExamVO>() {
             @Override
-            public ExamVO convert(ExamGroupUser examGroupUser) {
+            public ExamVO convert(ParticipantExam examGroupUser) {
                 Task task = cn.iselab.mooctest.site.web.util.Converter.convert(Task.class, examGroupUser);
                 return examVOWrapper.wrap(task);
             }
@@ -126,7 +125,7 @@ public class ExamLogicImpl extends BaseLogic implements ExamLogic {
 
     @Override
     public Page<ExamVO> getAssistManagerExamList(Long assistManagerId, Byte type, Integer status, String keyword, PageRequest pageable) {
-        Page<AssistManagerExam> taskPage = task2AssistantManagerService.getExamsByAssistManagerId(assistManagerId, type, status, keyword, pageable);
+        Page<AssistManagerExam> taskPage = examService.getExamsByAssistManagerId(assistManagerId, type, status, keyword, pageable);
         Page<ExamVO> examVOPage = taskPage.map(new Converter<AssistManagerExam, ExamVO>() {
             @Override
             public ExamVO convert(AssistManagerExam assistManagerExam) {
@@ -138,6 +137,19 @@ public class ExamLogicImpl extends BaseLogic implements ExamLogic {
     }
 
     @Override
+    public Page<ExamVO> getContestMentorExamList(Long contestMentorId, Byte type, Integer status, String keyword, PageRequest pageable) {
+        Page<ContestMentorExam> taskPage = examService.getExamsByContestMentorId(contestMentorId, type, status, keyword, pageable);
+        Page<ExamVO> examVOPage = taskPage.map(new Converter<ContestMentorExam, ExamVO>() {
+            @Override
+            public ExamVO convert(ContestMentorExam contestMentorExam) {
+                Task task = cn.iselab.mooctest.site.web.util.Converter.convert(Task.class, contestMentorExam);
+                return examVOWrapper.wrap(task);
+            }
+        });
+        return examVOPage;
+    }
+
+    @Override
     public ExamVO createExam(ExamVO examVO) {
         long currTime = System.currentTimeMillis();
         boolean isTaskTimeInvalid = currTime > examVO.getBeginTime() || examVO.getBeginTime() > examVO.getEndTime();

+ 5 - 7
mooctest-site-server/src/test/java/cn/iselab/mooctest/site/service/impl/ExamServiceTest.java

@@ -4,8 +4,6 @@ import cn.iselab.mooctest.site.Application;
 import cn.iselab.mooctest.site.dao.Exam2PaperDao;
 import cn.iselab.mooctest.site.dao.ExamDao;
 import cn.iselab.mooctest.site.dao.Task2GroupDao;
-import cn.iselab.mooctest.site.models.Exam2Paper;
-import cn.iselab.mooctest.site.models.ExamGroupUser;
 import cn.iselab.mooctest.site.models.Task;
 import cn.iselab.mooctest.site.models.Task2Group;
 import org.junit.Assert;
@@ -97,7 +95,7 @@ public class ExamServiceTest {
         Integer rowsOnPage = 10;
         Pageable pageable = new PageRequest(activePage - 1, rowsOnPage);
 
-        ExamGroupUser exam = new ExamGroupUser();
+        ParticipantExam exam = new ParticipantExam();
         exam.setId(497L);
         exam.setBeginTime(new Timestamp(1495443120000L));
         exam.setEndTime(new Timestamp(1495999990000L));
@@ -106,17 +104,17 @@ public class ExamServiceTest {
         exam.setManagerId(17L);
         exam.setName("shi juan 1");
         exam.setSubsiteId(2L);
-        List<ExamGroupUser> examList = new ArrayList<>();
+        List<ParticipantExam> examList = new ArrayList<>();
         examList.add(exam);
         Page examPage = new PageImpl(examList);
 
         when(examDao.findByParticipantIdAndType(participantId,any(), pageable)).thenReturn(examPage);
         //action
-        Page<ExamGroupUser> resultPage = examDao.findByParticipantIdAndType(participantId,any(), pageable);
+        Page<ParticipantExam> resultPage = examDao.findByParticipantIdAndType(participantId,any(), pageable);
 
         //assert
-        List<ExamGroupUser> expectTaskList = examList;
-        List<ExamGroupUser> resultTaskList = resultPage.getContent();
+        List<ParticipantExam> expectTaskList = examList;
+        List<ParticipantExam> resultTaskList = resultPage.getContent();
         Assert.assertEquals(expectTaskList.get(0).getId(), resultTaskList.get(0).getId());
     }*/
 

+ 3 - 7
mooctest-site-server/src/test/java/cn/iselab/mooctest/site/web/logic/impl/ExamLogicImplTest.java

@@ -2,7 +2,6 @@ package cn.iselab.mooctest.site.web.logic.impl;
 
 import cn.iselab.mooctest.site.Application;
 import cn.iselab.mooctest.site.data.CaseBlock;
-import cn.iselab.mooctest.site.models.ExamGroupUser;
 import cn.iselab.mooctest.site.models.Group;
 import cn.iselab.mooctest.site.models.Task;
 import cn.iselab.mooctest.site.service.ExamSchedulerService;
@@ -12,7 +11,6 @@ import cn.iselab.mooctest.site.service.TaskService;
 import cn.iselab.mooctest.site.web.data.ExamVO;
 import cn.iselab.mooctest.site.web.data.wrapper.ExamVOWrapper;
 import cn.iselab.mooctest.site.web.exception.HttpBadRequestException;
-import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -26,8 +24,6 @@ import org.mockito.runners.MockitoJUnitRunner;
 import org.springframework.boot.test.SpringApplicationConfiguration;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageImpl;
-import org.springframework.data.domain.PageRequest;
-import org.springframework.data.domain.Pageable;
 import org.springframework.test.context.web.WebAppConfiguration;
 
 import java.sql.Timestamp;
@@ -107,7 +103,7 @@ public class ExamLogicImplTest {
         Byte type = (byte) 0;
         String keyword = "";
 
-        ExamGroupUser exam = new ExamGroupUser();
+        ParticipantExam exam = new ParticipantExam();
         exam.setId(497L);
         exam.setBeginTime(new Timestamp(1495443120000L));
         exam.setEndTime(new Timestamp(1495999990000L));
@@ -116,9 +112,9 @@ public class ExamLogicImplTest {
         exam.setManagerId(17L);
         exam.setName("shi juan 1");
         exam.setSubsiteId(2L);
-        List<ExamGroupUser> examList = new ArrayList<>();
+        List<ParticipantExam> examList = new ArrayList<>();
         examList.add(exam);
-        Page<ExamGroupUser> examPage = new PageImpl(examList);
+        Page<ParticipantExam> examPage = new PageImpl(examList);
 
         when(examService.getExamsByParticipantId(participantId, type, status, keyword, pageable)).thenReturn(examPage);
         when(examVOWrapper.wrap(any(Task.class))).thenReturn(voList.get(0));