첨부파일 DB 테이블 및 방식 변경 - 공지사항, faq, qna

This commit is contained in:
KNKIM 2021-10-19 09:37:44 +09:00
parent d10885c338
commit ea68e40e6e
9 changed files with 72 additions and 110 deletions

View File

@ -115,7 +115,7 @@ public class AttachFileServiceImpl implements AttachFileService
if(attachFileVO == null) return null;
if(StringUtil.isEmpty(attachFileVO.getAttachFileId())) return null;
if(attachFileVO.getFileSn() < 1) return null;
if(attachFileVO.getFileSn() < 0) return null;
return attachFileDAO.selectAttachFile(attachFileVO);
}

View File

@ -149,9 +149,7 @@ public class FileUploadController {
Iterator<Entry<String, MultipartFile>> itr = files.entrySet().iterator();
MultipartFile file;
String filePath = "";
FileVO fvo;
AttachFileVO atvo;
String fileId = UUID.getNewFileId();
// 첨브파일그룹ID
if(StringUtil.isEmpty(attachFileId)) {
@ -274,14 +272,15 @@ public class FileUploadController {
File file = new File(FileUtil.filePathBlackList(fullPath));
if(!file.isFile()) {
throw new Exception("파일 정보가 부적합합니다. 관리자에게 문의하여 주시기 바랍니다.");
throw new Exception("해당 파일이 존재하지 않습니다. 관리자에게 문의하여 주시기 바랍니다.");
}
mv.setViewName("downloadView"); // dispatcher-servlet.xml내 BeanNameViewResolver 정의
mv.addObject("downloadFile", file);
mv.addObject("fname", attachFileVO.getOrignlFileNm());
mv.addObject("fname", retAttachFileVO.getOrignlFileNm());
return mv;
}
}

View File

@ -21,7 +21,7 @@
</if>
</if>
AND S.MNG_ORG_CD IN (#{mngOrgCd}, 'KCCF')
AND IFNULL(S.DELETE_YN, 'N') = 'N'
</sql>
<select id="listArticles" parameterType="ArticleVO" resultType="ArticleVO">
@ -54,7 +54,8 @@
JOIN SM_DEPT B
ON B.ORG_CD = A.MNG_ORG_CD
LEFT OUTER JOIN SM_USER C
ON A.REG_ID = C.USER_ID
ON A.REG_ID = C.USER_ID
WHERE IFNULL(A.DELETE_YN, 'N') = 'N'
ORDER BY RNO DESC
</select>
@ -86,6 +87,7 @@
LEFT OUTER JOIN SM_USER C
ON A.REG_ID = C.USER_ID
WHERE A.ANCMNT_ID = #{articleId}
AND IFNULL(A.DELETE_YN, 'N') = 'N'
]]>
</select>
@ -94,6 +96,7 @@
UPDATE BD_NLIB_ANCMNT
SET VIEW_CNT = VIEW_CNT + 1
WHERE ANCMNT_ID = #{articleId}
AND IFNULL(DELETE_YN, 'N') = 'N'
]]>
</update>

View File

