日照智慧社区接口服务
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.
 
 
 
 
 

194 lines
8.3 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.ResiEventDao">
<!-- 查询报事列表 -->
<resultMap id="eventUnDisposedListMap" type="com.epmet.dto.result.EventListResultDTO">
<result property="eventContent" column="eventContent"/>
<result property="eventId" column="eventId"/>
<result property="eventTime" column="eventTime"/>
<result property="isProject" column="isProject"/>
<result property="redDot" column="redDot"/>
<collection property="eventImgs" ofType="java.lang.String">
<result column="img"/>
</collection>
</resultMap>
<select id="eventUnDisposedList" resultMap="eventUnDisposedListMap">
SELECT rea.ATTACHMENT_URL AS img,t.* FROM
(SELECT
re.EVENT_CONTENT AS eventContent,
<if test='eventType == "undisposed" '>
IFNULL(DATE_FORMAT(re.CREATED_TIME,'%Y-%m-%d %H:%i'),'') AS eventTime,
</if>
<if test='eventType == "processed" '>
IFNULL(DATE_FORMAT(re.LATEST_OPERATED_TIME,'%Y-%m-%d %H:%i'),'') AS eventTime,
</if>
<if test='eventType == "transferred" '>
IFNULL(DATE_FORMAT(re.CLOSE_CASE_TIME,'%Y-%m-%d %H:%i'),'') AS eventTime,
</if>
re.ID AS eventId,
(CASE WHEN re.SHIFT_PROJECT = 1 THEN TRUE ELSE FALSE END) AS isProject,
(CASE WHEN ro.RED_DOT = 1 THEN TRUE ELSE FALSE END) AS redDot
FROM resi_event_report_org ro
INNER JOIN resi_event re ON (ro.RESI_EVENT_ID = re.ID AND re.DEL_FLAG = '0')
AND ro.DEL_FLAG = '0'
and ro.ORG_ID = #{orgId}
<if test='eventType == "undisposed" '>
AND ro.ORG_READ = 'un_read'
ORDER BY re.CREATED_TIME
</if>
<if test='eventType == "processed" '>
AND ro.ORG_READ = 'read'
AND re.`STATUS` = 'processing'
ORDER BY re.LATEST_OPERATED_TIME DESC
</if>
<if test='eventType == "transferred" '>
AND ro.ORG_READ = 'read'
AND re.`STATUS` = 'closed_case'
ORDER BY re.CLOSE_CASE_TIME DESC
</if>
)t
LEFT JOIN resi_event_attachment rea ON (rea.RESI_EVENT_ID = t.eventId AND rea.DEL_FLAG = '0' AND rea.ATTACHMENT_TYPE = 'image' AND (rea.SORT = 3 OR rea.SORT = 1 OR rea.SORT = 2))
</select>
<resultMap id="MyReportedResultDTOMap" type="com.epmet.dto.result.MyReportedResultDTO">
<id property="resiEventId" column="id"/>
<result property="eventContent" column="EVENT_CONTENT"/>
<result property="redDot" column="RED_DOT" />
<result property="status" column="STATUS" />
<result property="shiftProject" column="SHIFT_PROJECT" />
<result property="showTime" column="LATEST_OPERATED_TIME" />
<result property="readFlag" column="READ_FLAG" />
<collection property="imgList" ofType="java.lang.String">
<constructor>
<arg column="img_url"/>
</constructor>
</collection>
</resultMap>
<select id="queryMyReported" parameterType="map" resultMap="MyReportedResultDTOMap">
select
re.id,
re.EVENT_CONTENT,
(
case when #{statusCondition} ='un_read' then '0'
else re.RED_DOT
end
)as RED_DOT,
re.`STATUS`,
re.SHIFT_PROJECT,
re.LATEST_OPERATED_TIME,
rea.ATTACHMENT_URL as img_url,
re.READ_FLAG
from resi_event re
left join resi_event_attachment rea
on(re.id=rea.RESI_EVENT_ID
and rea.DEL_FLAG='0'
and rea.ATTACHMENT_TYPE='image')
where re.DEL_FLAG='0'
and re.RECALL_FLAG='0'
and re.REPORT_USER_ID=#{userId}
<if test='statusCondition == "un_read" '>
and re.READ_FLAG='0'
</if>
<if test='statusCondition != "un_read" '>
and re.READ_FLAG='1'
and re.`STATUS`=#{statusCondition}
</if>
order by re.LATEST_OPERATED_TIME desc
</select>
<!-- 报事详情 -->
<resultMap id="selectEventDetailMap" type="com.epmet.dto.result.EventDetailResultDTO">
<result property="isProject" column="isProject"/>
<result property="eventTime" column="eventTime"/>
<result property="eventContent" column="eventContent"/>
<result property="eventAddress" column="eventAddress"/>
<result property="isClosed" column="isClosed"/>
<result property="isResolve" column="isResolve"/>
<result property="isRollback" column="isRollback"/>
<result property="projectId" column="projectId"/>
<result property="gridId" column="gridId"/>
<result property="eventUserId" column="eventUserId"/>
<collection property="eventImgs" ofType="java.lang.String">
<result column="eventImg"/>
</collection>
<collection property="eventPerson" ofType="java.lang.String">
<result column="person"/>
</collection>
<collection property="orgNameList" ofType="java.lang.String">
<result column="orgId"/>
</collection>
</resultMap>
<select id="selectEventDetail" resultMap="selectEventDetailMap">
SELECT
IFNULL(DATE_FORMAT(re.CREATED_TIME,'%Y-%m-%d %H:%i'),'') AS eventTime,
IFNULL(re.EVENT_CONTENT,'') AS eventContent,
IFNULL(re.ADDRESS,'') AS eventAddress,
(CASE WHEN re.`STATUS` = 'processing' THEN FALSE WHEN re.`STATUS` = 'closed_case' THEN TRUE ELSE FALSE END) AS isClosed,
(IF(IFNULL(re.RESOLVE_STATUS,TRUE) OR '' = re.RESOLVE_STATUS, TRUE, FALSE)) AS isResolve,
(CASE WHEN re.READ_FLAG = 1 THEN FALSE ELSE TRUE END) AS isRollback,
(CASE WHEN re.SHIFT_PROJECT = 1 THEN TRUE ELSE FALSE END) AS isProject,
IFNULL(re.project_id,'') AS projectId,
ea.ATTACHMENT_URL AS eventImg,
IF(ISNULL(em.USER_SHOW_NAME),NULL,concat('人大代表-',em.USER_SHOW_NAME)) AS person,
re.GRID_ID AS gridId,
re.CREATED_BY AS eventUserId,
ro.ORG_ID AS orgId
FROM resi_event re
LEFT JOIN resi_event_attachment ea ON (ea.RESI_EVENT_ID = re.ID AND ea.DEL_FLAG = '0')
LEFT JOIN resi_event_mention em ON (em.RESI_EVENT_ID = re.ID AND em.DEL_FLAG = '0')
LEFT JOIN resi_event_report_org ro ON (ro.RESI_EVENT_ID = re.ID AND ro.DEL_FLAG = '0')
WHERE re.DEL_FLAG = '0'
AND re.ID = #{eventId}
</select>
<!-- 更新报事人红点状态 -->
<update id="updateResiEvent">
UPDATE resi_event
SET RED_DOT = 0,
UPDATED_TIME = NOW()
WHERE DEL_FLAG = '0'
AND ID = #{eventId}
AND REPORT_USER_ID = #{userId}
</update>
<!-- 更新人大代表红点状态 -->
<update id="updateEventMention">
UPDATE resi_event_mention
SET RED_DOT = 0,
UPDATED_TIME = NOW()
WHERE DEL_FLAG = '0'
AND USER_ID = #{userId}
AND RESI_EVENT_ID = #{eventId}
</update>
<resultMap id="newEventsMap" type="com.epmet.dto.result.NewEventsResultDTO">
<result property="eventContent" column="eventContent"/>
<result property="eventTime" column="eventTime"/>
<result property="eventId" column="eventId"/>
<collection property="eventImgs" ofType="java.lang.String">
<result column="img"/>
</collection>
</resultMap>
<select id="newEvents" resultMap="newEventsMap">
SELECT
IFNULL(re.EVENT_CONTENT,'') AS eventContent,
DATE_FORMAT(re.CREATED_TIME,'%Y-%m-%d %H:%i') AS eventTime,
ea.ATTACHMENT_URL AS img,
re.id as eventId
FROM resi_event_report_org ro
LEFT JOIN resi_event re ON (re.ID = ro.RESI_EVENT_ID AND re.DEL_FLAG = '0')
LEFT JOIN resi_event_attachment ea ON (ea.RESI_EVENT_ID = ro.RESI_EVENT_ID AND ea.DEL_FLAG = '0' AND
ea.ATTACHMENT_TYPE = 'image' AND ea.SORT IN (3,1,2))
WHERE ro.DEL_FLAG = '0'
AND ro.ORG_READ = 'un_read'
AND ro.ORG_ID IN(
<foreach collection="orgIds" item="orgId" separator=",">
#{orgId}
</foreach>)
ORDER BY ro.CREATED_TIME DESC
</select>
</mapper>