From 4f94a29e2722e2185a81355a396ab2a33936d8ff Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: Sun, 28 Dec 2025 15:19:48 +0800
Subject: [PATCH] 优化架次视频和图片同步任务
---
ard-work/src/main/resources/mapper/ArdMediaPicMapper.xml | 69 +++++++++++-----------------------
1 files changed, 23 insertions(+), 46 deletions(-)
diff --git a/ard-work/src/main/resources/mapper/ArdMediaPicMapper.xml b/ard-work/src/main/resources/mapper/ArdMediaPicMapper.xml
index cba6580..dc7b7f2 100644
--- a/ard-work/src/main/resources/mapper/ArdMediaPicMapper.xml
+++ b/ard-work/src/main/resources/mapper/ArdMediaPicMapper.xml
@@ -18,42 +18,27 @@
<result property="captureTime" column="capture_time"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
+ <result property="syncStatus" column="sync_status"/>
</resultMap>
<!-- 查询图片列表 -->
<select id="selectPicList" resultMap="ArdMediaPicResult">
- SELECT
- id, task_id, file_size, file_md5, media_url, source_url,
- longitude, latitude, height, capture_time, create_time, update_time
+ SELECT *
FROM ard_media_pic
<where>
<if test="taskId != null">AND task_id = #{taskId}</if>
- <if test="fileMd5 != null">AND file_md5 = #{fileMd5}</if>
+ <if test="syncStatus != null">AND sync_status = #{syncStatus}</if>
</where>
ORDER BY capture_time DESC
</select>
- <!-- 查询 media_url为 NULL 的视频 -->
- <select id="selectPicsWithNullMedia" resultMap="ArdMediaPicResult">
- SELECT
- id,
- task_id,
- file_size,
- file_md5,
- media_url,
- source_url,
- longitude,
- latitude,
- height,
- capture_time,
- create_time,
- update_time
- FROM
- ard_media_pic
- WHERE
- media_url IS NULL
- ORDER BY
- capture_time ASC
+ <!-- 查询待处理的图片 -->
+ <select id="selectPendingPics" resultMap="ArdMediaPicResult">
+ SELECT *
+ FROM ard_media_pic
+ WHERE sync_status = 0
+ ORDER BY id LIMIT #{limit}
</select>
+
<!-- 根据任务ID查询图片 -->
<select id="selectPicByTaskId" resultMap="ArdMediaPicResult">
SELECT * FROM ard_media_pic WHERE task_id = #{taskId}
@@ -66,12 +51,12 @@
id, task_id, file_size, file_md5,
media_url, source_url,
longitude, latitude, height,
- capture_time, create_time
+ capture_time, create_time,sync_status
) VALUES (
#{id}, #{taskId}, #{fileSize}, #{fileMd5},
#{mediaUrl}, #{sourceUrl},
#{longitude}, #{latitude}, #{height},
- #{captureTime}, #{createTime}
+ #{captureTime}, #{createTime},0
)
</insert>
<!-- 更新图片 -->
@@ -79,28 +64,20 @@
UPDATE ard_media_pic
SET
media_url = #{mediaUrl},
+ sync_status = #{syncStatus},
update_time = #{updateTime}
WHERE id = #{id} AND media_url IS NULL
</update>
-
- <!-- 批量插入图片 -->
- <insert id="insertPicList">
- INSERT INTO ard_media_pic (
- id, task_id, file_size, file_md5,
- media_url, source_url,
- longitude, latitude, height,
- capture_time, create_time
- )
- VALUES
- <foreach collection="list" item="item" separator=",">
- (
- #{item.id}, #{item.taskId}, #{item.fileSize}, #{item.fileMd5},
- #{item.mediaUrl}, #{item.sourceUrl},
- #{item.longitude}, #{item.latitude}, #{item.height},
- #{item.captureTime}, #{item.createTime}
- )
- </foreach>
- </insert>
+ <!-- 标记为处理中 -->
+ <update id="markProcessing">
+ UPDATE ard_media_pic SET sync_status = 1 WHERE id = #{id} AND sync_status = 0
+ </update>
+ <!-- 更新同步状态 -->
+ <update id="updateSyncStatus">
+ UPDATE ard_media_pic
+ SET sync_status = #{status},update_time = NOW()
+ WHERE id = #{id}
+ </update>
<delete id="deletePicById">
DELETE FROM ard_media_pic WHERE id = #{id}
--
Gitblit v1.9.3