[api] tus 수정

This commit is contained in:
2026-05-27 15:18:03 +09:00
parent 85d593fb9d
commit cbea6bc2af
40 changed files with 1016 additions and 770 deletions
@@ -2,9 +2,147 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.alist.api.modules.tusFile.mapper.TusFileMapper">
<select id="selectTusFileUploadAuthCount" resultType="java.lang.Integer">
/*TusFileMapper.selectTusFileUploadAuthCount*/
SELECT COUNT(*)
FROM ALISTLMS.FILE_DETAIL LFD
INNER JOIN ALISTLMS.test_user_token LTUT ON LTUT.user_idx = LFD.CREATE_MEMBER
WHERE LFD.DEL_YN = 'N'
AND LFD.FILE_UUID = #{fileUuid}
AND LTUT.user_token_idx = #{userTokenIdx}
AND LFD.STATUS IN (0,1,2,3)
AND (#{sizeBytes} IS NULL OR LFD.SIZE_BYTES = #{sizeBytes})
AND (#{originName} IS NULL OR #{originName} = '' OR LFD.ORIGIN_NAME = #{originName})
AND (
#{contentType} IS NULL OR #{contentType} = ''
OR LFD.CONTENT_TYPE IS NULL OR LFD.CONTENT_TYPE = ''
OR LOWER(LFD.CONTENT_TYPE) = LOWER(#{contentType})
)
</select>
<insert id="insertFileMasterInit" useGeneratedKeys="true" keyProperty="fileMasterIdx">
/*FileMapper.insertFileMasterInit*/
<select id="selectTusFileUploadMeta" resultType="com.alist.api.modules.tusFile.dto.TusFileUploadMetaDto">
/*TusFileMapper.selectTusFileUploadMeta*/
SELECT FILE_UUID, ORIGIN_NAME, SIZE_BYTES, CONTENT_TYPE, TUS_UPLOAD_ID, STATUS
FROM ALISTLMS.FILE_DETAIL
WHERE FILE_UUID = #{fileUuid}
AND DEL_YN = 'N'
LIMIT 1
</select>
<select id="selectTusFileUploadCancelCount" resultType="java.lang.Integer">
/*TusFileMapper.selectTusFileUploadCancelCount*/
SELECT COUNT(*)
FROM ALISTLMS.FILE_DETAIL LFD
INNER JOIN ALISTLMS.test_user_token LTUT ON LTUT.user_idx = LFD.CREATE_MEMBER
WHERE LFD.DEL_YN = 'N'
AND LFD.FILE_UUID = #{fileUuid}
AND LTUT.user_token_idx = #{userTokenIdx}
AND LFD.STATUS IN (0,1,2)
</select>
<select id="selectTusFileUploadCancelProgress" resultType="com.alist.api.modules.tusFile.vo.TusFileUploadCancelProgressVo">
/*TusFileMapper.selectTusFileUploadCancelProgress*/
SELECT LFD.FILE_UUID
, COALESCE(LFD.UPLOADED_BYTES, 0) AS UPLOADED_BYTES
, COALESCE(LFD.SIZE_BYTES, 0) AS SIZE_BYTES
FROM ALISTLMS.FILE_DETAIL LFD
INNER JOIN ALISTLMS.test_user_token LTUT ON LTUT.user_idx = LFD.CREATE_MEMBER
WHERE LFD.FILE_UUID = #{fileUuid}
AND LTUT.user_token_idx = #{userTokenIdx}
AND LFD.DEL_YN = 'N'
LIMIT 1
</select>
<select id="selectTusFileMoveTask" resultType="com.alist.api.modules.tusFile.dto.TusFileMoveTaskDto">
/*TusFileMapper.selectTusFileMoveTask*/
SELECT LFD.FILE_DETAIL_IDX
, LFD.FILE_MASTER_IDX
, LFD.FILE_UUID
, LFD.TUS_UPLOAD_ID
, LFD.ORIGIN_NAME
, LFD.CONTENT_TYPE
, LFD.SIZE_BYTES
, LFD.UPLOADED_BYTES
, LFM.FOLDER_PATH
, LFD.SAVE_NAME
, LFD.SAVE_PATH
, LFD.`EXT`
, LFD.MOVE_YN
, LFD.MOVE_TRY_COUNT
, LFD.MOVE_LAST_ERROR
FROM ALISTLMS.FILE_DETAIL LFD
INNER JOIN ALISTLMS.FILE_MASTER LFM ON LFM.FILE_MASTER_IDX = LFD.FILE_MASTER_IDX
AND LFM.DEL_YN = 'N'
WHERE LFD.FILE_UUID = #{fileUuid}
AND LFD.DEL_YN = 'N'
LIMIT 1
</select>
<select id="selectTusFileList" resultType="com.alist.api.modules.tusFile.vo.TusFileListItemVo">
/*TusFileMapper.selectTusFileList*/
SELECT LFD.FILE_DETAIL_IDX
, LFD.FILE_MASTER_IDX
, LFD.FILE_UUID
, LFD.ORIGIN_NAME
, LFD.CONTENT_TYPE
, LFD.SIZE_BYTES
FROM ALISTLMS.FILE_DETAIL LFD
INNER JOIN ALISTLMS.FILE_MASTER LFM ON LFM.FILE_MASTER_IDX = LFD.FILE_MASTER_IDX
AND LFM.DEL_YN = 'N'
INNER JOIN ALISTLMS.test_user_token LTUT ON LTUT.user_idx = LFM.USER_IDX
WHERE LFD.FILE_MASTER_IDX = #{fileMasterIdx}
AND LTUT.user_token_idx = #{userTokenIdx}
AND LFD.DEL_YN = 'N'
AND LFD.STATUS = 3
AND LFD.MOVE_YN = 'Y'
ORDER BY LFD.FILE_SEQ ASC, LFD.FILE_DETAIL_IDX ASC
</select>
<select id="selectTusFileViewOrDownload" resultType="com.alist.api.modules.tusFile.vo.TusFileViewOrDownloadVo">
/*TusFileMapper.selectTusFileViewOrDownload*/
SELECT LFD.FILE_DETAIL_IDX
, LFD.FILE_MASTER_IDX
, LFD.FILE_UUID
, LFD.ORIGIN_NAME
, LFD.CONTENT_TYPE
, LFD.SIZE_BYTES
, LFD.SAVE_PATH
, LTUT.user_idx
FROM ALISTLMS.FILE_DETAIL LFD
INNER JOIN ALISTLMS.FILE_MASTER LFM ON LFM.FILE_MASTER_IDX = LFD.FILE_MASTER_IDX
AND LFM.DEL_YN = 'N'
INNER JOIN ALISTLMS.test_user_token LTUT ON LTUT.user_idx = LFM.USER_IDX
WHERE LFD.FILE_UUID = #{fileUuid}
AND LTUT.user_token_idx = #{userTokenIdx}
AND LFD.DEL_YN = 'N'
AND LFD.STATUS = 3
AND LFD.MOVE_YN = 'Y'
LIMIT 1
</select>
<select id="selectTusFileDeleteTargetCount" resultType="java.lang.Integer">
/*TusFileMapper.selectTusFileDeleteTargetCount*/
SELECT COUNT(*)
FROM ALISTLMS.FILE_DETAIL LFD
INNER JOIN ALISTLMS.FILE_MASTER LFM ON LFM.FILE_MASTER_IDX = LFD.FILE_MASTER_IDX
AND LFM.DEL_YN = 'N'
INNER JOIN ALISTLMS.test_user_token LTUT ON LTUT.user_idx = LFM.USER_IDX
WHERE LFD.FILE_UUID = #{fileUuid}
AND LTUT.user_token_idx = #{userTokenIdx}
AND LFD.DEL_YN = 'N'
AND LFD.STATUS = 3
AND LFM.STATUS = 3
</select>
<select id="selectUserIdxByUserTokenIdx" resultType="java.lang.Integer">
/*TusFileMapper.selectUserIdxByUserTokenIdx*/
SELECT user_idx
FROM test_user_token
WHERE user_token_idx = #{userTokenIdx}
</select>
<insert id="insertTusFileUploadInitMaster" useGeneratedKeys="true" keyProperty="fileMasterIdx">
/*TusFileMapper.insertTusFileUploadInitMaster*/
INSERT INTO ALISTLMS.FILE_MASTER (
USER_IDX, FILE_CATEGORY, FOLDER_PATH, TOTAL_COUNT, DONE_COUNT, FAIL_COUNT, STATUS, DEL_YN, CREATE_MEMBER, UPDATE_MEMBER
) VALUES (
@@ -12,8 +150,8 @@
)
</insert>
<insert id="insertFileDetailInit">
/*FileMapper.insertFileDetailInit*/
<insert id="insertTusFileUploadInitDetail">
/*TusFileMapper.insertTusFileUploadInitDetail*/
INSERT INTO ALISTLMS.FILE_DETAIL (
FILE_MASTER_IDX, FILE_SEQ, FILE_UUID, ORIGIN_NAME, CONTENT_TYPE, SIZE_BYTES, UPLOADED_BYTES, TUS_UPLOAD_ID, STATUS, DEL_YN, CREATE_MEMBER, UPDATE_MEMBER
) VALUES (
@@ -21,13 +159,12 @@
)
</insert>
<insert id="insertFileUploadEventLog">
/*FileMapper.insertFileUploadEventLog*/
<insert id="insertTusFileHookEventLog">
/*TusFileMapper.insertTusFileHookEventLog*/
INSERT INTO ALISTLMS.FILE_UPLOAD_EVENT_LOG (
FILE_DETAIL_IDX, EVENT_TYPE, OFFSET_BYTES, BYTES_WRITTEN, HTTP_STATUS, MESSAGE, RAW_JSON
)
SELECT
LFD.FILE_DETAIL_IDX
SELECT LFD.FILE_DETAIL_IDX
, #{type}
, #{offset}
, NULL
@@ -38,8 +175,9 @@
WHERE LFD.FILE_UUID = #{fileUuid}
LIMIT 1
</insert>
<insert id="insertFileDownloadEventLog">
/*FileMapper.insertFileDownloadEventLog*/
<insert id="insertTusFileViewOrDownloadEventLog">
/*TusFileMapper.insertTusFileViewOrDownloadEventLog*/
INSERT INTO ALISTLMS.FILE_DOWNLOAD_EVENT_LOG (
FILE_MASTER_IDX
, FILE_DETAIL_IDX
@@ -67,8 +205,8 @@
)
</insert>
<update id="updateFileDetailStatus">
/*FileMapper.updateFileDetailStatus*/
<update id="updateTusFileHookDetailStatus">
/*TusFileMapper.updateTusFileHookDetailStatus*/
UPDATE ALISTLMS.FILE_DETAIL
<set>
<if test="uploadId != null and uploadId != ''">
@@ -87,193 +225,56 @@
</update>
<update id="updateFileMasterAggregateByFileUuid">
/*FileMapper.updateFileMasterAggregateByFileUuid*/
/*TusFileMapper.updateFileMasterAggregateByFileUuid*/
UPDATE ALISTLMS.FILE_MASTER LFM
JOIN (
SELECT
LLFD.FILE_MASTER_IDX,
COUNT(*) AS total_count,
SUM(CASE WHEN LLFD.STATUS = 3 THEN 1 ELSE 0 END) AS done_count,
SUM(CASE WHEN LLFD.STATUS IN (4,5) THEN 1 ELSE 0 END) AS fail_count
FROM ALISTLMS.FILE_DETAIL LLFD
WHERE LLFD.FILE_MASTER_IDX = (
SELECT FILE_MASTER_IDX
FROM ALISTLMS.FILE_DETAIL
WHERE FILE_UUID = #{fileUuid}
LIMIT 1
)
AND LLFD.DEL_YN = 'N'
SELECT LLFD.FILE_MASTER_IDX
, COUNT(*) AS total_count
, SUM(CASE WHEN LLFD.STATUS = 3 THEN 1 ELSE 0 END) AS done_count
, SUM(CASE WHEN LLFD.STATUS IN (4,5) THEN 1 ELSE 0 END) AS fail_count
FROM ALISTLMS.FILE_DETAIL LLFD
WHERE LLFD.FILE_MASTER_IDX = (
SELECT FILE_MASTER_IDX
FROM ALISTLMS.FILE_DETAIL
WHERE FILE_UUID = #{fileUuid}
LIMIT 1
)
AND LLFD.DEL_YN = 'N'
) A ON A.FILE_MASTER_IDX = LFM.FILE_MASTER_IDX
SET LFM.TOTAL_COUNT = A.total_count
, LFM.DONE_COUNT = A.done_count
, LFM.FAIL_COUNT = A.fail_count
, LFM.STATUS = CASE
WHEN A.done_count = A.total_count THEN 3
WHEN A.done_count = 0 AND A.fail_count = A.total_count THEN 4
WHEN A.done_count > 0 AND A.fail_count > 0 THEN 5
ELSE 1
END
WHEN A.done_count = A.total_count THEN 3
WHEN A.done_count = 0 AND A.fail_count = A.total_count THEN 4
WHEN A.done_count > 0 AND A.fail_count > 0 THEN 5
ELSE 1
END
, LFM.UPDATE_DATE = NOW()
</update>
<update id="updateTusUploadIdIfNull" parameterType="com.alist.api.modules.tusFile.dto.FileUploadMetaDto">
/*FileMapper.updateTusUploadIdIfNull*/
<update id="updateTusFileUploadIdIfNull" parameterType="com.alist.api.modules.tusFile.dto.TusFileUploadMetaDto">
/*TusFileMapper.updateTusFileUploadIdIfNull*/
UPDATE ALISTLMS.FILE_DETAIL
SET TUS_UPLOAD_ID = #{tusUploadId}
, UPDATE_DATE = NOW()
WHERE FILE_UUID = #{fileUuid}
AND DEL_YN = 'N'
AND TUS_UPLOAD_ID IS NULL
AND DEL_YN = 'N'
AND TUS_UPLOAD_ID IS NULL
</update>
<update id="updateFileDetailCanceledByFileUuid">
/*FileMapper.updateFileDetailCanceledByFileUuid*/
/*TusFileMapper.updateFileDetailCanceledByFileUuid*/
UPDATE ALISTLMS.FILE_DETAIL
SET STATUS = 5
, UPDATE_DATE = NOW()
WHERE FILE_UUID = #{fileUuid}
AND DEL_YN = 'N'
AND STATUS IN (0,1,2)
</update>
<update id="updateFileDetailCanceledByFileUuidAndUserTokenIdx">
/*FileMapper.updateFileDetailCanceledByFileUuidAndUserTokenIdx*/
UPDATE ALISTLMS.FILE_DETAIL LFD
INNER JOIN ALISTLMS.test_user_token LTUT
ON LTUT.user_idx = LFD.CREATE_MEMBER
SET LFD.STATUS = 5
, LFD.UPDATE_DATE = NOW()
WHERE LFD.DEL_YN = 'N'
AND LFD.FILE_UUID = #{fileUuid}
AND LTUT.user_token_idx = #{userTokenIdx}
AND LFD.STATUS IN (0,1,2)
AND DEL_YN = 'N'
AND STATUS IN (0,1,2)
</update>
<select id="selectFileDetailCountByFileUuidUserToKenIdx" resultType="java.lang.Integer">
/*FileMapper.selectFileDetailCountByFileUuidUserToKenIdx*/
SELECT COUNT(*)
FROM ALISTLMS.FILE_DETAIL LFD
INNER JOIN ALISTLMS.test_user_token LTUT
ON LTUT.user_idx = LFD.CREATE_MEMBER
WHERE LFD.DEL_YN = 'N'
AND LFD.FILE_UUID = #{fileUuid}
AND LTUT.user_token_idx = #{userTokenIdx}
AND LFD.STATUS IN (0,1,2,3)
AND (#{sizeBytes} IS NULL OR LFD.SIZE_BYTES = #{sizeBytes})
AND (#{originName} IS NULL OR #{originName} = '' OR LFD.ORIGIN_NAME = #{originName})
AND (
#{contentType} IS NULL OR #{contentType} = ''
OR LFD.CONTENT_TYPE IS NULL OR LFD.CONTENT_TYPE = ''
OR LOWER(LFD.CONTENT_TYPE) = LOWER(#{contentType})
)
</select>
<select id="selectFileUploadMetaByFileUuid" resultType="com.alist.api.modules.tusFile.dto.FileUploadMetaDto">
/*FileMapper.selectFileUploadMetaByFileUuid*/
SELECT FILE_UUID, ORIGIN_NAME, SIZE_BYTES, CONTENT_TYPE, TUS_UPLOAD_ID, STATUS
FROM ALISTLMS.FILE_DETAIL
WHERE FILE_UUID = #{fileUuid}
AND DEL_YN = 'N'
LIMIT 1
</select>
<select id="selectFileDetailCountByFileUuidAndUserToKenIdx" resultType="java.lang.Integer">
/*FileMapper.selectFileDetailCountByFileUuidAndUserToKenIdx*/
SELECT COUNT(*)
FROM ALISTLMS.FILE_DETAIL LFD
INNER JOIN ALISTLMS.test_user_token LTUT
ON LTUT.user_idx = LFD.CREATE_MEMBER
WHERE LFD.DEL_YN = 'N'
AND LFD.FILE_UUID = #{fileUuid}
AND LTUT.user_token_idx = #{userTokenIdx}
AND LFD.STATUS IN (0,1,2)
</select>
<select id="selectUploadProgressByFileUuid" resultType="com.alist.api.modules.tusFile.dto.UploadCancelDto">
/*FileMapper.selectUploadProgressByFileUuid*/
SELECT LFD.FILE_UUID
, COALESCE(LFD.UPLOADED_BYTES, 0) AS UPLOADED_BYTES
, COALESCE(LFD.SIZE_BYTES, 0) AS SIZE_BYTES
FROM ALISTLMS.FILE_DETAIL LFD
INNER JOIN ALISTLMS.test_user_token LTUT
ON LTUT.user_idx = LFD.CREATE_MEMBER
WHERE LFD.FILE_UUID = #{fileUuid}
AND LTUT.user_token_idx = #{userTokenIdx}
AND LFD.DEL_YN = 'N'
LIMIT 1
</select>
<select id="selectMoveTaskByFileUuid" resultType="com.alist.api.modules.tusFile.dto.FileMoveTaskDto">
/*FileMapper.selectMoveTaskByFileUuid*/
SELECT LFD.FILE_DETAIL_IDX
, LFD.FILE_MASTER_IDX
, LFD.FILE_UUID
, LFD.TUS_UPLOAD_ID
, LFD.ORIGIN_NAME
, LFD.CONTENT_TYPE
, LFD.SIZE_BYTES
, LFD.UPLOADED_BYTES
, LFM.FOLDER_PATH
, LFD.SAVE_NAME
, LFD.SAVE_PATH
, LFD.`EXT`
, LFD.MOVE_YN
, LFD.MOVE_TRY_COUNT
, LFD.MOVE_LAST_ERROR
FROM ALISTLMS.FILE_DETAIL LFD
INNER JOIN ALISTLMS.FILE_MASTER LFM
ON LFM.FILE_MASTER_IDX = LFD.FILE_MASTER_IDX
AND LFM.DEL_YN = 'N'
WHERE LFD.FILE_UUID = #{fileUuid}
AND LFD.DEL_YN = 'N'
LIMIT 1
</select>
<select id="selectFileDownloadListByFileMasterIdx" resultType="com.alist.api.modules.tusFile.dto.FileDownloadItemDto">
/*FileMapper.selectFileDownloadListByFileMasterIdx*/
SELECT LFD.FILE_DETAIL_IDX
, LFD.FILE_MASTER_IDX
, LFD.FILE_UUID
, LFD.ORIGIN_NAME
, LFD.CONTENT_TYPE
, LFD.SIZE_BYTES
FROM ALISTLMS.FILE_DETAIL LFD
INNER JOIN ALISTLMS.FILE_MASTER LFM
ON LFM.FILE_MASTER_IDX = LFD.FILE_MASTER_IDX
AND LFM.DEL_YN = 'N'
INNER JOIN ALISTLMS.test_user_token LTUT
ON LTUT.user_idx = LFM.USER_IDX
WHERE LFD.FILE_MASTER_IDX = #{fileMasterIdx}
AND LTUT.user_token_idx = #{userTokenIdx}
AND LFD.DEL_YN = 'N'
AND LFD.STATUS = 3
AND LFD.MOVE_YN = 'Y'
ORDER BY LFD.FILE_SEQ ASC, LFD.FILE_DETAIL_IDX ASC
</select>
<select id="selectFileDetailByFileUuid" resultType="com.alist.api.modules.tusFile.dto.FileDownloadDto">
/*FileMapper.selectFileDetailByFileUuid*/
SELECT LFD.FILE_DETAIL_IDX
, LFD.FILE_MASTER_IDX
, LFD.FILE_UUID
, LFD.ORIGIN_NAME
, LFD.CONTENT_TYPE
, LFD.SIZE_BYTES
, LFD.SAVE_PATH
, LTUT.user_idx
FROM ALISTLMS.FILE_DETAIL LFD
INNER JOIN ALISTLMS.FILE_MASTER LFM
ON LFM.FILE_MASTER_IDX = LFD.FILE_MASTER_IDX
AND LFM.DEL_YN = 'N'
INNER JOIN ALISTLMS.test_user_token LTUT
ON LTUT.user_idx = LFM.USER_IDX
WHERE LFD.FILE_UUID = #{fileUuid}
AND LTUT.user_token_idx = #{userTokenIdx}
AND LFD.DEL_YN = 'N'
AND LFD.STATUS = 3
AND LFD.MOVE_YN = 'Y'
LIMIT 1
</select>
<update id="updateFileMoveSuccess" parameterType="com.alist.api.modules.tusFile.dto.FileMoveTaskDto">
/*FileMapper.updateFileMoveSuccess*/
<update id="updateTusFileMoveSuccess" parameterType="com.alist.api.modules.tusFile.dto.TusFileMoveTaskDto">
/*TusFileMapper.updateTusFileMoveSuccess*/
UPDATE ALISTLMS.FILE_DETAIL
SET SAVE_NAME = #{saveName}
, SAVE_PATH = #{savePath}
@@ -285,84 +286,71 @@
, MOVE_LOCK_OWNER = NULL
, UPDATE_DATE = NOW()
WHERE FILE_DETAIL_IDX = #{fileDetailIdx}
AND DEL_YN = 'N'
AND DEL_YN = 'N'
</update>
<update id="updateFileMovePendingByFileUuid" parameterType="com.alist.api.modules.tusFile.dto.FileMoveTaskDto">
/*FileMapper.updateFileMovePendingByFileUuid*/
<update id="updateTusFileMovePending" parameterType="com.alist.api.modules.tusFile.dto.TusFileMoveTaskDto">
/*TusFileMapper.updateTusFileMovePending*/
UPDATE ALISTLMS.FILE_DETAIL
SET MOVE_YN = 'N'
, MOVE_TRY_COUNT = COALESCE(MOVE_TRY_COUNT, 0) + 1
, MOVE_LAST_ERROR = #{moveLastError}
, UPDATE_DATE = NOW()
WHERE FILE_UUID = #{fileUuid}
AND DEL_YN = 'N'
AND STATUS = 3
AND DEL_YN = 'N'
AND STATUS = 3
</update>
<select id="selectFileDeleteTargetCount" resultType="java.lang.Integer">
/*FileMapper.selectFileDeleteTargetCount*/
SELECT COUNT(*)
FROM ALISTLMS.FILE_DETAIL LFD
INNER JOIN ALISTLMS.FILE_MASTER LFM
ON LFM.FILE_MASTER_IDX = LFD.FILE_MASTER_IDX
AND LFM.DEL_YN = 'N'
INNER JOIN ALISTLMS.test_user_token LTUT
ON LTUT.user_idx = LFM.USER_IDX
WHERE LFD.FILE_UUID = #{fileUuid}
AND LTUT.user_token_idx = #{userTokenIdx}
AND LFD.DEL_YN = 'N'
AND LFD.STATUS = 3
AND LFM.STATUS = 3
</select>
<select id="selectUserIdxByUserTokenIdx" resultType="java.lang.Integer">
/*FileMapper.selectUserIdxByUserTokenIdx*/
SELECT user_idx
FROM test_user_token
WHERE user_token_idx = #{userTokenIdx}
</select>
<update id="updateFileDetailDeleteByFileUuid">
/*FileMapper.updateFileDetailDeleteByFileUuid*/
<update id="updateTusFileDetailDelete">
/*TusFileMapper.updateTusFileDetailDelete*/
UPDATE ALISTLMS.FILE_DETAIL LFD
INNER JOIN ALISTLMS.FILE_MASTER LFM
ON LFM.FILE_MASTER_IDX = LFD.FILE_MASTER_IDX
AND LFM.DEL_YN = 'N'
INNER JOIN ALISTLMS.test_user_token LTUT
ON LTUT.user_idx = LFM.USER_IDX
INNER JOIN ALISTLMS.FILE_MASTER LFM ON LFM.FILE_MASTER_IDX = LFD.FILE_MASTER_IDX
AND LFM.DEL_YN = 'N'
INNER JOIN ALISTLMS.test_user_token LTUT ON LTUT.user_idx = LFM.USER_IDX
SET LFD.DEL_YN = 'Y'
, LFD.UPDATE_DATE = NOW()
WHERE LFD.FILE_UUID = #{fileUuid}
AND LTUT.user_token_idx = #{userTokenIdx}
AND LFD.DEL_YN = 'N'
AND LFD.STATUS = 3
AND LFM.STATUS = 3
AND LTUT.user_token_idx = #{userTokenIdx}
AND LFD.DEL_YN = 'N'
AND LFD.STATUS = 3
AND LFM.STATUS = 3
</update>
<update id="updateFileMasterDeleteByFileUuid">
/*FileMapper.updateFileMasterDeleteByFileUuid*/
<update id="updateTusFileMasterDelete">
/*TusFileMapper.updateTusFileMasterDelete*/
UPDATE ALISTLMS.FILE_MASTER LFM
INNER JOIN (
SELECT LFD.FILE_MASTER_IDX
FROM ALISTLMS.FILE_DETAIL LFD
WHERE LFD.FILE_UUID = #{fileUuid}
AND LFD.DEL_YN = 'Y'
AND LFD.DEL_YN = 'Y'
LIMIT 1
) TARGET
ON TARGET.FILE_MASTER_IDX = LFM.FILE_MASTER_IDX
) TARGET ON TARGET.FILE_MASTER_IDX = LFM.FILE_MASTER_IDX
INNER JOIN ALISTLMS.test_user_token LTUT
ON LTUT.user_idx = LFM.USER_IDX
ON LTUT.user_idx = LFM.USER_IDX
SET LFM.DEL_YN = 'Y'
, LFM.UPDATE_DATE = NOW()
WHERE LTUT.user_token_idx = #{userTokenIdx}
AND LFM.DEL_YN = 'N'
AND LFM.STATUS = 3
AND NOT EXISTS (
SELECT 1
FROM ALISTLMS.FILE_DETAIL CHK
WHERE CHK.FILE_MASTER_IDX = LFM.FILE_MASTER_IDX
AND CHK.DEL_YN = 'N'
)
AND LFM.DEL_YN = 'N'
AND LFM.STATUS = 3
AND NOT EXISTS (
SELECT 1
FROM ALISTLMS.FILE_DETAIL CHK
WHERE CHK.FILE_MASTER_IDX = LFM.FILE_MASTER_IDX
AND CHK.DEL_YN = 'N'
)
</update>
<update id="updateTusFileUploadCancel">
/*TusFileMapper.updateTusFileUploadCancel*/
UPDATE ALISTLMS.FILE_DETAIL LFD
INNER JOIN ALISTLMS.test_user_token LTUT ON LTUT.user_idx = LFD.CREATE_MEMBER
SET LFD.STATUS = 5
, LFD.UPDATE_DATE = NOW()
WHERE LFD.DEL_YN = 'N'
AND LFD.FILE_UUID = #{fileUuid}
AND LTUT.user_token_idx = #{userTokenIdx}
AND LFD.STATUS IN (0,1,2)
</update>
</mapper>