From 13a68df58b3f937db5ba6437c814bafdcd8d37f8 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期一, 27 五月 2024 16:09:41 +0800
Subject: [PATCH] 登录时如果不是部门管理员则deptIds填充为用户所在部门

---
 src/main/java/com/mindskip/xzs/service/impl/ExamTemplatesServiceImpl.java |   75 ++++++++++++++++++++++++++-----------
 1 files changed, 52 insertions(+), 23 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 4aa2e16..1c2a337 100644
--- a/src/main/java/com/mindskip/xzs/service/impl/ExamTemplatesServiceImpl.java
+++ b/src/main/java/com/mindskip/xzs/service/impl/ExamTemplatesServiceImpl.java
@@ -11,13 +11,17 @@
 import com.mindskip.xzs.service.ExamTemplatesUserCountService;
 import com.mindskip.xzs.utility.convert.ExamTemplatesClassConvert;
 import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperEditRequestVM;
+import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperEditRequestVO;
 import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperTitleItemVM;
 import com.mindskip.xzs.viewmodel.admin.exam.QuestionTypeVM;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.format.annotation.DateTimeFormat;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
@@ -55,19 +59,24 @@
         if (model.getId() != null) {
             removes(model.getId());
         }
-
         ExamTemplates examTemplates = ExamTemplatesClassConvert.INSTANCE.ExamPaperEditRequestVMToExamTemplates(model);
-
-        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
-        LocalDateTime startTime = LocalDateTime.parse(model.getLimitDateTime().get(0),dateTimeFormatter);
-        LocalDateTime endTime = LocalDateTime.parse(model.getLimitDateTime().get(1),dateTimeFormatter);
-
+        if (!CollectionUtils.isEmpty(model.getLimitDateTime())) {
+            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            Date startTime = null;
+            Date endTime = null;
+            try {
+                startTime = dateFormat.parse(model.getLimitDateTime().get(0));
+                endTime = dateFormat.parse(model.getLimitDateTime().get(1));
+            } catch (Exception e) {
+                log.info(e.getMessage());
+            }
+            examTemplates.setStartTime(startTime);
+            examTemplates.setEndTime(endTime);
+        }
         examTemplates.setCtime(new Date());
         examTemplates.setTitleName(model.getTitleItems().get(0).getName());
         examTemplates.setStatus(model.getStatus());
         examTemplates.setMenuIds(model.getMenuIds());
-        examTemplates.setStartTime(startTime);
-        examTemplates.setEndTime(endTime);
         examTemplatesMapper.add(examTemplates);
 
         List<ExamTemplatesQuestion> examTemplatesQuestions = ExamTemplatesClassConvert.INSTANCE.QuestionTypeVMListToExamTemplatesQuestionList(model.getQuestionTypeVMS())
@@ -85,11 +94,11 @@
             subjects.add(examTemplatesSubject);
         }
         examTemplatesSubjectMapper.saves(subjects);
-        if("0".equals(model.getStatus())){
+        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 (int i = 0; i < obj.length; i++) {
+                userIds[i] = (Integer) obj[i];
             }
             for (Integer userId : userIds) {
                 ExamTemplatesUser templatesUser = new ExamTemplatesUser();
@@ -109,6 +118,12 @@
     public PageInfo<ExamTemplates> gets(ExamTemplatesVO templatesVO) {
         return PageHelper.startPage(templatesVO.getPageIndex(), templatesVO.getPageSize(), "id desc").doSelectPageInfo(() ->
                 examTemplatesMapper.gets(templatesVO));
+    }
+
+    @Override
+    public PageInfo<ExamTemplates> getByadmins(ExamTemplatesVO templatesVO) {
+        return PageHelper.startPage(templatesVO.getPageIndex(), templatesVO.getPageSize(), "id desc").doSelectPageInfo(() ->
+                examTemplatesMapper.getByadmins(templatesVO));
     }
 
     @Override
@@ -133,7 +148,7 @@
         vm.setType("1");
         vm.setId(null);
         ExamPaper examPaper = examPaperService.savePaperFromVM(vm, user);
-        ExamPaperEditRequestVM newVM = examPaperService.examPaperToVM(examPaper.getId());
+        ExamPaperEditRequestVO newVM = examPaperService.examPaperToVM(examPaper.getId());
         count.setExamPaperId(examPaper.getId());
         count.setUserId(user.getId());
         examTemplatesUserCountService.add(count);
@@ -143,20 +158,20 @@
     @Override
     public Integer randomExam1(User user, Integer templatesId) throws Exception {
 
-        ExamTemplatesUserCount count = new ExamTemplatesUserCount();
+//        ExamTemplatesUserCount count = new ExamTemplatesUserCount();
 
         ExamPaperEditRequestVM vm = restore(templatesId);
-        count.setExamTemplatesId(vm.getId());
+//        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();
+        ExamPaperEditRequestVO newVM = examPaperService.examPaperToVM(examPaper.getId());
+//        count.setExamPaperId(examPaper.getId());
+//        count.setUserId(user.getId());
+//        examTemplatesUserCountService.add(count);
+        return examPaper.getId();
     }
 
     @Override
@@ -164,14 +179,27 @@
         removes(id);
     }
 
-    public ExamPaperEditRequestVM restore(Integer id){
-        if(id == null){
+    public ExamPaperEditRequestVM restore(Integer id) {
+        if (id == null) {
             ExamTemplates examTemplates = examTemplatesMapper.getTime();
             id = examTemplates.getId();
         }
         ExamTemplates examTemplates = examTemplatesMapper.getById(id);
+
         ExamPaperEditRequestVM vm = ExamTemplatesClassConvert.INSTANCE.ExamTemplatesToExamPaperEditRequestVM(examTemplates);
         vm.setMenuIds(examTemplates.getMenuIds());
+
+        List<String> limitDateTime = new ArrayList<>();
+        Date startTime = examTemplates.getStartTime();
+        Date endTime = examTemplates.getEndTime();
+        if (startTime != null && endTime != null) {
+            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            String start = dateFormat.format(startTime);
+            String end = dateFormat.format(endTime);
+            limitDateTime.add(start);
+            limitDateTime.add(end);
+            vm.setLimitDateTime(limitDateTime);
+        }
         Integer[] ids = examTemplatesSubjectMapper.getTemplatesId(id)
                 .stream().map(ExamTemplatesSubject::getSubjectId).toArray(Integer[]::new);
         vm.setSubjectId(ids);
@@ -184,7 +212,7 @@
         list.add(examPaperTitleItemVM);
         vm.setTitleItems(list);
         vm.setAggregateSource(100);
-        if("0".equals(examTemplates.getStatus())){
+        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()];
@@ -195,7 +223,8 @@
         }
         return vm;
     }
-    public void removes(Integer id){
+
+    public void removes(Integer id) {
         examTemplatesMapper.removeById(id);
         examTemplatesQuestionMapper.removeByTemplatesId(id);
         examTemplatesSubjectMapper.removeByTemplatesId(id);

--
Gitblit v1.8.0