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