[파일 업로드] tusHook 작업

- 멀티업로드 상태 업로드
This commit is contained in:
2026-03-06 17:45:46 +09:00
parent 5311c816d2
commit 8ae793626b
7 changed files with 131 additions and 52 deletions
@@ -24,12 +24,80 @@
<insert id="insertFileMasterUpload">
/*FileMapper.insertFileMasterUpload*/
INSERT INTO ALISTLMS.FILE_MASTER2 (
FILE_MASTER_KEY, USER_IDX, FILE_CATEGORY, FOLDER_PATH, STATUS, CREATE_MEMBER, UPDATE_MEMBER
FILE_MASTER_KEY, USER_IDX, FILE_CATEGORY, FOLDER_PATH, STATUS, CREATE_MEMBER, UPDATE_MEMBER
) values (
#{fileMasterKey}, #{userIdx}, #{fileCategory}, #{folderPath}, #{status}, #{userIdx}, #{userIdx}
#{fileMasterKey}, #{userIdx}, #{fileCategory}, #{folderPath}, #{status}, #{userIdx}, #{userIdx}
)
</insert>
<insert id="insertFileUploadEventLog">
/*FileMapper.insertFileUploadEventLog*/
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
, #{type}
, #{offset}
, NULL
, NULL
, NULL
, NULL
FROM ALISTLMS.FILE_DETAIL LFD
WHERE LFD.FILE_UUID = #{fileUuid}
LIMIT 1
</insert>
<update id="updateFileDetailStatus">
/*FileMapper.updateFileDetailStatus*/
UPDATE ALISTLMS.FILE_DETAIL
<set>
<if test="uploadId != null and uploadId != ''">
TUS_UPLOAD_ID = #{uploadId},
</if>
<if test="uploadedBytes != null">
UPLOADED_BYTES = #{uploadedBytes},
</if>
<if test="status != null">
STATUS = #{status},
</if>
UPDATE_DATE = NOW()
</set>
WHERE FILE_UUID = #{fileUuid}
AND DEL_YN = 'N'
</update>
<update id="updateFileMasterAggregateByFileUuid">
/*FileMapper.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'
) 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,
LFM.UPDATE_DATE = NOW()
</update>
<select id="selectFileMasterCountByFileMasterKeyAndDelYnAndStatus" resultType="int">
/*FileMapper.selectFileMasterCountByFileMasterKeyAndDelYnAndStatus*/
SELECT COUNT(*)