|
@@ -44,7 +44,7 @@ import java.util.stream.Collectors;
|
|
|
* @since 2023-09-22
|
|
|
*/
|
|
|
@Service
|
|
|
-public class MarkUserGroupServiceImpl extends ServiceImpl<MarkUserGroupMapper, MarkUserGroup> implements MarkUserGroupService {
|
|
|
+public class MarkUserGroupServiceImpl extends ServiceImpl<MarkUserGroupMapper, MarkUserQuestion> implements MarkUserGroupService {
|
|
|
|
|
|
@Resource
|
|
|
private MarkQuestionService markQuestionService;
|
|
@@ -68,7 +68,7 @@ public class MarkUserGroupServiceImpl extends ServiceImpl<MarkUserGroupMapper, M
|
|
|
@Override
|
|
|
public IPage<MarkEntranceDto> listEntranceGroup(Long examId, Long openCollegeId, Long courseId, String paperNumber, Integer pageNumber, Integer pageSize) {
|
|
|
SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
|
|
|
- Page<MarkUserGroup> page = new Page<>(pageNumber, pageSize);
|
|
|
+ Page<MarkUserQuestion> page = new Page<>(pageNumber, pageSize);
|
|
|
IPage<MarkEntranceDto> markEntranceDtoIPage = this.baseMapper.listEntranceGroup(page, examId, openCollegeId, courseId, paperNumber, sysUser.getId(), MarkPaperStatus.FORMAL.name());
|
|
|
for (MarkEntranceDto record : markEntranceDtoIPage.getRecords()) {
|
|
|
int taskCount = record.getTaskCount();
|
|
@@ -123,11 +123,11 @@ public class MarkUserGroupServiceImpl extends ServiceImpl<MarkUserGroupMapper, M
|
|
|
@Override
|
|
|
public void addMarkUserGroup(Long examId, String paperNumber, Integer groupNumber, List<Long> userIds) {
|
|
|
if (CollectionUtils.isNotEmpty(userIds)) {
|
|
|
- List<MarkUserGroup> markUserGroups = new ArrayList<>();
|
|
|
+ List<MarkUserQuestion> markUserGroups = new ArrayList<>();
|
|
|
for (Long userId : userIds) {
|
|
|
- MarkUserGroup markUserGroup = this.getByExamIdAndPaperNumberAndGroupNumberAndUserId(examId, paperNumber, groupNumber, userId);
|
|
|
+ MarkUserQuestion markUserGroup = this.getByExamIdAndPaperNumberAndGroupNumberAndUserId(examId, paperNumber, groupNumber, userId);
|
|
|
if (markUserGroup == null) {
|
|
|
- markUserGroups.add(new MarkUserGroup(examId, paperNumber, groupNumber, userId));
|
|
|
+ markUserGroups.add(new MarkUserQuestion(examId, paperNumber, groupNumber, userId));
|
|
|
}
|
|
|
}
|
|
|
if (CollectionUtils.isNotEmpty(markUserGroups)) {
|
|
@@ -139,7 +139,7 @@ public class MarkUserGroupServiceImpl extends ServiceImpl<MarkUserGroupMapper, M
|
|
|
@Override
|
|
|
public void setTopCount(List<Long> markUserGroupIds, Integer topCount) {
|
|
|
for (Long markUserGroupId : markUserGroupIds) {
|
|
|
- MarkUserGroup markUserGroup = this.getById(markUserGroupId);
|
|
|
+ MarkUserQuestion markUserGroup = this.getById(markUserGroupId);
|
|
|
if (markUserGroup != null) {
|
|
|
markUserGroup.setTopCount(topCount);
|
|
|
this.updateById(markUserGroup);
|
|
@@ -148,18 +148,18 @@ public class MarkUserGroupServiceImpl extends ServiceImpl<MarkUserGroupMapper, M
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public MarkUserGroup getByExamIdAndPaperNumberAndGroupNumberAndUserId(Long examId, String paperNumber, Integer groupNumber, Long userId) {
|
|
|
- QueryWrapper<MarkUserGroup> queryWrapper = new QueryWrapper<>();
|
|
|
- queryWrapper.lambda().eq(MarkUserGroup::getExamId, examId)
|
|
|
- .eq(MarkUserGroup::getPaperNumber, paperNumber)
|
|
|
- .eq(MarkUserGroup::getGroupNumber, groupNumber)
|
|
|
- .eq(MarkUserGroup::getUserId, userId);
|
|
|
+ public MarkUserQuestion getByExamIdAndPaperNumberAndGroupNumberAndUserId(Long examId, String paperNumber, Integer groupNumber, Long userId) {
|
|
|
+ QueryWrapper<MarkUserQuestion> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.lambda().eq(MarkUserQuestion::getExamId, examId)
|
|
|
+ .eq(MarkUserQuestion::getPaperNumber, paperNumber)
|
|
|
+ .eq(MarkUserQuestion::getGroupNumber, groupNumber)
|
|
|
+ .eq(MarkUserQuestion::getUserId, userId);
|
|
|
return this.getOne(queryWrapper);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void deleteMarker(Long markUserGroupId) {
|
|
|
- MarkUserGroup markUserGroup = this.getById(markUserGroupId);
|
|
|
+ MarkUserQuestion markUserGroup = this.getById(markUserGroupId);
|
|
|
if (markUserGroup == null) {
|
|
|
throw ExceptionResultEnum.ERROR.exception("评卷员不存在");
|
|
|
}
|
|
@@ -176,7 +176,7 @@ public class MarkUserGroupServiceImpl extends ServiceImpl<MarkUserGroupMapper, M
|
|
|
@Override
|
|
|
public void releaseMarker(List<Long> markUserGroupIds) {
|
|
|
for (Long markUserGroupId : markUserGroupIds) {
|
|
|
- MarkUserGroup markUserGroup = this.getById(markUserGroupId);
|
|
|
+ MarkUserQuestion markUserGroup = this.getById(markUserGroupId);
|
|
|
if (markUserGroup != null) {
|
|
|
try {
|
|
|
lockService.waitlock(LockType.MARK_USER_GROUP, markUserGroupId);
|
|
@@ -191,7 +191,7 @@ public class MarkUserGroupServiceImpl extends ServiceImpl<MarkUserGroupMapper, M
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public boolean resetMarker(MarkUserGroup markUserGroup) {
|
|
|
+ public boolean resetMarker(MarkUserQuestion markUserGroup) {
|
|
|
if (markUserGroup != null) {
|
|
|
if (lockService.trylock(LockType.MARKER_RESET, markUserGroup.getId())) {
|
|
|
markSyncService.markerResetSync(markUserGroup);
|
|
@@ -205,16 +205,16 @@ public class MarkUserGroupServiceImpl extends ServiceImpl<MarkUserGroupMapper, M
|
|
|
|
|
|
@Override
|
|
|
public void resetById(Long id) {
|
|
|
- UpdateWrapper<MarkUserGroup> updateWrapper = new UpdateWrapper<>();
|
|
|
- updateWrapper.lambda().set(MarkUserGroup::getFinishCount, null)
|
|
|
- .set(MarkUserGroup::getHeaderFinishCount, null)
|
|
|
- .set(MarkUserGroup::getValidCount, null)
|
|
|
- .set(MarkUserGroup::getAvgScore, null)
|
|
|
- .set(MarkUserGroup::getAvgSpeed, null)
|
|
|
- .set(MarkUserGroup::getStdevScore, null)
|
|
|
- .set(MarkUserGroup::getMaxScore, null)
|
|
|
- .set(MarkUserGroup::getMinScore, null)
|
|
|
- .eq(MarkUserGroup::getId, id);
|
|
|
+ UpdateWrapper<MarkUserQuestion> updateWrapper = new UpdateWrapper<>();
|
|
|
+ updateWrapper.lambda().set(MarkUserQuestion::getFinishCount, null)
|
|
|
+ .set(MarkUserQuestion::getHeaderFinishCount, null)
|
|
|
+ .set(MarkUserQuestion::getValidCount, null)
|
|
|
+ .set(MarkUserQuestion::getAvgScore, null)
|
|
|
+ .set(MarkUserQuestion::getAvgSpeed, null)
|
|
|
+ .set(MarkUserQuestion::getStdevScore, null)
|
|
|
+ .set(MarkUserQuestion::getMaxScore, null)
|
|
|
+ .set(MarkUserQuestion::getMinScore, null)
|
|
|
+ .eq(MarkUserQuestion::getId, id);
|
|
|
this.update(updateWrapper);
|
|
|
}
|
|
|
|
|
@@ -253,27 +253,27 @@ public class MarkUserGroupServiceImpl extends ServiceImpl<MarkUserGroupMapper, M
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public List<MarkUserGroup> listByExamIdAndPaperNumberAndGroupNumber(Long examId, String paperNumber, Integer groupNumber) {
|
|
|
- QueryWrapper<MarkUserGroup> queryWrapper = new QueryWrapper<>();
|
|
|
- queryWrapper.lambda().eq(MarkUserGroup::getExamId, examId)
|
|
|
- .eq(MarkUserGroup::getPaperNumber, paperNumber)
|
|
|
- .eq(MarkUserGroup::getGroupNumber, groupNumber)
|
|
|
- .orderByAsc(MarkUserGroup::getId);
|
|
|
+ public List<MarkUserQuestion> listByExamIdAndPaperNumberAndGroupNumber(Long examId, String paperNumber, Integer groupNumber) {
|
|
|
+ QueryWrapper<MarkUserQuestion> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.lambda().eq(MarkUserQuestion::getExamId, examId)
|
|
|
+ .eq(MarkUserQuestion::getPaperNumber, paperNumber)
|
|
|
+ .eq(MarkUserQuestion::getGroupNumber, groupNumber)
|
|
|
+ .orderByAsc(MarkUserQuestion::getId);
|
|
|
return this.list(queryWrapper);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void updateQualityById(Long markUserGroupId, int finishCount, int headerFinishCount, int validCount, double avgSpeed, double avgScore, double stdevScore, double maxScore, double minScore) {
|
|
|
- UpdateWrapper<MarkUserGroup> updateWrapper = new UpdateWrapper<>();
|
|
|
- updateWrapper.lambda().set(MarkUserGroup::getFinishCount, finishCount)
|
|
|
- .set(MarkUserGroup::getHeaderFinishCount, headerFinishCount)
|
|
|
- .set(MarkUserGroup::getValidCount, validCount)
|
|
|
- .set(MarkUserGroup::getAvgSpeed, avgSpeed)
|
|
|
- .set(MarkUserGroup::getAvgScore, avgScore)
|
|
|
- .set(MarkUserGroup::getStdevScore, stdevScore)
|
|
|
- .set(MarkUserGroup::getMaxScore, maxScore)
|
|
|
- .set(MarkUserGroup::getMinScore, minScore)
|
|
|
- .eq(MarkUserGroup::getId, markUserGroupId);
|
|
|
+ UpdateWrapper<MarkUserQuestion> updateWrapper = new UpdateWrapper<>();
|
|
|
+ updateWrapper.lambda().set(MarkUserQuestion::getFinishCount, finishCount)
|
|
|
+ .set(MarkUserQuestion::getHeaderFinishCount, headerFinishCount)
|
|
|
+ .set(MarkUserQuestion::getValidCount, validCount)
|
|
|
+ .set(MarkUserQuestion::getAvgSpeed, avgSpeed)
|
|
|
+ .set(MarkUserQuestion::getAvgScore, avgScore)
|
|
|
+ .set(MarkUserQuestion::getStdevScore, stdevScore)
|
|
|
+ .set(MarkUserQuestion::getMaxScore, maxScore)
|
|
|
+ .set(MarkUserQuestion::getMinScore, minScore)
|
|
|
+ .eq(MarkUserQuestion::getId, markUserGroupId);
|
|
|
this.update(updateWrapper);
|
|
|
}
|
|
|
|
|
@@ -283,9 +283,9 @@ public class MarkUserGroupServiceImpl extends ServiceImpl<MarkUserGroupMapper, M
|
|
|
throw ExceptionResultEnum.ERROR.exception("请选择对应的科目及分组,再查看给分曲线");
|
|
|
}
|
|
|
List<MarkQualityChartDto> markQualityChartDtoList = new ArrayList<>();
|
|
|
- List<MarkUserGroup> markUserGroupList = this.listByExamIdAndPaperNumberAndGroupNumber(examId, paperNumber, groupNumber);
|
|
|
- Double totalAvgScore = markUserGroupList.stream().filter(m -> m.getAvgScore() != null).collect(Collectors.averagingDouble(MarkUserGroup::getAvgScore));
|
|
|
- for (MarkUserGroup markUserGroup : markUserGroupList) {
|
|
|
+ List<MarkUserQuestion> markUserGroupList = this.listByExamIdAndPaperNumberAndGroupNumber(examId, paperNumber, groupNumber);
|
|
|
+ Double totalAvgScore = markUserGroupList.stream().filter(m -> m.getAvgScore() != null).collect(Collectors.averagingDouble(MarkUserQuestion::getAvgScore));
|
|
|
+ for (MarkUserQuestion markUserGroup : markUserGroupList) {
|
|
|
MarkQualityChartDto markQualityChartDto = new MarkQualityChartDto();
|
|
|
markQualityChartDto.setUserId(markUserGroup.getUserId());
|
|
|
SysUser sysUser = sysUserService.getById(markUserGroup.getUserId());
|
|
@@ -301,46 +301,46 @@ public class MarkUserGroupServiceImpl extends ServiceImpl<MarkUserGroupMapper, M
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public List<MarkUserGroup> listByExamIdAndPaperNumberAndUserId(Long examId, String paperNumber, Long userId) {
|
|
|
- QueryWrapper<MarkUserGroup> queryWrapper = new QueryWrapper<>();
|
|
|
- queryWrapper.lambda().eq(MarkUserGroup::getExamId, examId)
|
|
|
- .eq(MarkUserGroup::getPaperNumber, paperNumber)
|
|
|
- .eq(MarkUserGroup::getUserId, userId)
|
|
|
- .orderByAsc(MarkUserGroup::getId);
|
|
|
+ public List<MarkUserQuestion> listByExamIdAndPaperNumberAndUserId(Long examId, String paperNumber, Long userId) {
|
|
|
+ QueryWrapper<MarkUserQuestion> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.lambda().eq(MarkUserQuestion::getExamId, examId)
|
|
|
+ .eq(MarkUserQuestion::getPaperNumber, paperNumber)
|
|
|
+ .eq(MarkUserQuestion::getUserId, userId)
|
|
|
+ .orderByAsc(MarkUserQuestion::getId);
|
|
|
return this.list(queryWrapper);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void deleteByExamIdAndPaperNumberAndGroupNumber(Long examId, String paperNumber, Integer groupNumber) {
|
|
|
- UpdateWrapper<MarkUserGroup> updateWrapper = new UpdateWrapper<>();
|
|
|
- LambdaUpdateWrapper<MarkUserGroup> lambda = updateWrapper.lambda();
|
|
|
- lambda.eq(MarkUserGroup::getExamId, examId)
|
|
|
- .eq(MarkUserGroup::getPaperNumber, paperNumber);
|
|
|
+ UpdateWrapper<MarkUserQuestion> updateWrapper = new UpdateWrapper<>();
|
|
|
+ LambdaUpdateWrapper<MarkUserQuestion> lambda = updateWrapper.lambda();
|
|
|
+ lambda.eq(MarkUserQuestion::getExamId, examId)
|
|
|
+ .eq(MarkUserQuestion::getPaperNumber, paperNumber);
|
|
|
if (groupNumber != null) {
|
|
|
- lambda.eq(MarkUserGroup::getGroupNumber, groupNumber);
|
|
|
+ lambda.eq(MarkUserQuestion::getGroupNumber, groupNumber);
|
|
|
}
|
|
|
this.remove(updateWrapper);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void updateMode(Long examId, String paperNumber, Integer groupNumber, Long userId, MarkMode mode) {
|
|
|
- UpdateWrapper<MarkUserGroup> updateWrapper = new UpdateWrapper<>();
|
|
|
- LambdaUpdateWrapper<MarkUserGroup> lambdaUpdateWrapper = updateWrapper.lambda();
|
|
|
- lambdaUpdateWrapper.set(MarkUserGroup::getMode, mode)
|
|
|
- .eq(MarkUserGroup::getExamId, examId)
|
|
|
- .eq(MarkUserGroup::getPaperNumber, paperNumber);
|
|
|
+ UpdateWrapper<MarkUserQuestion> updateWrapper = new UpdateWrapper<>();
|
|
|
+ LambdaUpdateWrapper<MarkUserQuestion> lambdaUpdateWrapper = updateWrapper.lambda();
|
|
|
+ lambdaUpdateWrapper.set(MarkUserQuestion::getMode, mode)
|
|
|
+ .eq(MarkUserQuestion::getExamId, examId)
|
|
|
+ .eq(MarkUserQuestion::getPaperNumber, paperNumber);
|
|
|
if (groupNumber != null) {
|
|
|
- lambdaUpdateWrapper.eq(MarkUserGroup::getGroupNumber, groupNumber);
|
|
|
+ lambdaUpdateWrapper.eq(MarkUserQuestion::getGroupNumber, groupNumber);
|
|
|
}
|
|
|
if (userId != null) {
|
|
|
- lambdaUpdateWrapper.eq(MarkUserGroup::getUserId, userId);
|
|
|
+ lambdaUpdateWrapper.eq(MarkUserQuestion::getUserId, userId);
|
|
|
}
|
|
|
this.update(updateWrapper);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public List<String> listBindMarkers(Long examId, String paperNumber, Integer groupNumber) {
|
|
|
- List<MarkUserGroup> markUserGroups = listByExamIdAndPaperNumberAndGroupNumber(examId, paperNumber, groupNumber);
|
|
|
+ List<MarkUserQuestion> markUserGroups = listByExamIdAndPaperNumberAndGroupNumber(examId, paperNumber, groupNumber);
|
|
|
List<String> userIds = new ArrayList<>();
|
|
|
if (CollectionUtils.isNotEmpty(markUserGroups)) {
|
|
|
userIds = markUserGroups.stream().map(m -> String.valueOf(m.getUserId())).collect(Collectors.toList());
|