|
@@ -1,11 +1,23 @@
|
|
|
package com.qmth.teachcloud.mark.service.impl;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.qmth.teachcloud.common.bean.dto.mark.MarkEntranceDto;
|
|
|
+import com.qmth.teachcloud.common.entity.SysUser;
|
|
|
+import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
|
|
|
+import com.qmth.teachcloud.common.service.MarkQuestionService;
|
|
|
+import com.qmth.teachcloud.common.util.ServletUtil;
|
|
|
import com.qmth.teachcloud.mark.entity.MarkUserGroup;
|
|
|
import com.qmth.teachcloud.mark.mapper.MarkUserGroupMapper;
|
|
|
import com.qmth.teachcloud.mark.service.MarkUserGroupService;
|
|
|
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import javax.annotation.Resource;
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.math.RoundingMode;
|
|
|
+import java.util.Objects;
|
|
|
+
|
|
|
/**
|
|
|
* <p>
|
|
|
* 评卷员表 服务实现类
|
|
@@ -17,4 +29,29 @@ import org.springframework.stereotype.Service;
|
|
|
@Service
|
|
|
public class MarkUserGroupServiceImpl extends ServiceImpl<MarkUserGroupMapper, MarkUserGroup> implements MarkUserGroupService {
|
|
|
|
|
|
+ @Resource
|
|
|
+ MarkQuestionService markQuestionService;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public IPage<MarkEntranceDto> listEntranceGroup(Long examId, String courseCode, String paperNumber, Integer pageNumber, Integer pageSize) {
|
|
|
+ if (Objects.isNull(examId)) {
|
|
|
+ throw ExceptionResultEnum.EXAM_ID_IS_NULL.exception();
|
|
|
+ }
|
|
|
+ SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
|
|
|
+ Page<MarkUserGroup> page = new Page<>(pageNumber, pageSize);
|
|
|
+ IPage<MarkEntranceDto> markEntranceDtoIPage = this.baseMapper.listEntranceGroup(page, examId, courseCode, paperNumber, sysUser.getId());
|
|
|
+ for (MarkEntranceDto record : markEntranceDtoIPage.getRecords()) {
|
|
|
+ // 评卷进度
|
|
|
+ if (record.getLibraryCount().intValue() == 0) {
|
|
|
+ record.setPercent(0D);
|
|
|
+ } else {
|
|
|
+ BigDecimal bigDecimal = new BigDecimal(record.getMarkedCount()).divide(new BigDecimal(record.getLibraryCount()), 2, RoundingMode.HALF_UP);
|
|
|
+ record.setPercent(bigDecimal.doubleValue());
|
|
|
+ }
|
|
|
+
|
|
|
+ // 分组题目
|
|
|
+ record.setGroupQuestions(markQuestionService.groupQuestionsByExamIdAndPaperNumberAndNumber(record.getExamId(), record.getPaperNumber(), record.getGroupNumber()));
|
|
|
+ }
|
|
|
+ return markEntranceDtoIPage;
|
|
|
+ }
|
|
|
}
|