From 763f3d8b1b23b309aa274fba4f62d1aaec33d87e Mon Sep 17 00:00:00 2001 From: CeDo <cedoogle@gmail.com> Date: 星期五, 09 四月 2021 16:57:29 +0800 Subject: [PATCH] add: 问卷统计信息 --- springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/UsersSubAnswerStatVO.java | 2 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActQuestnaireAnswerContentDAO.java | 19 +++++++++ springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommunityApi.java | 10 +++++ springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActQuestnaireServiceImpl.java | 31 ++++++++++++++- springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/UserSubAnswerSelectionStatVO.java | 8 +++- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActQuestnaireDO.java | 2 6 files changed, 65 insertions(+), 7 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/UsearSubAnswerSelectionStatVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/UserSubAnswerSelectionStatVO.java similarity index 62% rename from springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/UsearSubAnswerSelectionStatVO.java rename to springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/UserSubAnswerSelectionStatVO.java index d111398..29402ee 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/UsearSubAnswerSelectionStatVO.java +++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/UserSubAnswerSelectionStatVO.java @@ -6,11 +6,15 @@ @Data @ApiModel("用户调查问卷题目-选择项统计信息") -public class UsearSubAnswerSelectionStatVO { +public class UserSubAnswerSelectionStatVO { + @ApiModelProperty(value = "调查问卷题目ID", hidden = true) + private Long subId; @ApiModelProperty("选项") private String optionName; + @ApiModelProperty("问卷回答内容") + private String answerContent; @ApiModelProperty("小计") - private String total; + private Integer total; @ApiModelProperty("比例") private String proportion; } diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/UsersSubAnswerStatVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/UsersSubAnswerStatVO.java index 6208e69..fe52069 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/UsersSubAnswerStatVO.java +++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/UsersSubAnswerStatVO.java @@ -17,7 +17,7 @@ private ComActQuestnaireSubVO questSubVO; @ApiModelProperty(value = "用户回答统计") - private List<UsearSubAnswerSelectionStatVO> usersAnswer; + private List<UserSubAnswerSelectionStatVO> usersAnswer; @ApiModelProperty(value = "本题答题人数") private Integer total; diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommunityApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommunityApi.java index b060184..57ca6f3 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommunityApi.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommunityApi.java @@ -1360,4 +1360,14 @@ return comActQuestnaireService.deleteQuestnaire(questId,userId); } + /** + * 查看用户问卷调查统计信息 + * @param questId 问卷ID + * @return 用户问卷调查统计信息 + */ + @GetMapping("questnaire/stat") + public R statistics(@RequestParam("questId") Long questId) { + return comActQuestnaireService.statQuestnaire(questId); + } + } diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActQuestnaireAnswerContentDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActQuestnaireAnswerContentDAO.java index 2068dcd..60e82e8 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActQuestnaireAnswerContentDAO.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActQuestnaireAnswerContentDAO.java @@ -1,9 +1,14 @@ package com.panzhihua.service_community.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.panzhihua.common.model.vos.community.questnaire.UserSubAnswerSelectionStatVO; import com.panzhihua.service_community.model.dos.ComActQuestnaireAnswerContentDO; import com.panzhihua.service_community.model.dos.ComActQuestnaireDO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** * @Author: llming @@ -11,4 +16,18 @@ */ @Mapper public interface ComActQuestnaireAnswerContentDAO extends BaseMapper<ComActQuestnaireAnswerContentDO> { + /** + * 查询问卷统计信息 + * @param questId 问卷ID + */ + @Select("<script> " + + "SELECT qs.id AS sub_id, ac.choice as option_name, COUNT(ac.user_id) as total, ac.answer_content as answerContent, \n" + + " COUNT(ac.user_id) /(SELECT COUNT(*) FROM com_act_questnaire_answer_content WHERE sub_id = qs.id) *100 AS proportion\n" + + "FROM com_act_questnaire qn LEFT JOIN com_act_questnaire_sub qs ON qn.id = qs.que_Id\n" + + " LEFT JOIN com_act_questnaire_answer_content ac ON qs.id = ac.sub_id\n" + + "WHERE qn.id=#{questId}\n" + + "GROUP BY qs.id, ac.choice\n" + + "ORDER BY qs.id"+ + "</script>") + List<UserSubAnswerSelectionStatVO> selectQuestnaireStat(@Param("questId")Long questId); } diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActQuestnaireDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActQuestnaireDO.java index db3abbf..3e8d9d7 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActQuestnaireDO.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActQuestnaireDO.java @@ -41,7 +41,7 @@ /** * 提供居民 */ - private Boolean forMasses; + private Boolean forMesses; /** * 提供党员 */ 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 d8c5219..028406b 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 @@ -23,6 +23,7 @@ import com.panzhihua.service_community.model.dos.ComActQuestnaireSubDO; import com.panzhihua.service_community.model.dos.ComActQuestnaireSubSelectionDO; import com.panzhihua.service_community.service.ComActQuestnaireService; +import io.swagger.models.auth.In; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import com.panzhihua.common.model.vos.community.ComActQuestnaireAnswerContentVO; @@ -62,7 +63,7 @@ comActQuestnaireDO.setJoinCount(0); comActQuestnaireDO.setCommunityId(communityId); comActQuestnaireDO.setCreateBy(userId); - comActQuestnaireDO.setForMasses(questnaireVO.getForMasses()); + comActQuestnaireDO.setForMesses(questnaireVO.getForMasses()); comActQuestnaireDO.setForParty(questnaireVO.getForParty()); comActQuestnaireDO.setForVolunteer(questnaireVO.getForVolunteer()); int questId = questnaireDAO.insert(comActQuestnaireDO); @@ -184,11 +185,35 @@ BeanUtils.copyProperties(comActQuestnaireDO, comActQuestnaireVO); usersAnswerStatVO.setQuestnaire(comActQuestnaireVO); - UsersSubAnswerStatVO usersSubAnswerStatVO = new UsersSubAnswerStatVO(); + //问卷题目列表 + List<ComActQuestnaireSubDO> comActQuestnaireSubDOList = + questnaireSubDAO.selectList(new QueryWrapper<ComActQuestnaireSubDO>().lambda().eq(ComActQuestnaireSubDO::getQueId, questId)); + //题目统计信息 + List<UserSubAnswerSelectionStatVO> usearSubAnswerSelectionStatVOList = questnaireAnswerContentDAO.selectQuestnaireStat(questId); + List<UsersSubAnswerStatVO> usersSubAnswerStatVOList = new ArrayList<>(); - //questnaireAnswerContentDAO.selectQuestnaireStat(questId); + 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); } -- Gitblit v1.7.1