From c3ce38cb41d4e4a7d036576b7be52ec2d8c3e724 Mon Sep 17 00:00:00 2001 From: CeDo <cedoogle@gmail.com> Date: 星期一, 12 四月 2021 16:07:46 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActQuestnaireServiceImpl.java | 216 ++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 168 insertions(+), 48 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 46e90ac..b9e3c05 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,6 @@ package com.panzhihua.service_community.service.impl; -import java.util.Date; +import java.util.*; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -10,9 +10,12 @@ 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.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; @@ -28,12 +31,8 @@ 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 @@ -55,7 +54,7 @@ ComActQuestnaireSubSelectionServiceImpl subSelectionService; @Override - public R AddQuestnaire(QuestnaireVO questnaireVO, Long communityId, Long userId) { + public R addQuestnaire(QuestnaireVO questnaireVO, Long communityId, Long userId) { ComActQuestnaireDO comActQuestnaireDO = new ComActQuestnaireDO(); comActQuestnaireDO.setTitle(questnaireVO.getQueTitle()); comActQuestnaireDO.setQueDescribe(questnaireVO.getQueDescribe()); @@ -63,21 +62,24 @@ comActQuestnaireDO.setJoinCount(0); comActQuestnaireDO.setCommunityId(communityId); comActQuestnaireDO.setCreateBy(userId); - comActQuestnaireDO.setParterType(questnaireVO.getParterType()); - int questnaireId = questnaireDAO.insert(comActQuestnaireDO); + comActQuestnaireDO.setIsHide(0); + comActQuestnaireDO.setForMasses(questnaireVO.getForMasses()); + comActQuestnaireDO.setForParty(questnaireVO.getForParty()); + comActQuestnaireDO.setForVolunteer(questnaireVO.getForVolunteer()); + int questId = questnaireDAO.insert(comActQuestnaireDO); questnaireVO.getQuestnaiteSubVOS().forEach(sub -> { ComActQuestnaireSubDO comActQuestnaireSubDO = new ComActQuestnaireSubDO(); comActQuestnaireSubDO.setType(sub.getType()); comActQuestnaireSubDO.setContent(sub.getContent()); comActQuestnaireSubDO.setSort(sub.getSort()); - comActQuestnaireSubDO.setQueId((long) questnaireId); + comActQuestnaireSubDO.setQueId((long) questId); comActQuestnaireSubDO.setCreateBy(userId); int subId = questnaireSubDAO.insert(comActQuestnaireSubDO); ArrayList<ComActQuestnaireSubSelectionDO> subSelectionList = Lists.newArrayList(); sub.getQuestnaiteSubSelectionVOS().forEach(subSelect -> { ComActQuestnaireSubSelectionDO subSelectionDO = new ComActQuestnaireSubSelectionDO(); subSelectionDO.setQueSubId((long) subId); - subSelectionDO.setOption(subSelect.getOption()); + subSelectionDO.setOptionName(subSelect.getOptionName()); subSelectionDO.setSort(subSelect.getSort()); subSelectionDO.setContent(subSelect.getContent()); subSelectionDO.setCreateBy(userId); @@ -89,17 +91,17 @@ } @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, communityId); + //过滤隐藏字段 + lambdaQueryWrapper.eq(ComActQuestnaireDO::getIsHide, 0); if (pageQuestnaireDTO.getTitle() != null) { lambdaQueryWrapper.like(ComActQuestnaireDO::getTitle, pageQuestnaireDTO.getTitle()); } 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()); @@ -110,10 +112,10 @@ } @Override - public R editQuestnaire(QuestnaireVO questnaireVO, Long communityId, Long userId) { + public R editQuestnaire(QuestnaireVO questnaireVO) { ComActQuestnaireDO questnaireDO = null; - if (questnaireVO.getQueId() != null && questnaireVO.getQueId() != 0L) { - questnaireDO = questnaireDAO.selectById(questnaireVO.getQueId()); + if (questnaireVO.getQuestId() != null && questnaireVO.getQuestId() != 0L) { + questnaireDO = questnaireDAO.selectById(questnaireVO.getQuestId()); if (questnaireDO == null) { return R.fail(500, "id有误!"); } @@ -130,6 +132,7 @@ throw new ServiceException("500", "修改问卷题目数据有误!"); } subDO.setContent(sub.getContent()); + //更新问卷题目 questnaireSubDAO.updateById(subDO); sub.getQuestnaiteSubSelectionVOS().forEach(subSelection -> { if (subSelection.getQueSubSelectionId() == null || subSelection.getContent() == null) { @@ -137,6 +140,7 @@ } ComActQuestnaireSubSelectionDO subSelectionDO = questnaireSubSelectionDAO.selectById(subSelection.getQueSubSelectionId()); subSelectionDO.setContent(subSelection.getContent()); + //更新问卷选项 questnaireSubSelectionDAO.updateById(subSelectionDO); }); }); @@ -146,19 +150,81 @@ } @Override - public R deleteQuestnaire() { - return null; + 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有误!"); + } + questDO.setState(editComActQuestnaireVo.getState()); + questDO.setUpdateBy(userId); + questnaireDAO.updateById(questDO); + return R.ok(); } @Override - public R infoQuestnaire() { - return null; + 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)); + + 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()==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 infoQuestnaire(Long questId) { + return answerInfoQuestnaire(null, questId); } @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("问卷不存在!"); } @@ -169,40 +235,94 @@ 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(); - Long subId = comActQuestnaireSubDO.getId(); - List<ComActQuestnaireSubSelectionDO> comActQuestnaireSubSelectionDOs = - questnaireSubSelectionDAO.selectList(new QueryWrapper<ComActQuestnaireSubSelectionDO>().lambda().eq(ComActQuestnaireSubSelectionDO::getQueSubId, subId)); + 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); - //用户回答 - List<ComActQuestnaireAnswerContentDO> questnaireAnswerContentDOList = - questnaireAnswerContentDAO.selectList(new QueryWrapper<ComActQuestnaireAnswerContentDO>().lambda().eq(ComActQuestnaireAnswerContentDO::getUserId, userId) - .eq(ComActQuestnaireAnswerContentDO::getSubId, 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); - }); + 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); - } + 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<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); + } } -- Gitblit v1.7.1