Parcourir la source

3.3.0 保存评卷任务

ting.yin il y a 1 an
Parent
commit
97c2cd2127

+ 9 - 7
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/dto/mark/manage/TrackDTO.java

@@ -1,12 +1,14 @@
 package com.qmth.teachcloud.mark.dto.mark.manage;
 
-import com.qmth.teachcloud.mark.entity.*;
-import com.qmth.teachcloud.mark.params.MarkHeaderGroupResult;
-import com.qmth.teachcloud.mark.params.MarkHeaderResult;
-import com.qmth.teachcloud.mark.params.MarkResult;
-
 import java.io.Serializable;
 
+import com.qmth.teachcloud.mark.entity.MarkArbitrateHistory;
+import com.qmth.teachcloud.mark.entity.MarkHeaderTrack;
+import com.qmth.teachcloud.mark.entity.MarkTask;
+import com.qmth.teachcloud.mark.entity.MarkTrack;
+import com.qmth.teachcloud.mark.entity.MarkUserGroup;
+import com.qmth.teachcloud.mark.params.MarkHeaderGroupResult;
+
 /**
  * 阅卷轨迹交换类
  *
@@ -68,7 +70,7 @@ public class TrackDTO implements Serializable {
         setOffsetY(track.getOffsetY());
     }
 
-    public MarkTrack transform(MarkTask markTask, MarkUserGroup markUserGroup) {
+    public MarkTrack transform(MarkTask markTask, Long userId) {
         MarkTrack track = new MarkTrack();
         track.setTaskId(markTask.getId());
         track.setQuestionNumber(getMainNumber() + "." + getSubNumber());
@@ -77,7 +79,7 @@ public class TrackDTO implements Serializable {
         track.setExamId(markTask.getExamId());
         track.setPaperNumber(markTask.getPaperNumber());
         track.setGroupNumber(markTask.getGroupNumber());
-        track.setUserId(markUserGroup.getUserId());
+        track.setUserId(userId);
         track.setScore(getScore());
         track.setPositionX(getPositionX());
         track.setPositionY(getPositionY());

+ 17 - 6
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/dto/mark/mark/MarkTaskDto.java

@@ -5,18 +5,19 @@ import java.util.List;
 
 import com.qmth.teachcloud.mark.bean.mark.MarkConfigItem;
 import com.qmth.teachcloud.mark.dto.mark.SpecialTagDTO;
+import com.qmth.teachcloud.mark.entity.MarkTask;
 
 public class MarkTaskDto {
 
     /**
      * 评卷任务编号
      */
-    private Integer taskId;
+    private Long taskId;
 
     /**
      * 考生编号
      */
-    private Integer studentId;
+    private Long studentId;
 
     /**
      * 显示考生密号
@@ -127,20 +128,30 @@ public class MarkTaskDto {
      */
     private String message;
 
+    public MarkTaskDto() {
+  	}
+    
+    public MarkTaskDto(MarkTask t) {
+		this.taskId=t.getId();
+		this.studentId=t.getStudentId();
+		this.secretNumber=t.getSecretNumber();
+		this.groupNumber=t.getGroupNumber();
+		this.isPrevious = t.getUserId()!=null;
+	}
 
