354 lines
9.5 KiB
Java
354 lines
9.5 KiB
Java
package com.pms.service;
|
|
|
|
import java.sql.Clob;
|
|
import java.util.ArrayList;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpSession;
|
|
|
|
import org.apache.ibatis.session.SqlSession;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import com.pms.common.Message;
|
|
import com.pms.common.SqlMapConfig;
|
|
import com.pms.common.bean.PersonBean;
|
|
import com.pms.common.utils.CommonUtils;
|
|
import com.pms.common.utils.Constants;
|
|
|
|
@Service
|
|
public class BoardService {
|
|
|
|
/**
|
|
* 공지사항/Q&A의 목록을 가져온다.
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
public ArrayList getBoardList(HttpServletRequest request, Map paramMap){
|
|
ArrayList<HashMap<String,Object>> resultList = new ArrayList();
|
|
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
|
|
|
|
try{
|
|
String countPerPage = CommonUtils.checkNull(request.getParameter("countPerPage"), Constants.ADMIN_COUNT_PER_PAGE+"");
|
|
|
|
paramMap.put("COUNT_PER_PAGE", Integer.parseInt(countPerPage));
|
|
|
|
Map pageMap = (HashMap)sqlSession.selectOne("board.getBoardListCnt", paramMap);
|
|
pageMap = (HashMap)CommonUtils.setPagingInfo(request, pageMap);
|
|
|
|
paramMap.put("PAGE_END", CommonUtils.checkNull(pageMap.get("PAGE_END")));
|
|
paramMap.put("PAGE_START", CommonUtils.checkNull(pageMap.get("PAGE_START")));
|
|
|
|
resultList = (ArrayList)sqlSession.selectList("board.getBoardPagingList", paramMap);
|
|
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
}finally{
|
|
sqlSession.close();
|
|
}
|
|
return CommonUtils.toUpperCaseMapKey(resultList);
|
|
}
|
|
|
|
/**
|
|
* 공지사항 최신건
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
public List getpopupList(HttpServletRequest request,Map paramMap){
|
|
List<Map<String,Object>> resultList = new ArrayList();
|
|
SqlSession sqlSession = null;
|
|
try{
|
|
sqlSession = SqlMapConfig.getInstance().getSqlSession();
|
|
|
|
resultList = (ArrayList)sqlSession.selectList("board.getpopupList", paramMap);
|
|
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
}finally{
|
|
sqlSession.close();
|
|
}
|
|
|
|
return CommonUtils.toUpperCaseMapKey(resultList);
|
|
}
|
|
|
|
/**
|
|
* 공지사항/Q&A의 상세 정보를 가져온다.
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
public HashMap getBoardDetailInfo(HttpServletRequest request, Map paramMap){
|
|
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
|
|
HashMap<String,Object> detailMap = new HashMap();
|
|
try{
|
|
detailMap = (HashMap)sqlSession.selectOne("board.getBoardDetailInfo", paramMap);
|
|
|
|
// if(!detailMap.isEmpty()){
|
|
// String reqContents = CommonUtils.getClobToString((Clob)detailMap.get("REQ_CONTENTS"));
|
|
// detailMap.put("REQ_CONTENTS",reqContents);
|
|
// String resContents = CommonUtils.getClobToString((Clob)detailMap.get("RES_CONTENTS"));
|
|
// detailMap.put("RES_CONTENTS",resContents);
|
|
// }
|
|
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
}finally{
|
|
sqlSession.close();
|
|
}
|
|
return CommonUtils.toUpperCaseMapKey(detailMap);
|
|
}
|
|
|
|
/**
|
|
* 해당 게시물의 댓글 정보를 가져온다.
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
public ArrayList getBoardCommentsInfo(HttpServletRequest request, Map paramMap){
|
|
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
|
|
ArrayList<HashMap<String,Object>> commentsMap = new ArrayList();
|
|
try{
|
|
commentsMap = (ArrayList)sqlSession.selectList("board.getBoardCommentsInfo", paramMap);
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
}finally{
|
|
sqlSession.close();
|
|
}
|
|
return CommonUtils.toUpperCaseMapKey(commentsMap);
|
|
}
|
|
|
|
/**
|
|
* 해당 게시물의 댓글 정보를 가져온다.
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
public Map getBoardCommentsInfoMap(HttpServletRequest request, Map paramMap){
|
|
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
|
|
Map commentsMap = new HashMap();
|
|
try{
|
|
commentsMap = sqlSession.selectOne("board.getBoardCommentsInfoMap", paramMap);
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
}finally{
|
|
sqlSession.close();
|
|
}
|
|
return CommonUtils.toUpperCaseMapKey(commentsMap);
|
|
}
|
|
|
|
/**
|
|
* 공지사항/Q&A의 상세 정보를 가져온다.
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
public void saveQnaReqInfo(HttpServletRequest request, Map paramMap){
|
|
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
|
|
try{
|
|
sqlSession.update("board.mergeReqBoardInfo", paramMap);
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
}finally{
|
|
sqlSession.close();
|
|
}
|
|
}
|
|
/**
|
|
* Q&A의 정보를 삭제한다.
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
public void deleteQnaReqInfo(HttpServletRequest request, Map paramMap) {
|
|
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
|
|
try {
|
|
sqlSession.delete("board.deleteReqBoardInfo", paramMap);
|
|
} catch(Exception e) {
|
|
e.printStackTrace();
|
|
} finally {
|
|
sqlSession.close();
|
|
}
|
|
}
|
|
/**
|
|
* 공지사항/Q&A의 상세 정보를 가져온다.
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
public void saveQnaResInfo(HttpServletRequest request, Map paramMap){
|
|
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
|
|
try{
|
|
sqlSession.update("board.mergeResBoardInfo", paramMap);
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
}finally{
|
|
sqlSession.close();
|
|
}
|
|
}
|
|
/**
|
|
* 공지사항/Q&A의 상세 정보를 가져온다.
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
public void saveBoardInfo(HttpServletRequest request, Map paramMap){
|
|
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
|
|
try{
|
|
sqlSession.update("board.mergeBoardInfo", paramMap);
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
}finally{
|
|
sqlSession.close();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 공지사항 해당 리스트 팝업 내 삭제
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
public void delBoardInfo(HttpServletRequest request, Map paramMap){
|
|
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
|
|
try{
|
|
sqlSession.update("board.deleteBoardInfo", paramMap);
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
}finally{
|
|
sqlSession.close();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 공지사항 체크 리스트 삭제
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
public Map delBoardListInfo(HttpServletRequest request,Map paramMap){
|
|
Map resultMap = new HashMap();
|
|
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
|
|
|
|
try{
|
|
String check[] = request.getParameterValues("ListCheck");
|
|
|
|
System.out.println("ListCheck=" + check );
|
|
|
|
if(null != check && 0 < check.length){
|
|
for(int i=0; i<check.length; i++){
|
|
|
|
Map sqlParamMap = new HashMap();
|
|
|
|
String ListCheck = CommonUtils.checkNull(check[i]);
|
|
if(!"".equals(ListCheck)){
|
|
sqlParamMap.put("OBJECID", ListCheck);
|
|
sqlSession.delete("board.deleteBoardListInfo", sqlParamMap);
|
|
}
|
|
}
|
|
sqlSession.commit();
|
|
|
|
resultMap.put("result", true);
|
|
resultMap.put("msg", Message.DELETE_SUCCESS);
|
|
}
|
|
}catch(Exception e){
|
|
resultMap.put("result", false);
|
|
resultMap.put("msg", Message.DELETE_FAILED);
|
|
sqlSession.rollback();
|
|
throw e;
|
|
}finally{
|
|
sqlSession.close();
|
|
}
|
|
return resultMap;
|
|
}
|
|
|
|
/**
|
|
* 게시물 댓글을 작성한다.
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
public Map saveBoardContentsInfo(HttpServletRequest request, Map paramMap){
|
|
Map resultMap = new HashMap();
|
|
SqlSession sqlSession = null;
|
|
try{
|
|
HttpSession session = request.getSession();
|
|
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
|
|
|
|
paramMap.put("WRITER",CommonUtils.checkNull(person.getUserId()));
|
|
|
|
sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
|
|
|
|
sqlSession.update("board.mergeBoardContentsInfo", paramMap);
|
|
|
|
sqlSession.commit();
|
|
|
|
resultMap.put("result", true);
|
|
resultMap.put("msg", Message.SAVE_SUCCESS);
|
|
}catch(Exception e){
|
|
sqlSession.rollback();
|
|
|
|
resultMap.put("result", false);
|
|
resultMap.put("msg", Message.SAVE_FAILED);
|
|
|
|
e.printStackTrace();
|
|
}finally{
|
|
sqlSession.close();
|
|
}
|
|
return resultMap;
|
|
|
|
}
|
|
|
|
/**
|
|
* 게시물 댓글을 삭제한다.
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
public Map deleteBoardContentsInfo(HttpServletRequest request,Map paramMap){
|
|
Map resultMap = new HashMap();
|
|
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
|
|
|
|
try{
|
|
String checked[] = request.getParameterValues("commentCheck");
|
|
|
|
System.out.println("commentCheck=" + checked );
|
|
|
|
if(null != checked && 0 < checked.length){
|
|
for(int i=0;i<checked.length;i++){
|
|
Map sqlParamMap = new HashMap();
|
|
|
|
String commentCheck = CommonUtils.checkNull(checked[i]);
|
|
if(!"".equals(commentCheck)){
|
|
sqlParamMap.put("OBJID", commentCheck);
|
|
sqlSession.delete("board.deleteBoardContentsInfo", sqlParamMap);
|
|
}
|
|
}
|
|
sqlSession.commit();
|
|
|
|
resultMap.put("result", true);
|
|
resultMap.put("msg", Message.DELETE_SUCCESS);
|
|
}
|
|
}catch(Exception e){
|
|
resultMap.put("result", false);
|
|
resultMap.put("msg", Message.DELETE_FAILED);
|
|
sqlSession.rollback();
|
|
throw e;
|
|
}finally{
|
|
sqlSession.close();
|
|
}
|
|
return resultMap;
|
|
}
|
|
|
|
/**
|
|
* Main 화면의 공지사항/Q&A의 상세 정보를 가져온다.
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
public ArrayList getMainBoardList(HttpServletRequest request, Map paramMap){
|
|
ArrayList resultList = new ArrayList();
|
|
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
|
|
try{
|
|
|
|
//화면에서 보여질 갯수를 지정한다.
|
|
paramMap.put("viewCount", Constants.MAIN_VIEW_COUNT);
|
|
resultList = (ArrayList)sqlSession.selectList("board.getMainBoardList", paramMap);
|
|
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
}finally{
|
|
sqlSession.close();
|
|
}
|
|
return resultList;
|
|
}
|
|
}
|