From 268c9720677e3a330c9d53c9f4b9f026869e1583 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期五, 18 八月 2023 15:26:47 +0800
Subject: [PATCH] 流媒体异常修复

---
 ard-work/src/main/resources/mapper/alarm/ArdAlarmRadarMapper.xml |   67 ++++++++++++++++++++++-----------
 1 files changed, 44 insertions(+), 23 deletions(-)

diff --git a/ard-work/src/main/resources/mapper/alarm/ArdAlarmRadarMapper.xml b/ard-work/src/main/resources/mapper/alarm/ArdAlarmRadarMapper.xml
index 09d5dff..6819e98 100644
--- a/ard-work/src/main/resources/mapper/alarm/ArdAlarmRadarMapper.xml
+++ b/ard-work/src/main/resources/mapper/alarm/ArdAlarmRadarMapper.xml
@@ -2,7 +2,7 @@
 <!DOCTYPE mapper
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.ruoyi.alarm.radarAlarm.mapper.ArdAlarmRadarMapper">
+<mapper namespace="com.ruoyi.alarm.radar.mapper.ArdAlarmRadarMapper">
     <resultMap type="ArdAlarmRadar" id="ArdAlarmRadarResult">
         <result property="id" column="id"/>
         <result property="name" column="name"/>
@@ -16,6 +16,8 @@
         <result property="createTime" column="create_time"/>
         <result property="userId" column="user_id"/>
         <result property="deptId" column="dept_id"/>
+        <result property="recordUrl1" column="record_url1"/>
+        <result property="recordUrl2" column="record_url2"/>
     </resultMap>
 
     <sql id="selectArdAlarmRadarVo">
@@ -30,7 +32,9 @@
                create_by,
                create_time,
                user_id,
-               dept_id
+               dept_id,
+               record_url1,
+               record_url2
         from ard_alarm_radar
     </sql>
 
@@ -40,7 +44,14 @@
             <if test="name != null  and name != ''">and name like '%'||#{name}||'%'</if>
             <if test="alarmType != null  and alarmType != ''">and alarm_type = #{alarmType}</if>
             <if test="deptId != null ">and dept_id = #{deptId}</if>
+            <if test="params.beginTime != null and params.beginTime != ''"><!-- 寮�濮嬫椂闂存绱� -->
+                AND alarm_time &gt;= to_timestamp(#{params.beginTime},'yyyy-MM-DD HH24:MI:ss')
+            </if>
+            <if test="params.endTime != null and params.endTime != ''"><!-- 缁撴潫鏃堕棿妫�绱� -->
+                AND alarm_time &lt;= to_timestamp(#{params.endTime},'yyyy-MM-DD HH24:MI:ss')
+            </if>
         </where>
+        order by alarm_time desc
     </select>
 
     <select id="selectArdAlarmRadarById" parameterType="String" resultMap="ArdAlarmRadarResult">
@@ -117,33 +128,35 @@
     </delete>
 
     <select id="selectListAllByCommand" resultMap="ArdAlarmRadarResult">
-        SELECT T
-                   .*
-        FROM (
-                 SELECT aar.ID,
-                        aar.target_id,
-                        aar.NAME,
-                        aar.alarm_type,
-                        aar.alarm_time,
-                        aar.longitude,
-                        aar.latitude,
-                        ROW_NUMBER() OVER ( PARTITION BY aar.NAME ORDER BY aar.alarm_time DESC ) AS rn, COUNT(CASE WHEN aar.view_time IS NULL THEN 1 END) OVER ( PARTITION BY aar.NAME ) AS COUNT,
-		COUNT ( aar.alarm_time ) OVER ( PARTITION BY aar.NAME ) AS total
-                 FROM
-                     ard_alarm_radar aar
-                 WHERE
-                     aar.alarm_time >= ( CURRENT_TIMESTAMP - INTERVAL '%${refreshTime}%' MINUTE )
-                   AND aar.alarm_type = #{alarmType}
-                 ORDER BY
-                     aar.alarm_time DESC
-             ) T
-        WHERE T.rn = 1
+                select aaar.ID,
+               aaar.target_id,
+               aaar.NAME,
+               aaar.alarm_type,
+               aaar.alarm_time,
+               aaar.longitude,
+               aaar.latitude,
+               r.COUNT,
+               r.total  from
+            (SELECT
+                 aar.NAME,
+                 max(aar.create_time) as create_time1,
+                 count(case when aar.view_time is null THEN 1  END) as count,
+	             count(aar.id) as total
+             FROM
+                 ard_alarm_radar aar
+             WHERE
+                 aar.create_time >= ( CURRENT_TIMESTAMP - INTERVAL '%${refreshTime}%' MINUTE )
+               AND aar.alarm_type = #{alarmType}
+             GROUP BY aar.NAME
+            ) r
+                INNER JOIN ard_alarm_radar aaar ON r.create_time1 = aaar.create_time
     </select>
     <select id="selectCountByAlarmTime" resultType="Integer">
         SELECT COUNT(DISTINCT aar.name)
         FROM ard_alarm_radar aar
         WHERE aar.alarm_time >= CURRENT_TIMESTAMP - INTERVAL '%${refreshTime}%' MINUTE
           and aar.alarm_type = #{alarmType}
+          and aar.view_time is null
     </select>
     <select id="getCameraByRadar" resultType="String">
         select ac.id
@@ -169,4 +182,12 @@
           and alarm_type =#{ardAlarmRadar.alarmType}
           and name = #{ardAlarmRadar.name}
     </select>
+    <update id="updateViewTimeByCondition" parameterType="String">
+        update ard_alarm_radar
+        set view_time=#{viewTime}
+        where name = #{name}
+          and alarm_type=#{alarmType}
+          and alarm_time&lt;=#{alarmTime}
+          and view_time is null
+    </update>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3