|
@@ -1,15 +1,5 @@
|
|
|
package com.qmth.teachcloud.mark.service.impl;
|
|
|
|
|
|
-import java.text.DecimalFormat;
|
|
|
-import java.util.Arrays;
|
|
|
-import java.util.List;
|
|
|
-
|
|
|
-import javax.annotation.Resource;
|
|
|
-import javax.servlet.http.HttpServletResponse;
|
|
|
-
|
|
|
-import org.springframework.stereotype.Service;
|
|
|
-import org.springframework.util.CollectionUtils;
|
|
|
-
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
@@ -25,12 +15,22 @@ import com.qmth.teachcloud.common.util.ServletUtil;
|
|
|
import com.qmth.teachcloud.mark.dto.mark.manage.MarkManageDto;
|
|
|
import com.qmth.teachcloud.mark.dto.mark.manage.MarkerInfoDto;
|
|
|
import com.qmth.teachcloud.mark.entity.MarkGroup;
|
|
|
+import com.qmth.teachcloud.mark.entity.MarkPaper;
|
|
|
import com.qmth.teachcloud.mark.entity.MarkTask;
|
|
|
import com.qmth.teachcloud.mark.enums.MarkTaskStatus;
|
|
|
import com.qmth.teachcloud.mark.mapper.MarkTaskMapper;
|
|
|
import com.qmth.teachcloud.mark.service.MarkGroupService;
|
|
|
+import com.qmth.teachcloud.mark.service.MarkPaperService;
|
|
|
import com.qmth.teachcloud.mark.service.MarkQuestionService;
|
|
|
import com.qmth.teachcloud.mark.service.MarkTaskService;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
+
|
|
|
+import javax.annotation.Resource;
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
+import java.text.DecimalFormat;
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.List;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
@@ -43,6 +43,8 @@ import com.qmth.teachcloud.mark.service.MarkTaskService;
|
|
|
@Service
|
|
|
public class MarkTaskServiceImpl extends ServiceImpl<MarkTaskMapper, MarkTask> implements MarkTaskService {
|
|
|
|
|
|
+ @Resource
|
|
|
+ private MarkPaperService markPaperService;
|
|
|
@Resource
|
|
|
private MarkGroupService markGroupService;
|
|
|
@Resource
|
|
@@ -55,7 +57,13 @@ public class MarkTaskServiceImpl extends ServiceImpl<MarkTaskMapper, MarkTask> i
|
|
|
Page<MarkManageDto> page = new Page<>(pageNumber, pageSize);
|
|
|
SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
|
|
|
DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(sysUser.getSchoolId(), sysUser.getId(), ServletUtil.getRequest().getServletPath());
|
|
|
- return this.baseMapper.listPaperManage(page, examId, courseCode, paperNumber, progressStatus, dpr);
|
|
|
+ IPage<MarkManageDto> markManageDtoIPage = this.baseMapper.listPaperManage(page, examId, courseCode, paperNumber, progressStatus, dpr);
|
|
|
+ for (MarkManageDto record : markManageDtoIPage.getRecords()) {
|
|
|
+ MarkPaper markPaper = markPaperService.getByExamIdAndPaperNumber(record.getExamId(), record.getPaperNumber());
|
|
|
+ record.setStatus(markPaper == null ? null : markPaper.getStatus().name());
|
|
|
+ record.setStatusDisplay(markPaper == null ? null : markPaper.getStatus().getName());
|
|
|
+ }
|
|
|
+ return markManageDtoIPage;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -237,86 +245,86 @@ public class MarkTaskServiceImpl extends ServiceImpl<MarkTaskMapper, MarkTask> i
|
|
|
this.remove(updateWrapper);
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- public IPage<MarkTask> listPageHistory(Page<MarkTask> page, Long userId, Long examId, String paperNumber,
|
|
|
- Integer groupNumber, String secretNumber, Double markerScore) {
|
|
|
- return this.baseMapper.listPageHistory(page, userId, examId, paperNumber, groupNumber, secretNumber, markerScore);
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public IPage<MarkTask> listPageHistory(Page<MarkTask> page, Long userId, Long examId, String paperNumber,
|
|
|
+ Integer groupNumber, String secretNumber, Double markerScore) {
|
|
|
+ return this.baseMapper.listPageHistory(page, userId, examId, paperNumber, groupNumber, secretNumber, markerScore);
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- public List<MarkTask> findUnMarked(Page<MarkTask> page, Long examId, String paperNumber, Integer groupNumber,
|
|
|
- Long userId) {
|
|
|
- return this.baseMapper.findUnMarked(page, examId, paperNumber, groupNumber, userId);
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public List<MarkTask> findUnMarked(Page<MarkTask> page, Long examId, String paperNumber, Integer groupNumber,
|
|
|
+ Long userId) {
|
|
|
+ return this.baseMapper.findUnMarked(page, examId, paperNumber, groupNumber, userId);
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- public List<MarkTask> findUnMarkedFilterClass(Page<MarkTask> page, Long examId, String paperNumber,
|
|
|
- Integer groupNumber, Long userId) {
|
|
|
- return this.baseMapper.findUnMarkedFilterClass(page, examId, paperNumber, groupNumber, userId);
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public List<MarkTask> findUnMarkedFilterClass(Page<MarkTask> 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 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 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 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 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 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);
|
|
|
- }
|
|
|
+ @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);
|
|
|
+ }
|
|
|
}
|