@ -46,19 +46,19 @@
WHERE BD_TYPE = 'QNA'
AND BD_ATTACH_FILE_ID = #{attachFileId}
AND (SECRET_YN = 'N' OR REG_ID = #{mbInfoId})
AND USE_YN = 'Y'
AND IFNULL(USE_YN,'Y') = 'Y'
</if>
<if test='bdType != null and bdType.equals("FAQ")'>
FROM BD_NLIB_QNA
WHERE BD_TYPE = UPPER('FAQ')
AND BD_ATTACH_FILE_ID = #{attachFileId}
AND USE_YN = 'Y'
AND IFNULL(USE_YN,'Y') = 'Y'
</if>
<if test='bdType != null and bdType.equals("ANCMNT")'>
FROM BD_NLIB_ANCMNT
WHERE BD_ATTACH_FILE_ID = #{attachFileId}
AND OPEN_YN = 'Y'
AND DELETE_YN = 'N'
AND IFNULL(DELETE_YN, 'N') = 'N'
AND DATE_FORMAT(NOW(), '%Y%m%d') BETWEEN IFNULL(POST_START_DATE,'00010101') AND IFNULL(POST_END_DATE, '99991231')
</if>
</select>

View File

@ -5,9 +5,9 @@
<sql id="search_condition">
<![CDATA[
FROM BD_QNA S
WHERE S.USE_YN = 'Y'
AND S.ANSWER_YN = 'Y'
FROM BD_NLIB_QNA S
WHERE IFNULL(S.USE_YN,'Y') = 'Y'
AND IFNULL(S.ANSWER_YN,'N') = 'Y'
AND S.BD_TYPE = 'FAQ'
]]>
@ -35,14 +35,14 @@
, A.QUESTION_TYPE
, D.S_CODE_NM AS QUESTION_TYPE_NAME
, A.TITLE
, A.ANSWER_YN
, A.USE_YN
, IFNULL(A.ANSWER_YN, 'N') AS ANSWER_YN
, IFNULL(A.USE_YN,'Y') AS USE_YN
, A.VIEW_CNT
, CASE WHEN A.BD_ATTACH_FILE_ID IS NULL OR A.BD_ATTACH_FILE_ID = '' THEN 'N' ELSE 'Y' END AS ATTACH_YN
, DATE_FORMAT(A.REG_DD, '%Y-%m-%d') AS REG_DD
, A2.RNO
, C.USER_NM AS REG_NM
FROM BD_QNA A
FROM BD_NLIB_QNA A
INNER JOIN (
SELECT QNA_ID, RNO
FROM (
@ -61,7 +61,7 @@
LEFT OUTER JOIN SM_CODE_S D
ON A.QUESTION_TYPE = D.S_CODE_ID
WHERE D.L_CODE_ID = 'FAQ_TYPE_CD'
AND D.USE_YN = 'Y'
AND IFNULL(D.USE_YN, 'Y') = 'Y'
ORDER BY RNO DESC
</select>
@ -80,15 +80,15 @@
, D.S_CODE_NM AS QUESTION_TYPE_NAME
, A.TITLE
, A.CONTENT
, A.ANSWER_YN
, IFNULL(A.ANSWER_YN, 'N') AS ANSWER_YN
, A.ANSWER
, A.USE_YN
, IFNULL(A.USE_YN, 'Y') AS USE_YN
, A.VIEW_CNT
, A.BD_ATTACH_FILE_ID
, CASE WHEN A.BD_ATTACH_FILE_ID IS NULL OR A.BD_ATTACH_FILE_ID = '' THEN 'N' ELSE 'Y' END AS ATTACH_YN
, DATE_FORMAT(A.REG_DD, '%Y-%m-%d') AS REG_DD
, C.USER_NM AS REG_NM
FROM BD_QNA A
FROM BD_NLIB_QNA A
LEFT OUTER JOIN SM_DEPT B
ON B.ORG_CD = A.MNG_ORG_CD
LEFT OUTER JOIN SM_USER C
@ -97,16 +97,17 @@
ON A.QUESTION_TYPE = D.S_CODE_ID
WHERE A.QNA_ID = #{articleId}
AND D.L_CODE_ID = 'FAQ_TYPE_CD'
AND D.USE_YN = 'Y'
AND IFNULL(D.USE_YN, 'Y') = 'Y'
ORDER BY A.REG_DD DESC
]]>
</select>
<update id="updateRead" parameterType="ArticleVO">
<![CDATA[
UPDATE BD_QNA
UPDATE BD_NLIB_QNA
SET VIEW_CNT = VIEW_CNT + 1
WHERE QNA_ID = #{articleId}
AND IFNULL(USE_YN, 'Y') = 'Y'
]]>
</update>

View File

@ -6,7 +6,7 @@
<sql id="search_condition">
<![CDATA[
FROM BD_NLIB_QNA S
WHERE S.USE_YN = 'Y'
WHERE IFNULL(S.USE_YN, 'Y') = 'Y'
AND S.BD_TYPE = 'QNA'
]]>
@ -33,8 +33,8 @@
, B.DEPT_NM AS MNG_ORG_NM
, A.QUESTION_TYPE
, A.TITLE
, A.ANSWER_YN
, A.USE_YN
, IFNULL(A.ANSWER_YN, 'N') AS ANSWER_YN
, IFNULL(A.USE_YN, 'Y') AS USE_YN
, IFNULL(A.SECRET_YN, 'N') AS SECRET_YN
, A.VIEW_CNT
, CASE WHEN A.BD_ATTACH_FILE_ID IS NULL OR A.BD_ATTACH_FILE_ID = '' THEN 'N' ELSE 'Y' END AS ATTACH_YN
@ -86,9 +86,9 @@
, A.QUESTION_TYPE
, A.TITLE
, A.CONTENT
, A.ANSWER_YN
, IFNULL(A.ANSWER_YN, 'N') AS ANSWER_YN
, A.ANSWER
, A.USE_YN
, IFNULL(A.USE_YN, 'Y') AS USE_YN
, IFNULL(A.SECRET_YN, 'N') AS SECRET_YN
, A.VIEW_CNT
, A.BD_ATTACH_FILE_ID
@ -113,6 +113,7 @@
FROM MB_INFO ) C
ON A.REG_ID = C.USER_ID
WHERE A.QNA_ID = #{articleId}
AND IFNULL(A.USE_YN, 'Y') = 'Y'
ORDER BY A.REG_DD DESC
]]>
</select>
@ -123,7 +124,7 @@
SET VIEW_CNT = VIEW_CNT + 1
WHERE QNA_ID = #{articleId}
AND BD_TYPE = 'QNA'
AND USE_YN = 'Y'
AND IFNULL(USE_YN, 'Y') = 'Y'
]]>
</update>
@ -179,8 +180,8 @@
, MOD_DD = NOW()
WHERE QNA_ID = #{articleId}
AND BD_TYPE = 'QNA'
AND ANSWER_YN = 'N'
AND USE_YN = 'Y'
AND IFNULL(ANSWER_YN, 'N') = 'N'
AND IFNULL(USE_YN, 'Y') = 'Y'
]]>
</update>
@ -193,8 +194,8 @@
, MOD_DD = NOW()
WHERE QNA_ID = #{articleId}
AND BD_TYPE = 'QNA'
AND ANSWER_YN = 'N'
AND USE_YN = 'Y'
AND IFNULL(ANSWER_YN, 'N') = 'N'
AND IFNULL(USE_YN, 'Y') = 'Y'
]]>
</update>

