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;
|
import com.panzhihua.common.model.dtos.community.PageQuestnaireAnswerDTO;
|
import com.panzhihua.common.model.dtos.community.PageQuestnaireSubDetailsDTO;
|
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;
|
|
/**
|
* @Author: llming
|
* @Description: 问卷回答记录内容
|
*/
|
@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, 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
|
*/
|
List<ComActQuestnaireAnswerContentVO> selectListByQuestnaire(@Param("questId") Long questId);
|
|
/**
|
* 查询问卷用户回答数据
|
*
|
* @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);
|
|
/**
|
* 查询问卷 问答题 用户回答数据
|
*
|
* @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);
|
|
/**
|
* 查询问卷 问答题 用户回答数据
|
*
|
* @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);
|
}
|