CeDo
2021-04-09 763f3d8b1b23b309aa274fba4f62d1aaec33d87e
add: 问卷统计信息
1 文件已重命名
5个文件已修改
70 ■■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/UserSubAnswerSelectionStatVO.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/UsersSubAnswerStatVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommunityApi.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActQuestnaireAnswerContentDAO.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActQuestnaireDO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActQuestnaireServiceImpl.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/UserSubAnswerSelectionStatVO.java
File was renamed from springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/UsearSubAnswerSelectionStatVO.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;
}
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;
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);
    }
}
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);
}
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;
    /**
     * 提供党员
     */
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);
        //问卷题目列表
        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);
        //questnaireAnswerContentDAO.selectQuestnaireStat(questId);
            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);
    }