| | |
| | | package com.panzhihua.service_community.service.impl; |
| | | |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | |
| | | ComActQuestnaireSubServiceImpl questnaireSubService; |
| | | @Resource |
| | | ComActQuestnaireSubSelectionServiceImpl subSelectionService; |
| | | @Resource |
| | | ComActQuestnaireAnswerContentServiceImpl answerContentService; |
| | | |
| | | @Override |
| | | public R addQuestnaire(QuestnaireVO questnaireVO, Long communityId, Long userId) { |
| | |
| | | } |
| | | |
| | | @Override |
| | | public R statQuestnaire(Long questId){ |
| | | public R statQuestnaire(Long questId) { |
| | | ComActQuestnaireDO comActQuestnaireDO = questnaireDAO.selectOne(new QueryWrapper<ComActQuestnaireDO>().lambda().eq(ComActQuestnaireDO::getId, questId).eq(ComActQuestnaireDO::getIsHide, 0)); |
| | | |
| | | QuestnaireAnswerStatVO usersAnswerStatVO = new QuestnaireAnswerStatVO(); |
| | |
| | | |
| | | List<UsersSubAnswerStatVO> usersSubAnswerStatVOList = new ArrayList<>(); |
| | | |
| | | comActQuestnaireSubDOList.forEach(comActQuestnaireSubDO->{ |
| | | comActQuestnaireSubDOList.forEach(comActQuestnaireSubDO -> { |
| | | UsersSubAnswerStatVO usersSubAnswerStatVO = new UsersSubAnswerStatVO(); |
| | | |
| | | ComActQuestnaireSubVO comActQuestnaireSubVO = new ComActQuestnaireSubVO(); |
| | |
| | | List<UserSubAnswerSelectionStatVO> userSubAnswerSelectionStatVOList = new ArrayList<>(); |
| | | usersSubAnswerStatVO.setTotal(0); |
| | | |
| | | usearSubAnswerSelectionStatVOList.forEach(stat ->{ |
| | | if(stat.getSubId()==comActQuestnaireSubDO.getId()){ |
| | | 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())); |
| | | 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); |
| | | }); |
| | |
| | | @Override |
| | | public R answerInfoQuestnaire(Long userId, Long questId) { |
| | | ComActQuestnaireDO comActQuestnaireDO = questnaireDAO.selectOne(new QueryWrapper<ComActQuestnaireDO>().lambda().eq(ComActQuestnaireDO::getId, questId).eq(ComActQuestnaireDO::getIsHide, 0)); |
| | | if(comActQuestnaireDO==null){ |
| | | return R.fail("问卷不存在!"); |
| | | if (comActQuestnaireDO == null) { |
| | | return R.fail("问卷不存在!"); |
| | | } |
| | | |
| | | UsersAnswerVO usersAnswerVO = new UsersAnswerVO(); |
| | |
| | | list.sort(Comparator.comparing(ComActQuestnaireSubDO::getSort)); |
| | | List<UsersSubAnswerVO> usersSubAnswerVOList = new ArrayList<>(); |
| | | |
| | | list.forEach(comActQuestnaireSubDO ->{ |
| | | list.forEach(comActQuestnaireSubDO -> { |
| | | UsersSubAnswerVO usersSubAnswerVO = new UsersSubAnswerVO(); |
| | | //问卷调查题目 |
| | | ComActQuestnaireSubVO comActQuestnaireSubVO = new ComActQuestnaireSubVO(); |
| | |
| | | }); |
| | | usersSubAnswerVO.setQuestSelectionList(comActQuestnaireSubSelectionVOs); |
| | | //用户回答 |
| | | if(userId!=null) { |
| | | if (userId != null) { |
| | | List<ComActQuestnaireAnswerContentDO> questnaireAnswerContentDOList = |
| | | questnaireAnswerContentDAO.selectList(new QueryWrapper<ComActQuestnaireAnswerContentDO>().lambda().eq(ComActQuestnaireAnswerContentDO::getUserId, userId) |
| | | .eq(ComActQuestnaireAnswerContentDO::getSubId, subId)); |
| | |
| | | */ |
| | | List<ComActQuestnaireSubDO> list = questnaireSubDAO.selectList(new QueryWrapper<ComActQuestnaireSubDO>().lambda().eq(ComActQuestnaireSubDO::getQueId, questId)); |
| | | List<ComActQuestnaireSubVO> listSubVo = new ArrayList<>(); |
| | | list.forEach(subDo->{ |
| | | list.forEach(subDo -> { |
| | | ComActQuestnaireSubVO comActQuestnaireSubVO = new ComActQuestnaireSubVO(); |
| | | BeanUtils.copyProperties(subDo, comActQuestnaireSubVO); |
| | | listSubVo.add(comActQuestnaireSubVO); |
| | |
| | | */ |
| | | List<ComActQuestnaireAnswerContentDO> questnaireAnswerContentDOList = questnaireAnswerContentDAO.selectListByQuestnaire(questId); |
| | | List<ComActQuestnaireAnswerContentVO> vos = new ArrayList<>(); |
| | | questnaireAnswerContentDOList.forEach(dos ->{ |
| | | questnaireAnswerContentDOList.forEach(dos -> { |
| | | ComActQuestnaireAnswerContentVO vo = new ComActQuestnaireAnswerContentVO(); |
| | | BeanUtils.copyProperties(dos, vo); |
| | | vos.add(vo); |
| | |
| | | IPage<ComActQuestnaireAnswerContentVO> doPager = questnaireAnswerContentDAO.selectAnswersByPage(userPage, pageQuestnaireAnswerDTO); |
| | | return R.ok(doPager); |
| | | } |
| | | |
| | | @Override |
| | | public R usersAnsweQuestnaire(UsersAnswerQuestnaireVO answerQuestnaireVO, Long userId) { |
| | | if (answerQuestnaireVO == null || answerQuestnaireVO.getAnswerContentVOList() == null) { |
| | | return R.fail(500, "数据为空!"); |
| | | } |
| | | ComActQuestnaireDO questnaireDO = questnaireDAO.selectById(answerQuestnaireVO.getQuestId()); |
| | | if (questnaireDO == null) { |
| | | return R.fail(500, "调查问卷不存在!"); |
| | | } |
| | | LambdaQueryWrapper<ComActQuestnaireSubDO> subQuery = new LambdaQueryWrapper<ComActQuestnaireSubDO>(); |
| | | subQuery.eq(ComActQuestnaireSubDO::getQueId,answerQuestnaireVO.getQuestId()); |
| | | List<ComActQuestnaireSubDO> subDOS = questnaireSubDAO.selectList(subQuery); |
| | | List<Long> subIds = subDOS.stream().map(ComActQuestnaireSubDO::getId).collect(Collectors.toList()); |
| | | List<UserAnswerContentVO> answerContentVOList = answerQuestnaireVO.getAnswerContentVOList(); |
| | | List<ComActQuestnaireAnswerContentDO> answerContentDOList = Lists.newArrayList(); |
| | | for (UserAnswerContentVO answerContent:answerContentVOList) { |
| | | ComActQuestnaireAnswerContentDO answerContentDO = new ComActQuestnaireAnswerContentDO(); |
| | | boolean b = subIds.stream().anyMatch(a -> a.equals(answerContent.getSubId())); |
| | | if (!b) { |
| | | throw new ServiceException("500", "调查问卷题目不存在!"); |
| | | } |
| | | BeanUtils.copyProperties(answerContentDO,answerContent); |
| | | answerContentDOList.add(answerContentDO); |
| | | } |
| | | answerContentService.saveBatch(answerContentDOList); |
| | | return R.ok(); |
| | | } |
| | | } |