| | |
| | | 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) { |
| | |
| | | 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(); |
| | | } |
| | | } |