SELECT INF_TYPE
, CONCAT('C://workspace/xit/base/files/', DIR, DATE_FORMAT(CURRENT_DATE, '%Y/%m/%d/')) DIR
FROM (
SELECT '00' INF_TYPE, 'attachment/' DIR UNION
SELECT '01' INF_TYPE, 'document/' DIR UNION
SELECT '02' INF_TYPE, 'article/' DIR
) FILE_DIRS
SELECT A.*, REPLACE(FILE_PATH, 'C://workspace/xit/base', '') URL
FROM TB_FILE A
WHERE FILE_ID IN (#{fileID})
ORDER BY FILE_ID
SELECT A.*, REPLACE(FILE_PATH, 'C://workspace/xit/base', '') URL
FROM TB_FILE A
AND A.INF_TYPE = #{infoType} AND INF_KEY IN (#{infoKey})
AND USE_YN = 'Y'
/* 파일 등록(fileMapper.insertFile) */
SELECT NEW_ID, CONCAT(DIR, NEW_ID, '.', #{file.extension}) PATH
FROM (
SELECT IFNULL(MAX(FILE_ID) + 1, CONCAT(THIS_DAY, '00001')) NEW_ID
FROM TB_FILE A, () B
WHERE FILE_ID LIKE CONCAT(THIS_DAY, '%')
) T1, (
WHERE INF_TYPE = #{file.infoType}
) T2
INSERT INTO TB_FILE (
FILE_ID
, INF_TYPE
, INF_KEY
, SUB_TYPE
, FILE_NM
, FILE_PATH
, MIME_TYPE
, FILE_SIZE
, DNLD_CNT
, SRT_ORD
, RGTR
, REG_DT
, USE_YN
) VALUES (
#{file.id}
, #{file.infoType}
, #{file.infoKey}
, #{file.subType}
, #{file.name}
, #{file.path}
, #{file.mimeType}
, #{file.size}
, #{file.downloadCount}
, #{file.sortOrder}
, #{currentUser.id}
,
, 'Y'
)
/* 파일 순서 변경(fileMapper.reorder) */
UPDATE TB_FILE SET
SRT_ORD = CASE FILE_ID
WHEN #{fileID} THEN #{index}
ELSE SRT_ORD END
WHERE FILE_ID IN (#{fileID})/* 다운로드 횟수 증가(fileMapper.updateDownloadCount) */
UPDATE TB_FILE SET
DNLD_CNT = DNLD_CNT + 1
WHERE USE_YN = 'Y'
AND FILE_ID IN (#{fileID})/* 파일 제거(fileMapper.removeFiles) */
UPDATE TB_FILE SET
USE_YN = 'N'
WHERE USE_YN = 'Y'
AND FILE_ID IN (#{fileID})
AND INF_TYPE = #{infoType}
AND INF_KEY IN (#{infoKey})/* 파일 삭제(fileMapper.deleteFiles) */
DELETE FROM TB_FILE
WHERE FILE_ID IN (#{fileID})