|
@@ -23,9 +23,11 @@ import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
-import java.util.List;
|
|
|
+import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* 题库题目Controller
|
|
@@ -111,17 +113,32 @@ public class QuestionController extends BaseController {
|
|
|
ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
|
|
|
bo.setUserId(loginUser.getUser().getUserId());
|
|
|
List<GoodsUserQuestionVo> list = iQuestionService.listUserFreeUnionBuyGoodsList(bo);
|
|
|
- for (GoodsUserQuestionVo g : list) {
|
|
|
- UserExamRecordQueryBo userExamRecordQueryBo = new UserExamRecordQueryBo();
|
|
|
- userExamRecordQueryBo.setOrderGoodsId(g.getOrderGoodsId());
|
|
|
- userExamRecordQueryBo.setUserId(loginUser.getUser().getUserId());
|
|
|
- Long doNum = iUserExamRecordService.selectDoNum(userExamRecordQueryBo);
|
|
|
- Long totalNum = iGoodsService.getQuestionNum(g.getGoodsId());
|
|
|
- g.setDoNum(doNum);
|
|
|
- g.setTotalNum(totalNum);
|
|
|
+ if (!CollectionUtils.isEmpty(list)){
|
|
|
+ for (GoodsUserQuestionVo g : list) {
|
|
|
+ UserExamRecordQueryBo userExamRecordQueryBo = new UserExamRecordQueryBo();
|
|
|
+ userExamRecordQueryBo.setOrderGoodsId(g.getOrderGoodsId());
|
|
|
+ userExamRecordQueryBo.setUserId(loginUser.getUser().getUserId());
|
|
|
+ Long doNum = iUserExamRecordService.selectDoNum(userExamRecordQueryBo);
|
|
|
+ Long totalNum = iGoodsService.getQuestionNum(g.getGoodsId());
|
|
|
+ g.setDoNum(doNum);
|
|
|
+ g.setTotalNum(totalNum);
|
|
|
+ }
|
|
|
+
|
|
|
//试卷类型
|
|
|
- List<ExamPaperVo> paperVos = iExamPaperService.getGoodsExamPaper(g.getGoodsId());
|
|
|
- g.setPaperVos(paperVos);
|
|
|
+ List<ExamPaperVo> paperVos = iExamPaperService.getGoodsExamPaperByGoodsIds(list.stream().map(GoodsUserQuestionVo::getGoodsId).collect(Collectors.toList()));
|
|
|
+ if (!CollectionUtils.isEmpty(paperVos)){
|
|
|
+ Map<Long, List<ExamPaperVo>> map = paperVos.stream().collect(Collectors.groupingBy(ExamPaperVo::getGoodsId));
|
|
|
+ map.forEach((k,v) -> {
|
|
|
+ ArrayList<ExamPaperVo> vos = v.stream().collect(Collectors.collectingAndThen(Collectors
|
|
|
+ .toCollection(() -> new TreeSet<>(Comparator.comparing(item -> item.getPaperId()))), ArrayList::new));
|
|
|
+ map.put(k,vos);
|
|
|
+ });
|
|
|
+ list.forEach(goods -> {
|
|
|
+ if (map.containsKey(goods.getGoodsId())){
|
|
|
+ goods.setPaperVos(map.get(goods.getGoodsId()));
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
return getDataTable(list);
|
|
|
}
|