From 0c0cf5c7e0d35a868a185d09bc8f09e21fb630e0 Mon Sep 17 00:00:00 2001 From: DESKTOP-71BH0QO\L、ming <172680469@qq.com> Date: 星期二, 13 四月 2021 16:20:08 +0800 Subject: [PATCH] Add: --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActQuestnaireServiceImpl.java | 53 ++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 42 insertions(+), 11 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActQuestnaireServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActQuestnaireServiceImpl.java index b9e3c05..aeaab44 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActQuestnaireServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActQuestnaireServiceImpl.java @@ -1,6 +1,7 @@ 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; @@ -52,6 +53,8 @@ ComActQuestnaireSubServiceImpl questnaireSubService; @Resource ComActQuestnaireSubSelectionServiceImpl subSelectionService; + @Resource + ComActQuestnaireAnswerContentServiceImpl answerContentService; @Override public R addQuestnaire(QuestnaireVO questnaireVO, Long communityId, Long userId) { @@ -176,7 +179,7 @@ } @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(); @@ -193,7 +196,7 @@ List<UsersSubAnswerStatVO> usersSubAnswerStatVOList = new ArrayList<>(); - comActQuestnaireSubDOList.forEach(comActQuestnaireSubDO->{ + comActQuestnaireSubDOList.forEach(comActQuestnaireSubDO -> { UsersSubAnswerStatVO usersSubAnswerStatVO = new UsersSubAnswerStatVO(); ComActQuestnaireSubVO comActQuestnaireSubVO = new ComActQuestnaireSubVO(); @@ -203,13 +206,13 @@ 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); }); @@ -225,8 +228,8 @@ @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(); @@ -238,7 +241,7 @@ 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(); @@ -259,7 +262,7 @@ }); 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)); @@ -289,7 +292,7 @@ */ 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); @@ -300,7 +303,7 @@ */ 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); @@ -325,4 +328,32 @@ 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(); + } } -- Gitblit v1.7.1