View File

@ -186,10 +186,9 @@
answerHtml += "<br/>[첨부파일]<br/>";
for(var i=0; i<jsonObj.data.attachFileCnt; i++) {
answerHtml += "<a href=\"javascript:void(0);\" onclick=\"fn_downloadFile('" +
jsonObj.data.attachFiles[i].fileId + "', " +
jsonObj.data.attachFiles[i].fileSeq + ", '" +
jsonObj.data.attachFiles[i].fileName + "')\">" +
jsonObj.data.attachFiles[i].fileName + " (" +
jsonObj.data.attachFiles[i].attachFileId + "', " +
jsonObj.data.attachFiles[i].fileSn + ")\">" +
jsonObj.data.attachFiles[i].orignlFileNm + " (" +
jsonObj.data.attachFiles[i].fileSize + " byte(s))</a><br/>";
}
}
@ -213,30 +212,26 @@
}
//파일 다운로드
function fn_downloadFile(fileId, fileSeq, fileName) {
if(fileId == null || fileId.trim().length < 1) {
function fn_downloadFile(attachFileId, fileSn) {
if(attachFileId == null || attachFileId.trim().length < 1) {
alert("파일정보를 확인해 주시기 바랍니다.[1]");
return;
}
if(fileSeq < 1) {
alert("파일정보를 확인해 주시기 바랍니다.[2]");
return;
}
if(fileName == null || fileName.trim().length < 1) {
if(fileSn == null) {
alert("파일정보를 확인해 주시기 바랍니다.[3]");
return;
}
$("#fileId").val(fileId);
$("#fileSeq").val(fileSeq);
$("#fileName").val(fileName);
$("#attachFileId").val(attachFileId);
$("#fileSn").val(fileSn);
$("#downloadFileForm").submit();
}
}
function fn_changeQuestionType(searchQuestionType) {
$("#searchQuestionType").val(searchQuestionType);
@ -303,10 +298,12 @@ function fn_changeQuestionType(searchQuestionType) {
<form name="downloadFileForm" id="downloadFileForm"
action="${pageContext.request.contextPath}/fileupload/downloadAttachFile.do"
method="post">
<input type="text" name="subPathKey" id="subPathKey" value="fileupload.bbs.ancmnt.subpath" readonly />
<input type="text" name="fileId" id="fileId" value="" readonly />
<input type="text" name="fileSeq" id="fileSeq" value="" readonly />
<input type="text" name="fileName" id="fileName" value="" readonly />
<input type="text" name="bdType" id="bdType" value="FAQ" readonly />
<input type="text" name="attachFileId" id="attachFileId" value="" readonly />
<input type="text" name="streFileNm" id="streFileNm" value="" readonly />
<input type="text" name="fileSn" id="fileSn" value="" readonly />
<input type="text" name="orignlFileNm" id="orignlFileNm" value="" readonly />
</form>
</body>

View File

@ -190,32 +190,6 @@
);
}
//파일 다운로드
function fn_downloadFile(fileId, fileSeq, fileName) {
if(fileId == null || fileId.trim().length < 1) {
alert("파일정보를 확인해 주시기 바랍니다.[1]");
return;
}
if(fileSeq < 1) {
alert("파일정보를 확인해 주시기 바랍니다.[2]");
return;
}
if(fileName == null || fileName.trim().length < 1) {
alert("파일정보를 확인해 주시기 바랍니다.[3]");
return;
}
$("#fileId").val(fileId);
$("#fileSeq").val(fileSeq);
$("#fileName").val(fileName);
$("#downloadFileForm").submit();
}
function fn_changeQuestionType(searchQuestionType) {
$("#searchQuestionType").val(searchQuestionType);
fn_searchArticle($("#pageSize").val(), 1);
@ -287,17 +261,6 @@ function fn_newArticle() {
</form>
<!-- 첨부파일 다운로드용 폼 -->
<form name="downloadFileForm" id="downloadFileForm"
action="${pageContext.request.contextPath}/fileupload/downloadAttachFile.do"
method="post">
<input type="text" name="subPathKey" id="subPathKey" value="fileupload.bbs.ancmnt.subpath" readonly />
<input type="text" name="fileId" id="fileId" value="" readonly />
<input type="text" name="fileSeq" id="fileSeq" value="" readonly />
<input type="text" name="fileName" id="fileName" value="" readonly />
</form>
</body>
</html>

View File

@ -45,30 +45,26 @@ function fn_list() {
$("#articleForm").submit();
}
// 파일 다운로드
function fn_downloadFile(fileId, fileSeq, fileName) {
if(fileId == null || fileId.trim().length < 1) {
function fn_downloadFile(attachFileId, fileSn) {
if(attachFileId == null || attachFileId.trim().length < 1) {
alert("파일정보를 확인해 주시기 바랍니다.[1]");
return;
}
if(fileSeq < 1) {
alert("파일정보를 확인해 주시기 바랍니다.[2]");
return;
}
if(fileName == null || fileName.trim().length < 1) {
if(fileSn == null) {
alert("파일정보를 확인해 주시기 바랍니다.[3]");
return;
}
$("#fileId").val(fileId);
$("#fileSeq").val(fileSeq);
$("#fileName").val(fileName);
$("#attachFileId").val(attachFileId);
$("#fileSn").val(fileSn);
$("#downloadFileForm").submit();
}
}
</script>
</head>
@ -118,7 +114,7 @@ function fn_downloadFile(fileId, fileSeq, fileName) {
// 파일정보 : 저장파일ID=원파일명
%>
<c:forEach var="attachFile" items="${article.attachFiles }">
<a href="javascript:void(0);" onclick="fn_downloadFile('${attachFile.fileId}', ${attachFile.fileSeq}, '${attachFile.fileName}')">${attachFile.fileName} (${attachFile.fileSize} byte(s))</a><br/>
<a href="javascript:void(0);" onclick="fn_downloadFile('${attachFile.attachFileId}', ${attachFile.fileSn})">${attachFile.orignlFileNm} (${attachFile.fileSize} byte(s))</a><br/>
</c:forEach>
</td>
</tr>
@ -144,10 +140,12 @@ function fn_downloadFile(fileId, fileSeq, fileName) {
<form name="downloadFileForm" id="downloadFileForm"
action="${pageContext.request.contextPath}/fileupload/downloadAttachFile.do"
method="post">
<input type="text" name="subPathKey" id="subPathKey" value="fileupload.bbs.ancmnt.subpath" readonly />
<input type="text" name="fileId" id="fileId" value="" readonly />
<input type="text" name="fileSeq" id="fileSeq" value="" readonly />
<input type="text" name="fileName" id="fileName" value="" readonly />
<input type="text" name="bdType" id="bdType" value="ANCMNT" readonly />
<input type="text" name="attachFileId" id="attachFileId" value="" readonly />
<input type="text" name="streFileNm" id="streFileNm" value="" readonly />
<input type="text" name="fileSn" id="fileSn" value="" readonly />
<input type="text" name="orignlFileNm" id="orignlFileNm" value="" readonly />
</form>
</body>