<?xml version="1.0" encoding="UTF-8"?>
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<mapper namespace="com.panzhihua.service_community.dao.ComActQuestnaireDAO">
|
|
<!-- 通用查询映射结果 -->
|
<resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActQuestnaireDO">
|
<id column="id" property="id" />
|
<result column="create_by" property="createBy" />
|
<result column="community_id" property="communityId" />
|
<result column="create_at" property="createAt" />
|
<result column="update_by" property="updateBy" />
|
<result column="update_at" property="updateAt" />
|
<result column="for_masses" property="forMasses" />
|
<result column="for_party" property="forParty" />
|
<result column="for_volunteer" property="forVolunteer" />
|
<result column="title" property="title" />
|
<result column="que_describe" property="queDescribe" />
|
<result column="state" property="state" />
|
<result column="join_count" property="joinCount" />
|
<result column="is_hide" property="isHide" />
|
<result column="project_key" property="projectKey" />
|
<result column="start_time" property="startTime" />
|
<result column="end_time" property="endTime" />
|
<result column="remark" property="remark" />
|
<result column="is_cover" property="isCover" />
|
<result column="is_force" property="isForce" />
|
<result column="adver_position_popup" property="adverPositionPopup" />
|
<result column="adver_position_top" property="adverPositionTop" />
|
<result column="adver_position_application" property="adverPositionApplication" />
|
<result column="count" property="count" />
|
<result column="view_num" property="viewNum" />
|
<result column="publish_time" property="publishTime" />
|
<result column="json_object" property="jsonObject" />
|
</resultMap>
|
|
<!-- 通用查询结果列 -->
|
<sql id="Base_Column_List">
|
create_by, id, community_id, create_at, update_by, update_at, for_masses, for_party, for_volunteer, title, que_describe, state, join_count, is_hide, project_key, start_time, end_time, remark, is_cover, is_force, adver_position_popup, adver_position_top, adver_position_application, count, view_num, publish_time, json_object
|
</sql>
|
|
<select id="getAdvPopupCount" resultType="integer">
|
SELECT
|
count( id )
|
FROM
|
com_act_questnaire
|
WHERE
|
adver_position_popup = 1
|
and community_id = ${communityId}
|
AND (
|
#{startTime} BETWEEN start_time AND end_time OR
|
#{endTime} BETWEEN start_time AND end_time OR
|
start_time BETWEEN #{startTime} AND #{endTime} OR
|
end_time BETWEEN #{startTime} AND #{endTime}
|
)
|
and is_hide = 0 and state != 3
|
<if test="id != null">
|
AND id != #{id}
|
</if>
|
</select>
|
|
<delete id="deleteQuesSubAll">
|
delete from com_act_questnaire_sub where que_id = #{queId}
|
</delete>
|
|
<delete id="deleteQuesSubAll2">
|
delete from com_act_questnaire_sub_selection where que_id = #{queId}
|
</delete>
|
|
<select id="getQuesDetailAdmin" resultType="com.panzhihua.common.model.vos.community.questnaire.QuestnaireDetailAdminVO">
|
SELECT
|
id,
|
community_id,
|
create_at,
|
for_masses,
|
for_party,
|
for_volunteer,
|
title,
|
state,
|
join_count,
|
start_time,
|
end_time,
|
remark,
|
is_cover,
|
is_force,
|
adver_position_top,
|
adver_position_popup,
|
adver_position_application,
|
count,
|
view_num,
|
publish_time,
|
json_object
|
FROM
|
com_act_questnaire
|
where id = #{queId}
|
</select>
|
|
<select id="getQuesDetail" resultType="com.panzhihua.common.model.vos.community.questnaire.QuestnaireDetailAdminVO">
|
SELECT
|
caq.id,
|
caq.community_id,
|
caq.create_at,
|
caq.for_masses,
|
caq.for_party,
|
caq.for_volunteer,
|
caq.title,
|
caq.state,
|
caq.join_count,
|
caq.start_time,
|
caq.end_time,
|
caq.remark,
|
caq.is_cover,
|
caq.is_force,
|
caq.adver_position_top,
|
caq.adver_position_popup,
|
caq.adver_position_application,
|
caq.count,
|
caq.view_num,
|
caq.publish_time,
|
IFNULL(caqua.json_object,caq.json_object) as json_object
|
FROM
|
com_act_questnaire as caq
|
left join com_act_questnaire_user_answer as caqua on caqua.questnaire_id = caq.id and caqua.user_id = #{userId}
|
where caq.id = #{questId}
|
</select>
|
|
<select id="getStatisticsSummaryAdmin" parameterType="com.panzhihua.common.model.dtos.community.questnaire.StatisticsSummaryDTO"
|
resultType="com.panzhihua.common.model.vos.community.questnaire.QuestnaireStatisticsSummaryAdminVO">
|
SELECT
|
caqs.content AS `subject`,
|
caqss.content as `option`,(
|
SELECT
|
count( id )
|
FROM
|
com_act_questnaire_answer_content
|
WHERE
|
sub_id = caqss.que_sub_id
|
AND selection_id = caqss.id
|
) AS count,
|
(select count(id) from com_act_questnaire_answer_content where sub_id = caqss.que_sub_id) as allCount
|
FROM
|
com_act_questnaire_sub_selection AS caqss
|
LEFT JOIN com_act_questnaire_sub AS caqs ON caqs.id = caqss.que_sub_id
|
WHERE
|
caqss.que_id = #{summaryDTO.questId}
|
order by caqss.create_at asc
|
</select>
|
|
<select id="getStatisticsSummaryExcelAdmin" resultType="com.panzhihua.common.model.vos.community.questnaire.QuestnaireStatisticsSummaryExcelAdminVO">
|
SELECT
|
caqs.content AS `subject`,
|
caqss.content as `option`,(
|
SELECT
|
count( id )
|
FROM
|
com_act_questnaire_answer_content
|
WHERE
|
sub_id = caqss.que_sub_id
|
AND selection_id = caqss.id
|
) AS count,
|
(select count(id) from com_act_questnaire_answer_content where sub_id = caqss.que_sub_id) as allCount
|
FROM
|
com_act_questnaire_sub_selection AS caqss
|
LEFT JOIN com_act_questnaire_sub AS caqs ON caqs.id = caqss.que_sub_id
|
WHERE
|
caqss.que_id = #{questId}
|
order by caqss.create_at asc
|
</select>
|
|
<select id="statisticsSummaryHeader" resultType="com.panzhihua.common.model.vos.community.questnaire.QuestnaireStatisticsSummaryHeaderAdminVO">
|
SELECT
|
count( caqua.id ) AS volunteerCount,
|
(
|
SELECT
|
count( id )
|
FROM
|
com_act_questnaire_user_answer AS caqua
|
LEFT JOIN sys_user AS su ON su.user_id = caqua.user_id
|
WHERE
|
su.is_partymember = 1
|
AND caqua.questnaire_id = #{questId}
|
) AS partymemberCount,
|
( SELECT count( id ) FROM com_act_questnaire_user_answer WHERE questnaire_id = #{questId} ) AS allCount,(
|
SELECT
|
view_num
|
FROM
|
com_act_questnaire
|
WHERE
|
id = #{questId}
|
) AS viewNum,
|
( SELECT count( id ) FROM com_act_questnaire_user_answer WHERE questnaire_id = #{questId} AND create_at BETWEEN DATE_FORMAT( CURDATE(), '%Y-%m-%d %H:%i:%s' ) AND NOW() ) AS todayCount,
|
(
|
SELECT
|
count( user_id )
|
FROM
|
sys_user AS su
|
WHERE
|
is_volunteer = 1
|
AND user_id NOT IN ( SELECT user_id FROM com_act_questnaire_user_answer WHERE questnaire_id = #{questId} )) AS noVolunteerCount,
|
(
|
SELECT
|
count( id )
|
FROM
|
(
|
SELECT id FROM com_pb_member AS su WHERE community_id = ${communityId} AND user_id IS NULL UNION ALL
|
SELECT id FROM com_pb_member AS su WHERE community_id = ${communityId} AND user_id IS NOT NULL
|
AND user_id NOT IN ( SELECT user_id FROM com_act_questnaire_user_answer WHERE questnaire_id = #{questId} )
|
) AS member) AS noPartymemberCount,
|
(select count(user_id) from sys_user where community_id = 2 and type = 1) as userCount
|
FROM
|
com_act_questnaire_user_answer AS caqua
|
LEFT JOIN com_act_questnaire AS caq ON caq.id = caqua.questnaire_id
|
LEFT JOIN sys_user AS su ON su.user_id = caqua.user_id
|
WHERE
|
su.is_volunteer = 1
|
AND caqua.questnaire_id = #{questId}
|
</select>
|
<select id="getIndexQuestionnaireBaseData"
|
resultType="com.panzhihua.common.model.vos.community.bigscreen.BigScreenQuestionnaireStatisticsInfo">
|
SELECT COUNT(id) AS questionnaireNum, SUM(join_count) AS joinNum FROM com_act_questnaire WHERE community_id = ${communityId} AND state IN (2,3)
|
</select>
|
<select id="getQuestionnaireAddPolylineData"
|
resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
|
SELECT filed, SUM(num) AS num FROM (
|
SELECT DATE_FORMAT( create_at, '%Y-%m' ) AS filed, COUNT(id) AS num
|
FROM com_act_questnaire
|
WHERE community_id = ${communityId} AND state IN (2,3)
|
AND DATE_FORMAT( create_at, '%Y-%m' ) > DATE_FORMAT(date_sub(curdate(), interval 12 month),'%Y-%m') GROUP BY filed
|
UNION ALL SELECT * FROM
|
(
|
SELECT DATE_FORMAT(curdate(),'%Y-%m') AS filed, 0 AS num union
|
SELECT DATE_FORMAT(date_sub(curdate(), interval 1 month),'%Y-%m') AS filed, 0 AS num union
|
SELECT DATE_FORMAT(date_sub(curdate(), interval 2 month),'%Y-%m') AS filed, 0 AS num union
|
SELECT DATE_FORMAT(date_sub(curdate(), interval 3 month),'%Y-%m') AS filed, 0 AS num union
|
SELECT DATE_FORMAT(date_sub(curdate(), interval 4 month),'%Y-%m') AS filed, 0 AS num union
|
SELECT DATE_FORMAT(date_sub(curdate(), interval 5 month),'%Y-%m') AS filed, 0 AS num union
|
SELECT DATE_FORMAT(date_sub(curdate(), interval 6 month),'%Y-%m') AS filed, 0 AS num union
|
SELECT DATE_FORMAT(date_sub(curdate(), interval 7 month),'%Y-%m') AS filed, 0 AS num union
|
SELECT DATE_FORMAT(date_sub(curdate(), interval 8 month),'%Y-%m') AS filed, 0 AS num union
|
SELECT DATE_FORMAT(date_sub(curdate(), interval 9 month),'%Y-%m') AS filed, 0 AS num union
|
SELECT DATE_FORMAT(date_sub(curdate(), interval 10 month),'%Y-%m') AS filed, 0 AS num union
|
SELECT DATE_FORMAT(date_sub(curdate(), interval 11 month),'%Y-%m') AS filed, 0 AS num
|
) temT
|
) temp GROUP BY filed ORDER BY filed ASC
|
</select>
|
<select id="getQuestionnaireTotalPolylineDate"
|
resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
|
SELECT COUNT(id) AS num FROM com_act_questnaire
|
WHERE community_id = ${communityId} AND state IN (2,3) AND DATE_FORMAT( create_at, '%Y-%m' ) <= #{date}
|
</select>
|
<select id="selectQuestionnaireDisplayList"
|
resultType="com.panzhihua.common.model.vos.community.ComActQuestnaireVO">
|
SELECT id, title, `count`, view_num, join_count, is_cover, state FROM com_act_questnaire
|
WHERE community_id = ${pageBaseDTO.communityId} AND state IN (2,3) ORDER BY id DESC
|
</select>
|
<insert id="addNoNotice">
|
insert into com_act_questnaire_user(questnaire_id,user_id,create_at)
|
values(#{questId},#{userId},now())
|
</insert>
|
</mapper>
|