qirong
2023-11-28 fe0a4c0495cf9f1a65343158c2a8c2d4a163e045
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){