From 9da3041d5a71f30a0f0f9dc005ffc4af88ef7bec Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期一, 02 三月 2026 09:45:57 +0800
Subject: [PATCH] bug处理
---
ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/QuestionnaireController.java | 94 ++++++++++++++++++++++++++++++++++++++---------
1 files changed, 76 insertions(+), 18 deletions(-)
diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/QuestionnaireController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/QuestionnaireController.java
index 377d0a8..0ba40e0 100644
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/QuestionnaireController.java
+++ b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/QuestionnaireController.java
@@ -5,24 +5,18 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.framework.web.service.TokenService;
-import com.ruoyi.system.model.TPartyBuilding;
-import com.ruoyi.system.model.TQuestionnaire;
-import com.ruoyi.system.model.TQuestionnaireStem;
-import com.ruoyi.system.model.TQuestionnaireStemOption;
+import com.ruoyi.system.dto.SaveTQuestionnaireDto;
+import com.ruoyi.system.model.*;
import com.ruoyi.system.query.PartyBuildingListQuery;
-import com.ruoyi.system.service.TQuestionnaireService;
-import com.ruoyi.system.service.TQuestionnaireStemBriefAnswerService;
-import com.ruoyi.system.service.TQuestionnaireStemOptionService;
-import com.ruoyi.system.service.TQuestionnaireStemService;
+import com.ruoyi.system.service.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.*;
import java.util.List;
+import java.util.stream.Collectors;
@Slf4j
@RestController
@@ -31,32 +25,96 @@
public class QuestionnaireController {
private final TQuestionnaireService questionnaireService;
- private final TQuestionnaireStemService questionnaireStemService;
+ private final TQuestionnaireRecordService questionnaireRecordService;
private final TokenService tokenService;
+ private final TQuestionnaireStemService questionnaireStemService;
private final TQuestionnaireStemOptionService questionnaireStemOptionService;
private final TQuestionnaireStemBriefAnswerService questionnaireStemBriefAnswerService;
- public QuestionnaireController(TQuestionnaireService questionnaireService, TQuestionnaireStemService questionnaireStemService, TokenService tokenService, TQuestionnaireStemOptionService questionnaireStemOptionService, TQuestionnaireStemBriefAnswerService questionnaireStemBriefAnswerService) {
+ public QuestionnaireController(TQuestionnaireService questionnaireService, TQuestionnaireRecordService questionnaireRecordService, TokenService tokenService, TQuestionnaireStemService questionnaireStemService, TQuestionnaireStemOptionService questionnaireStemOptionService, TQuestionnaireStemBriefAnswerService questionnaireStemBriefAnswerService) {
this.questionnaireService = questionnaireService;
- this.questionnaireStemService = questionnaireStemService;
+ this.questionnaireRecordService = questionnaireRecordService;
this.tokenService = tokenService;
+ this.questionnaireStemService = questionnaireStemService;
this.questionnaireStemOptionService = questionnaireStemOptionService;
this.questionnaireStemBriefAnswerService = questionnaireStemBriefAnswerService;
}
@ApiOperation(value = "问卷调查--列表", response = TQuestionnaire.class)
- @PostMapping(value = "/getTQuestionnaireList")
+ @GetMapping(value = "/getTQuestionnaireList")
public R<List<TQuestionnaire>> getTQuestionnaireList() {
-
String userId = null;
try {
userId = tokenService.getLoginUserApplet().getUserId();
} catch (Exception e) {
}
List<TQuestionnaire> list = questionnaireService.list(new LambdaQueryWrapper<TQuestionnaire>().eq(TQuestionnaire::getStatus, 2));
-
+ List<TQuestionnaireRecord> questionnaireRecordList = questionnaireRecordService.list();
+ for (TQuestionnaire tQuestionnaire : list) {
+ List<String> userIds = questionnaireRecordList.stream().filter(questionnaireRecord -> questionnaireRecord.getQuestionnaireId().equals(tQuestionnaire.getId())).map(TQuestionnaireRecord::getAppUserId).collect(Collectors.toList());
+ tQuestionnaire.setTotalNum(userIds.size());
+ if(userId!=null && userIds.contains(userId)){
+ tQuestionnaire.setState(2);
+ }
+ }
return R.ok(list);
}
+ @ApiOperation(value = "问卷调查--获取题干和选项", response = TQuestionnaireStem.class)
+ @GetMapping(value = "/getTQuestionnaireStemList/{id}")
+ public R<List<TQuestionnaireStem>> getTQuestionnaireStemList(@PathVariable String id) {
+ List<TQuestionnaireStem> list = questionnaireStemService.list(new LambdaQueryWrapper<TQuestionnaireStem>().eq(TQuestionnaireStem::getQuestionnaireId, id));
+ List<TQuestionnaireStemOption> questionnaireStemOptions = questionnaireStemOptionService.list(new LambdaQueryWrapper<TQuestionnaireStemOption>().in(TQuestionnaireStemOption::getStemId, list.stream().map(TQuestionnaireStem::getId).collect(Collectors.toList())));
+ for (TQuestionnaireStem tQuestionnaireStem : list) {
+ tQuestionnaireStem.setOptions(questionnaireStemOptions.stream().filter(questionnaireStemOption -> questionnaireStemOption.getStemId().equals(tQuestionnaireStem.getId())).collect(Collectors.toList()));
+ }
+ return R.ok(list);
+ }
+
+ @ApiOperation(value = "问卷调查--保存")
+ @PostMapping(value = "/saveTQuestionnaire")
+ public R<TQuestionnaire> saveTQuestionnaire(@RequestBody SaveTQuestionnaireDto dto) {
+ String userId = tokenService.getLoginUserApplet().getUserId();
+
+ TQuestionnaire questionnaire = questionnaireService.getById(dto.getQuestionnaireId());
+ if(questionnaire.getStatus()==3){
+ return R.fail("问卷已结束");
+ }
+ if(questionnaire.getStatus()==1){
+ return R.fail("问卷未开始");
+ }
+
+ long count = questionnaireRecordService.count(new LambdaQueryWrapper<TQuestionnaireRecord>().eq(TQuestionnaireRecord::getQuestionnaireId, dto.getQuestionnaireId()).eq(TQuestionnaireRecord::getAppUserId, userId));
+ if (count > 0) {
+ return R.fail("您已作答过此问卷");
+ }
+ List<String> tQuestionnaireStemOptionIds = dto.getTQuestionnaireStemOptionIds();
+ if(!tQuestionnaireStemOptionIds.isEmpty()){
+ List<TQuestionnaireStemOption> questionnaireStemOptions = questionnaireStemOptionService.listByIds(tQuestionnaireStemOptionIds);
+ for (TQuestionnaireStemOption questionnaireStemOption : questionnaireStemOptions) {
+ String answerValue = questionnaireStemOption.getAnswerValue();
+ if(StringUtils.hasLength(answerValue)){
+ answerValue = answerValue+","+userId;
+ }else{
+ answerValue = userId;
+ }
+ questionnaireStemOption.setAnswerValue(answerValue);
+ }
+ questionnaireStemOptionService.updateBatchById(questionnaireStemOptions);
+ }
+
+ List<TQuestionnaireStemBriefAnswer> tQuestionnaireStemBriefAnswers = dto.getTQuestionnaireStemBriefAnswers();
+ if(!tQuestionnaireStemBriefAnswers.isEmpty()){
+ tQuestionnaireStemBriefAnswers.forEach(e->e.setAppUserId(userId));
+ questionnaireStemBriefAnswerService.saveBatch(tQuestionnaireStemBriefAnswers);
+ }
+
+ TQuestionnaireRecord tQuestionnaireRecord = new TQuestionnaireRecord();
+ tQuestionnaireRecord.setAppUserId(userId);
+ tQuestionnaireRecord.setQuestionnaireId(dto.getQuestionnaireId());
+ questionnaireRecordService.save(tQuestionnaireRecord);
+ return R.ok();
+ }
+
}
--
Gitblit v1.7.1