-    public Integer getTaskId() {
+	public Long getTaskId() {
 		return taskId;
 	}
 
-	public void setTaskId(Integer taskId) {
+	public void setTaskId(Long taskId) {
 		this.taskId = taskId;
 	}
 
-	public Integer getStudentId() {
+	public Long getStudentId() {
         return studentId;
     }
 
-    public void setStudentId(Integer studentId) {
+    public void setStudentId(Long studentId) {
         this.studentId = studentId;
     }
 

+ 3 - 3
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/entity/MarkProblemHistory.java

@@ -1,17 +1,17 @@
 package com.qmth.teachcloud.mark.entity;
 
-import com.baomidou.mybatisplus.annotation.IdType;
+import java.io.Serializable;
+
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.teachcloud.common.enums.mark.MarkProblemStatus;
 import com.qmth.teachcloud.common.enums.mark.MarkProblemType;
+
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
-import java.io.Serializable;
-
 /**
  * <p>
  * 问题卷历史表

+ 2 - 2
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/mapper/MarkTaskMapper.java

@@ -31,9 +31,9 @@ public interface MarkTaskMapper extends BaseMapper<MarkTask> {
 	IPage<MarkTaskDto> listPageHistory(@Param("page")Page<MarkTaskDto> page,@Param("userId") Long userId,@Param("examId") Long examId, @Param("paperNumber")String paperNumber,
 			@Param("groupNumber")Integer groupNumber,@Param("secretNumber") String secretNumber,@Param("markerScore") Double markerScore);
 
-	List<MarkTaskDto> findUnMarked(@Param("page")Page<MarkTaskDto> page,@Param("examId") Long examId, @Param("paperNumber")String paperNumber, @Param("groupNumber")Integer groupNumber,
+	List<MarkTask> findUnMarked(@Param("page")Page<MarkTaskDto> page,@Param("examId") Long examId, @Param("paperNumber")String paperNumber, @Param("groupNumber")Integer groupNumber,
 			@Param("userId")Long userId);
 
-	List<MarkTaskDto> findUnMarkedFilterClass(@Param("page")Page<MarkTaskDto> page,@Param("examId") Long examId, @Param("paperNumber")String paperNumber, @Param("groupNumber")Integer groupNumber,
+	List<MarkTask> findUnMarkedFilterClass(@Param("page")Page<MarkTaskDto> page,@Param("examId") Long examId, @Param("paperNumber")String paperNumber, @Param("groupNumber")Integer groupNumber,
 			@Param("userId")Long userId);
 }

+ 2 - 2
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/params/MarkHeaderGroupResult.java

@@ -134,11 +134,11 @@ public class MarkHeaderGroupResult {
         return list;
     }
 
-    public List<MarkTrack> getTrackList(MarkTask markTask, MarkUserGroup markUserGroup) {
+    public List<MarkTrack> getTrackList(MarkTask markTask, Long userId) {
         List<MarkTrack> list = new LinkedList<>();
         if (trackList != null) {
             for (TrackDTO dto : trackList) {
-                list.add(dto.transform(markTask, markUserGroup));
+                list.add(dto.transform(markTask, userId));
             }
         }
         return list;

+ 24 - 18
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/params/MarkResult.java

@@ -1,19 +1,24 @@
 package com.qmth.teachcloud.mark.params;
 
-import com.qmth.teachcloud.mark.dto.mark.SpecialTagDTO;
-import com.qmth.teachcloud.mark.dto.mark.manage.TrackDTO;
-import com.qmth.teachcloud.mark.entity.*;
-import org.apache.commons.lang3.StringUtils;
-
 import java.util.ArrayList;
 import java.util.LinkedList;
 import java.util.List;
 
+import org.apache.commons.lang3.StringUtils;
+
+import com.qmth.teachcloud.common.enums.mark.MarkProblemType;
+import com.qmth.teachcloud.mark.dto.mark.SpecialTagDTO;
+import com.qmth.teachcloud.mark.dto.mark.manage.TrackDTO;
+import com.qmth.teachcloud.mark.entity.MarkArbitrateHistory;
+import com.qmth.teachcloud.mark.entity.MarkHeaderTag;
+import com.qmth.teachcloud.mark.entity.MarkHeaderTrack;
+import com.qmth.teachcloud.mark.entity.MarkSpecialTag;
+import com.qmth.teachcloud.mark.entity.MarkTask;
+import com.qmth.teachcloud.mark.entity.MarkTrack;
+
 /**
  * 标准评卷结果对象
  * 
- * @author luoshi
- *
  */
 public class MarkResult {
 
@@ -72,7 +77,7 @@ public class MarkResult {
     /**
      * 问题类型
      */
-    private Integer problemTypeId;
+    private MarkProblemType problemType;
 
     private boolean unselective;
 
@@ -165,11 +170,11 @@ public class MarkResult {
         return list;
     }
 
-    public List<MarkTrack> getTrackList(MarkTask markTask, MarkUserGroup markUserGroup) {
+    public List<MarkTrack> getTrackList(MarkTask markTask, Long userId) {
         List<MarkTrack> list = new LinkedList<>();
         if (trackList != null) {
             for (TrackDTO dto : trackList) {
-                list.add(dto.transform(markTask, markUserGroup));
+                list.add(dto.transform(markTask, userId));
             }
         }
         return list;
@@ -185,7 +190,7 @@ public class MarkResult {
         return list;
     }
 
-    public List<MarkSpecialTag> getSpecialTagList(MarkTask markTask, MarkUserGroup markUserGroup) {
+    public List<MarkSpecialTag> getSpecialTagList(MarkTask markTask) {
         List<MarkSpecialTag> list = new LinkedList<>();
         if (specialTagList != null) {
             for (SpecialTagDTO dto : specialTagList) {
@@ -203,15 +208,16 @@ public class MarkResult {
         this.isProblem = isProblem;
     }
 
-    public Integer getProblemTypeId() {
-        return problemTypeId;
-    }
 
-    public void setProblemTypeId(Integer problemTypeId) {
-        this.problemTypeId = problemTypeId;
-    }
+    public MarkProblemType getProblemType() {
+		return problemType;
+	}
+
+	public void setProblemType(MarkProblemType problemType) {
+		this.problemType = problemType;
+	}
 
-    public boolean isUnselective() {
+	public boolean isUnselective() {
         return unselective;
     }
 

+ 2 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/MarkProblemHistoryService.java

@@ -27,4 +27,6 @@ public interface MarkProblemHistoryService extends IService<MarkProblemHistory>
     void deleteByStudentId(Long studentId);
 
     void deleteByExamIdAndPaperNumberAndGroupNumber(Long examId, String paperNumber, Integer groupNumber);
+
+	MarkProblemHistory findByTaskIdAndStatus(Long taskId, MarkProblemStatus status);
 }

+ 5 - 1
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/MarkService.java

@@ -77,7 +77,11 @@ public interface MarkService {
 	IPage<MarkTaskDto> getHistory(Long userId, int pageNumber, int pageSize, Sort sort,String order, Long examId, String paperNumber,
 			Integer groupNumber, String secretNumber, Double markerScore);
 
-	String saveTask(Long userId, MarkResult markResult);
+	SubmitResult saveTask(Long userId, MarkResult markResult);
 
 	void clear(Long userId, Long examId, String paperNumber, Integer groupNumber);
+
+	boolean applyLibrary(MarkTask t, Long userId);
+
+	boolean hasApplied(MarkTask t, Long userId);
 }

+ 15 - 2
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/MarkTaskService.java

@@ -60,8 +60,21 @@ public interface MarkTaskService extends IService<MarkTask> {
 	IPage<MarkTaskDto> listPageHistory(Page<MarkTaskDto> page, Long userId, Long examId, String paperNumber,
 			Integer groupNumber, String secretNumber, Double markerScore);
 
-	List<MarkTaskDto> findUnMarked(Page<MarkTaskDto> page, Long examId, String paperNumber, Integer groupNumber, Long userId);
+	List<MarkTask> findUnMarked(Page<MarkTaskDto> page, Long examId, String paperNumber, Integer groupNumber, Long userId);
 
-	List<MarkTaskDto> findUnMarkedFilterClass(Page<MarkTaskDto> page, Long examId, String paperNumber, Integer groupNumber,
+	List<MarkTask> findUnMarkedFilterClass(Page<MarkTaskDto> page, Long examId, String paperNumber, Integer groupNumber,
 			Long userId);
+
+	int countByIdAndStatus(Long id, MarkTaskStatus status);
+
+	List<MarkTask> findByStudentIdAndGroupNumberAndStatus(Long studentId, Integer groupNumber, MarkTaskStatus... status);
+
+	boolean updateProblemResult(Long taskId,Long userId, Long now, int spent);
+
+	boolean updateStatusByStudentIdAndGroupNumber(Long studentId, Integer groupNumber, MarkTaskStatus status);
+
+	int countByStudentIdAndMarkerIdAndIdNotEqual(Long studentId, Long userId, Long taskId);
+
+	boolean updateMarkerResult(Long taskId, MarkTaskStatus marked, Long userId, Double markerScore, String scoreList,
+			Long now, int spent,MarkTaskStatus... inStatus);
 }

+ 109 - 91
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkProblemHistoryServiceImpl.java

@@ -1,5 +1,12 @@
 package com.qmth.teachcloud.mark.service.impl;
 
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -16,11 +23,11 @@ import com.qmth.teachcloud.mark.enums.LockType;
 import com.qmth.teachcloud.mark.enums.MarkTaskStatus;
 import com.qmth.teachcloud.mark.lock.LockService;
 import com.qmth.teachcloud.mark.mapper.MarkProblemHistoryMapper;
-import com.qmth.teachcloud.mark.service.*;
-import org.springframework.stereotype.Service;
-
-import javax.annotation.Resource;
-import java.util.List;
+import com.qmth.teachcloud.mark.service.MarkProblemHistoryService;
+import com.qmth.teachcloud.mark.service.MarkQuestionService;
+import com.qmth.teachcloud.mark.service.MarkService;
+import com.qmth.teachcloud.mark.service.MarkStudentService;
+import com.qmth.teachcloud.mark.service.MarkTaskService;
 
 /**
  * <p>
@@ -31,97 +38,108 @@ import java.util.List;
  * @since 2023-09-22
  */
 @Service
-public class MarkProblemHistoryServiceImpl extends ServiceImpl<MarkProblemHistoryMapper, MarkProblemHistory> implements MarkProblemHistoryService {
+public class MarkProblemHistoryServiceImpl extends ServiceImpl<MarkProblemHistoryMapper, MarkProblemHistory>
+		implements MarkProblemHistoryService {
+
+	@Resource
+	private MarkStudentService markStudentService;
+	@Resource
+	private MarkQuestionService markQuestionService;
+	@Resource
+	private SysUserService sysUserService;
+	@Resource
+	private MarkTaskService markTaskService;
+	@Resource
+	private MarkService markService;
+	@Resource
+	private LockService lockService;
 
-    @Resource
-    private MarkStudentService markStudentService;
-    @Resource
-    private MarkQuestionService markQuestionService;
-    @Resource
-    private SysUserService sysUserService;
-    @Resource
-    private MarkTaskService markTaskService;
-    @Resource
-    private MarkService markService;
-    @Resource
-    private LockService lockService;
+	@Override
+	public IPage<MarkProblemDto> pageProblem(Long examId, String paperNumber, Integer groupNumber, String problemType,
+			String status, String secretNumber, Integer pageNumber, Integer pageSize) {
+		Page<MarkProblemDto> page = new Page<>(pageNumber, pageSize);
+		IPage<MarkProblemDto> markProblemDtoIPage = this.baseMapper.pageProblem(page, examId, paperNumber, groupNumber,
+				problemType, status, secretNumber);
+		for (MarkProblemDto problemDto : markProblemDtoIPage.getRecords()) {
+			MarkStudent markStudent = markStudentService.getById(problemDto.getStudentId());
+			problemDto.setStudentName(markStudent.getStudentName());
+			problemDto.setStudentCode(markStudent.getStudentCode());
+			problemDto.setProblemTypeName(problemDto.getType().getName());
+			problemDto.setStatusName(problemDto.getStatus().getName());
+			problemDto.setGroupQuestions(markQuestionService
+					.assembleGroupQuestionsByExamIdAndPaperNumberAndNumber(examId, paperNumber, groupNumber));
+			if (problemDto.getUserId() != null) {
+				SysUser sysUser = sysUserService.getById(problemDto.getUserId());
+				if (sysUser != null) {
+					problemDto.setUserLoginName(sysUser.getLoginName());
+					problemDto.setUserName(sysUser.getRealName());
+				}
+			}
+			if (problemDto.getUpdateUserId() != null) {
+				SysUser sysUser = sysUserService.getById(problemDto.getUpdateUserId());
+				if (sysUser != null) {
+					problemDto.setUpdateUserLoginName(sysUser.getLoginName());
+					problemDto.setUpdateUserName(sysUser.getRealName());
+				}
+			}
+		}
+		return markProblemDtoIPage;
+	}
 
-    @Override
-    public IPage<MarkProblemDto> pageProblem(Long examId, String paperNumber, Integer groupNumber, String problemType, String status, String secretNumber, Integer pageNumber, Integer pageSize) {
-        Page<MarkProblemDto> page = new Page<>(pageNumber, pageSize);
-        IPage<MarkProblemDto> markProblemDtoIPage = this.baseMapper.pageProblem(page, examId, paperNumber, groupNumber, problemType, status, secretNumber);
-        for (MarkProblemDto problemDto : markProblemDtoIPage.getRecords()) {
-            MarkStudent markStudent = markStudentService.getById(problemDto.getStudentId());
-            problemDto.setStudentName(markStudent.getStudentName());
-            problemDto.setStudentCode(markStudent.getStudentCode());
-            problemDto.setProblemTypeName(problemDto.getType().getName());
-            problemDto.setStatusName(problemDto.getStatus().getName());
-            problemDto.setGroupQuestions(markQuestionService.assembleGroupQuestionsByExamIdAndPaperNumberAndNumber(examId, paperNumber, groupNumber));
-            if (problemDto.getUserId() != null) {
-                SysUser sysUser = sysUserService.getById(problemDto.getUserId());
-                if (sysUser != null) {
-                    problemDto.setUserLoginName(sysUser.getLoginName());
-                    problemDto.setUserName(sysUser.getRealName());
-                }
-            }
-            if (problemDto.getUpdateUserId() != null) {
-                SysUser sysUser = sysUserService.getById(problemDto.getUpdateUserId());
-                if (sysUser != null) {
-                    problemDto.setUpdateUserLoginName(sysUser.getLoginName());
-                    problemDto.setUpdateUserName(sysUser.getRealName());
-                }
-            }
-        }
-        return markProblemDtoIPage;
-    }
+	@Override
+	public void resetProblem(List<Long> taskIds) {
+		SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+		for (Long taskId : taskIds) {
+			MarkTask markTask = markTaskService.getById(taskId);
+			if (markTask != null) {
+				try {
+					lockService.watch(LockType.EXAM_SUBJECT, markTask.getExamId(), markTask.getPaperNumber());
+					lockService.watch(LockType.GROUP, markTask.getExamId(), markTask.getPaperNumber(),
+							markTask.getGroupNumber());
+					if (markTask.getStatus().equals(MarkTaskStatus.PROBLEM)) {
+						markService.rejectMarkTask(markTask, sysUser.getId());
+					}
+				} catch (Exception e) {
+					log.error("back library error", e);
+				} finally {
+					lockService.unwatch(LockType.GROUP, markTask.getExamId(), markTask.getPaperNumber(),
+							markTask.getGroupNumber());
+					lockService.unwatch(LockType.EXAM_SUBJECT, markTask.getExamId(), markTask.getPaperNumber());
+				}
+			}
+		}
 
-    @Override
-    public void resetProblem(List<Long> taskIds) {
-        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        for (Long taskId : taskIds) {
-            MarkTask markTask = markTaskService.getById(taskId);
-            if (markTask != null) {
-                try {
-                    lockService.watch(LockType.EXAM_SUBJECT, markTask.getExamId(), markTask.getPaperNumber());
-                    lockService.watch(LockType.GROUP, markTask.getExamId(), markTask.getPaperNumber(), markTask.getGroupNumber());
-                    if (markTask.getStatus().equals(MarkTaskStatus.PROBLEM)) {
-                        markService.rejectMarkTask(markTask, sysUser.getId());
-                    }
-                } catch (Exception e) {
-                    log.error("back library error", e);
-                } finally {
-                    lockService.unwatch(LockType.GROUP, markTask.getExamId(), markTask.getPaperNumber(), markTask.getGroupNumber());
-                    lockService.unwatch(LockType.EXAM_SUBJECT, markTask.getExamId(), markTask.getPaperNumber());
-                }
-            }
-        }
+	}
 
-    }
+	@Override
+	public void resetByMarkTaskId(Long id, MarkProblemStatus waiting, Long userId, MarkProblemStatus back, Long now) {
+		UpdateWrapper<MarkProblemHistory> updateWrapper = new UpdateWrapper<>();
+		updateWrapper.lambda().set(MarkProblemHistory::getUpdateUserId, userId).set(MarkProblemHistory::getStatus, back)
+				.set(MarkProblemHistory::getUpdateTime, now).eq(MarkProblemHistory::getId, id)
+				.eq(MarkProblemHistory::getStatus, waiting);
+		this.update(updateWrapper);
+	}
 
-    @Override
-    public void resetByMarkTaskId(Long id, MarkProblemStatus waiting, Long userId, MarkProblemStatus back, Long now) {
-        UpdateWrapper<MarkProblemHistory> updateWrapper = new UpdateWrapper<>();
-        updateWrapper.lambda().set(MarkProblemHistory::getUpdateUserId, userId)
-                .set(MarkProblemHistory::getStatus, back)
-                .set(MarkProblemHistory::getUpdateTime, now)
-                .eq(MarkProblemHistory::getId, id)
-                .eq(MarkProblemHistory::getStatus, waiting);
-        this.update(updateWrapper);
-    }
+	@Override
+	public void deleteByStudentId(Long studentId) {
+		UpdateWrapper<MarkProblemHistory> updateWrapper = new UpdateWrapper<>();
+		updateWrapper.lambda().eq(MarkProblemHistory::getStudentId, studentId);
+		this.remove(updateWrapper);
+	}
 
-    @Override
-    public void deleteByStudentId(Long studentId) {
-        UpdateWrapper<MarkProblemHistory> updateWrapper = new UpdateWrapper<>();
-        updateWrapper.lambda().eq(MarkProblemHistory::getStudentId, studentId);
-        this.remove(updateWrapper);
-    }
+	@Override
+	public void deleteByExamIdAndPaperNumberAndGroupNumber(Long examId, String paperNumber, Integer groupNumber) {
+		UpdateWrapper<MarkProblemHistory> updateWrapper = new UpdateWrapper<>();
+		updateWrapper.lambda().eq(MarkProblemHistory::getExamId, examId)
+				.eq(MarkProblemHistory::getPaperNumber, paperNumber)
+				.eq(MarkProblemHistory::getGroupNumber, groupNumber);
+		this.remove(updateWrapper);
+	}
 
-    @Override
-    public void deleteByExamIdAndPaperNumberAndGroupNumber(Long examId, String paperNumber, Integer groupNumber) {
-        UpdateWrapper<MarkProblemHistory> updateWrapper = new UpdateWrapper<>();
-        updateWrapper.lambda().eq(MarkProblemHistory::getExamId, examId)
-                .eq(MarkProblemHistory::getPaperNumber, paperNumber)
-                .eq(MarkProblemHistory::getGroupNumber, groupNumber);
-        this.remove(updateWrapper);
-    }
+	@Override
+	public MarkProblemHistory findByTaskIdAndStatus(Long taskId, MarkProblemStatus status) {
+		QueryWrapper<MarkProblemHistory> queryWrapper = new QueryWrapper<>();
+		queryWrapper.lambda().eq(MarkProblemHistory::getTaskId, taskId).eq(MarkProblemHistory::getStatus, status);
+		return this.getOne(queryWrapper);
+	}
 }

Fichier diff supprimé car celui-ci est trop grand
+ 790 - 710
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkServiceImpl.java


+ 67 - 2
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkTaskServiceImpl.java

@@ -244,14 +244,79 @@ public class MarkTaskServiceImpl extends ServiceImpl<MarkTaskMapper, MarkTask> i
 	}
 
 	@Override
-	public List<MarkTaskDto> findUnMarked(Page<MarkTaskDto> page, Long examId, String paperNumber, Integer groupNumber,
+	public List<MarkTask> findUnMarked(Page<MarkTaskDto> page, Long examId, String paperNumber, Integer groupNumber,
 			Long userId) {
 		return this.baseMapper.findUnMarked(page, examId, paperNumber, groupNumber, userId);
 	}
 
 	@Override
-	public List<MarkTaskDto> findUnMarkedFilterClass(Page<MarkTaskDto> page, Long examId, String paperNumber,
+	public List<MarkTask> findUnMarkedFilterClass(Page<MarkTaskDto> page, Long examId, String paperNumber,
 			Integer groupNumber, Long userId) {
 		return this.baseMapper.findUnMarkedFilterClass(page, examId, paperNumber, groupNumber, userId);
 	}
+
+	@Override
+	public int countByIdAndStatus(Long id, MarkTaskStatus status) {
+		 QueryWrapper<MarkTask> queryWrapper = new QueryWrapper<>();
+		 queryWrapper.lambda().eq(MarkTask::getId, id)
+	                .eq(MarkTask::getStatus, status);
+		 return this.count(queryWrapper);
+	}
+
+	@Override
+	public List<MarkTask> findByStudentIdAndGroupNumberAndStatus(Long studentId, Integer groupNumber,
+			MarkTaskStatus... status) {
+		QueryWrapper<MarkTask> queryWrapper = new QueryWrapper<>();
+		queryWrapper.lambda().eq(MarkTask::getStudentId, studentId)
+		 			.eq(MarkTask::getGroupNumber, groupNumber)
+	                .in(MarkTask::getStatus, Arrays.asList(status));
+		 return this.list(queryWrapper);
+	}
+
+	@Override
+	public boolean updateProblemResult(Long taskId, Long userId, Long now, int spent) {
+		 UpdateWrapper<MarkTask> updateWrapper = new UpdateWrapper<>();
+		 updateWrapper.lambda().eq(MarkTask::getId, taskId)
+		 			.in(MarkTask::getStatus, Arrays.asList( MarkTaskStatus.WAITING, MarkTaskStatus.REJECTED, MarkTaskStatus.MARKED))
+		 			.set(MarkTask::getStatus, MarkTaskStatus.PROBLEM)
+	                .set(MarkTask::getUserId, userId)
+	                .set(MarkTask::getMarkerScore, null)
+	                .set(MarkTask::getMarkerScoreList, null)
+	                .set(MarkTask::getMarkerTime, now)
+	                .set(MarkTask::getMarkerSpent, spent);
+		 return this.update(updateWrapper);
+	}
+
+	@Override
+	public boolean updateStatusByStudentIdAndGroupNumber(Long studentId, Integer groupNumber, MarkTaskStatus status) {
+		UpdateWrapper<MarkTask> updateWrapper = new UpdateWrapper<>();
+		updateWrapper.lambda().eq(MarkTask::getStudentId, studentId)
+		 			.eq(MarkTask::getGroupNumber,groupNumber)
+		 			.set(MarkTask::getStatus, status);
+		return this.update(updateWrapper);
+	}
+
+	@Override
+	public int countByStudentIdAndMarkerIdAndIdNotEqual(Long studentId, Long userId, Long taskId) {
+		QueryWrapper<MarkTask> queryWrapper = new QueryWrapper<>();
+		queryWrapper.lambda().eq(MarkTask::getStudentId, studentId)
+		 			.eq(MarkTask::getUserId, userId)
+	                .ne(MarkTask::getId, taskId);
+		 return this.count(queryWrapper);
+	}
+
+	@Override
+	public boolean updateMarkerResult(Long taskId, MarkTaskStatus status, Long userId, Double markerScore,
+			String scoreList, Long now, int spent, MarkTaskStatus... inStatus) {
+		UpdateWrapper<MarkTask> updateWrapper = new UpdateWrapper<>();
+		 updateWrapper.lambda().eq(MarkTask::getId, taskId)
+		 			.in(MarkTask::getStatus, Arrays.asList(inStatus))
+		 			.set(MarkTask::getStatus, status)
+	                .set(MarkTask::getUserId, userId)
+	                .set(MarkTask::getMarkerScore, markerScore)
+	                .set(MarkTask::getMarkerScoreList, scoreList)
+	                .set(MarkTask::getMarkerTime, now)
+	                .set(MarkTask::getMarkerSpent, spent);
+		 return this.update(updateWrapper);
+	}
 }

+ 7 - 26
teachcloud-mark/src/main/resources/mapper/MarkTaskMapper.xml

@@ -147,23 +147,13 @@
         </where>
     </select>
     
-    <select id="findUnMarked" resultType="com.qmth.teachcloud.mark.dto.mark.mark.MarkTaskDto">
+    <select id="findUnMarked" resultType="com.qmth.teachcloud.mark.entity.MarkTask">
         SELECT
-        	mt.id taskId,
-        	mt.student_id studentId,
-            mt.secret_number secretNumber,
-            s.student_name studentName,
-            mt.student_code studentCode,
-            mt.paper_number paperNumber,
-            mt.group_number groupNumber,
-            s.objective_score objectiveScore,
-            mt.marker_time markerTime,
-            mt.marker_score markerScore
+        	mt.*
         FROM
-            mark_task mt join mark_student s 
+            mark_task mt
         <where>
-        	mt.student_id = s.id
-        and mt.exam_id = #{examId}
+        	mt.exam_id = #{examId}
 		and mt.paper_number = #{paperNumber}
 		and mt.group_number = #{groupNumber}
 		and (mt.marker_id is null or mt.marker_id =#{userId})
@@ -178,20 +168,11 @@
         </where>
     </select>
     
-    <select id="findUnMarkedFilterClass" resultType="com.qmth.teachcloud.mark.dto.mark.mark.MarkTaskDto">
+    <select id="findUnMarkedFilterClass" resultType="com.qmth.teachcloud.mark.entity.MarkTask">
         SELECT
-        	mt.id taskId,
-        	mt.student_id studentId,
-            mt.secret_number secretNumber,
-            s.student_name studentName,
-            mt.student_code studentCode,
-            mt.paper_number paperNumber,
-            mt.group_number groupNumber,
-            s.objective_score objectiveScore,
-            mt.marker_time markerTime,
-            mt.marker_score markerScore
+        	mt.*
         FROM
-            mark_task mt join mark_student s 
+            mark_task mt
         <where>
         	mt.student_id = s.id
         and mt.exam_id = #{examId}

Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff