diff --git a/src/main/java/nlib/bbs/service/ArticleVO.java b/src/main/java/nlib/bbs/service/ArticleVO.java index 2109d092..7110efe5 100644 --- a/src/main/java/nlib/bbs/service/ArticleVO.java +++ b/src/main/java/nlib/bbs/service/ArticleVO.java @@ -1,12 +1,17 @@ package nlib.bbs.service; +import java.util.List; + import nlib.cmm.service.PagingVO; +import nlib.util.StringUtil; public class ArticleVO extends PagingVO { private String articleId; /* 게시글ID */ private String mngOrgCd; /* 관리문화원코드 */ + private String mngOrgNm; /* 관리문화원명 */ private String bdType; /* 게시판유형 */ + private String bdTypeName; /* 게시판유형명 */ private String title; /* 제목 */ private String content; /* 내용 */ @@ -18,12 +23,27 @@ public class ArticleVO extends PagingVO { private int viewCnt; /* 조회수 */ private String bdAttachFileId; /* 첨부파일아이디 */ + private String attachYn; /* 첨부파일존재여부 */ private String regId; /* 등록자아이디 */ + private String regNm; /* 등록자명 */ private String regDd; /* 등록일자 */ private String modId; /* 등록자아이디 */ private String modDd; /* 등록일자 */ + private int rno; /* 글번호 */ + + // 검색관련 + private String searchType; /* 검색대상구분 */ + private String searchKeyword; /* 검색어 */ + + // 첨부파일 + private List attachFiles = null; /* 첨부파일목록 */ + + public int getAttachFileCnt() { + if(attachFiles == null) return 0; + return attachFiles.size(); + } public String getArticleId() { return articleId; @@ -115,6 +135,57 @@ public class ArticleVO extends PagingVO { public void setModDd(String modDd) { this.modDd = modDd; } - + public String getRegNm() { + return regNm; + } + public void setRegNm(String regNm) { + this.regNm = regNm; + } + public int getRno() { + return rno; + } + public void setRno(int rno) { + this.rno = rno; + } + public String getSearchType() { + return searchType; + } + public void setSearchType(String searchType) { + this.searchType = searchType; + } + public String getSearchKeyword() { + return searchKeyword; + } + public String getEscapeSearchKeyword() { + return StringUtil.getSqlSearchKeyword(searchKeyword); + } + public void setSearchKeyword(String searchKeyword) { + this.searchKeyword = searchKeyword; + } + public String getAttachYn() { + return attachYn; + } + public void setAttachYn(String attachYn) { + this.attachYn = attachYn; + } + public String getMngOrgNm() { + return mngOrgNm; + } + public void setMngOrgNm(String mngOrgNm) { + this.mngOrgNm = mngOrgNm; + } + public String getBdTypeName() { + return bdTypeName; + } + public void setBdTypeName(String bdTypeName) { + this.bdTypeName = bdTypeName; + } + public List getAttachFiles() { + return attachFiles; + } + public void setAttachFiles(List attachFiles) { + this.attachFiles = attachFiles; + } + } diff --git a/src/main/java/nlib/bbs/service/impl/AncmntDAO.java b/src/main/java/nlib/bbs/service/impl/AncmntDAO.java index 721ce74c..cd22f369 100644 --- a/src/main/java/nlib/bbs/service/impl/AncmntDAO.java +++ b/src/main/java/nlib/bbs/service/impl/AncmntDAO.java @@ -37,34 +37,10 @@ import nlib.util.StringUtil; * */ @Mapper("ancmntDAO") -public interface AncmntDAO { +public interface AncmntDAO extends BoardDAO { - /* - * 게시글 목록을 조회한다. + /* + * BoardDAO 상속 내용과 동일 */ - public List listArticles(ArticleVO ArticleVO) throws Exception; - - - /** - * 게시글 건수를 조회한다. - */ - public int countArticles(ArticleVO ArticleVO) throws Exception; - /** - * 조회수를 증가시킨다. - * - * @param - * @return - * @throws Exception - */ - public int updateRead(ArticleVO notiVO) throws Exception; - - /** - * 게시글 상세 내용을 조회한다. - * - * @param - * @return - * @throws Exception - */ - public ArticleVO selectArticle(ArticleVO notiVO) throws Exception; } diff --git a/src/main/java/nlib/bbs/service/impl/AncmntServiceImpl.java b/src/main/java/nlib/bbs/service/impl/AncmntServiceImpl.java index 077c2952..3e179132 100644 --- a/src/main/java/nlib/bbs/service/impl/AncmntServiceImpl.java +++ b/src/main/java/nlib/bbs/service/impl/AncmntServiceImpl.java @@ -10,54 +10,19 @@ import org.springframework.stereotype.Service; import nlib.bbs.service.ArticleVO; import nlib.bbs.service.BoardService; +import nlib.util.StringUtil; @Service("ancmntService") -public class AncmntServiceImpl implements BoardService +public class AncmntServiceImpl extends BoardServiceImpl { - private static final Logger log = LoggerFactory.getLogger(AncmntServiceImpl.class); + static Logger log = LoggerFactory.getLogger(AncmntServiceImpl.class); @Resource(name="ancmntDAO") - private AncmntDAO ancmntDAO; + AncmntDAO ancmntDAO; - - /* - * 게시글 목록을 조회한다. - */ - public List listArticles(ArticleVO articleVO) throws Exception { - - return ancmntDAO.listArticles(articleVO); + @Override + public BoardDAO getBoardDAO() { + return ancmntDAO; } - - /** - * 게시글 건수를 조회한다. - */ - public int countArticles(ArticleVO articleVO) throws Exception { - - return ancmntDAO.countArticles(articleVO); - } - - /** - * 조회수를 증가시킨다. - * - * @param - * @return - * @throws Exception - */ - public int updateRead(ArticleVO articleVO) throws Exception { - return ancmntDAO.updateRead(articleVO); - } - - /** - * 게시글 상세 내용을 조회한다. - * - * @param - * @return - * @throws Exception - */ - public ArticleVO selectArticle(ArticleVO articleVO) throws Exception { - updateRead(articleVO); - return ancmntDAO.selectArticle(articleVO); - } - } \ No newline at end of file diff --git a/src/main/java/nlib/bbs/service/impl/BoardDAO.java b/src/main/java/nlib/bbs/service/impl/BoardDAO.java index 13b8ee7f..0372bc77 100644 --- a/src/main/java/nlib/bbs/service/impl/BoardDAO.java +++ b/src/main/java/nlib/bbs/service/impl/BoardDAO.java @@ -10,13 +10,14 @@ import egovframework.com.cmm.service.impl.EgovComAbstractDAO; import egovframework.rte.psl.dataaccess.mapper.Mapper; import nlib.cmm.service.NotificationVO; import nlib.bbs.service.ArticleVO; +import nlib.bbs.service.AttachFileVO; import nlib.cmm.service.NlibProperty; import nlib.user.service.NlibLoginVO; import nlib.util.StringUtil; /** *
- * @Class Name : AncmntDAO.java
+ * @Class Name : BoardDAO.java
  * 
  * @Description : 공지사항 정보 제공 DAO 
  * 
@@ -67,4 +68,15 @@ public interface BoardDAO {
 	 * @throws Exception
 	 */
 	public ArticleVO selectArticle(ArticleVO notiVO) throws Exception;
+	
+
+	/**
+	 * 첨부파일 목록을 조회한다.  
+	 * 
+	 * @param
+	 * @return
+	 * @throws Exception
+	 */
+	public List listAttachFiles(String attachFileId) throws Exception;
+	
 }
diff --git a/src/main/java/nlib/bbs/service/impl/BoardServiceImpl.java b/src/main/java/nlib/bbs/service/impl/BoardServiceImplApi.java
similarity index 94%
rename from src/main/java/nlib/bbs/service/impl/BoardServiceImpl.java
rename to src/main/java/nlib/bbs/service/impl/BoardServiceImplApi.java
index b36d88cb..058c263d 100644
--- a/src/main/java/nlib/bbs/service/impl/BoardServiceImpl.java
+++ b/src/main/java/nlib/bbs/service/impl/BoardServiceImplApi.java
@@ -12,9 +12,9 @@ import nlib.restful.service.DataApiReqVO;
 import nlib.restful.service.DataApiResVO;
 
 @Service("boardService")
-public class BoardServiceImpl implements BoardServiceApi
+public class BoardServiceImplApi implements BoardServiceApi
 {
-	private static final Logger log = LoggerFactory.getLogger(BoardServiceImpl.class);
+	private static final Logger log = LoggerFactory.getLogger(BoardServiceImplApi.class);
 	
 	@Resource(name = "boardDAO")
 	private BoardDAOApi boardDAO;
diff --git a/src/main/java/nlib/bbs/web/AncmntController.java b/src/main/java/nlib/bbs/web/AncmntController.java
index fac6d034..7639cdd2 100644
--- a/src/main/java/nlib/bbs/web/AncmntController.java
+++ b/src/main/java/nlib/bbs/web/AncmntController.java
@@ -47,23 +47,11 @@ public class AncmntController extends NlibCommonController
 	public String listAncmnts(
 			HttpServletRequest req, 
 			@RequestParam Map paramMap,
-			ArticleVO articleVO,
+			ArticleVO searchArticleVO,
 			ModelMap model
 			) throws Exception {
 
-		int pageIndex = StringUtil.toNumber(paramMap.get("pageIndex"), 1);
-		int pageSize  = StringUtil.toNumber(paramMap.get("pageSize"), DEFUALT_PAGE_SIZE);
-		
-		log.debug("listAncmnt > pageIndex = " + pageIndex);
-		log.debug("listAncmnt > pageSize = " + pageSize);
-    	
-		ArticleVO searchArticleVO = new ArticleVO();
-		searchArticleVO.setPageIndex(pageIndex);
-		searchArticleVO.setPageSize(pageSize);
-		
-		model.addAttribute("searchArticleVO", searchArticleVO);
-		model.addAttribute("pageSize", pageSize);
-		model.addAttribute("pageIndex", pageIndex);
+		model.addAttribute("searchArticle", searchArticleVO);
     	
     	return "nlib/bbs/listAncmnts";
 	}
@@ -75,22 +63,17 @@ public class AncmntController extends NlibCommonController
 	 * @return
 	 */
 	@RequestMapping(value="/bbs/listAncmntsAjax.do")
-	public ResponseEntity listAncmntsAjax(HttpServletRequest req, 
-			Authentication authentication, @RequestBody Map paramMap) throws Exception {
+	public ResponseEntity listAncmntsAjax(
+			HttpServletRequest req, 
+			Authentication authentication,
+			@RequestBody ArticleVO searchArticleVO) throws Exception {
 
-		int pageIndex = StringUtil.toNumber(paramMap.get("pageIndex"), 1);
-		int pageSize  = StringUtil.toNumber(paramMap.get("pageSize"), DEFUALT_PAGE_SIZE);
+		if(searchArticleVO.getPageIndex() < 1) searchArticleVO.setPageIndex(1);
+		if(searchArticleVO.getPageSize() < 1) searchArticleVO.setPageSize(DEFUALT_PAGE_SIZE);
 		
-		log.debug("listNotificationsAjax > pageIndex = " + pageIndex);
-		log.debug("listNotificationsAjax > pageSize = " + pageSize);
+		List list = ancmntService.listArticles(searchArticleVO);
 		
-
-		ArticleVO searchNotificationtVO = new ArticleVO();
-		searchNotificationtVO.setPageIndex(pageIndex);
-		searchNotificationtVO.setPageSize(pageSize);
-		List list = ancmntService.listArticles(searchNotificationtVO);
-		
-		int totRecordCount = ancmntService.countArticles(searchNotificationtVO);
+		int totRecordCount = ancmntService.countArticles(searchArticleVO);
 		
 		//-------------------------------
 		// JSON변환 응답 처리
@@ -107,41 +90,22 @@ public class AncmntController extends NlibCommonController
 	}
 
 
-//	/**
-//	 * 알림 상세 내용 조회한다.
-//	 * 
-//	 * @param req
-//	 * @return
-//	 */
-//	@RequestMapping("/cmm/selectNotificationAjax.do")
-//	public ResponseEntity selectNotificationAjax(HttpServletRequest req, Authentication authentication, @RequestBody Map paramMap) throws Exception {
-//
-//		String notiId = paramMap.get("notiId"); // 알림ID 
-//		String pageIndex = paramMap.get("pageIndex");
-//		String pageSize = paramMap.get("pageSize");
-//		
-//		log.debug("selectNotificationAjax > notiId = " + notiId);
-//		
-//		ArticleVO paramNotiVO = new ArticleVO();
-//		paramNotiVO.setNotiId(notiId);
-//		paramNotiVO.setRecvUserId(getMbInfoId(req));
-//		paramNotiVO.setPageIndex(pageIndex);
-//		paramNotiVO.setPageSize(pageSize);
-//		
-//		// 읽음처리 및 상세내용 조회 
-//		ArticleVO articleVO = ancmntService.selectNotification(paramNotiVO);
-//
-//		//-------------------------------
-//		// JSON변환 응답 처리
-//		//-------------------------------
-//    	// JS-GRID 페이징 처리를 포함한 응답값 처리
-//    	// {data: [{...}], 
-//    	//  itemsCount: 255
-//    	// }
-//    	HashMap retMap = new HashMap();
-//    	retMap.put("data", articleVO);
-//    	
-//    	return makeResponseEntityJson(retMap);
-//	}
-//	
+	/**
+	 * 알림 상세 내용 조회한다.
+	 * 
+	 * @param req
+	 * @return
+	 */
+	@RequestMapping("/bbs/selectAncmntArticle.do")
+	public String selectAncmntArticle(HttpServletRequest req, Authentication authentication, ArticleVO searchArticleVO, ModelMap model) throws Exception {
+
+		// 읽음처리 및 상세내용 조회 
+		ArticleVO articleVO = ancmntService.selectArticle(searchArticleVO);
+
+		model.addAttribute("searchArticle", searchArticleVO);
+		model.addAttribute("article", articleVO);
+    	
+    	return "nlib/bbs/selectAncmntArticle";
+	}
+	
 }
\ No newline at end of file
diff --git a/src/main/java/nlib/cmm/fileupload/FileUploadController.java b/src/main/java/nlib/cmm/fileupload/FileUploadController.java
index a4e65e58..0bcf8ecb 100644
--- a/src/main/java/nlib/cmm/fileupload/FileUploadController.java
+++ b/src/main/java/nlib/cmm/fileupload/FileUploadController.java
@@ -2,7 +2,6 @@ package nlib.cmm.fileupload;
 
 import java.io.File;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
@@ -13,7 +12,6 @@ import javax.servlet.http.HttpServletResponse;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
@@ -28,8 +26,8 @@ import org.springframework.web.servlet.ModelAndView;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 
-import egovframework.com.cmm.EgovWebUtil;
 import egovframework.com.cmm.service.FileVO;
+import nlib.bbs.service.AttachFileVO;
 import nlib.cmm.exception.ErrorMessage;
 import nlib.cmm.service.NlibProperty;
 import nlib.util.FileUtil;
@@ -63,19 +61,16 @@ public class FileUploadController {
 
 	private static final Logger log = LoggerFactory.getLogger(FileUploadController.class);
 
-	@Resource(name="nlibProperty")
-	NlibProperty nlibProperty;
-	
 	
 	/**
 	 * 첨부파일이 저장되는 최상위 위치 
 	 */
-	private String FILEUPLOAD_BASE_PATH = nlibProperty.getProperty("fileupload.base.path");
+	private String FILEUPLOAD_BASE_PATH = NlibProperty.getProperty("fileupload.base.path");
 	
 	/**
 	 * 첨부파일 임시 저장 위치 
 	 */
-	private String FILEUPLOAD_TEMP_SUBPATH = nlibProperty.getProperty("fileupload.temp.subpath");
+	private String FILEUPLOAD_TEMP_SUBPATH = NlibProperty.getProperty("fileupload.temp.subpath");
 
 	/**
 	 * 경로 부적합 오류 메시지 
@@ -121,7 +116,7 @@ public class FileUploadController {
 				ErrorMessage errorMessage = new ErrorMessage("ERROR", message);
 				return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(errorMessage);
 			}
-			String subPath = nlibProperty.getProperty(subPathKey);
+			String subPath = NlibProperty.getProperty(subPathKey);
 			if(StringUtil.isEmpty(subPath)) {
 				message = "첨부파일이 저장되는 하위 위치정보값을 찾을 수 없습니다.";
 				log.error(message + " : 매개변수 subPathKey의 속성값 부재");
@@ -222,16 +217,16 @@ public class FileUploadController {
 	 * @return
 	 * @throws Exception
 	 */
-	@RequestMapping(value="/fileupload/downloadFiles.do")
-	public ModelAndView download(@RequestParam HashMap params, ModelAndView mv) throws Exception {
+	@RequestMapping(value="/fileupload/downloadAttachFile.do")
+	public ModelAndView downloadAttachFile(AttachFileVO attachFileVO, ModelAndView mv) throws Exception {
 		
 		// TODO 권한 설정 기능 추가 필요 
 		
-		String fid = (String) params.get("fid");
-		String fname = (String) params.get("fname");
-		String subPath = nlibProperty.getProperty((String) params.get("subPathKey"));
+		String subPath = NlibProperty.getProperty(attachFileVO.getSubPathKey());
+		String fullPath = FILEUPLOAD_BASE_PATH + "/" + subPath + "/" + attachFileVO.getFileId() + "-" + attachFileVO.getFileSeq();
+		
+		log.debug("downloadAttachFile > fullPath = " + fullPath);
 		
-		String fullPath = FILEUPLOAD_BASE_PATH + "/" + subPath + "/" + fid;
 		if(FileUtil.isNotValid(fullPath)) {
 			throw new Exception(MSG_NOT_VALID_FILE_PATH);
 		}
@@ -243,7 +238,7 @@ public class FileUploadController {
 		
 		mv.setViewName("downloadView"); // dispatcher-servlet.xml내 BeanNameViewResolver 정의 
 		mv.addObject("downloadFile", file);
-		mv.addObject("fname", fname);
+		mv.addObject("fname", attachFileVO.getFileName());
 		
 		return mv;
 	}
diff --git a/src/main/java/nlib/cmm/service/NotificationVO.java b/src/main/java/nlib/cmm/service/NotificationVO.java
index 4067fef2..57dd86b4 100644
--- a/src/main/java/nlib/cmm/service/NotificationVO.java
+++ b/src/main/java/nlib/cmm/service/NotificationVO.java
@@ -15,6 +15,7 @@ public class NotificationVO extends PagingVO {
 	private String recvUserId; 	/* 알림대상자 회원아이디 */
 	private String readYn;      /* 알림확인여부 */
 	private int    totCnt = 0;  /* 알림건수(최근1개월) */
+	private int    rno = 0;     /* 행번호 */
 	
 	public String getNotiId() {
 		return notiId;
@@ -88,5 +89,11 @@ public class NotificationVO extends PagingVO {
 	public void setNotiTypeNm(String notiTypeNm) {
 		this.notiTypeNm = notiTypeNm;
 	}
+	public int getRno() {
+		return rno;
+	}
+	public void setRno(int rno) {
+		this.rno = rno;
+	}
 	
 }
diff --git a/src/main/java/nlib/cmm/service/PagingVO.java b/src/main/java/nlib/cmm/service/PagingVO.java
index d16e97c5..a14e66ad 100644
--- a/src/main/java/nlib/cmm/service/PagingVO.java
+++ b/src/main/java/nlib/cmm/service/PagingVO.java
@@ -2,8 +2,10 @@ package nlib.cmm.service;
 
 public class PagingVO {
 
+	public final int DEFAULT_PAGE_SIZE = NlibProperty.getInt("list.paging.page.size", 10);
+	
 	int pageIndex = 1; 		/* 페이지 번호 */
-	int pageSize = NlibProperty.getInt("list.paging.page.size", 10); /* 페이지 크기 (1페이지당 보여줄 자료건수) */
+	int pageSize = DEFAULT_PAGE_SIZE; /* 페이지 크기 (1페이지당 보여줄 자료건수) */
 	int totRecordCount;	/* 총건수 */
 	
 	public int getPageIndex() {
@@ -11,7 +13,8 @@ public class PagingVO {
 	}
 	
 	public void setPageIndex(int pageIndex) {
-		this.pageIndex = pageIndex;
+		if(pageIndex < 1) pageIndex = 1;
+		else this.pageIndex = pageIndex;
 	}
 	
 	public void setPageIndex(String sPageIndex) {
@@ -27,7 +30,8 @@ public class PagingVO {
 	}
 	
 	public void setPageSize(int pageSize) {
-		this.pageSize = pageSize;
+		if(pageSize < 1) pageSize = DEFAULT_PAGE_SIZE;
+		else this.pageSize = pageSize;
 	}
 	
 	public void setPageSize(String sPageSize) {
diff --git a/src/main/java/nlib/col/service/impl/CollectionDAO.java b/src/main/java/nlib/col/service/impl/CollectionDAO.java
index 3fc9fdc8..b4d9ff11 100644
--- a/src/main/java/nlib/col/service/impl/CollectionDAO.java
+++ b/src/main/java/nlib/col/service/impl/CollectionDAO.java
@@ -5,7 +5,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Repository;
 
-import nlib.bbs.service.impl.BoardDAO;
+import nlib.bbs.service.impl.BoardDAOApi;
 import nlib.restful.DataApi;
 import nlib.restful.service.DataApiReqVO;
 import nlib.restful.service.DataApiResVO;
diff --git a/src/main/java/nlib/col/web/CollectionController.java b/src/main/java/nlib/col/web/CollectionController.java
index 0120b648..a9504b53 100644
--- a/src/main/java/nlib/col/web/CollectionController.java
+++ b/src/main/java/nlib/col/web/CollectionController.java
@@ -79,7 +79,6 @@ public class CollectionController extends NlibCommonController
 		// REQ VO 구성 
 		//-------------------------------
     	DataApiReqVO reqVO = new DataApiReqVO();
-    	reqVO.setAuthKey(createAuthKey(req, authentication));
     	reqVO.setPageIndex(pageIndex);
     	reqVO.setPageSize(pageSize);
     	reqVO.addInfoItem("searchKeyword", searchKeyword);
@@ -143,7 +142,6 @@ public class CollectionController extends NlibCommonController
 				// REQ VO 구성 
 				//-------------------------------
 		    	DataApiReqVO reqVO = new DataApiReqVO();
-		    	reqVO.setAuthKey(createAuthKey(req, authentication));
 		    	reqVO.setPageIndex(pageIndex);
 		    	reqVO.setPageSize(pageSize);
 		    	reqVO.addInfoItem("boardNo", "QNA");       // 게시판ID
@@ -203,7 +201,6 @@ public class CollectionController extends NlibCommonController
 		// REQ VO 구성 
 		//-------------------------------
     	DataApiReqVO reqVO = new DataApiReqVO();
-    	reqVO.setAuthKey(createAuthKey(req, authentication));
     	reqVO.setPageIndex(pageIndex);
     	reqVO.setPageSize(pageSize);
     	reqVO.addInfoItem("searchKeyword", searchKeyword);
diff --git a/src/main/java/nlib/util/StringUtil.java b/src/main/java/nlib/util/StringUtil.java
index 5882e9bd..a8a921e1 100644
--- a/src/main/java/nlib/util/StringUtil.java
+++ b/src/main/java/nlib/util/StringUtil.java
@@ -181,4 +181,14 @@ public class StringUtil extends StringUtils {
 		
 		return url + delim + name + "=" + getString(value, "");
 	}
+	
+	public static String getSqlSearchKeyword(String str) {
+
+		if(isNotEmpty(str)) {
+			String ret = str.replaceAll("\\%", "\\\\%");
+			return ret.replaceAll("_", "\\\\_");
+	    }
+		
+		return str;
+	}
 }
diff --git a/src/main/resources/egovframework/mapper/config/mapper-config.xml b/src/main/resources/egovframework/mapper/config/mapper-config.xml
index 51a0648a..e1f3607a 100644
--- a/src/main/resources/egovframework/mapper/config/mapper-config.xml
+++ b/src/main/resources/egovframework/mapper/config/mapper-config.xml
@@ -18,6 +18,8 @@
         
         
         
+        
+        
     
     
 
\ No newline at end of file
diff --git a/src/main/resources/egovframework/mapper/nlib/bbs/AncmntDAO_SQL.xml b/src/main/resources/egovframework/mapper/nlib/bbs/AncmntDAO_SQL.xml
index 3bb6ae60..24251c6b 100644
--- a/src/main/resources/egovframework/mapper/nlib/bbs/AncmntDAO_SQL.xml
+++ b/src/main/resources/egovframework/mapper/nlib/bbs/AncmntDAO_SQL.xml
@@ -3,12 +3,68 @@
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 
 
+    
+        
+        
+        
+            
+            AND S.TITLE LIKE CONCAT('%', #{escapeSearchKeyword}, '%')
+            
+        
+        
+            
+            AND S.CONTENT LIKE CONCAT('%', #{escapeSearchKeyword}, '%')
+            
+        
+        
+    
+    
  	
+ 	
+    
+ 	
+    
- 	
-    
- 	
-    
+        SELECT 
+              A.FILE_MASK
+            , A.FILE_ID
+            , A.FILE_SEQ
+            , A.FILE_NAME
+            , A.FILE_SIZE
+            , A.FILE_TYPE_CD
+            , A.DOWNLOAD_COUNT
+            , A.DOWNLOAD_EXPIRE_DATE
+            , A.DOWNLOAD_LIMIT_COUNT
+            , DATE_FORMAT(A.REG_DATE, '%Y-%m-%d') AS REG_DD
+            , A.DELETE_YN
+            , A.STREAMING_URL
+            , A.CONTENT
+            , A.ATCH_TYPE_CD
+        FROM J_ATTACHFILE A
+        WHERE A.FILE_ID = #{attachFileId}
+        ORDER BY A.FILE_SEQ
     
     
     
diff --git a/src/main/resources/egovframework/mapper/nlib/cmm/NotificationDAO_SQL.xml b/src/main/resources/egovframework/mapper/nlib/cmm/NotificationDAO_SQL.xml
index 50d68f5c..830b377f 100644
--- a/src/main/resources/egovframework/mapper/nlib/cmm/NotificationDAO_SQL.xml
+++ b/src/main/resources/egovframework/mapper/nlib/cmm/NotificationDAO_SQL.xml
@@ -40,9 +40,11 @@
             , IF(A.READ_DD IS NULL, 'N', 'Y') AS READ_YN
             , DATE_FORMAT(A.REG_DD, '%Y-%M-%D') AS REG_DD
             , COUNT(A.NOTI_ID) OVER(PARTITION BY 1) AS TOT_CNT 
+            , A2.RNO
         FROM SM_NOTIFICATION A
         INNER JOIN (
             SELECT S.NOTI_ID
+                 , ROW_NUMBER() OVER() AS RNO
             FROM SM_NOTIFICATION S
             WHERE S.RECV_USER_ID = #{recvUserId}
             AND S.REG_DD > DATE_SUB(NOW(), INTERVAL 1 MONTH)
diff --git a/src/main/resources/nlib/nlib.properties b/src/main/resources/nlib/nlib.properties
index fd365f3f..3b2d31a0 100644
--- a/src/main/resources/nlib/nlib.properties
+++ b/src/main/resources/nlib/nlib.properties
@@ -83,6 +83,7 @@ fileupload.temp.subpath = /temp
 
 # \ubb3b\uace0\ub2f5\ud558\uae30 \uac8c\uc2dc\ud310 \uc11c\ube0c\uc704\uce58 : \ucca8\ubd80\ud30c\uc77c \ucd5c\uc0c1\uc704 \uc704\uce58 \uc774\ud558\uc758 \uc704\uce58 \uc815\ubcf4\ub97c \uc124\uc815 
 fileupload.bbs.qna.subpath = /bbs/qna
+fileupload.bbs.ancmnt.subpath = /bbs/ancmnt
 
 # \uba54\uc77c \uacbd\ub85c
 mailing.sender.membership.template = C:/iams/workspace/nlib/src/main/webapp/mail/mail_template.html
diff --git a/src/main/webapp/WEB-INF/jsp/nlib/bbs/listAncmnts.jsp b/src/main/webapp/WEB-INF/jsp/nlib/bbs/listAncmnts.jsp
index 17d04529..bbed5b1a 100644
--- a/src/main/webapp/WEB-INF/jsp/nlib/bbs/listAncmnts.jsp
+++ b/src/main/webapp/WEB-INF/jsp/nlib/bbs/listAncmnts.jsp
@@ -63,11 +63,19 @@
                  var pageIndex = ( filter && filter.pageIndex ? filter.pageIndex : $("#pageIndex").val());
                  var pageSize  = ( filter && filter.pageSize  ? filter.pageSize  : $("#pageSize").val());
                  
+                 var searchType = $("#searchType").val();
+                 var searchKeyword = $("#searchKeyword").val();
+                 
+                 
                  $("#pageIndex").val(pageIndex);
+                 
 
                  var inputData = {
-                           "pageIndex" : pageIndex
-                         , "pageSize": pageSize};
+                           "pageIndex"  : pageIndex
+                         , "pageSize"   : pageSize
+                         , "searchType" : searchType
+                         , "searchKeyword"    : searchKeyword
+                     };
                  
                  
                  //--------------------------------------
@@ -116,12 +124,11 @@
          //======================================
          fields: [
              { title:"ID",   name: "articleId" , type: "text", width: 200, align: "left" },
-             { title:"알림방법",   name: "notiMethod" , type: "text", width: 100, align: "center"},
-             { title:"구분코드",   name: "notiTypeCd" , type: "text", width: 100, align: "center"},
-             { title:"구분",   name: "notiTypeNm" , type: "text", width: 100, align: "center"},
+             { title:"번호",   name: "rno" , type: "text", width: 200, align: "center" },
              { title:"제목",   name: "title"      , type: "text", width: 200, align: "left" },
-             { title:"확인여부",   name: "readYn"      , type: "text", width: 100, align: "center"},
-             { title:"날짜",   name: "regDd"      , type: "text", width: 100, align: "center"}
+             { title:"등록자",   name: "regNm"      , type: "text", width: 100, align: "center"},
+             { title:"등록일",   name: "regDd"      , type: "text", width: 100, align: "center"},
+             { title:"첨부",   name: "bdAttachFileId"      , type: "text", width: 100, align: "center"}
          ]
      });
 
@@ -137,47 +144,17 @@
 
 
  // 선택한 글 상세 보기로 이동
- function fn_viewDetail(articleId, selectedRow) {
+ function fn_viewDetail(articleId) {
 
-     var $selectedRow = $(selectedRow);
-     var reqUrl = "${pageContext.request.contextPath}/bbs/selectAncmntAjax.do";
-     var inputData = { "articleId" : articleId };
-     
-     //--------------------------------------
-     // 요청 처리 
-     //--------------------------------------
-     $.ajax({
-         type: "post",
-         contentType: "application/json; charset=utf-8",
-         url: reqUrl,
-         dataType: "json",
-         data: JSON.stringify(inputData),
-     }).done(function(response){
-         var jsonObj = JSON.parse(response);
-         $("#jsGrid").find('table tr.answer').remove();
-         //alert("DDDDDDDD remove = " + $("#jsGrid")[0].scrollHeight);
-         
-        $("#jsGrid").jsGrid("rowByItem", $selectedRow).data("JSGridItem")["readYn"] = jsonObj.data.readYn;
-        $selectedRow.find('td').eq(GRID_INDEX_OF_READYN).text(jsonObj.data.readYn);
-        
-        $selectedRow.after("" + jsonObj.data.content
-                 + "
" + jsonObj.data.content - + "
" + jsonObj.data.content - + "
" + jsonObj.data.content - + "
알림확인여부=" + jsonObj.data.readYn - + "
알림일자=" + jsonObj.data.regDd - + ""); - }); - - $("#jsGrid").closest('.ui-jqgrid-bdiv').width($("#jsGrid").closest('.ui-jqgrid-bdiv').width() + 1); - + $("#articleId").val(articleId); + $("#articleForm").submit(); } // 그리드 데이터 조회 호출 function fn_searchArticle(pageSize, pageIndex) { $("#jsGrid").jsGrid("search" - , {'pageSize' : (pageSize ? pageSize : fn_getIntValue("pageSize", ${pageSize}) ), - 'pageIndex' : (pageIndex ? pageIndex : fn_getIntValue("pageIndex", ${pageIndex})) + , {'pageSize' : (pageSize ? pageSize : fn_getIntValue("pageSize", ${searchArticle.pageSize}) ), + 'pageIndex' : (pageIndex ? pageIndex : fn_getIntValue("pageIndex", ${searchArticle.pageIndex})) } ); } @@ -193,15 +170,21 @@  
-
+ - + - - + + + + +
diff --git a/src/main/webapp/WEB-INF/tiles/inc/menu.jsp b/src/main/webapp/WEB-INF/tiles/inc/menu.jsp index 20dcb569..139299e3 100644 --- a/src/main/webapp/WEB-INF/tiles/inc/menu.jsp +++ b/src/main/webapp/WEB-INF/tiles/inc/menu.jsp @@ -6,7 +6,7 @@
  • 인사말
  • 이용안내
  • 공지사항
  • -
  • 공지사항(DB)
  • +
  • 공지사항(DB)
  • 자주하는질문
  • 묻고답하기
  • 찾아오시는길
  • diff --git a/src/main/webapp/temp/test.html b/src/main/webapp/temp/test.html index b8ff83a1..5b8c364f 100644 --- a/src/main/webapp/temp/test.html +++ b/src/main/webapp/temp/test.html @@ -8,8 +8,10 @@ +