| | |
| | | package com.panzhihua.service_community.service.impl; |
| | | |
| | | import java.util.Comparator; |
| | | import java.util.Date; |
| | | import java.util.*; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | |
| | | import com.google.common.collect.Lists; |
| | | import com.panzhihua.common.enums.QuestnaireState; |
| | | import com.panzhihua.common.exceptions.ServiceException; |
| | | import com.panzhihua.common.model.dtos.community.PageQuestnaireAnswerDTO; |
| | | import com.panzhihua.common.model.dtos.community.PageQuestnaireDTO; |
| | | import com.panzhihua.common.model.dtos.community.PageQuestnaireSubDetailsDTO; |
| | | import com.panzhihua.common.model.dtos.community.QuestnaireAnswersDTO; |
| | | import com.panzhihua.common.model.vos.R; |
| | | import com.panzhihua.common.model.vos.community.questnaire.EditComActQuestnaireVo; |
| | | import com.panzhihua.common.model.vos.community.questnaire.QuestnaireVO; |
| | | import com.panzhihua.common.model.vos.community.questnaire.*; |
| | | import com.panzhihua.service_community.dao.ComActQuestnaireAnswerContentDAO; |
| | | import com.panzhihua.service_community.dao.ComActQuestnaireDAO; |
| | | import com.panzhihua.service_community.dao.ComActQuestnaireSubDAO; |
| | |
| | | import com.panzhihua.common.model.vos.community.ComActQuestnaireSubSelectionVO; |
| | | import com.panzhihua.common.model.vos.community.ComActQuestnaireSubVO; |
| | | import com.panzhihua.common.model.vos.community.ComActQuestnaireVO; |
| | | import com.panzhihua.common.model.vos.community.questnaire.UsersAnswerVO; |
| | | import com.panzhihua.common.model.vos.community.questnaire.UsersSubAnswerVO; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @Author: llming |
| | |
| | | comActQuestnaireDO.setJoinCount(0); |
| | | comActQuestnaireDO.setCommunityId(communityId); |
| | | comActQuestnaireDO.setCreateBy(userId); |
| | | comActQuestnaireDO.setIsHide(0); |
| | | comActQuestnaireDO.setForMasses(questnaireVO.getForMasses()); |
| | | comActQuestnaireDO.setForParty(questnaireVO.getForParty()); |
| | | comActQuestnaireDO.setForVolunteer(questnaireVO.getForVolunteer()); |
| | |
| | | } |
| | | |
| | | @Override |
| | | public R pageQuestnaire(PageQuestnaireDTO pageQuestnaireDTO) { |
| | | public R pageQuestnaire(PageQuestnaireDTO pageQuestnaireDTO, Long communityId) { |
| | | Page userPage = new Page(pageQuestnaireDTO.getPageNum(), pageQuestnaireDTO.getPageSize()); |
| | | LambdaQueryWrapper<ComActQuestnaireDO> lambdaQueryWrapper = Wrappers.lambdaQuery(); |
| | | lambdaQueryWrapper.eq(ComActQuestnaireDO::getCommunityId, 0); |
| | | lambdaQueryWrapper.eq(ComActQuestnaireDO::getCommunityId, communityId); |
| | | //过滤隐藏字段 |
| | | lambdaQueryWrapper.eq(ComActQuestnaireDO::getIsHide, 0); |
| | | if (pageQuestnaireDTO.getTitle() != null) { |
| | |
| | | } |
| | | if (pageQuestnaireDTO.getTitle() != null) { |
| | | lambdaQueryWrapper.eq(ComActQuestnaireDO::getState, pageQuestnaireDTO.getState()); |
| | | } |
| | | if (pageQuestnaireDTO.getParterType() != null) { |
| | | lambdaQueryWrapper.eq(ComActQuestnaireDO::getParterType, pageQuestnaireDTO.getParterType()); |
| | | } |
| | | if (pageQuestnaireDTO.getEndTime() != null && pageQuestnaireDTO.getStartTime() != null) { |
| | | lambdaQueryWrapper.ge(ComActQuestnaireDO::getCreateAt, pageQuestnaireDTO.getStartTime()); |
| | |
| | | |
| | | @Override |
| | | public R statQuestnaire(Long questId){ |
| | | ComActQuestnaireDO comActQuestnaireDO = questnaireDAO.selectById(questId); |
| | | ComActQuestnaireDO comActQuestnaireDO = questnaireDAO.selectOne(new QueryWrapper<ComActQuestnaireDO>().lambda().eq(ComActQuestnaireDO::getId, questId).eq(ComActQuestnaireDO::getIsHide, 0)); |
| | | |
| | | QuestnaireAnswerStatVO usersAnswerStatVO = new QuestnaireAnswerStatVO(); |
| | | //问卷信息 |
| | |
| | | BeanUtils.copyProperties(comActQuestnaireDO, comActQuestnaireVO); |
| | | usersAnswerStatVO.setQuestnaire(comActQuestnaireVO); |
| | | |
| | | UsersSubAnswerStatVO usersSubAnswerStatVO = new UsersSubAnswerStatVO(); |
| | | //问卷题目列表 |
| | | List<ComActQuestnaireSubDO> comActQuestnaireSubDOList = |
| | | questnaireSubDAO.selectList(new QueryWrapper<ComActQuestnaireSubDO>().lambda().eq(ComActQuestnaireSubDO::getQueId, questId)); |
| | | //题目统计信息 |
| | | List<UserSubAnswerSelectionStatVO> usearSubAnswerSelectionStatVOList = questnaireAnswerContentDAO.selectQuestnaireStat(questId); |
| | | |
| | | List<UsersSubAnswerStatVO> usersSubAnswerStatVOList = new ArrayList<>(); |
| | | |
| | | //questnaireAnswerContentDAO.selectQuestnaireStat(questId); |
| | | comActQuestnaireSubDOList.forEach(comActQuestnaireSubDO->{ |
| | | UsersSubAnswerStatVO usersSubAnswerStatVO = new UsersSubAnswerStatVO(); |
| | | |
| | | ComActQuestnaireSubVO comActQuestnaireSubVO = new ComActQuestnaireSubVO(); |
| | | BeanUtils.copyProperties(comActQuestnaireSubDO, comActQuestnaireSubVO); |
| | | usersSubAnswerStatVO.setQuestSubVO(comActQuestnaireSubVO); |
| | | |
| | | List<UserSubAnswerSelectionStatVO> userSubAnswerSelectionStatVOList = new ArrayList<>(); |
| | | usersSubAnswerStatVO.setTotal(0); |
| | | |
| | | usearSubAnswerSelectionStatVOList.forEach(stat ->{ |
| | | if(stat.getSubId()==comActQuestnaireSubDO.getId()){ |
| | | userSubAnswerSelectionStatVOList.add(stat); |
| | | } |
| | | }); |
| | | usersSubAnswerStatVO.setUsersAnswer(userSubAnswerSelectionStatVOList); |
| | | Integer count = questnaireAnswerContentDAO.selectCount(new QueryWrapper<ComActQuestnaireAnswerContentDO>().select(" DISTINCT sub_id, user_id ").lambda().eq(ComActQuestnaireAnswerContentDO::getSubId,comActQuestnaireSubDO.getId())); |
| | | usersSubAnswerStatVO.setTotal(count); |
| | | usersSubAnswerStatVOList.add(usersSubAnswerStatVO); |
| | | }); |
| | | usersAnswerStatVO.setUsersSubAnswerStat(usersSubAnswerStatVOList); |
| | | return R.ok(usersAnswerStatVO); |
| | | } |
| | | |
| | |
| | | |
| | | @Override |
| | | public R answerInfoQuestnaire(Long userId, Long questId) { |
| | | |
| | | ComActQuestnaireDO comActQuestnaireDO = questnaireDAO.selectById(questId); |
| | | ComActQuestnaireDO comActQuestnaireDO = questnaireDAO.selectOne(new QueryWrapper<ComActQuestnaireDO>().lambda().eq(ComActQuestnaireDO::getId, questId).eq(ComActQuestnaireDO::getIsHide, 0)); |
| | | if(comActQuestnaireDO==null){ |
| | | return R.fail("问卷不存在!"); |
| | | } |
| | |
| | | usersAnswerVO.setQuestnaire(comActQuestnaireVO); |
| | | |
| | | List<ComActQuestnaireSubDO> list = questnaireSubDAO.selectList(new QueryWrapper<ComActQuestnaireSubDO>().lambda().eq(ComActQuestnaireSubDO::getQueId, questId)); |
| | | list.sort(Comparator.comparing(ComActQuestnaireSubDO::getSort).reversed()); |
| | | list.sort(Comparator.comparing(ComActQuestnaireSubDO::getSort)); |
| | | List<UsersSubAnswerVO> usersSubAnswerVOList = new ArrayList<>(); |
| | | |
| | | list.forEach(comActQuestnaireSubDO ->{ |
| | |
| | | |
| | | return R.ok(usersAnswerVO); |
| | | } |
| | | |
| | | @Override |
| | | public R answerResultList(Long questId) { |
| | | QuestnaireAnswersDTO questnaireAnswersDTO = new QuestnaireAnswersDTO(); |
| | | /** |
| | | * 查询题目 |
| | | */ |
| | | List<ComActQuestnaireSubDO> list = questnaireSubDAO.selectList(new QueryWrapper<ComActQuestnaireSubDO>().lambda().eq(ComActQuestnaireSubDO::getQueId, questId)); |
| | | List<ComActQuestnaireSubVO> listSubVo = new ArrayList<>(); |
| | | list.forEach(subDo->{ |
| | | ComActQuestnaireSubVO comActQuestnaireSubVO = new ComActQuestnaireSubVO(); |
| | | BeanUtils.copyProperties(subDo, comActQuestnaireSubVO); |
| | | listSubVo.add(comActQuestnaireSubVO); |
| | | }); |
| | | questnaireAnswersDTO.setSubs(listSubVo); |
| | | /** |
| | | * 查询用户回答 |
| | | */ |
| | | List<ComActQuestnaireAnswerContentDO> questnaireAnswerContentDOList = questnaireAnswerContentDAO.selectListByQuestnaire(questId); |
| | | List<ComActQuestnaireAnswerContentVO> vos = new ArrayList<>(); |
| | | questnaireAnswerContentDOList.forEach(dos ->{ |
| | | ComActQuestnaireAnswerContentVO vo = new ComActQuestnaireAnswerContentVO(); |
| | | BeanUtils.copyProperties(dos, vo); |
| | | vos.add(vo); |
| | | }); |
| | | questnaireAnswersDTO.setAnswers(vos); |
| | | |
| | | return R.ok(questnaireAnswersDTO); |
| | | } |
| | | |
| | | @Override |
| | | public R qaQeustDetails(PageQuestnaireSubDetailsDTO pageQuestnaireSubDetailsDTO) { |
| | | Page userPage = new Page(pageQuestnaireSubDetailsDTO.getPageNum(), pageQuestnaireSubDetailsDTO.getPageSize()); |
| | | IPage<ComActQuestnaireAnswerContentDO> doPager = |
| | | questnaireAnswerContentDAO.selectPage(userPage, new QueryWrapper<ComActQuestnaireAnswerContentDO>() |
| | | .orderBy(true, true, "create_at").lambda().eq(ComActQuestnaireAnswerContentDO::getSubId, pageQuestnaireSubDetailsDTO.getSubId())); |
| | | return R.ok(doPager); |
| | | } |
| | | |
| | | @Override |
| | | public R pageQuestnaireAnswer(PageQuestnaireAnswerDTO pageQuestnaireAnswerDTO) { |
| | | Page userPage = new Page(pageQuestnaireAnswerDTO.getPageNum(), pageQuestnaireAnswerDTO.getPageSize()); |
| | | IPage<ComActQuestnaireAnswerContentVO> doPager = questnaireAnswerContentDAO.selectAnswersByPage(userPage, pageQuestnaireAnswerDTO); |
| | | return R.ok(doPager); |
| | | } |
| | | } |