From bad2f260816bf6c39041f2c96410682624aa3ae5 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期一, 27 五月 2024 11:10:14 +0800
Subject: [PATCH] 编辑试卷时返回用户名
---
src/main/java/com/mindskip/xzs/service/impl/PracticeQuestionConditionServiceImpl.java | 26 ++++++++++++++++++++++++--
1 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/mindskip/xzs/service/impl/PracticeQuestionConditionServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/PracticeQuestionConditionServiceImpl.java
index 31f74d9..8f2ab5c 100644
--- a/src/main/java/com/mindskip/xzs/service/impl/PracticeQuestionConditionServiceImpl.java
+++ b/src/main/java/com/mindskip/xzs/service/impl/PracticeQuestionConditionServiceImpl.java
@@ -6,9 +6,13 @@
import com.mindskip.xzs.repository.PracticeQuestionConditionMapper;
import com.mindskip.xzs.service.PracticeQuestionConditionService;
import lombok.RequiredArgsConstructor;
+import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import java.util.ArrayList;
import java.util.Date;
+import java.util.List;
import java.util.Objects;
/**
@@ -23,18 +27,36 @@
private final WebContext webContext;
@Override
+ @Transactional(rollbackFor = Exception.class)
public void save(PracticeQuestionCondition entity) {
+ // 濡傛灉鍋氶敊浜嗭紝鍔犲叆閿欓闆�
+ if (! entity.getQuestionCondition().getRight()) {
+
+ }
PracticeQuestionCondition old = mapper.selectByPracticeId(entity.getPracticeId());
if (Objects.isNull(old)) {
old = new PracticeQuestionCondition();
old.setUserId(webContext.getCurrentUser().getId());
old.setPracticeId(entity.getPracticeId());
- old.setContent(JSON.toJSONString(entity.getQuestionConditions()));
+ ArrayList<Object> objects = new ArrayList<>(1);
+ objects.add(entity.getQuestionCondition());
+ old.setContent(JSON.toJSONString(objects));
old.setLatestTime(new Date());
mapper.save(old);
} else {
// 鏇存柊鍐呭
- mapper.updateContentById(JSON.toJSONString(entity.getQuestionConditions()), old.getId(), new Date());
+ List<PracticeQuestionCondition.QuestionFinishCondition> list = JSON.parseArray(old.getContent(), PracticeQuestionCondition.QuestionFinishCondition.class);
+ if (list.stream().anyMatch(item -> item.getQuestionId().equals(entity.getQuestionCondition().getQuestionId()))) {
+ for (PracticeQuestionCondition.QuestionFinishCondition item : list) {
+ if (item.getQuestionId().equals(entity.getQuestionCondition().getQuestionId())) {
+ BeanUtils.copyProperties(entity.getQuestionCondition(), item);
+ break;
+ }
+ }
+ } else {
+ list.add(entity.getQuestionCondition());
+ }
+ mapper.updateContentById(JSON.toJSONString(list), old.getId(), new Date());
}
}
--
Gitblit v1.8.0