diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/QuestionnaireController.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/QuestionnaireController.java index a54cdfe7..dc7072c5 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/QuestionnaireController.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/QuestionnaireController.java @@ -51,7 +51,7 @@ public class QuestionnaireController extends BaseController { * * @param id 主键 */ - @SaCheckPermission("property:questionnaire:query") + // @SaCheckPermission("property:questionnaire:query") @GetMapping("/{id}") public R getInfo(@NotNull(message = "主键不能为空") @PathVariable("id") Long id) { diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/Questionnaire.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/Questionnaire.java index f27003c2..4636b4af 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/Questionnaire.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/Questionnaire.java @@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.annotation.*; import lombok.Data; import lombok.EqualsAndHashCode; import java.util.Date; -import com.fasterxml.jackson.annotation.JsonFormat; import java.io.Serial; @@ -59,5 +58,4 @@ public class Questionnaire extends TenantEntity { */ private String status; - } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/QuestionnaireBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/QuestionnaireBo.java index 9ef514d2..51970335 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/QuestionnaireBo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/QuestionnaireBo.java @@ -11,8 +11,6 @@ import jakarta.validation.constraints.*; import java.util.Date; import java.util.List; -import com.fasterxml.jackson.annotation.JsonFormat; - /** * 调查问卷业务对象 questionnaire * diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/QuestionnaireQuestionVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/QuestionnaireQuestionVo.java index 964bf8ec..aa0a209f 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/QuestionnaireQuestionVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/QuestionnaireQuestionVo.java @@ -7,11 +7,12 @@ import org.dromara.common.excel.annotation.ExcelDictFormat; import org.dromara.common.excel.convert.ExcelDictConvert; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; +import org.dromara.property.domain.QuestionnaireQuestionItem; import java.io.Serial; import java.io.Serializable; import java.util.Date; - +import java.util.List; /** @@ -70,5 +71,8 @@ public class QuestionnaireQuestionVo implements Serializable { @ExcelProperty(value = "排序") private Long sort; - + /** + * 问题列表 + */ + private List questionnaireQuestionItemVos; } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/QuestionnaireVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/QuestionnaireVo.java index b50fe3c8..24503771 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/QuestionnaireVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/QuestionnaireVo.java @@ -13,7 +13,7 @@ import lombok.Data; import java.io.Serial; import java.io.Serializable; import java.util.Date; - +import java.util.List; /** @@ -72,5 +72,8 @@ public class QuestionnaireVo implements Serializable { @ExcelProperty(value = "状态(1草稿2已发布3未发布)") private String status; - + /** + * 问题列表 + */ + private List questionnaireQuestionVos; } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/QuestionnaireServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/QuestionnaireServiceImpl.java index 01df710b..08de4aaf 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/QuestionnaireServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/QuestionnaireServiceImpl.java @@ -16,6 +16,8 @@ import org.dromara.property.domain.QuestionnaireQuestion; import org.dromara.property.domain.QuestionnaireQuestionItem; import org.dromara.property.domain.bo.QuestionnaireQuestionBo; import org.dromara.property.domain.bo.QuestionnaireQuestionItemBo; +import org.dromara.property.domain.vo.QuestionnaireQuestionItemVo; +import org.dromara.property.domain.vo.QuestionnaireQuestionVo; import org.dromara.property.mapper.QuestionnaireQuestionItemMapper; import org.dromara.property.mapper.QuestionnaireQuestionMapper; import org.springframework.stereotype.Service; @@ -53,7 +55,9 @@ public class QuestionnaireServiceImpl implements IQuestionnaireService { */ @Override public QuestionnaireVo queryById(Long id) { - return baseMapper.selectVoById(id); + QuestionnaireVo questionnaireVo = baseMapper.selectVoById(id); + processingData(questionnaireVo,null, null); + return questionnaireVo; } /** @@ -67,6 +71,23 @@ public class QuestionnaireServiceImpl implements IQuestionnaireService { public TableDataInfo queryPageList(QuestionnaireBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + if (CollUtil.isNotEmpty(result.getRecords())) { + //收集所有的问卷id + List questionnaireIds = result.getRecords().stream().map(QuestionnaireVo::getId).toList(); + // 一次性查询所有问题 + LambdaQueryWrapper questionQueryWrapper = Wrappers.lambdaQuery(); + questionQueryWrapper.in(QuestionnaireQuestion::getQuestionnaireId, questionnaireIds); + List questionnaireQuestionVos = questionnaireQuestionMapper.selectVoList(questionQueryWrapper); + //收集所有问题id + List idList = questionnaireQuestionVos.stream().map(QuestionnaireQuestionVo::getId).toList(); + //查询所有问题选项 + LambdaQueryWrapper questionItemQueryWrapper = Wrappers.lambdaQuery(); + questionItemQueryWrapper.in(QuestionnaireQuestionItem::getQuestionId, idList); + List questionnaireQuestionItemVos = questionnaireQuestionItemMapper.selectVoList(questionItemQueryWrapper); + result.getRecords().stream().forEach(questionnaireVo -> { + processingData(questionnaireVo, questionnaireQuestionVos, questionnaireQuestionItemVos); + }); + } return TableDataInfo.build(result); } @@ -91,6 +112,37 @@ public class QuestionnaireServiceImpl implements IQuestionnaireService { return lqw; } + /** + * 处理数据 + */ + private void processingData(QuestionnaireVo questionnaireVo, List questionnaireQuestionVos, List questionnaireQuestionItemVos) { + // 在此处添加您选中的代码来获取问卷问题列表 + if (CollUtil.isEmpty(questionnaireQuestionVos)) { + LambdaQueryWrapper questionQueryWrapper = Wrappers.lambdaQuery(); + questionQueryWrapper.eq(QuestionnaireQuestion::getQuestionnaireId, questionnaireVo.getId()); + questionnaireQuestionVos = questionnaireQuestionMapper.selectVoList(questionQueryWrapper); + if (CollUtil.isEmpty(questionnaireQuestionItemVos)) { + //收集所有问题id + List idList = questionnaireQuestionVos.stream().map(QuestionnaireQuestionVo::getId).toList(); + //查询所有问题选项 + LambdaQueryWrapper questionItemQueryWrapper = Wrappers.lambdaQuery(); + questionItemQueryWrapper.in(QuestionnaireQuestionItem::getQuestionId, idList); + questionnaireQuestionItemVos = questionnaireQuestionItemMapper.selectVoList(questionItemQueryWrapper); + } + } + if (CollUtil.isNotEmpty(questionnaireQuestionVos)) { + List finalQuestionnaireQuestionItemVos = questionnaireQuestionItemVos; + questionnaireQuestionVos.stream().forEach(questionnaireQuestionVo -> { + //筛选出属于当前问题的问题项返回list + List list = finalQuestionnaireQuestionItemVos.stream().filter(questionnaireQuestionItemVo -> questionnaireQuestionItemVo.getQuestionId().equals(questionnaireQuestionVo.getId())).toList(); + questionnaireQuestionVo.setQuestionnaireQuestionItemVos(list); + }); + } + questionnaireVo.setQuestionnaireQuestionVos(questionnaireQuestionVos); + } + + ; + /** * 新增调查问卷 * @@ -191,7 +243,7 @@ public class QuestionnaireServiceImpl implements IQuestionnaireService { @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { boolean flag = baseMapper.deleteByIds(ids) > 0; - if(flag){ + if (flag) { ids.stream().forEach(id -> { //查询问题 List questionnaireQuestionList = questionnaireQuestionMapper.selectList(new LambdaUpdateWrapper().eq(QuestionnaireQuestion::getQuestionnaireId, id));