智慧保安后台管理-外网项目备份
zhongrj
2023-09-17 8853292babb2ad94de4a3207966f1e83b767cd2d
src/main/java/org/springblade/modules/exam/service/impl/ExamPaperServiceImpl.java
@@ -113,49 +113,83 @@
      return baseMapper.queryPagerSubject(paper);
   }
//   @Override
//   public List<ExamSubjectChoicesVO> queryRandomSubject(ExamPaperVO paper) {
//      //保存题目信息
//      if (null!=paper.getScoreId()){
//         //查询该保安员是否为会员
//         ExamScore score = examScoreService.getById(paper.getScoreId());
//         TrainingRegistration trainingRegistration = trainingRegistrationService.getById(score.getApplyId());
//
//         List<ExamSubjectChoicesVO> examSubjectChoicesVOS = new ArrayList<>();
//         if (null!=trainingRegistration.getVipStatus()){
//            //如果是会员,从会员库里取题目
//            if (trainingRegistration.getVipStatus().equals(1)){
//               //查询该vip 用户的 vip 库,从该120题中取出题目
//               VipTopic vipTopic = new VipTopic();
//               vipTopic.setUserId(Long.parseLong(score.getUserId()));
////               vipTopic.setApplyId(score.getApplyId());
//               VipTopic topic = vipTopicService.getOne(Condition.getQueryWrapper(vipTopic));
//               if (null!=topic){
//                  List<String> list = Arrays.asList(topic.getTopicIds().split(","));
////                  System.out.println("list.size() = " + list.size());
//                  List<String> radio = list.subList(0, 49);
//                  List<String> checkbox = list.subList(50, 69);
//                  List<String> judge = list.subList(70, 109);
//                  List<String> sort = list.subList(110, 119);
//                  //随机题目
//                  List<ExamSubjectChoicesVO> radioRandomSubjectList = baseMapper.queryRandomSubjectList(radio,25);
//                  List<ExamSubjectChoicesVO> checkboxRandomSubjectList = baseMapper.queryRandomSubjectList(checkbox,10);
//                  List<ExamSubjectChoicesVO> judgeRandomSubjectList = baseMapper.queryRandomSubjectList(judge,20);
//                  List<ExamSubjectChoicesVO> sortRandomSubjectList = baseMapper.queryRandomSubjectList(sort,5);
//                  //合并集合数据
//                  examSubjectChoicesVOS.addAll(radioRandomSubjectList);
//                  examSubjectChoicesVOS.addAll(checkboxRandomSubjectList);
//                  examSubjectChoicesVOS.addAll(judgeRandomSubjectList);
//                  examSubjectChoicesVOS.addAll(sortRandomSubjectList);
//               }
//            }else {
//               //随机分类信息
//               examSubjectChoicesVOS = baseMapper.queryRandomSubject(paper);
//            }
//         }else {
//            //随机分类信息
//            examSubjectChoicesVOS = baseMapper.queryRandomSubject(paper);
//         }
////         long before = System.currentTimeMillis();
//         List<ExamExaminationSubject> list = new ArrayList<>();
//         examSubjectChoicesVOS.forEach(examSubjectChoicesVO -> {
//            //新增个人对应每场考试成绩试卷
//            ExamExaminationSubject ksxtSginup = new ExamExaminationSubject();
//            ksxtSginup.setExaminationId(paper.getScoreId());
//            ksxtSginup.setCategoryId(examSubjectChoicesVO.getChoicesType());
//            ksxtSginup.setSubjectId(examSubjectChoicesVO.getId());
//            //新增
////            examExaminationSubjectService.save(ksxtSginup);
//            list.add(ksxtSginup);
//            //将题目答案设置为空字符串,不让前端看到
//            examSubjectChoicesVO.setAnswer("");
//         });
//         //批量新增
//         baseMapper.insertBatch(list);
////         long after = System.currentTimeMillis();
////         System.out.println("时间差"+(after-before));
//         //新增试卷关联信息
//         return examSubjectChoicesVOS;
//      }
//      //返回
//      return null;
//   }
   @Override
   public List<ExamSubjectChoicesVO> queryRandomSubject(ExamPaperVO paper) {
      //保存题目信息
      if (null!=paper.getScoreId()){
         //查询该保安员是否为会员
         ExamScore score = examScoreService.getById(paper.getScoreId());
         TrainingRegistration trainingRegistration = trainingRegistrationService.getById(score.getApplyId());
//         ExamScore score = examScoreService.getById(paper.getScoreId());
         List<ExamSubjectChoicesVO> examSubjectChoicesVOS = new ArrayList<>();
         if (null!=trainingRegistration.getVipStatus()){
            //如果是会员,从会员库里取题目
            if (trainingRegistration.getVipStatus().equals(1)){
               //查询该vip 用户的 vip 库,从该120题中取出题目
               VipTopic vipTopic = new VipTopic();
               vipTopic.setUserId(Long.parseLong(score.getUserId()));
//               vipTopic.setApplyId(score.getApplyId());
               VipTopic topic = vipTopicService.getOne(Condition.getQueryWrapper(vipTopic));
               if (null!=topic){
                  List<String> list = Arrays.asList(topic.getTopicIds().split(","));
//                  System.out.println("list.size() = " + list.size());
                  List<String> radio = list.subList(0, 49);
                  List<String> checkbox = list.subList(50, 69);
                  List<String> judge = list.subList(70, 109);
                  List<String> sort = list.subList(110, 119);
                  //随机题目
                  List<ExamSubjectChoicesVO> radioRandomSubjectList = baseMapper.queryRandomSubjectList(radio,25);
                  List<ExamSubjectChoicesVO> checkboxRandomSubjectList = baseMapper.queryRandomSubjectList(checkbox,10);
                  List<ExamSubjectChoicesVO> judgeRandomSubjectList = baseMapper.queryRandomSubjectList(judge,20);
                  List<ExamSubjectChoicesVO> sortRandomSubjectList = baseMapper.queryRandomSubjectList(sort,5);
                  //合并集合数据
                  examSubjectChoicesVOS.addAll(radioRandomSubjectList);
                  examSubjectChoicesVOS.addAll(checkboxRandomSubjectList);
                  examSubjectChoicesVOS.addAll(judgeRandomSubjectList);
                  examSubjectChoicesVOS.addAll(sortRandomSubjectList);
               }
            }else {
               //随机分类信息
               examSubjectChoicesVOS = baseMapper.queryRandomSubject(paper);
            }
         }else {
            //随机分类信息
            examSubjectChoicesVOS = baseMapper.queryRandomSubject(paper);
         }
         examSubjectChoicesVOS = baseMapper.queryRandomSubject(paper);
//         long before = System.currentTimeMillis();
         List<ExamExaminationSubject> list = new ArrayList<>();
         examSubjectChoicesVOS.forEach(examSubjectChoicesVO -> {
@@ -172,8 +206,6 @@
         });
         //批量新增
         baseMapper.insertBatch(list);
//         long after = System.currentTimeMillis();
//         System.out.println("时间差"+(after-before));
         //新增试卷关联信息
         return examSubjectChoicesVOS;
      }
@@ -288,7 +320,6 @@
         //4.其他信息
         ExamScore examScore = examScoreService.getById(examPaperVO.getScoreId());
         //5.数据封装
         map.put("examSubjectChoicesVOSList",examSubjectChoicesVOSList);
         map.put("examAnswerRecordList",examAnswerRecordList);
@@ -366,4 +397,25 @@
   public List<ExamScoreVO> getExamScoreList(ExamScoreVO examScoreVO) {
      return baseMapper.getExamScoreList(examScoreVO);
   }
   /**
    * 根据id 取出题目信息(随机取)
    * @param list 题目id集合
    * @param number 题目梳理
    * @return
    */
   @Override
   public List<ExamSubjectChoicesVO> queryRandomSubjectList(List<String> list, int number) {
      return baseMapper.queryRandomSubjectList(list,number);
   }
   /**
    * 模拟考试随机抽题,未缴费人员
    * @return
    */
   @Override
   public List<ExamSubjectChoicesVO> simulateQueryRandomSubjectList() {
      return baseMapper.simulateQueryRandomSubjectList();
   }
}