日照智慧社区接口服务
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

107 lines
4.0 KiB

<?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.epmet.dao.IssueVoteStatisticalDailyDao">
<resultMap type="com.epmet.entity.IssueVoteStatisticalDailyEntity" id="issueVoteStatisticalDailyMap">
<result property="id" column="ID"/>
<result property="issueId" column="ISSUE_ID"/>
<result property="statisticalDate" column="STATISTICAL_DATE"/>
<result property="supportCount" column="SUPPORT_COUNT"/>
<result property="oppositionCount" column="OPPOSITION_COUNT"/>
<result property="totalCount" column="TOTAL_COUNT"/>
<result property="todayIncrement" column="TODAY_INCREMENT"/>
<result property="supportIncrement" column="SUPPORT_INCREMENT"/>
<result property="oppositionIncrement" column="OPPOSITION_INCREMENT"/>
<result property="votableCount" column="VOTABLE_COUNT"/>
<result property="delFlag" column="DEL_FLAG"/>
<result property="revision" column="REVISION"/>
<result property="createdBy" column="CREATED_BY"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<!-- 生成昨日的话题统计信息 -->
<select id="getIssueVotingStatistical" resultType="com.epmet.dto.result.IssuesToBeCountedResultDTO">
SELECT
issue.ID,
issue.ISSUE_STATUS,
vote.ATTITUDE,
vote.VOTE_COUNT,
totalvote.ATTITUDE AS ATTITUDE_UP_TO_YESTERDAY,
totalvote.VOTE_COUNT AS VOTE_COUNT_UP_TO_YESTERDAY
FROM
ISSUE issue
LEFT JOIN (
SELECT ISSUE_ID ,
ATTITUDE,
count(ATTITUDE) AS VOTE_COUNT
FROM issue_vote_detail
WHERE DEL_FLAG = '0'
AND TO_DAYS( NOW( ) ) - TO_DAYS( CREATED_TIME ) <![CDATA[<=]]> 1
AND TO_DAYS( NOW( ) ) - TO_DAYS( CREATED_TIME ) <![CDATA[>]]> 0
GROUP BY ISSUE_ID , ATTITUDE
) vote ON issue.ID = vote.ISSUE_ID
LEFT JOIN (
SELECT ISSUE_ID ,
ATTITUDE,
count(ATTITUDE) AS VOTE_COUNT
FROM issue_vote_detail
WHERE DEL_FLAG = '0'
AND TO_DAYS( NOW( ) ) - TO_DAYS( CREATED_TIME ) <![CDATA[>]]> 0
GROUP BY ISSUE_ID , ATTITUDE
) totalvote ON issue.ID = totalvote.ISSUE_ID AND vote.ATTITUDE = totalvote.ATTITUDE
WHERE
issue.DEL_FLAG = '0'
AND (
issue.ISSUE_STATUS = 'voting'
OR (
TO_DAYS( NOW( ) ) - TO_DAYS( issue.CLOSED_TIME ) <![CDATA[<=]]> 1
AND
TO_DAYS( NOW( ) ) - TO_DAYS( issue.CLOSED_TIME ) <![CDATA[>]]> 0
)
OR (
TO_DAYS( NOW( ) ) - TO_DAYS( issue.SHIFTED_TIME ) <![CDATA[<=]]> 1
AND
TO_DAYS( NOW( ) ) - TO_DAYS( issue.SHIFTED_TIME ) > 0
)
)
ORDER BY
issue.ID
</select>
<!-- 生成截止到昨日的话题统计信息 -->
<select id="getIssueVotingStatisticalUpToYesterday" resultType="com.epmet.dto.result.IssuesToBeCountedResultDTO">
SELECT
issue.ID AS ISSUE_ID,
issue.ISSUE_STATUS,
totalvote.ATTITUDE,
IFNULL(totalvote.VOTE_COUNT,0) AS VOTE_COUNT_UP_TO_YESTERDAY
FROM
ISSUE issue
LEFT JOIN (
SELECT ISSUE_ID , ATTITUDE,count(ATTITUDE) AS VOTE_COUNT FROM issue_vote_detail WHERE DEL_FLAG = '0'
AND TO_DAYS( NOW( ) ) - TO_DAYS( CREATED_TIME ) > 0
GROUP BY ISSUE_ID , ATTITUDE
) totalvote ON issue.ID = totalvote.ISSUE_ID
WHERE
issue.DEL_FLAG = '0'
AND (
issue.ISSUE_STATUS = 'voting'
OR (
TO_DAYS( NOW( ) ) - TO_DAYS( issue.CLOSED_TIME ) <![CDATA[<=]]> 1 AND TO_DAYS( NOW( ) ) - TO_DAYS( issue.CLOSED_TIME ) > 0
)
OR (
TO_DAYS( NOW( ) ) - TO_DAYS( issue.SHIFTED_TIME ) <![CDATA[<=]]> 1 AND TO_DAYS( NOW( ) ) - TO_DAYS( issue.SHIFTED_TIME ) > 0
)
)
ORDER BY
issue.ID
</select>
</mapper>