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