huanghongfa
2021-09-02 177249c76aeea0b4bf8d8816d4994e3b445b45ce
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActQuestnaireAnswerContentDAO.java
@@ -1,5 +1,11 @@
package com.panzhihua.service_community.dao;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -8,11 +14,6 @@
import com.panzhihua.common.model.vos.community.ComActQuestnaireAnswerContentVO;
import com.panzhihua.common.model.vos.community.questnaire.UserSubAnswerSelectionStatVO;
import com.panzhihua.service_community.model.dos.ComActQuestnaireAnswerContentDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
 * @Author: llming
@@ -22,69 +23,67 @@
public interface ComActQuestnaireAnswerContentDAO extends BaseMapper<ComActQuestnaireAnswerContentDO> {
    /**
     * 查询问卷统计信息
     * @param questId 问卷ID
     *
     * @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, ac.type,\n" +
            " CONCAT(ROUND( 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);
    @Select("<script> "
        + "SELECT  qs.id AS sub_id, ac.choice as option_name, COUNT(ac.user_id) as total, ac.answer_content as answerContent, ac.type,\n"
        + " CONCAT(ROUND( 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);
    /**
     * 查询问卷用户回答数据
     * @param questId 问卷ID
     *
     * @param questId
     *            问卷ID
     */
    @Select("<script> " +
            "SELECT ac.* \n" +
            "FROM com_act_questnaire_answer_content ac left JOIN com_act_questnaire_sub qs  ON ac.sub_id = qs.id \n" +
            " LEFT JOIN   com_act_questnaire qn ON qs.que_Id = qn.id \n" +
            "WHERE qn.id=#{questId}\n" +
            "ORDER BY ac.user_id, qs.id "+
            "</script>")
    List<ComActQuestnaireAnswerContentDO> selectListByQuestnaire(@Param("questId")Long questId);
    @Select("<script> " + "SELECT ac.* \n"
        + "FROM com_act_questnaire_answer_content ac left JOIN com_act_questnaire_sub qs  ON ac.sub_id = qs.id \n"
        + " LEFT JOIN   com_act_questnaire qn ON qs.que_Id = qn.id \n" + "WHERE qn.id=#{questId}\n"
        + "ORDER BY ac.user_id, qs.id " + "</script>")
    List<ComActQuestnaireAnswerContentDO> selectListByQuestnaire(@Param("questId") Long questId);
    /**
     * 查询问卷用户回答数据
     * @param pageQuestnaireAnswerDTO 问卷ID
     *
     * @param pageQuestnaireAnswerDTO
     *            问卷ID
     */
    @Select("<script> " +
            "SELECT  u.name as user_name, ac.user_id , ac.create_at \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" +
            " LEFT JOIN sys_user u ON ac.user_id = u.user_id \n" +
            "WHERE qn.id=#{pageQuestnaireAnswerDTO.questId}\n" +
            "GROUP BY user_id\n"+
            "ORDER BY ac.create_at\n"+
            "</script>")
    IPage<ComActQuestnaireAnswerContentVO> selectAnswersByPage(Page page, @Param("pageQuestnaireAnswerDTO") PageQuestnaireAnswerDTO pageQuestnaireAnswerDTO);
    @Select("<script> " + "SELECT  u.name as user_name, ac.user_id , ac.create_at \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"
        + " LEFT JOIN sys_user u ON ac.user_id = u.user_id \n" + "WHERE qn.id=#{pageQuestnaireAnswerDTO.questId}\n"
        + "GROUP BY user_id\n" + "ORDER BY ac.create_at\n" + "</script>")
    IPage<ComActQuestnaireAnswerContentVO> selectAnswersByPage(Page page,
        @Param("pageQuestnaireAnswerDTO") PageQuestnaireAnswerDTO pageQuestnaireAnswerDTO);
    /**
     * 查询问卷 问答题 用户回答数据
     * @param pageQuestnaireSubDetailsDTO 问卷ID
     *
     * @param pageQuestnaireSubDetailsDTO
     *            问卷ID
     */
    @Select("<script> " +
            "SELECT ac.choice , ac.user_id, ac.type, ac.sub_id, u.name as user_name, ac.answer_content \n" +
            "FROM com_act_questnaire_answer_content ac  LEFT JOIN sys_user u ON ac.user_id = u.user_id\n" +
            "WHERE ac.sub_id=#{pageQuestnaireSubDetailsDTO.subId}\n" +
            "ORDER BY ac.create_at\n"+
            "</script>")
    IPage<ComActQuestnaireAnswerContentVO> selectVoByPage(Page userPage, @Param("pageQuestnaireSubDetailsDTO") PageQuestnaireSubDetailsDTO pageQuestnaireSubDetailsDTO);
    @Select("<script> " + "SELECT ac.choice , ac.user_id, ac.type, ac.sub_id, u.name as user_name, ac.answer_content \n"
        + "FROM com_act_questnaire_answer_content ac  LEFT JOIN sys_user u ON ac.user_id = u.user_id\n"
        + "WHERE ac.sub_id=#{pageQuestnaireSubDetailsDTO.subId}\n" + "ORDER BY ac.create_at\n" + "</script>")
    IPage<ComActQuestnaireAnswerContentVO> selectVoByPage(Page userPage,
        @Param("pageQuestnaireSubDetailsDTO") PageQuestnaireSubDetailsDTO pageQuestnaireSubDetailsDTO);
    /**
     * 查询问卷 问答题 用户回答数据
     * @param questId 问卷ID
     * @param userId 用户ID
     *
     * @param questId
     *            问卷ID
     * @param userId
     *            用户ID
     */
    @Select("<script> " +
            "SELECT COUNT(*)\n" +
            "FROM com_act_questnaire q LEFT JOIN com_act_questnaire_sub qs ON q.id = qs.que_Id\n" +
            "LEFT JOIN com_act_questnaire_answer_content ac ON qs.id = ac.sub_id\n" +
            "WHERE q.id =  #{questId} AND ac.user_id = #{userId}\n" +
            "</script>")
    Integer selectUserCountByQuestnaireId( @Param("questId")String questId, @Param("userId") Long userId);
    @Select("<script> " + "SELECT COUNT(*)\n"
        + "FROM com_act_questnaire q LEFT JOIN com_act_questnaire_sub qs ON q.id = qs.que_Id\n"
        + "LEFT JOIN com_act_questnaire_answer_content ac ON qs.id = ac.sub_id\n"
        + "WHERE q.id =  #{questId} AND ac.user_id = #{userId}\n" + "</script>")
    Integer selectUserCountByQuestnaireId(@Param("questId") String questId, @Param("userId") Long userId);
}