springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommunityQuestnaireApi.java
@@ -10,6 +10,7 @@ import com.panzhihua.common.model.vos.community.ComActQuestnaireVO; import com.panzhihua.common.model.vos.community.ComCvtBusinessVO; import com.panzhihua.common.model.vos.community.questnaire.QuestnaireVO; import com.panzhihua.common.model.vos.community.questnaire.UsersAnswerQuestnaireVO; import com.panzhihua.common.service.community.CommunityService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -65,4 +66,12 @@ return communityService.qaQeustAnswerDetails(pageQuestnaireSubDetailsDTO); } @ApiOperation(value = "居民填写问卷调查问卷") @GetMapping("/stat/answer") public R usersAnsweQuestnaire(@RequestBody UsersAnswerQuestnaireVO usersAnswerQuestnaireVO) { LoginUserInfoVO loginUserInfo = this.getLoginUserInfo(); return communityService.usersAnsweQuestnaire(usersAnswerQuestnaireVO, loginUserInfo.getUserId()); } } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/ExportAnswerResultVo.java
File was deleted springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/UserAnswerContentVO.java
New file @@ -0,0 +1,26 @@ package com.panzhihua.common.model.vos.community.questnaire; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @Author: llming * @Description: */ @ApiModel("用户填写选项情况") @Data public class UserAnswerContentVO { @ApiModelProperty(value = "问卷题目Id") private Long subId; @ApiModelProperty(value = "问卷回答选项", example = "选项") private String choice; @ApiModelProperty(value = "问卷回答内容") private String answerContent; @ApiModelProperty(value = "选项类型 0 固定选项 1 自定义选项", example = "0") private Integer type; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/UsersAnswerQuestnaireVO.java
New file @@ -0,0 +1,22 @@ package com.panzhihua.common.model.vos.community.questnaire; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; /** * @Author: llming * @Description: */ @Data @ApiModel("用户填写问卷情况") public class UsersAnswerQuestnaireVO { @ApiModelProperty(value = "调查问卷Id") private Long questId; @ApiModelProperty(value = "答题情况") private List<UserAnswerContentVO> answerContentVOList; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java
@@ -9,6 +9,7 @@ import com.panzhihua.common.model.vos.community.*; import com.panzhihua.common.model.vos.community.questnaire.EditComActQuestnaireVo; import com.panzhihua.common.model.vos.community.questnaire.QuestnaireVO; import com.panzhihua.common.model.vos.community.questnaire.UsersAnswerQuestnaireVO; import com.panzhihua.common.model.vos.user.UserPhoneVO; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.*; @@ -1745,4 +1746,12 @@ @PostMapping("/questnaire/pagequestnaireanswer") R pageQuestnaireAnswer(@RequestBody PageQuestnaireAnswerDTO pageQuestnaireAnswerDTO); /** * 居民填写问卷调查问卷 * @param usersAnswerQuestnaireVO 填写情况 */ @PostMapping("/questnaire/usersanswequestnaire") R usersAnsweQuestnaire(@RequestBody UsersAnswerQuestnaireVO usersAnswerQuestnaireVO, @RequestParam("userId") Long userId); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommunityApi.java
@@ -10,6 +10,7 @@ import com.panzhihua.common.model.vos.community.*; import com.panzhihua.common.model.vos.community.questnaire.EditComActQuestnaireVo; import com.panzhihua.common.model.vos.community.questnaire.QuestnaireVO; import com.panzhihua.common.model.vos.community.questnaire.UsersAnswerQuestnaireVO; import com.panzhihua.common.model.vos.user.UserPhoneVO; import com.panzhihua.service_community.model.dos.ComActActPrizeDO; import com.panzhihua.service_community.model.dos.ComActDynDO; @@ -1419,4 +1420,13 @@ return comActQuestnaireService.pageQuestnaireAnswer(pageQuestnaireAnswerDTO); } /** * 居民填写问卷调查问卷 * @param usersAnswerQuestnaireVO */ @PostMapping("questnaire/usersanswequestnaire") public R usersAnsweQuestnaire(@RequestBody UsersAnswerQuestnaireVO usersAnswerQuestnaireVO,@RequestParam("userId") Long userId){ return comActQuestnaireService.usersAnsweQuestnaire(usersAnswerQuestnaireVO,userId); } } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActQuestnaireService.java
@@ -6,6 +6,7 @@ import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.questnaire.EditComActQuestnaireVo; import com.panzhihua.common.model.vos.community.questnaire.QuestnaireVO; import com.panzhihua.common.model.vos.community.questnaire.UsersAnswerQuestnaireVO; /** * @Author: llming @@ -85,4 +86,12 @@ * @return 分页信息 */ R pageQuestnaireAnswer(PageQuestnaireAnswerDTO pageQuestnaireAnswerDTO); /** * 居民填写问卷调查问卷 * @param usersAnswerQuestnaireVO * @param userId * @return */ R usersAnsweQuestnaire(UsersAnswerQuestnaireVO usersAnswerQuestnaireVO, Long userId); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActQuestnaireAnswerContentServiceImpl.java
New file @@ -0,0 +1,18 @@ package com.panzhihua.service_community.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.panzhihua.service_community.dao.ComActQuestnaireAnswerContentDAO; import com.panzhihua.service_community.dao.ComActQuestnaireSubDAO; import com.panzhihua.service_community.model.dos.ComActQuestnaireAnswerContentDO; import com.panzhihua.service_community.model.dos.ComActQuestnaireSubDO; import org.springframework.stereotype.Service; /** * @Author: llming * @Description: 问卷题目 */ @Service public class ComActQuestnaireAnswerContentServiceImpl extends ServiceImpl<ComActQuestnaireAnswerContentDAO, ComActQuestnaireAnswerContentDO> { } 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(); } }