liujie
2025-11-12 fb97f83e39a0995fb70326c492a0bcd37af5e300
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TQuestionnaireServiceImpl.java
@@ -1,10 +1,24 @@
package com.ruoyi.system.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.basic.PageInfo;
import com.ruoyi.system.mapper.TQuestionnaireMapper;
import com.ruoyi.system.mapper.TQuestionnaireRecordMapper;
import com.ruoyi.system.mapper.TQuestionnaireStemMapper;
import com.ruoyi.system.model.TAssistedDining;
import com.ruoyi.system.model.TQuestionnaire;
import com.ruoyi.system.model.TQuestionnaireRecord;
import com.ruoyi.system.model.TQuestionnaireStem;
import com.ruoyi.system.query.TQuestionnaireQuery;
import com.ruoyi.system.service.TQuestionnaireService;
import com.ruoyi.system.vo.TQuestionnaireVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
import java.util.stream.Collectors;
/**
 * <p>
@@ -17,4 +31,31 @@
@Service
public class TQuestionnaireServiceImpl extends ServiceImpl<TQuestionnaireMapper, TQuestionnaire> implements TQuestionnaireService {
    @Autowired
    private TQuestionnaireStemMapper questionnaireStemMapper;
    @Autowired
    private TQuestionnaireRecordMapper questionnaireRecordMapper;
    @Override
    public PageInfo<TQuestionnaireVO> pageList(TQuestionnaireQuery query) {
        PageInfo<TQuestionnaireVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
        List<TQuestionnaireVO> list = this.baseMapper.pageList(query,pageInfo);
        if(CollectionUtils.isEmpty(list)){
            return pageInfo;
        }
        List<String> ids = list.stream().map(TQuestionnaireVO::getId).collect(Collectors.toList());
        List<TQuestionnaireStem> questionnaireStemList = questionnaireStemMapper.selectList(Wrappers.lambdaQuery(TQuestionnaireStem.class)
                .in(TQuestionnaireStem::getQuestionnaireId, ids));
        List<TQuestionnaireRecord> questionnaireRecordList = questionnaireRecordMapper.selectList(Wrappers.lambdaQuery(TQuestionnaireRecord.class)
                .in(TQuestionnaireRecord::getQuestionnaireId, ids));
        for (TQuestionnaireVO questionnaireVO : list) {
            List<TQuestionnaireStem> questionnaireStems = questionnaireStemList.stream().filter(questionnaireStem -> questionnaireVO.getId().equals(questionnaireStem.getQuestionnaireId())).collect(Collectors.toList());
            questionnaireVO.setOptionNum(questionnaireStems.size());
            List<TQuestionnaireRecord> questionnaireRecords = questionnaireRecordList.stream().filter(questionnaireRecord -> questionnaireVO.getId().equals(questionnaireRecord.getQuestionnaireId())).collect(Collectors.toList());
            questionnaireVO.setTotalNum(questionnaireRecords.size());
        }
        pageInfo.setRecords(list);
        return pageInfo;
    }
}