From 7c7f8be238c9ac65dffa44bc19b4a08868859ec4 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期四, 13 十一月 2025 19:28:56 +0800
Subject: [PATCH] 修改
---
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TQuestionnaireController.java | 56 ++++++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 46 insertions(+), 10 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TQuestionnaireController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TQuestionnaireController.java
index bd3a3f8..49ac9d5 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TQuestionnaireController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TQuestionnaireController.java
@@ -1,6 +1,7 @@
package com.ruoyi.web.controller.api;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.google.common.collect.ImmutableMap;
import com.ruoyi.common.annotation.Log;
@@ -93,9 +94,12 @@
for (TQuestionnaireStem questionnaireStem : questionnaireStems) {
questionnaireStem.setQuestionnaireId(dto.getId());
questionnaireStemService.save(questionnaireStem);
- options = questionnaireStem.getOptions();
- for (TQuestionnaireStemOption option : options) {
- option.setStemId(questionnaireStem.getId());
+ List<TQuestionnaireStemOption> optionList = questionnaireStem.getOptions();
+ if(!CollectionUtils.isEmpty(optionList)){
+ for (TQuestionnaireStemOption option : optionList) {
+ option.setStemId(questionnaireStem.getId());
+ options.add(option);
+ }
}
}
if(!CollectionUtils.isEmpty(options)){
@@ -146,6 +150,40 @@
LocalDateTime startTime = dto.getStartTime();
LocalDateTime endTime = dto.getEndTime();
LocalDateTime now = LocalDateTime.now();
+ if(now.isAfter(endTime)){
+ dto.setStatus(3);
+ }
+ questionnaireService.updateById(dto);
+ // 查询题干
+ List<TQuestionnaireStem> questionnaireStemList = questionnaireStemService.list(Wrappers.lambdaQuery(TQuestionnaireStem.class)
+ .eq(TQuestionnaireStem::getQuestionnaireId, dto.getId()));
+
+ if(!CollectionUtils.isEmpty(questionnaireStemList)){
+ List<String> stemIds = questionnaireStemList.stream().map(TQuestionnaireStem::getId).collect(Collectors.toList());
+ // 删除题干选项
+ questionnaireStemOptionService.remove(Wrappers.lambdaQuery(TQuestionnaireStemOption.class)
+ .in(TQuestionnaireStemOption::getStemId, stemIds));
+ }
+ // 删除题干
+ questionnaireStemService.remove(Wrappers.lambdaQuery(TQuestionnaireStem.class)
+ .eq(TQuestionnaireStem::getQuestionnaireId, dto.getId()));
+ // 添加题干
+ List<TQuestionnaireStemOption> options = new ArrayList<>();
+ List<TQuestionnaireStem> questionnaireStems = dto.getQuestionnaireStems();
+ for (TQuestionnaireStem questionnaireStem : questionnaireStems) {
+ questionnaireStem.setQuestionnaireId(dto.getId());
+ questionnaireStemService.save(questionnaireStem);
+ List<TQuestionnaireStemOption> optionList = questionnaireStem.getOptions();
+ if(!CollectionUtils.isEmpty(optionList)){
+ for (TQuestionnaireStemOption option : optionList) {
+ option.setStemId(questionnaireStem.getId());
+ options.add(option);
+ }
+ }
+ }
+ if(!CollectionUtils.isEmpty(options)){
+ questionnaireStemOptionService.saveBatch(options);
+ }
if(now.isBefore(startTime)){
dto.setStatus(1);
// 添加定时任务
@@ -176,10 +214,6 @@
maps
);
}
- if(now.isAfter(endTime)){
- dto.setStatus(3);
- }
- questionnaireService.updateById(dto);
return R.ok();
}
@@ -208,9 +242,11 @@
for (TQuestionnaireStem questionnaireStem : questionnaireStems) {
List<TQuestionnaireStemOption> options = questionnaireStemOptions.stream().filter(questionnaireStemOption -> questionnaireStemOption.getStemId().equals(questionnaireStem.getId())).collect(Collectors.toList());
// 匹配作答人数
- for (TQuestionnaireStemOption option : options) {
- String answerValue = option.getAnswerValue();
- option.setAnswerNum(StringUtils.hasLength(answerValue)?answerValue.split(",").length:0);
+ if(!CollectionUtils.isEmpty(options)){
+ for (TQuestionnaireStemOption option : options) {
+ String answerValue = option.getAnswerValue();
+ option.setAnswerNum(StringUtils.hasLength(answerValue)?answerValue.split(",").length:0);
+ }
}
questionnaireStem.setOptions(options);
// 匹配解答题答案
--
Gitblit v1.7.1