From 99b29966852e4f8e1dfb2e444db4f86ce786a3b1 Mon Sep 17 00:00:00 2001 From: qirong <2032486488@qq.com> Date: 星期二, 28 十一月 2023 11:08:35 +0800 Subject: [PATCH] 随机试卷修改 --- src/main/java/com/mindskip/xzs/service/impl/ExamTemplatesServiceImpl.java | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 50 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/mindskip/xzs/service/impl/ExamTemplatesServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/ExamTemplatesServiceImpl.java index 40207d5..d06ee00 100644 --- a/src/main/java/com/mindskip/xzs/service/impl/ExamTemplatesServiceImpl.java +++ b/src/main/java/com/mindskip/xzs/service/impl/ExamTemplatesServiceImpl.java @@ -4,10 +4,7 @@ import com.github.pagehelper.PageInfo; import com.mindskip.xzs.domain.*; import com.mindskip.xzs.domain.vo.ExamTemplatesVO; -import com.mindskip.xzs.repository.BaseMapper; -import com.mindskip.xzs.repository.ExamTemplatesMapper; -import com.mindskip.xzs.repository.ExamTemplatesQuestionMapper; -import com.mindskip.xzs.repository.ExamTemplatesSubjectMapper; +import com.mindskip.xzs.repository.*; import com.mindskip.xzs.service.DepartmentService; import com.mindskip.xzs.service.ExamPaperService; import com.mindskip.xzs.service.ExamTemplatesService; @@ -20,6 +17,7 @@ import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; +import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -33,8 +31,9 @@ private final DepartmentService departmentService; private final ExamPaperService examPaperService; private final ExamTemplatesUserCountService examTemplatesUserCountService; + private final ExamTemplatesUserMapper examTemplatesUserMapper; - public ExamTemplatesServiceImpl(BaseMapper<ExamTemplates> baseMapper, ExamTemplatesMapper examTemplatesMapper, ExamTemplatesQuestionMapper examTemplatesQuestionMapper, ExamTemplatesSubjectMapper examTemplatesSubjectMapper, DepartmentService departmentService, ExamPaperService examPaperService, ExamTemplatesUserCountService examTemplatesUserCountService) { + public ExamTemplatesServiceImpl(BaseMapper<ExamTemplates> baseMapper, ExamTemplatesMapper examTemplatesMapper, ExamTemplatesQuestionMapper examTemplatesQuestionMapper, ExamTemplatesSubjectMapper examTemplatesSubjectMapper, DepartmentService departmentService, ExamPaperService examPaperService, ExamTemplatesUserCountService examTemplatesUserCountService, ExamTemplatesUserMapper examTemplatesUserMapper) { super(baseMapper); this.examTemplatesMapper = examTemplatesMapper; this.examTemplatesQuestionMapper = examTemplatesQuestionMapper; @@ -42,6 +41,7 @@ this.departmentService = departmentService; this.examPaperService = examPaperService; this.examTemplatesUserCountService = examTemplatesUserCountService; + this.examTemplatesUserMapper = examTemplatesUserMapper; } @Transactional(rollbackFor = Exception.class) @@ -54,6 +54,8 @@ ExamTemplates examTemplates = ExamTemplatesClassConvert.INSTANCE.ExamPaperEditRequestVMToExamTemplates(model); examTemplates.setCtime(new Date()); examTemplates.setTitleName(model.getTitleItems().get(0).getName()); + examTemplates.setStatus(model.getStatus()); + examTemplates.setMenuIds(model.getMenuIds()); examTemplatesMapper.add(examTemplates); List<ExamTemplatesQuestion> examTemplatesQuestions = ExamTemplatesClassConvert.INSTANCE.QuestionTypeVMListToExamTemplatesQuestionList(model.getQuestionTypeVMS()) @@ -71,6 +73,19 @@ subjects.add(examTemplatesSubject); } examTemplatesSubjectMapper.saves(subjects); + if("0".equals(model.getStatus())){ + Object[] obj = Arrays.stream(model.getUserIds()).sorted().distinct().toArray(); + Integer[] userIds = new Integer[obj.length]; + for(int i = 0;i<obj.length;i++) { + userIds[i] = (Integer)obj[i]; + } + for (Integer userId : userIds) { + ExamTemplatesUser templatesUser = new ExamTemplatesUser(); + templatesUser.setTemplatesId(examTemplates.getId().toString()); + templatesUser.setUserId(userId.toString()); + examTemplatesUserMapper.add(templatesUser); + } + } } @Override @@ -81,7 +96,7 @@ @Override public PageInfo<ExamTemplates> gets(ExamTemplatesVO templatesVO) { return PageHelper.startPage(templatesVO.getPageIndex(), templatesVO.getPageSize(), "id desc").doSelectPageInfo(() -> - examTemplatesMapper.gets()); + examTemplatesMapper.gets(templatesVO)); } @Override @@ -114,6 +129,25 @@ } @Override + public Integer randomExam1(User user, Integer templatesId) throws Exception { + + ExamTemplatesUserCount count = new ExamTemplatesUserCount(); + + ExamPaperEditRequestVM vm = restore(templatesId); + count.setExamTemplatesId(vm.getId()); + Integer[] id = {user.getId()}; + vm.setUserIds(id); + vm.setType("1"); + vm.setId(null); + ExamPaper examPaper = examPaperService.savePaperFromVM(vm, user); + ExamPaperEditRequestVM newVM = examPaperService.examPaperToVM(examPaper.getId()); + count.setExamPaperId(examPaper.getId()); + count.setUserId(user.getId()); + examTemplatesUserCountService.add(count); + return count.getExamPaperId(); + } + + @Override public void remove(Integer id) { removes(id); } @@ -125,6 +159,7 @@ } ExamTemplates examTemplates = examTemplatesMapper.getById(id); ExamPaperEditRequestVM vm = ExamTemplatesClassConvert.INSTANCE.ExamTemplatesToExamPaperEditRequestVM(examTemplates); + vm.setMenuIds(examTemplates.getMenuIds()); Integer[] ids = examTemplatesSubjectMapper.getTemplatesId(id) .stream().map(ExamTemplatesSubject::getSubjectId).toArray(Integer[]::new); vm.setSubjectId(ids); @@ -137,6 +172,15 @@ list.add(examPaperTitleItemVM); vm.setTitleItems(list); vm.setAggregateSource(100); + if("0".equals(examTemplates.getStatus())){ + List<ExamTemplatesUser> byId = examTemplatesUserMapper.getById(id); + List<String> collect = byId.stream().map(ExamTemplatesUser::getUserId).collect(Collectors.toList()); + Integer[] userIds = new Integer[collect.size()]; + for (int i = 0; i < collect.size(); i++) { + userIds[i] = Integer.parseInt(collect.get(i)); + } + vm.setUserIds(userIds); + } return vm; } public void removes(Integer id){ -- Gitblit v1.8.0