From c5b38a50819d7ac782a4379bd9eda890d7d119a8 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期三, 26 六月 2024 15:47:51 +0800
Subject: [PATCH] 班级、试卷、开始考试优化

---
 src/main/java/com/ycl/jxkg/service/ClassesService.java             |    9 ++++++++-
 src/main/resources/mapper/QuestionMapper.xml                       |    2 +-
 src/main/java/com/ycl/jxkg/controller/admin/ClassesController.java |    7 +++++++
 src/main/java/com/ycl/jxkg/service/impl/ClassesServiceImpl.java    |    9 +++++++++
 src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java       |   10 ++++++++++
 5 files changed, 35 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/ycl/jxkg/controller/admin/ClassesController.java b/src/main/java/com/ycl/jxkg/controller/admin/ClassesController.java
index 875b882..90336bf 100644
--- a/src/main/java/com/ycl/jxkg/controller/admin/ClassesController.java
+++ b/src/main/java/com/ycl/jxkg/controller/admin/ClassesController.java
@@ -72,6 +72,13 @@
         return classesService.dissolution(id);
     }
 
+    @PutMapping("/recover/{id}")
+    @ApiOperation(value = "鎭㈠姝e父", notes = "鎭㈠姝e父")
+    @PreAuthorize("hasAuthority('classes:recover')")
+    public Result recover(@PathVariable("id") Integer id) {
+        return classesService.recover(id);
+    }
+
     @GetMapping("/{id}")
     @ApiOperation(value = "璇︽儏", notes = "璇︽儏")
     @PreAuthorize("hasAuthority('classes:detail')")
diff --git a/src/main/java/com/ycl/jxkg/service/ClassesService.java b/src/main/java/com/ycl/jxkg/service/ClassesService.java
index 4e38880..fb42511 100644
--- a/src/main/java/com/ycl/jxkg/service/ClassesService.java
+++ b/src/main/java/com/ycl/jxkg/service/ClassesService.java
@@ -80,10 +80,17 @@
     Result dissolution(Integer id);
 
     /**
-     *
      * 鎴戠殑鐝骇
      *
      * @return
      */
     Result myClassList();
+
+    /**
+     * 鎭㈠姝e父
+     *
+     * @param id
+     * @return
+     */
+    Result recover(Integer id);
 }
diff --git a/src/main/java/com/ycl/jxkg/service/impl/ClassesServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/ClassesServiceImpl.java
index d4b08a9..2f06ffd 100644
--- a/src/main/java/com/ycl/jxkg/service/impl/ClassesServiceImpl.java
+++ b/src/main/java/com/ycl/jxkg/service/impl/ClassesServiceImpl.java
@@ -144,4 +144,13 @@
                 .list();
         return Result.ok(list);
     }
+
+    @Override
+    public Result recover(Integer id) {
+        new LambdaUpdateChainWrapper<>(baseMapper)
+                .eq(Classes::getId, id)
+                .set(Classes::getStatus, ClassesStatusEnum.NORMAL)
+                .update();
+        return Result.ok("鐝骇宸茬粡鎭㈠姝e父");
+    }
 }
diff --git a/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java
index 04194a2..f677a78 100644
--- a/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java
+++ b/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java
@@ -25,6 +25,7 @@
 import lombok.RequiredArgsConstructor;
 import com.ycl.jxkg.utils.PageUtil;
 import org.springframework.beans.BeanUtils;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.Assert;
 import org.springframework.util.StringUtils;
 
@@ -138,6 +139,7 @@
 
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Result start(Integer id) {
         Exam exam = baseMapper.selectById(id);
         if (Objects.isNull(exam)) {
@@ -201,6 +203,14 @@
                 paperFixQuestionVO.setQuestionList(childQuestions);
                 examData.add(paperFixQuestionVO);
             }
+            ExamSubmitTemp examSubmitTemp = new ExamSubmitTemp();
+            examSubmitTemp.setExamId(id);
+            examSubmitTemp.setStatus(ExamSubmitTempStatusEnum.TEMP);
+            examSubmitTemp.setExamSubmit(JSON.toJSONString(examData));
+            examSubmitTemp.setCreateTime(new Date());
+            examSubmitTemp.setUserId(webContext.getCurrentUser().getId());
+            examSubmitTemp.setMarkPaperStatus(ExamSubmitTempStatusEnum.TEMP);
+            examSubmitTempMapper.insert(examSubmitTemp);
             return Result.ok(examData);
         }
         return Result.ok();
diff --git a/src/main/resources/mapper/QuestionMapper.xml b/src/main/resources/mapper/QuestionMapper.xml
index 074a926..02a1ed2 100644
--- a/src/main/resources/mapper/QuestionMapper.xml
+++ b/src/main/resources/mapper/QuestionMapper.xml
@@ -112,7 +112,7 @@
         FROM
              t_question tq
         WHERE
-              tq.subject_id = #{subjectId}
+              tq.subject_id = #{subjectId} AND tq.question_type = #{questionType} AND tq.deleted = 0
         ORDER BY
                  RAND()
         LIMIT #{num}

--
Gitblit v1.8.0