Files
vexplor/src/com/pms/service/BoardService.java
2025-08-21 09:41:46 +09:00

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;
}
}