|
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.ynfy.buss.exam.question.dto.QuestionDTO;
|
|
|
+import com.ynfy.buss.exam.question.enums.QuestionType;
|
|
|
import com.ynfy.buss.exam.question.service.IQuestionService;
|
|
|
import com.ynfy.buss.exam.repository.entity.Repository;
|
|
|
import com.ynfy.buss.exam.repository.service.IRepositoryService;
|
|
@@ -22,6 +23,7 @@ import org.springframework.web.bind.annotation.*;
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import java.util.Arrays;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
import java.util.Objects;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
@@ -73,13 +75,25 @@ public class RepositoryController extends JeecgController<Repository, IRepositor
|
|
|
QueryWrapper<Repository> queryWrapper = QueryGenerator.initQueryWrapper(repository, req.getParameterMap());
|
|
|
Page<Repository> page = new Page<Repository>(pageNo, pageSize);
|
|
|
IPage<Repository> pageList = repositoryService.page(page, queryWrapper);
|
|
|
- if (!CollectionUtils.isEmpty(pageList.getRecords())) {
|
|
|
- List<String> idList = pageList.getRecords().stream().map(Repository::getId).collect(Collectors.toList());
|
|
|
- List<QuestionDTO> questionDTOList = questionService.countQuestionByRepository(idList);
|
|
|
- pageList.getRecords().forEach(repo -> {
|
|
|
- QuestionDTO questionDTO = questionDTOList.stream().filter(q -> q.getRepositoryId().equals(repo.getId())).findFirst().orElse(null);
|
|
|
- if (!Objects.isNull(questionDTO)) {
|
|
|
- repo.setNum(questionDTO.getNum());
|
|
|
+ List<Repository> list = pageList.getRecords();
|
|
|
+ if (!CollectionUtils.isEmpty(list)) {
|
|
|
+ List<String> idList = list.stream().map(Repository::getId).collect(Collectors.toList());
|
|
|
+ List<QuestionDTO> questionDTOList = questionService.countQuestionType(idList);
|
|
|
+ Map<String, List<QuestionDTO>> map = questionDTOList.stream().collect(Collectors
|
|
|
+ .groupingBy(QuestionDTO::getRepositoryId, Collectors.toList()));
|
|
|
+ list.forEach(l -> {
|
|
|
+ List<QuestionDTO> dtoList = map.get(l.getId());
|
|
|
+ if (!CollectionUtils.isEmpty(dtoList)) {
|
|
|
+ l.setNum(dtoList.stream().mapToInt(QuestionDTO::getNum).sum());
|
|
|
+ StringBuilder str = new StringBuilder();
|
|
|
+ int index = 0;
|
|
|
+ for (QuestionDTO dto : dtoList) {
|
|
|
+ str.append(QuestionType.getByCode(dto.getType()).getValue()).append(dto.getNum()).append("题");
|
|
|
+ if (index < dtoList.size() - 1) {
|
|
|
+ str.append(",");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ l.setQuestionRemark(str.toString());
|
|
|
}
|
|
|
});
|
|
|
}
|