You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
102 lines
4.2 KiB
102 lines
4.2 KiB
/* |
|
* To change this license header, choose License Headers in Project Properties. |
|
* To change this template file, choose Tools | Templates |
|
* and open the template in the editor. |
|
*/ |
|
|
|
package kr.co.kihyun.service; |
|
|
|
import java.util.List; |
|
import java.util.Map; |
|
import javax.jdo.PersistenceManager; |
|
import kr.co.kihyun.lang.MString; |
|
import org.slf4j.Logger; |
|
import org.slf4j.LoggerFactory; |
|
|
|
/** |
|
* |
|
* @author Kts |
|
*/ |
|
public class BoardService extends BaseService { |
|
private static final Logger LOG = LoggerFactory.getLogger(BoardService.class); |
|
|
|
/** |
|
* 기본생성자 |
|
*/ |
|
public BoardService() {} |
|
|
|
/** |
|
* 생성자 |
|
* @param pm PersistenceManager |
|
*/ |
|
public BoardService(PersistenceManager pm) { |
|
super(pm); |
|
} |
|
|
|
public void createBoardListQuery(Map params) throws Exception{ |
|
StringBuilder sbSearch = new StringBuilder(); |
|
String findOption = (String) params.get("findOption"); |
|
String findWord = (String) params.get("findWord"); |
|
|
|
sbSearch.append("SELECT \n"); |
|
sbSearch.append(" A0.POPUP_YN AS popupYn \n"); |
|
sbSearch.append(" , A0.ID AS id \n"); |
|
sbSearch.append(" , A0.WRITE_DATE AS writeDate \n"); |
|
sbSearch.append(" , A0.TITLE AS title \n"); |
|
sbSearch.append(" , A0.CONTENTS AS contents \n"); |
|
sbSearch.append(" , SP_CM_DEC_FU(US.NAME) AS userName \n"); |
|
sbSearch.append(" , DT.NAME AS deptName \n"); |
|
sbSearch.append(" , A0.VISIT AS visit \n"); |
|
sbSearch.append(" , CASE WHEN A0.ATTACHMENTS IS NOT NULL THEN 'Y' ELSE 'N' END isAttachments \n"); |
|
// sbSearch.append(" , ROWNUMBER() OVER() AS rowNo \n"); |
|
sbSearch.append("FROM \n"); |
|
sbSearch.append(" MOUMI_BOARD A0 \n"); |
|
sbSearch.append(" ,MOUMI_MUSER US \n"); |
|
sbSearch.append(" ,MOUMI_DEPT DT \n"); |
|
sbSearch.append("WHERE \n"); |
|
sbSearch.append(" US.ID = A0.USER_ID \n"); |
|
sbSearch.append(" AND US.DEPT_ID = DT.ID \n"); |
|
sbSearch.append(" AND US.DEPT_ID = DT.ID \n"); |
|
sbSearch.append(" AND A0.GROUP_ID = :groupId \n"); |
|
if (!MString.isNull(findOption) && !MString.isNull(findWord)) { |
|
if (findOption.equals("title")) { |
|
sbSearch.append(" AND A0.TITLE LIKE '%' || :findWord || '%' \n"); |
|
}else if (findOption.equals("mUser.name")) { |
|
sbSearch.append(" AND SP_CM_DEC_FU(US.NAME) LIKE '%' || :findWord || '%' \n"); |
|
} |
|
} |
|
|
|
//레코드갯수를 구하는 부모클래스의 함수를 호출하기 위해서 멤버변수에 저장 |
|
this.setCountQuery(sbSearch); |
|
//조건맵을 멤버변수에 저장 |
|
this.setParams(params); |
|
|
|
sbSearch.append("ORDER BY WRITEDATE DESC \n"); |
|
|
|
//검색쿼리를 멤버변수에 저장 |
|
this.setSearchQuery(sbSearch); |
|
|
|
if( LOG.isDebugEnabled() ) { |
|
LOG.debug("query={}", sbSearch.toString()); |
|
} |
|
} |
|
|
|
public void isAttachment(Map params) throws Exception{ |
|
StringBuilder sb = new StringBuilder(); |
|
|
|
Long boardId = (Long) params.get("boardId"); |
|
|
|
|
|
sb.append(" SELECT ID as id \n"); |
|
sb.append(" ,TITLE as title \n"); |
|
sb.append(" ,CONTENTS as contents \n"); |
|
sb.append(" ,CASE WHEN ATTACHMENTS IS NOT NULL THEN 'Y' ELSE 'N' END isAttachments \n"); |
|
sb.append(" FROM MOUMI_BOARD \n"); |
|
sb.append(" WHERE ID = :boardId \n"); |
|
|
|
this.setCountQuery(sb); |
|
this.setParams(params); |
|
this.setSearchQuery(sb); |
|
|
|
} |
|
}
|
|
|