From cc1098fc00a50cb1591d182f04bc37066ff0a9e2 Mon Sep 17 00:00:00 2001 From: 罗元桥 <2376770955@qq.com> Date: 星期四, 05 八月 2021 15:12:39 +0800 Subject: [PATCH] Merge branch 'test' into 'master' --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActQuestnaireServiceImpl.java | 412 ++++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 354 insertions(+), 58 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 a284e78..498e8f2 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,7 +1,9 @@ package com.panzhihua.service_community.service.impl; -import java.util.Date; +import java.util.*; +import java.util.stream.Collectors; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -9,20 +11,27 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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.LoginUserInfoVO; import com.panzhihua.common.model.vos.R; -import com.panzhihua.common.model.vos.community.questnaire.AddQuestnaireVO; -import com.panzhihua.service_community.dao.ComActQuestnaireAnswerContentDAO; -import com.panzhihua.service_community.dao.ComActQuestnaireDAO; -import com.panzhihua.service_community.dao.ComActQuestnaireSubDAO; -import com.panzhihua.service_community.dao.ComActQuestnaireSubSelectionDAO; +import com.panzhihua.common.model.vos.community.questnaire.*; +import com.panzhihua.common.service.user.UserService; +import com.panzhihua.service_community.dao.*; import com.panzhihua.service_community.model.dos.*; import com.panzhihua.service_community.service.ComActQuestnaireService; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import com.panzhihua.common.model.vos.community.ComActQuestnaireAnswerContentVO; +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 org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.List; /** * @Author: llming @@ -35,6 +44,8 @@ @Resource ComActQuestnaireSubDAO questnaireSubDAO; @Resource + ComActDynUserDAO userDAO; + @Resource ComActQuestnaireSubSelectionDAO questnaireSubSelectionDAO; @Resource ComActQuestnaireAnswerContentDAO questnaireAnswerContentDAO; @@ -42,77 +53,362 @@ ComActQuestnaireSubServiceImpl questnaireSubService; @Resource ComActQuestnaireSubSelectionServiceImpl subSelectionService; + @Resource + ComActQuestnaireAnswerContentServiceImpl answerContentService; + @Resource + UserService userService; @Override - public R AddQuestnaire(AddQuestnaireVO addQuestnaireVO, Long communityId, Long userId) { + @Transactional(rollbackFor = Exception.class) + public R addQuestnaire(QuestnaireVO questnaireVO, Long communityId, Long userId) { ComActQuestnaireDO comActQuestnaireDO = new ComActQuestnaireDO(); - comActQuestnaireDO.setTitle(addQuestnaireVO.getQueTitle()); - comActQuestnaireDO.setQueDescribe(addQuestnaireVO.getQueDescribe()); + comActQuestnaireDO.setTitle(questnaireVO.getQueTitle()); + comActQuestnaireDO.setQueDescribe(questnaireVO.getQueDescribe()); comActQuestnaireDO.setState(QuestnaireState.CONTINUED.getCode()); comActQuestnaireDO.setJoinCount(0); comActQuestnaireDO.setCommunityId(communityId); - comActQuestnaireDO.setCreatBy(userId); - int questnaireId = questnaireDAO.insert(comActQuestnaireDO); - addQuestnaireVO.getQuestnaiteSubVOS().forEach(sub -> { - ComActQuestnaireSubDO comActQuestnaireSubDO = new ComActQuestnaireSubDO(); - comActQuestnaireSubDO.setType(sub.getType()); - comActQuestnaireSubDO.setContent(sub.getContent()); - comActQuestnaireSubDO.setSort(sub.getSort()); - comActQuestnaireSubDO.setQueId((long) questnaireId); - comActQuestnaireSubDO.setCreatBy(userId); - int subId = questnaireSubDAO.insert(comActQuestnaireSubDO); - ArrayList<ComActQuestnaireSubSelectionDO> subSelectionList = Lists.newArrayList(); - sub.getQuestnaiteSubSelectionVOS().forEach(subSelect -> { - ComActQuestnaireSubSelectionDO subSelectionDO = new ComActQuestnaireSubSelectionDO(); - subSelectionDO.setQueSubId((long) subId); - subSelectionDO.setSort(subSelect.getSort()); - subSelectionDO.setContent(subSelect.getContent()); - subSelectionDO.setCreatBy(userId); - subSelectionList.add(subSelectionDO); + comActQuestnaireDO.setCreateBy(userId); + comActQuestnaireDO.setIsHide(0); + comActQuestnaireDO.setForMasses(questnaireVO.getForMasses()); + comActQuestnaireDO.setForParty(questnaireVO.getForParty()); + comActQuestnaireDO.setForVolunteer(questnaireVO.getForVolunteer()); + int questId = questnaireDAO.insert(comActQuestnaireDO); + if(questId!=1){ + return R.fail("创建失败"); + } + if(questnaireVO.getQuestnaiteSubVOS()!=null) { + questnaireVO.getQuestnaiteSubVOS().forEach(sub -> { + ComActQuestnaireSubDO comActQuestnaireSubDO = new ComActQuestnaireSubDO(); + comActQuestnaireSubDO.setType(sub.getType()); + comActQuestnaireSubDO.setContent(sub.getContent()); + comActQuestnaireSubDO.setSort(sub.getSort()); + comActQuestnaireSubDO.setQueId((long) comActQuestnaireDO.getId()); + comActQuestnaireSubDO.setCreateBy(userId); + int subId = questnaireSubDAO.insert(comActQuestnaireSubDO); + + ArrayList<ComActQuestnaireSubSelectionDO> subSelectionList = Lists.newArrayList(); + if(sub.getQuestnaiteSubSelectionVOS()!=null) { + List<QuestnaiteSubSelectionVO> l = sub.getQuestnaiteSubSelectionVOS(); + for(int i=0; i<l.size(); i++){ + QuestnaiteSubSelectionVO subSelect = l.get(i); + ComActQuestnaireSubSelectionDO subSelectionDO = new ComActQuestnaireSubSelectionDO(); + subSelectionDO.setQueSubId(comActQuestnaireSubDO.getId()); + if(subSelect.getType()==1){ + //添加选项名称 + subSelectionDO.setOptionName(subSelect.getOptionName()); + }else { + subSelectionDO.setOptionName(String.valueOf(Character.toChars('A' + i))); + } + subSelectionDO.setSort(subSelect.getSort()); + subSelectionDO.setContent(subSelect.getContent()); + subSelectionDO.setCreateBy(userId); + subSelectionDO.setType(subSelect.getType()); + subSelectionList.add(subSelectionDO); + } + } + subSelectionService.saveBatch(subSelectionList); }); - subSelectionService.saveBatch(subSelectionList); - }); + } return R.ok(); } @Override - public R ListQuestnaire(PageQuestnaireDTO pageQuestnaireDTO) { - Page userPage = new Page(pageQuestnaireDTO.getPageNum(), pageQuestnaireDTO.getPageSize()); - LambdaQueryWrapper<ComActQuestnaireDO> lambdaQueryWrapper = Wrappers.lambdaQuery(); - if (pageQuestnaireDTO.getTitle() != null) { - lambdaQueryWrapper.like(ComActQuestnaireDO::getTitle, pageQuestnaireDTO.getTitle()); + public R pageQuestnaire(PageQuestnaireDTO pageQuestnaireDTO, Long communityId) { + Page page = new Page<>(); + Long pageNum = pageQuestnaireDTO.getPageNum(); + Long pageSize = pageQuestnaireDTO.getPageSize(); + if (null == pageNum || 0 == pageNum) { + pageNum = 1l; } - if (pageQuestnaireDTO.getTitle() != null) { - lambdaQueryWrapper.eq(ComActQuestnaireDO::getState, pageQuestnaireDTO.getState()); + if (null == pageSize || 0 == pageSize) { + pageSize = 10l; } - if (pageQuestnaireDTO.getParterType() != null) { - lambdaQueryWrapper.eq(ComActQuestnaireDO::getParterType, pageQuestnaireDTO.getParterType()); + page.setSize(pageSize); + page.setCurrent(pageNum); + IPage<QuestnaireListVo> voPage = questnaireDAO.selectPageList(page,pageQuestnaireDTO,communityId); + voPage.getRecords().forEach(record -> { + Integer userAnswerCount = questnaireAnswerContentDAO.selectUserCountByQuestnaireId(record.getId(), pageQuestnaireDTO.getUserId()); + if(userAnswerCount>0){ + record.setAnswer(true); + }else{ + record.setAnswer(false); + } + }); + return R.ok(voPage); + } + + @Override + public R editQuestnaire(QuestnaireVO questnaireVO) { + ComActQuestnaireDO questnaireDO = null; + if (questnaireVO.getQuestId() != null && questnaireVO.getQuestId() != 0L) { + questnaireDO = questnaireDAO.selectById(questnaireVO.getQuestId()); + if (questnaireDO == null) { + return R.fail(500, "id有误!"); + } + questnaireDO.setTitle(questnaireVO.getQueTitle()); + questnaireDO.setQueDescribe(questnaireVO.getQueDescribe()); + //保存问卷调查 + questnaireDAO.updateById(questnaireDO); + questnaireVO.getQuestnaiteSubVOS().forEach(sub -> { + if (sub.getQueSubId() == null) { + throw new ServiceException("500", "问卷题目Id为空!"); + } + ComActQuestnaireSubDO subDO = questnaireSubDAO.selectById(sub.getQueSubId()); + if (subDO == null || sub.getContent() == null) { + throw new ServiceException("500", "修改问卷题目数据有误!"); + } + subDO.setContent(sub.getContent()); + //更新问卷题目 + questnaireSubDAO.updateById(subDO); + sub.getQuestnaiteSubSelectionVOS().forEach(subSelection -> { + if (subSelection.getQueSubSelectionId() == null || subSelection.getContent() == null) { + throw new ServiceException("500", "问卷题目选项数据有误!"); + } + ComActQuestnaireSubSelectionDO subSelectionDO = questnaireSubSelectionDAO.selectById(subSelection.getQueSubSelectionId()); + subSelectionDO.setContent(subSelection.getContent()); + //更新问卷选项 + questnaireSubSelectionDAO.updateById(subSelectionDO); + }); + }); + + }else{ + return R.fail("参数有误"); } - if (pageQuestnaireDTO.getEndTime() != null && pageQuestnaireDTO.getStartTime() != null) { - lambdaQueryWrapper.ge(ComActQuestnaireDO::getCreateAt, pageQuestnaireDTO.getStartTime()); - lambdaQueryWrapper.lt(ComActQuestnaireDO::getCreateAt, pageQuestnaireDTO.getEndTime()); + return R.ok(); + } + + @Override + public R editQuestnaireDO(EditComActQuestnaireVo editComActQuestnaireVo, Long userId) { + LambdaQueryWrapper<ComActQuestnaireDO> subParam = new LambdaQueryWrapper<ComActQuestnaireDO>().eq(ComActQuestnaireDO::getId, editComActQuestnaireVo.getQuestId()); + ComActQuestnaireDO questDO = questnaireDAO.selectOne(subParam); + if (questDO == null) { + return R.fail(500, "Id有误!"); } - IPage<ComActQuestnaireDO> doPager = questnaireDAO.selectPage(userPage, lambdaQueryWrapper.orderByDesc(ComActQuestnaireDO::getCreateAt)); + questDO.setState(editComActQuestnaireVo.getState()); + questDO.setUpdateBy(userId); + questnaireDAO.updateById(questDO); + return R.ok(); + } + + @Override + public R deleteQuestnaire(Long questId, Long userId) { + LambdaQueryWrapper<ComActQuestnaireDO> subParam = new LambdaQueryWrapper<ComActQuestnaireDO>().eq(ComActQuestnaireDO::getId, questId); + ComActQuestnaireDO queDO = questnaireDAO.selectOne(subParam); + if (queDO == null) { + return R.fail(); + } + queDO.setUpdateBy(userId); + queDO.setIsHide(1); + questnaireDAO.updateById(queDO); + return R.ok(); + } + + @Override + public R statQuestnaire(Long questId) { + ComActQuestnaireDO comActQuestnaireDO = questnaireDAO.selectOne(new QueryWrapper<ComActQuestnaireDO>().lambda().eq(ComActQuestnaireDO::getId, questId).eq(ComActQuestnaireDO::getIsHide, 0)); + + if(comActQuestnaireDO==null){ + return R.fail("问卷已删除!"); + } + + QuestnaireAnswerStatVO usersAnswerStatVO = new QuestnaireAnswerStatVO(); + //问卷信息 + ComActQuestnaireVO comActQuestnaireVO = new ComActQuestnaireVO(); + BeanUtils.copyProperties(comActQuestnaireDO, comActQuestnaireVO); + usersAnswerStatVO.setQuestnaire(comActQuestnaireVO); + + //问卷题目列表 + List<ComActQuestnaireSubDO> comActQuestnaireSubDOList = + questnaireSubDAO.selectList(new QueryWrapper<ComActQuestnaireSubDO>().lambda().eq(ComActQuestnaireSubDO::getQueId, questId)); + //题目统计信息 + List<UserSubAnswerSelectionStatVO> usearSubAnswerSelectionStatVOList = questnaireAnswerContentDAO.selectQuestnaireStat(questId); + + List<UsersSubAnswerStatVO> usersSubAnswerStatVOList = new ArrayList<>(); + + 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().equals(comActQuestnaireSubDO.getId()) + && stat.getTotal()>0) { + 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 infoQuestnaire(Long questId) { + return answerInfoQuestnaire(null, questId); + } + + @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("问卷不存在!"); + } + + UsersAnswerVO usersAnswerVO = new UsersAnswerVO(); + ComActQuestnaireVO comActQuestnaireVO = new ComActQuestnaireVO(); + BeanUtils.copyProperties(comActQuestnaireDO, comActQuestnaireVO); + usersAnswerVO.setQuestnaire(comActQuestnaireVO); + + List<ComActQuestnaireSubDO> list = questnaireSubDAO.selectList(new QueryWrapper<ComActQuestnaireSubDO>().lambda().eq(ComActQuestnaireSubDO::getQueId, questId)); + list.sort(Comparator.comparing(ComActQuestnaireSubDO::getSort)); + List<UsersSubAnswerVO> usersSubAnswerVOList = new ArrayList<>(); + + list.forEach(comActQuestnaireSubDO -> { + UsersSubAnswerVO usersSubAnswerVO = new UsersSubAnswerVO(); + //问卷调查题目 + ComActQuestnaireSubVO comActQuestnaireSubVO = new ComActQuestnaireSubVO(); + BeanUtils.copyProperties(comActQuestnaireSubDO, comActQuestnaireSubVO); + usersSubAnswerVO.setQuestSubVO(comActQuestnaireSubVO); + + //问卷调查题目-选项 + Long subId = comActQuestnaireSubDO.getId(); + List<ComActQuestnaireSubSelectionDO> comActQuestnaireSubSelectionDOs = + questnaireSubSelectionDAO.selectList(new QueryWrapper<ComActQuestnaireSubSelectionDO>().lambda().eq(ComActQuestnaireSubSelectionDO::getQueSubId, subId)); + + + List<ComActQuestnaireSubSelectionVO> comActQuestnaireSubSelectionVOs = new ArrayList<>(); + comActQuestnaireSubSelectionDOs.forEach(comActQuestnaireSubSelectionDO -> { + ComActQuestnaireSubSelectionVO comActQuestnaireSubSelectionVO = new ComActQuestnaireSubSelectionVO(); + BeanUtils.copyProperties(comActQuestnaireSubSelectionDO, comActQuestnaireSubSelectionVO); + comActQuestnaireSubSelectionVOs.add(comActQuestnaireSubSelectionVO); + }); + usersSubAnswerVO.setQuestSelectionList(comActQuestnaireSubSelectionVOs); + //用户回答 + if (userId != null) { + List<ComActQuestnaireAnswerContentDO> questnaireAnswerContentDOList = + questnaireAnswerContentDAO.selectList(new QueryWrapper<ComActQuestnaireAnswerContentDO>().lambda().eq(ComActQuestnaireAnswerContentDO::getUserId, userId) + .eq(ComActQuestnaireAnswerContentDO::getSubId, subId)); + + List<ComActQuestnaireAnswerContentVO> questnaireAnswerContentVOList = new ArrayList<>(); + questnaireAnswerContentDOList.forEach(questnaireAnswerContentDO -> { + ComActQuestnaireAnswerContentVO comActQuestnaireSubSelectionVO = new ComActQuestnaireAnswerContentVO(); + BeanUtils.copyProperties(questnaireAnswerContentDO, comActQuestnaireSubSelectionVO); + questnaireAnswerContentVOList.add(comActQuestnaireSubSelectionVO); + }); + + usersSubAnswerVO.setUsersAnswer(questnaireAnswerContentVOList); + } + usersSubAnswerVOList.add(usersSubAnswerVO); + } + ); + usersAnswerVO.setUsersSubAnswer(usersSubAnswerVOList); + + 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<ComActQuestnaireAnswerContentVO> doPager = + questnaireAnswerContentDAO.selectVoByPage(userPage, pageQuestnaireSubDetailsDTO); return R.ok(doPager); } @Override - public R editQuestnaire() { - return null; + public R pageQuestnaireAnswer(PageQuestnaireAnswerDTO pageQuestnaireAnswerDTO) { + if(pageQuestnaireAnswerDTO.getPageNum()==null||pageQuestnaireAnswerDTO.getPageNum().longValue()==0){ + pageQuestnaireAnswerDTO.setPageNum(1l); + } + if(pageQuestnaireAnswerDTO.getPageSize()==null||pageQuestnaireAnswerDTO.getPageSize().longValue()==0){ + pageQuestnaireAnswerDTO.setPageSize(10l); + } + Page userPage = new Page(pageQuestnaireAnswerDTO.getPageNum(), pageQuestnaireAnswerDTO.getPageSize()); + IPage<ComActQuestnaireAnswerContentVO> doPager = questnaireAnswerContentDAO.selectAnswersByPage(userPage, pageQuestnaireAnswerDTO); + return R.ok(doPager); } @Override - public R deleteQuestnaire() { - return null; - } - - @Override - public R infoQuestnaire() { - return null; - } - - @Override - public R answerInfoQuestnaire() { - return null; + 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, "调查问卷不存在!"); + } + R r = userService.getUserInfoByUserId(userId+""); + if(!R.isOk(r)){ + return R.fail("用户信息错误"); + } + LoginUserInfoVO loginUserInfoVO = JSONObject.parseObject(JSONObject.toJSONString(r.getData()), LoginUserInfoVO.class); + Long userCommunityId = loginUserInfoVO.getCommunityId(); + if(questnaireDO.getCommunityId()!=null && questnaireDO.getCommunityId().longValue()!=userCommunityId.longValue()){ + 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(answerContent,answerContentDO); + answerContentDO.setUserId(userId); + answerContentDOList.add(answerContentDO); + } + boolean batchAddSuccess = answerContentService.saveBatch(answerContentDOList); + if(batchAddSuccess) { + /** + * 更新回答用户数量 + */ + Integer joinCount = questnaireDO.getJoinCount(); + questnaireDO.setJoinCount(joinCount != null ? joinCount + 1 : 1); + questnaireDAO.updateById(questnaireDO); + } + return R.ok(); } } -- Gitblit v1.7.1