Merge branch 'hylee' into advc

This commit is contained in:
hylee 2023-11-17 11:30:49 +09:00
commit 3421d4f7f7
16 changed files with 1871 additions and 1187 deletions

View File

@ -1,273 +1,274 @@
package kcc.let.cop.bbs.service.impl;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import egovframework.rte.fdl.property.EgovPropertyService;
import egovframework.rte.psl.dataaccess.util.EgovMap;
import kcc.com.cmm.ComDefaultVO;
import kcc.let.cop.bbs.service.BoardMaster;
import kcc.let.cop.bbs.service.BoardMasterVO;
import kcc.let.cop.bbs.service.BoardVO;
import kcc.let.cop.bbs.service.EgovBBSAttributeManageService;
import kcc.let.cop.com.service.EgovUserInfManageService;
import kcc.let.cop.com.service.impl.BBSUseInfoManageDAO;
/**
* 게시판 속성관리를 위한 서비스 구현 클래스
* @author 공통 서비스 개발팀 이삼섭
* @since 2009.03.24
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.03.24 이삼섭 최초 생성
* 2009.06.26 한성곤 2단계 기능 추가 (댓글관리, 만족도조사)
* 2011.08.31 JJY 경량환경 템플릿 커스터마이징버전 생성
*
* </pre>
*/
@Service("EgovBBSAttributeManageService")
public class EgovBBSAttributeManageServiceImpl extends EgovAbstractServiceImpl implements EgovBBSAttributeManageService {
@Resource(name = "BBSAttributeManageDAO")
private BBSAttributeManageDAO attrbMngDAO;
@Resource(name = "BBSUseInfoManageDAO")
private BBSUseInfoManageDAO bbsUseDAO;
@Resource(name = "EgovUserInfManageService")
private EgovUserInfManageService userService;
@Resource(name = "egovBBSMstrIdGnrService")
private EgovIdGnrService idgenService;
@Resource(name = "propertiesService")
protected EgovPropertyService propertyService;
/**
* 등록된 게시판 속성정보를 삭제한다.
*
* @see kcc.let.cop.bbs.brd.service.EgovBBSAttributeManageService#deleteBBSMasterInf(kcc.let.cop.bbs.brd.service.BoardMaster)
*/
public void deleteBBSMasterInf(BoardMaster boardMaster) throws Exception {
attrbMngDAO.deleteBBSMasterInf(boardMaster);
// BoardUseInf bdUseInf = new BoardUseInf();
//
// bdUseInf.setBbsId(boardMaster.getBbsId());
// bdUseInf.setLastUpdusrId(boardMaster.getLastUpdusrId());
//
// bbsUseDAO.deleteBBSUseInfByBoardId(bdUseInf);
}
/**
* 게시판 속성 정보의 목록을 조회 한다.
*
* @see kcc.let.cop.bbs.brd.service.EgovBBSAttributeManageService#selectAllBBSMasteInf(kcc.let.cop.bbs.brd.service.BoardMasterVO)
*/
public List<BoardMasterVO> selectAllBBSMasteInf(BoardMasterVO vo) throws Exception {
return attrbMngDAO.selectAllBBSMasteInf(vo);
}
/**
* 게시판 속성 정보의 목록을 조회 한다.
*
* @see kcc.let.cop.bbs.brd.service.EgovBBSAttributeManageService#selectBBSMasterInfs(kcc.let.cop.bbs.brd.service.BoardMasterVO)
*/
public Map<String, Object> selectBBSMasterInfs(BoardMasterVO searchVO) throws Exception {
List<BoardMasterVO> result = attrbMngDAO.selectBBSMasterInfs(searchVO);
int cnt = attrbMngDAO.selectBBSMasterInfsCnt(searchVO);
Map<String, Object> map = new HashMap<String, Object>();
map.put("resultList", result);
map.put("resultCnt", Integer.toString(cnt));
return map;
}
/**
* 신규 게시판 속성정보를 생성한다.
*
* @see kcc.let.cop.bbs.brd.service.EgovBBSAttributeManageService#insertBBSMastetInf(kcc.let.cop.bbs.brd.service.BoardMaster)
*/
public String insertBBSMastetInf(BoardMaster boardMaster) throws Exception {
String bbsId = idgenService.getNextStringId();
boardMaster.setBbsId(bbsId);
attrbMngDAO.insertBBSMasterInf(boardMaster);
// 게시판 관리자 등록
if (!"".equals(boardMaster.getBbsMngIds())) {
String[] bbsMngIds = boardMaster.getBbsMngIds().split("\\|");
for (int i = 0; i < bbsMngIds.length; i++) {
if (bbsMngIds[i] != null && !("".equals(bbsMngIds[i]))) {
BoardMaster vo = new BoardMaster();
vo.setBbsId(bbsId);
vo.setMngId(attrbMngDAO.selectBBSMaxMngId());
vo.setBbsMngId(bbsMngIds[i]);
attrbMngDAO.insertBBSMngInf(vo);
}
}
}
return bbsId;
}
/**
* 게시판 속성정보 건을 상세조회한다.
*
* @see kcc.let.cop.bbs.brd.service.EgovBBSAttributeManageService#selectBBSMasterInf(kcc.let.cop.bbs.brd.service.BoardMasterVO)
*/
public BoardMasterVO selectBBSMasterInf(BoardMasterVO searchVO) throws Exception {
BoardMasterVO result = attrbMngDAO.selectBBSMasterInf(searchVO);
return result;
}
/**
* 게시판 속성정보를 수정한다.
*
* @see kcc.let.cop.bbs.brd.service.EgovBBSAttributeManageService#updateBBSMasterInf(kcc.let.cop.bbs.brd.service.BoardMaster)
*/
public void updateBBSMasterInf(BoardMaster boardMaster) throws Exception {
attrbMngDAO.updateBBSMasterInf(boardMaster);
}
/**
* 게시판 관리자ID 목록을 조회한다.
*
* @see kcc.let.cop.bbs.brd.service.EgovBBSAttributeManageService#selectBBSMngIdList(kcc.let.cop.bbs.brd.service.BoardMasterVO)
*/
public List<EgovMap> selectBBSMngIdList(BoardMaster vo) throws Exception {
return attrbMngDAO.selectBBSMngIdList(vo);
}
/**
* 게시판 관리자 정보를 등록한다.
*
* @see kcc.let.cop.bbs.brd.service.EgovBBSAttributeManageService#insertBBSMngInf(kcc.let.cop.bbs.brd.service.BoardMaster)
*/
public int insertBBSMngInf(BoardMaster vo) throws Exception {
// 게시판 관리자 중복 체크
int resultCnt = attrbMngDAO.selectBBSMngInfCnt(vo);
int mngId = 0;
if (!(resultCnt > 0)) {
mngId = attrbMngDAO.selectBBSMaxMngId();
vo.setMngId(mngId);
attrbMngDAO.insertBBSMngInf(vo);
}
return mngId;
}
/**
* 게시판 관리자 정보를 삭제한다.
*
* @see kcc.let.cop.bbs.brd.service.EgovBBSAttributeManageService#deleteBBSMngInf(kcc.let.cop.bbs.brd.service.BoardMaster)
*/
public void deleteBBSMngInf(BoardMaster vo) throws Exception {
attrbMngDAO.deleteBBSMngInf(vo);
}
/**
* 게시판 ID 정보의 목록을 조회 한다.
*
* @see kcc.let.cop.bbs.brd.service.EgovBBSAttributeManageService#selectBBSIdList(kcc.com.cmm.ComDefaultVO)
*/
public Map<String, Object> selectBBSIdList(ComDefaultVO searchVO) throws Exception {
List<EgovMap> result = attrbMngDAO.selectBBSIdList(searchVO);
int cnt = attrbMngDAO.selectBBSIdListCnt(searchVO);
Map<String, Object> map = new HashMap<String, Object>();
map.put("resultList", result);
map.put("resultCnt", Integer.toString(cnt));
return map;
}
@Override
public void insupNoticeBbsid(BoardMaster boardMaster) throws Exception {
attrbMngDAO.insupNoticeBbsid(boardMaster);
}
@Override
public void insupQnaBbsid(BoardMaster boardMaster) throws Exception {
attrbMngDAO.insupQnaBbsid(boardMaster);
}
@Override
public void insupNewsBbsid(BoardMaster boardMaster) throws Exception {
attrbMngDAO.insupNewsBbsid(boardMaster);
}
@Override
public BoardMaster getSiteMainNbsVO(BoardMasterVO searchVO) throws Exception {
return attrbMngDAO.getSiteMainNbsVO(searchVO);
}
@Override
public void insupLibraryBbsid(BoardMaster boardMaster) throws Exception {
attrbMngDAO.insupLibraryBbsid(boardMaster);
}
@Override
public List<BoardMasterVO> selectMenuBbs(BoardMasterVO boardMasterVO) throws Exception {
return attrbMngDAO.selectMenuBbs(boardMasterVO);
}
@Override
public void updateMenuBbs(BoardMasterVO boardMasterVO) throws Exception {
attrbMngDAO.deleteMenuBbs(boardMasterVO);
for(int i=0; i < boardMasterVO.getBbsIds().size(); i++){
BoardMasterVO tempBoardMaster= new BoardMasterVO();
tempBoardMaster.setBbsId(boardMasterVO.getBbsIds().get(i));
tempBoardMaster.setBbsSort( boardMasterVO.getBbsSorts().size()==0 ? "0" : boardMasterVO.getBbsSorts().get(i));
tempBoardMaster.setMenuNo(boardMasterVO.getMenuNo());
attrbMngDAO.updateMenuBbs(tempBoardMaster);
}
}
@Override
public List<BoardMasterVO> selectBBSMenuByUrl(BoardMasterVO boardMasterVO) throws Exception {
return attrbMngDAO.selectBBSMenuByUrl(boardMasterVO);
}
@Override
public int selectBBSMngInfCnt(BoardMasterVO bmVO) throws Exception {
return attrbMngDAO.selectBBSMngInfCnt(bmVO);
}
@Override
public BoardMasterVO selectBbsIdByNttId(BoardVO boardVO) throws Exception {
return attrbMngDAO.selectBbsIdByNttId(boardVO);
}
@Override
public List<BoardVO> selectBbsAdmin(BoardVO bbsVO) throws Exception {
return attrbMngDAO.selectBbsAdmin(bbsVO);
}
}
package kcc.let.cop.bbs.service.impl;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import egovframework.rte.fdl.property.EgovPropertyService;
import egovframework.rte.psl.dataaccess.util.EgovMap;
import kcc.com.cmm.ComDefaultVO;
import kcc.let.cop.bbs.service.BoardMaster;
import kcc.let.cop.bbs.service.BoardMasterVO;
import kcc.let.cop.bbs.service.BoardVO;
import kcc.let.cop.bbs.service.EgovBBSAttributeManageService;
import kcc.let.cop.com.service.EgovUserInfManageService;
import kcc.let.cop.com.service.impl.BBSUseInfoManageDAO;
/**
* 게시판 속성관리를 위한 서비스 구현 클래스
* @author 공통 서비스 개발팀 이삼섭
* @since 2009.03.24
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.03.24 이삼섭 최초 생성
* 2009.06.26 한성곤 2단계 기능 추가 (댓글관리, 만족도조사)
* 2011.08.31 JJY 경량환경 템플릿 커스터마이징버전 생성
*
* </pre>
*/
@Service("EgovBBSAttributeManageService")
public class EgovBBSAttributeManageServiceImpl extends EgovAbstractServiceImpl implements EgovBBSAttributeManageService {
@Resource(name = "BBSAttributeManageDAO")
private BBSAttributeManageDAO attrbMngDAO;
@Resource(name = "BBSUseInfoManageDAO")
private BBSUseInfoManageDAO bbsUseDAO;
@Resource(name = "EgovUserInfManageService")
private EgovUserInfManageService userService;
@Resource(name = "egovBBSMstrIdGnrService")
private EgovIdGnrService idgenService;
@Resource(name = "propertiesService")
protected EgovPropertyService propertyService;
/**
* 등록된 게시판 속성정보를 삭제한다.
*
* @see kcc.let.cop.bbs.brd.service.EgovBBSAttributeManageService#deleteBBSMasterInf(kcc.let.cop.bbs.brd.service.BoardMaster)
*/
public void deleteBBSMasterInf(BoardMaster boardMaster) throws Exception {
attrbMngDAO.deleteBBSMasterInf(boardMaster);
// BoardUseInf bdUseInf = new BoardUseInf();
//
// bdUseInf.setBbsId(boardMaster.getBbsId());
// bdUseInf.setLastUpdusrId(boardMaster.getLastUpdusrId());
//
// bbsUseDAO.deleteBBSUseInfByBoardId(bdUseInf);
}
/**
* 게시판 속성 정보의 목록을 조회 한다.
*
* @see kcc.let.cop.bbs.brd.service.EgovBBSAttributeManageService#selectAllBBSMasteInf(kcc.let.cop.bbs.brd.service.BoardMasterVO)
*/
public List<BoardMasterVO> selectAllBBSMasteInf(BoardMasterVO vo) throws Exception {
return attrbMngDAO.selectAllBBSMasteInf(vo);
}
/**
* 게시판 속성 정보의 목록을 조회 한다.
*
* @see kcc.let.cop.bbs.brd.service.EgovBBSAttributeManageService#selectBBSMasterInfs(kcc.let.cop.bbs.brd.service.BoardMasterVO)
*/
public Map<String, Object> selectBBSMasterInfs(BoardMasterVO searchVO) throws Exception {
List<BoardMasterVO> result = attrbMngDAO.selectBBSMasterInfs(searchVO);
int cnt = attrbMngDAO.selectBBSMasterInfsCnt(searchVO);
Map<String, Object> map = new HashMap<String, Object>();
map.put("resultList", result);
map.put("resultCnt", Integer.toString(cnt));
return map;
}
/**
* 신규 게시판 속성정보를 생성한다.
*
* @see kcc.let.cop.bbs.brd.service.EgovBBSAttributeManageService#insertBBSMastetInf(kcc.let.cop.bbs.brd.service.BoardMaster)
*/
public String insertBBSMastetInf(BoardMaster boardMaster) throws Exception {
String bbsId = idgenService.getNextStringId();
boardMaster.setBbsId(bbsId);
attrbMngDAO.insertBBSMasterInf(boardMaster);
// 게시판 관리자 등록
if (!"".equals(boardMaster.getBbsMngIds())) {
String[] bbsMngIds = boardMaster.getBbsMngIds().split("\\|");
for (int i = 0; i < bbsMngIds.length; i++) {
if (bbsMngIds[i] != null && !("".equals(bbsMngIds[i]))) {
BoardMaster vo = new BoardMaster();
vo.setBbsId(bbsId);
vo.setMngId(attrbMngDAO.selectBBSMaxMngId());
vo.setBbsMngId(bbsMngIds[i]);
attrbMngDAO.insertBBSMngInf(vo);
}
}
}
return bbsId;
}
/**
* 게시판 속성정보 건을 상세조회한다.
*
* @see kcc.let.cop.bbs.brd.service.EgovBBSAttributeManageService#selectBBSMasterInf(kcc.let.cop.bbs.brd.service.BoardMasterVO)
*/
public BoardMasterVO selectBBSMasterInf(BoardMasterVO searchVO) throws Exception {
BoardMasterVO result = attrbMngDAO.selectBBSMasterInf(searchVO);
return result;
}
/**
* 게시판 속성정보를 수정한다.
*
* @see kcc.let.cop.bbs.brd.service.EgovBBSAttributeManageService#updateBBSMasterInf(kcc.let.cop.bbs.brd.service.BoardMaster)
*/
public void updateBBSMasterInf(BoardMaster boardMaster) throws Exception {
attrbMngDAO.updateBBSMasterInf(boardMaster);
}
/**
* 게시판 관리자ID 목록을 조회한다.
*
* @see kcc.let.cop.bbs.brd.service.EgovBBSAttributeManageService#selectBBSMngIdList(kcc.let.cop.bbs.brd.service.BoardMasterVO)
*/
public List<EgovMap> selectBBSMngIdList(BoardMaster vo) throws Exception {
return attrbMngDAO.selectBBSMngIdList(vo);
}
/**
* 게시판 관리자 정보를 등록한다.
*
* @see kcc.let.cop.bbs.brd.service.EgovBBSAttributeManageService#insertBBSMngInf(kcc.let.cop.bbs.brd.service.BoardMaster)
*/
public int insertBBSMngInf(BoardMaster vo) throws Exception {
// 게시판 관리자 중복 체크
int resultCnt = attrbMngDAO.selectBBSMngInfCnt(vo);
int mngId = 0;
if (!(resultCnt > 0)) {
mngId = attrbMngDAO.selectBBSMaxMngId();
vo.setMngId(mngId);
attrbMngDAO.insertBBSMngInf(vo);
}
return mngId;
}
/**
* 게시판 관리자 정보를 삭제한다.
*
* @see kcc.let.cop.bbs.brd.service.EgovBBSAttributeManageService#deleteBBSMngInf(kcc.let.cop.bbs.brd.service.BoardMaster)
*/
public void deleteBBSMngInf(BoardMaster vo) throws Exception {
attrbMngDAO.deleteBBSMngInf(vo);
}
/**
* 게시판 ID 정보의 목록을 조회 한다.
*
* @see kcc.let.cop.bbs.brd.service.EgovBBSAttributeManageService#selectBBSIdList(kcc.com.cmm.ComDefaultVO)
*/
public Map<String, Object> selectBBSIdList(ComDefaultVO searchVO) throws Exception {
List<EgovMap> result = attrbMngDAO.selectBBSIdList(searchVO);
int cnt = attrbMngDAO.selectBBSIdListCnt(searchVO);
System.out.println("22222222222222222222");
Map<String, Object> map = new HashMap<String, Object>();
map.put("resultList", result);
map.put("resultCnt", Integer.toString(cnt));
return map;
}
@Override
public void insupNoticeBbsid(BoardMaster boardMaster) throws Exception {
attrbMngDAO.insupNoticeBbsid(boardMaster);
}
@Override
public void insupQnaBbsid(BoardMaster boardMaster) throws Exception {
attrbMngDAO.insupQnaBbsid(boardMaster);
}
@Override
public void insupNewsBbsid(BoardMaster boardMaster) throws Exception {
attrbMngDAO.insupNewsBbsid(boardMaster);
}
@Override
public BoardMaster getSiteMainNbsVO(BoardMasterVO searchVO) throws Exception {
return attrbMngDAO.getSiteMainNbsVO(searchVO);
}
@Override
public void insupLibraryBbsid(BoardMaster boardMaster) throws Exception {
attrbMngDAO.insupLibraryBbsid(boardMaster);
}
@Override
public List<BoardMasterVO> selectMenuBbs(BoardMasterVO boardMasterVO) throws Exception {
return attrbMngDAO.selectMenuBbs(boardMasterVO);
}
@Override
public void updateMenuBbs(BoardMasterVO boardMasterVO) throws Exception {
attrbMngDAO.deleteMenuBbs(boardMasterVO);
for(int i=0; i < boardMasterVO.getBbsIds().size(); i++){
BoardMasterVO tempBoardMaster= new BoardMasterVO();
tempBoardMaster.setBbsId(boardMasterVO.getBbsIds().get(i));
tempBoardMaster.setBbsSort( boardMasterVO.getBbsSorts().size()==0 ? "0" : boardMasterVO.getBbsSorts().get(i));
tempBoardMaster.setMenuNo(boardMasterVO.getMenuNo());
attrbMngDAO.updateMenuBbs(tempBoardMaster);
}
}
@Override
public List<BoardMasterVO> selectBBSMenuByUrl(BoardMasterVO boardMasterVO) throws Exception {
return attrbMngDAO.selectBBSMenuByUrl(boardMasterVO);
}
@Override
public int selectBBSMngInfCnt(BoardMasterVO bmVO) throws Exception {
return attrbMngDAO.selectBBSMngInfCnt(bmVO);
}
@Override
public BoardMasterVO selectBbsIdByNttId(BoardVO boardVO) throws Exception {
return attrbMngDAO.selectBbsIdByNttId(boardVO);
}
@Override
public List<BoardVO> selectBbsAdmin(BoardVO bbsVO) throws Exception {
return attrbMngDAO.selectBbsAdmin(bbsVO);
}
}

View File

@ -1,7 +1,10 @@
package kcc.ve.aplct.fndtnEnhanceTrn.service;
import java.util.List;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
public interface FndtnEnhanceTrnService {
@ -9,5 +12,9 @@ public interface FndtnEnhanceTrnService {
VEEduAplctVO findByAprvlCd(VEEduAplctVO vEEduAplctReqVO);
void insertVeEduQna(VEPrcsDetailVO vEPrcsDetailVO);
List<VEPrcsDetailVO> selectVeEduQna(VEPrcsDetailVO vEPrcsDetailVO);
}

View File

@ -48,4 +48,15 @@ public class FndtnEnhanceTrnServiceImpl implements FndtnEnhanceTrnService {
public VEEduAplctVO findByAprvlCd(VEEduAplctVO vEEduAplctReqVO) {
return vEEduAplctDAO.findByAprvlCd(vEEduAplctReqVO);
}
@Override
public void insertVeEduQna(VEPrcsDetailVO vEPrcsDetailVO) {
vEEduAplctDAO.insertVeEduQna(vEPrcsDetailVO);
}
@Override
public List<VEPrcsDetailVO> selectVeEduQna(VEPrcsDetailVO vEPrcsDetailVO) {
return vEEduAplctDAO.selectVeEduQna(vEPrcsDetailVO);
}
}

View File

@ -131,6 +131,10 @@ public class FndtnEnhanceTrnController {
@Resource(name="eduChasiGnrService")
private EgovIdGnrService eduChasiGnrService;
//qna순번
@Resource(name="prcsAplctPrdQnaOrdGnrService")
private EgovIdGnrService prcsAplctPrdQnaOrdGnrService;
//교육신청온라인
@Resource(name = "vEEduAplctOnlnService")
private VEEduAplctOnlnService vEEduAplctOnlnService;
@ -219,6 +223,12 @@ public class FndtnEnhanceTrnController {
model.addAttribute("list", vEPrcsDetailVOList);
model.addAttribute("countMap", countMap);
// Q&A 영역
vEPrcsDetailVO.setQnaRegist(loginVO.getUniqId());
List<VEPrcsDetailVO> vEPrcsDetailQnaVOList = fndtnEnhanceTrnService.selectVeEduQna(vEPrcsDetailVO);
model.addAttribute("qnaList", vEPrcsDetailQnaVOList);
//3.pageing step3
return "/web/ve/aplct/fndtnEnhanceTrn/main";
}
@ -503,6 +513,65 @@ public class FndtnEnhanceTrnController {
}
/**
* @methodName : fndthEduPrcsAplctPrdMngRegAjax
* @author : 이호영
* @date : 2023.11.16
* @description :
* @param vEPrcsDetailVO
* @param model
* @param request
* @return
* @throws Exception
*/
@RequestMapping("/web/ve/aplct/fndtnEnhanceTrn/qnaRegAjax.do")
public ModelAndView qnaRegAjax(
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
, ModelMap model
, HttpServletRequest request
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
//로그인 처리====================================
//로그인 정보 가져오기
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
if (!"".equals(s_oprtnLoginCheckNInfo)) {
modelAndView.addObject("result", "loginFail");
return modelAndView;
}
//로그인 처리====================================
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
vEPrcsDetailVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
vEPrcsDetailVO.setQnaRegist(loginVO.getUniqId()); //esntl_id
vEPrcsDetailVO.setLctrDivCd("50"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
vEPrcsDetailVO.setPrcsAplctPrdQnaOrd(prcsAplctPrdQnaOrdGnrService.getNextStringId());
vEPrcsDetailVO.setQnaRegist(loginVO.getUniqId());
String msg = "등록되었습니다";
try {
fndtnEnhanceTrnService.insertVeEduQna(vEPrcsDetailVO);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
msg = "등록에 실패하였습니다. 관리자에게 문의해주세요";
}
modelAndView.addObject("msg", msg);
modelAndView.addObject("result", "success");
return modelAndView;
}
/**
* 교육 list select
*/

View File

@ -7,6 +7,7 @@ import org.springframework.stereotype.Repository;
import egovframework.rte.psl.dataaccess.EgovAbstractDAO;
import kcc.ve.adv.tngr.stngInfo.service.VEAStngVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
@Repository("vEEduAplctDAO")
public class VEEduAplctDAO extends EgovAbstractDAO {
@ -159,4 +160,14 @@ public class VEEduAplctDAO extends EgovAbstractDAO {
public void updateSbmtAtchFileId(VEEduAplctVO paramVO) throws Exception {
insert("VEEduAplctDAO.updateSbmtAtchFileId", paramVO);
}
public void insertVeEduQna(VEPrcsDetailVO vEPrcsDetailVO) {
insert("VEEduAplctDAO.insertVeEduQna", vEPrcsDetailVO);
}
public List<VEPrcsDetailVO> selectVeEduQna(VEPrcsDetailVO vEPrcsDetailVO) {
return (List<VEPrcsDetailVO>) list("VEEduAplctDAO.selectVeEduQna", vEPrcsDetailVO);
}
}

View File

@ -143,6 +143,13 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
private String prcsAplctPrdEtcOrd;
private String prcsAplctPrdQnaOrd;
private String qnaRegist;
private String qnaCn;
private String qnaAnswerCn;
private String qnaAnswerer;
public String getSearchDiv() {
@ -686,6 +693,36 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
public void setPrcsAplctPrdEtcOrd(String prcsAplctPrdEtcOrd) {
this.prcsAplctPrdEtcOrd = prcsAplctPrdEtcOrd;
}
public String getPrcsAplctPrdQnaOrd() {
return prcsAplctPrdQnaOrd;
}
public void setPrcsAplctPrdQnaOrd(String prcsAplctPrdQnaOrd) {
this.prcsAplctPrdQnaOrd = prcsAplctPrdQnaOrd;
}
public String getQnaRegist() {
return qnaRegist;
}
public void setQnaRegist(String qnaRegist) {
this.qnaRegist = qnaRegist;
}
public String getQnaCn() {
return qnaCn;
}
public void setQnaCn(String qnaCn) {
this.qnaCn = qnaCn;
}
public String getQnaAnswerCn() {
return qnaAnswerCn;
}
public void setQnaAnswerCn(String qnaAnswerCn) {
this.qnaAnswerCn = qnaAnswerCn;
}
public String getQnaAnswerer() {
return qnaAnswerer;
}
public void setQnaAnswerer(String qnaAnswerer) {
this.qnaAnswerer = qnaAnswerer;
}
}

View File

@ -208,6 +208,54 @@ public class FndthPrcsInfoMngController {
///kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsMngList.do
}
@RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthEduQnaMngList.do")
public String fndthEduQnaMngList(
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
, ModelMap model
) throws Exception {
//로그인 처리====================================
//로그인 정보 가져오기
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo;
//로그인 처리====================================
//1.pageing step1
PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO);
//임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함
//paginationInfo.setRecordCountPerPage(10000);
//2. pageing step2
vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo);
//기반강화 조회
vEPrcsDetailVO.setLctrDivCd("50"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
if(StringUtil.isNotEmpty(vEPrcsDetailVO.getSearchKeyword())){
String selectCondition = "AND a.PRCS_NM LIKE CONCAT ('%', '" +vEPrcsDetailVO.getSearchKeyword() + "', '%')";
vEPrcsDetailVO.setSelectPagingListQuery(selectCondition);
}
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsService.selectPagingList(vEPrcsDetailVO);
//3.pageing step3
paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo);
model.addAttribute("paginationInfo", paginationInfo);
//대상 리스트, 페이징 정보 전달
model.addAttribute("list", vEPrcsDetailVOList);
return "oprtn/fndthEnhanceTrn/fndthEduQnaMngList";
// return "oprtn/fndthEnhanceTrn/fndthEduPrcsMngList";
}
/**
* 기반강화연수과정 등록 화면
*/

View File

@ -3013,5 +3013,20 @@
<property name="cipers" value="7" /><!-- 일련번호(순번) 전체 길이(prefix길이 미포함) -->
<property name="fillChar" value="0" />
</bean>
<!-- Q&A -->
<bean name="prcsAplctPrdQnaOrdGnrService" class="egovframework.rte.fdl.idgnr.impl.EgovTableIdGnrServiceImpl" destroy-method="destroy">
<property name="dataSource" ref="dataSource" />
<property name="strategy" ref="prcsAplctPrdQnaOrdStrategy" /><!-- strategy 값 수정 -->
<property name="blockSize" value="10"/>
<property name="table" value="IDS"/>
<property name="tableName" value="PRCS_APLCT_QNA_ORD"/><!-- tableName 값 수정 -->
</bean>
<!-- 과정신청기간 ID Generation Strategy Config -->
<bean name="prcsAplctPrdQnaOrdStrategy" class="egovframework.rte.fdl.idgnr.impl.strategy.EgovIdGnrStrategyImpl"><!-- bean name 값에 strategy 값 입력 -->
<property name="prefix" value="prcsAplctQna_" /><!-- prefix 값 수정 -->
<property name="cipers" value="7" /><!-- 일련번호(순번) 전체 길이(prefix길이 미포함) -->
<property name="fillChar" value="0" />
</bean>
</beans>

View File

@ -606,20 +606,23 @@
</delete>
<select id="BBSAttributeManageDAO.selectBBSIdList" parameterClass="ComDefaultVO" resultClass="egovMap" >
SELECT BBS_ID
,BBS_NM , IF(B.MENU_NM='root' , '', B.MENU_NM) AS MENU_NM
FROM LETTNBBSMASTER A LEFT OUTER JOIN LETTNMENUINFO B ON A.MENU_NO = B.MENU_NO
SELECT A.BBS_ID
, A.BBS_NM
, CASE WHEN B.MENU_NM = 'root' THEN '' ELSE B.MENU_NM END AS MENU_NM
FROM LETTNBBSMASTER A
LEFT OUTER JOIN LETTNMENUINFO B
ON A.MENU_NO = B.MENU_NO
WHERE USE_AT = 'Y'
AND BBS_NM LIKE CONCAT('%', #searchKeyword#, '%')
AND BBS_NM LIKE '%'|| #searchKeyword# ||'%'
ORDER BY BBS_NM
LIMIT #recordCountPerPage# OFFSET #firstIndex#
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY
</select>
<select id="BBSAttributeManageDAO.selectBBSIdListCnt" parameterClass="ComDefaultVO" resultClass="java.lang.Integer" >
SELECT COUNT(1)
FROM LETTNBBSMASTER A
WHERE USE_AT = 'Y'
AND BBS_NM LIKE CONCAT('%', #searchKeyword#, '%')
AND BBS_NM LIKE '%'|| #searchKeyword# ||'%'
<isNotEmpty property="siteId">
AND SITE_ID = #siteId#
</isNotEmpty>

View File

@ -5,6 +5,7 @@
<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
<typeAlias alias="VEEduAplctVO" type="kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO"/>
<typeAlias alias="VEAStngVO" type="kcc.ve.adv.tngr.stngInfo.service.VEAStngVO"/>
<typeAlias alias="VEPrcsDetailVO" type="kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO"/>
<!-- 공통 테이블 명 -->
@ -1317,4 +1318,44 @@
WHERE
EDU_DOC_REQ_ORD = #eduDocReqOrd#
</update>
<insert id="VEEduAplctDAO.insertVeEduQna" parameterClass="VEPrcsDetailVO">
INSERT INTO VEA_PRCS_APLCT_PRD_QNA
(
PRCS_APLCT_PRD_QNA_ORD
, LCTR_DIV_CD
, QNA_REGIST
, QNA_CN
, FRST_REGIST_PNTTM
, FRST_REGISTER_ID
)VALUES(
#prcsAplctPrdQnaOrd#
, #lctrDivCd#
, #qnaRegist#
, #qnaCn#
, SYSDATE
, #frstRegisterId#
)
</insert>
<select id="VEEduAplctDAO.selectVeEduQna" parameterClass="VEPrcsDetailVO" resultClass="VEPrcsDetailVO">
SELECT
PRCS_APLCT_PRD_QNA_ORD as prcsAplctPrdQnaOrd
, LCTR_DIV_CD as lctrDivCd
, QNA_REGIST as qnaRegist
, QNA_CN as qnaCn
, QNA_ANSWER_CN as qnaAnswerCn
, QNA_ANSWERER as qnaAnswerer
, FRST_REGIST_PNTTM as frstRegistPnttm
, FRST_REGISTER_ID as frstRegisterId
, LAST_UPDT_PNTTM as lastUpdtPnttm
, LAST_UPDUSR_ID as lastUpdusrId
FROM
VEA_PRCS_APLCT_PRD_QNA
WHERE
QNA_REGIST = #qnaRegist#
</select>
</sqlMap>

View File

@ -158,6 +158,7 @@
<pattern>*/kccadr/oprtn/cpyrgExprnClsrm/cautionGuidePreView.do</pattern> <!-- 관리자 저작권체험교실 교육과정안내 미리보기 팝업 -->
<pattern>*/kccadr/oprtn/cpyrgExprnClsrm/popup/slctnTeacherPopup.do</pattern> <!-- 관리자 저작권체험교실 교육과정안내 미리보기 팝업 -->
<pattern>*/cop/bbs/EgovBBSIdListSearch.do</pattern> <!-- 관리자 저작권체험교실 교육과정안내 미리보기 팝업 -->
<!-- <pattern>*/tngrVisitEdu/popup/*Popup.do</pattern>
<pattern>*/adultVisitEdu/popup/*Popup.do</pattern> -->

View File

@ -36,7 +36,6 @@
}
</style>
<script type="text/javascript">
function fncGoList(){
linkPage(1);
}

View File

@ -0,0 +1,287 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<un:useConstants var="KccadrStatus" className="kcc.kccadr.cmm.KccadrConstants" />
<%
/**
* @Class Name : fndthEduPrcsMngList.jsp
* @Description : 기반강화연수 과정관리 목록
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.12.14 조용준 최초 생성
* @author 조용준
* @since 2021.12.14
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style>
input:read-only{
background-color: #ededed;
}
</style>
<script type="text/javascript">
function fncGoList(){
linkPage(1);
}
function linkPage(pageNo){
var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ;
listForm.searchKeyword.value = $('#searchKeyword').val();
listForm.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsMngList.do'/>";
listForm.submit();
}
function fncGoDetail(prcsOrd){
var listForm = document.listForm ;
listForm.prcsOrd.value = prcsOrd ;
listForm.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsMngDetail.do'/>";
listForm.submit();
}
function fncCreate() {
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsMngReg.do'/>";
listForm.submit();
}
function fncDelete(prcsOrd){
document.listForm.prcsOrd.value = prcsOrd ;
var pageIndex = document.listForm.pageIndex.value;
if($(".listCount").length == '1'){
pageIndex = pageIndex -1;
}
var data = new FormData(document.getElementById("listForm"));
if(confirm("삭제하시겠습니까?")){
var url = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngDeleteAjax.do'/>";
console.log(data);
$.ajax({
type:"POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == "success"){
alert("삭제되었습니다.");
document.listForm.prcsOrd.value = ""; //리스트 이동시 prcsOrd 초기화
linkPage(pageIndex);
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
event.stopImmediatePropagation();
}
function fncSaveSort(prcsOrd, count){
var sortNo = $('#prcsSortNo'+count).val();
if(sortNo == ''){
alert("표시순서를 입력해 주세요.");
return false;
}
$('#prcsOrd').val(prcsOrd);
$('#prcsSortNo').val(sortNo);
var data = new FormData(document.getElementById("listForm"));
var url = "<c:url value='/kccadr/oprtn/otsdCprtnPrcs/eduPrcsSortUpdateAjax.do'/>";
$.ajax({
type:"POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == "success"){
alert("저장되었습니다.");
document.listForm.prcsOrd.value = ""; //리스트 이동시 prcsOrd 초기화
fncGoList();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
</script>
<title>교육과정관리</title>
</head>
<body>
<form:form id="listForm" name="listForm" method="post" commandName="vEPrcsDetailVO" onsubmit="return false;">
<input type="hidden" name="pageIndex" value="<c:out value='${vEPrcsDetailVO.pageIndex}' default='1' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEPrcsDetailVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${vEPrcsDetailVO.searchSortOrd}" />" />
<input type="hidden" id="prcsOrd" name="prcsOrd" value="" />
<input type="hidden" id="prcsSortNo" name="prcsSortNo" value="" />
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>과정관리목록</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
<p>실무자역량강화(기반강화연수관리)</p>
</li>
<li><span class="cur_nav">과정관리목록</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<div class="tb_tit01">
<p>교육 과정 관리</p>
</div>
<!-- list_top -->
<div class="list_top search-only">
<div class="list_top_1">
<div class="util_right">
<ve:select codeId="VEA001" name="searchStatus" id="searchStatus" css="class='sel_type1'"
selectedValue="${vEPrcsDetailVO.searchStatus }" defaultValue=""
defaultText="전체"
/>
<div class="calendar_wrap">
<input type="text" class="calendar" title="시작일 선택" id="searchSmbtStartDt" name="searchSmbtStartDt" value="${vEPrcsDetailVO.searchSmbtStartDt}">
</div>
~
<div class="calendar_wrap">
<input type="text" class="calendar" title="종료일 선택" id="searchSmbtEndDt" name="searchSmbtEndDt" value="${vEPrcsDetailVO.searchSmbtEndDt}">
</div>
<input type="text" id="searchKeyword" name="searchKeyword" placeholder="과정명를 입력하세요." title="검색어 입력" class="search_input" value="<c:out value='${vEEduAplctVO.searchFullName}'/>">
<button type="button" class="btn_type08" onclick="fncGoList(); return false;">검색</button>
<button class="btn_type03" onclick="fncReset(this); return false;">초기화</button>
</div>
</div>
</div>
<div class="list_util">
<p class="list_util_p"><span><c:out value="${paginationInfo.totalRecordCount}" /></span>건의 접수가 검색되었습니다.</p>
<div>
<select class="sel_type1" name="pageUnit" id="pageUnit" onchange="linkPage(1);" title="줄 선택" style="width: 140px" class="sel_type1">
<option value='10' <c:if test="${vEPrcsDetailVO.pageUnit == '10' or vEPrcsDetailVO.pageUnit == ''}">selected</c:if>>10줄</option>
<option value='20' <c:if test="${vEPrcsDetailVO.pageUnit == '20'}">selected</c:if>>20줄</option>
<option value='30' <c:if test="${vEPrcsDetailVO.pageUnit == '30'}">selected</c:if>>30줄</option>
<option value='100' <c:if test="${vEPrcsDetailVO.pageUnit == '100'}">selected</c:if>>100줄</option>
</select>
<%--<button type="button" class="btn_down_excel">엑셀 다운로드</button>--%>
</div>
</div>
<!-- //list_top -->
<!-- list -->
<div class="tb_type01">
<table>
<colgroup>
<col style="width: 10%">
<col style="width: 20%">
<col style="width: auto">
<col style="width: 10%">
<col style="width: 10%">
</colgroup>
<thead>
<tr>
<th>교육부문</th>
<th>과정명</th>
<th>설명</th>
<th>등록일시</th>
<th>사용여부 </th>
</tr>
</thead>
<tbody>
<c:forEach var="list" items="${list}" varStatus="status">
<tr class="listCount">
<td>
<kc:code codeId="VEA001" code="${list.prcsDiv}"/>
</td>
<td onclick="fncGoDetail('<c:out value="${list.prcsOrd}"/>');" style="cursor:pointer;">
<c:out value='${list.prcsNm}'/>
</td>
<td onclick="fncGoDetail('<c:out value="${list.prcsOrd}"/>');" style="cursor:pointer;">
<c:out value='${list.prcsCn}'/>
</td>
<td>
<c:out value='${list.frstRegistPnttm}'/>
</td>
<td>
<c:if test="${list.useYn eq 'Y'}">
사용
</c:if>
<c:if test="${list.useYn ne 'Y'}">
미사용
</c:if>
</td>
</tr>
</c:forEach>
<c:if test="${empty list}">
<tr><td colspan="5"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<!-- //list -->
<!-- page -->
<div class="page">
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
</div>
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<button type="button" class="btn_type01" onclick="fncCreate(); return false;">등록</button>
</div>
</div>
<!-- //page -->
</div>
</div>
</div>
<!-- //cont -->
<!-- //cont -->
</form:form>
</body>
</html>

View File

@ -39,6 +39,62 @@
$(this).val('');
});
}
//FAQ 답변 open&close
function faqOpen(item) {
if($(item).is(".slide_open") == true) {
$(item).removeClass("slide_open");
$(item).next(".answer").slideUp(300);
$(item).attr("title","답변 열기");
} else {
$(item).addClass("slide_open");
$(item).next(".answer").slideDown(300);
$(item).attr("title","답변 닫기");
$(item).closest("li").siblings("li").children(".question").removeClass("slide_open");
$(item).closest("li").siblings("li").children(".answer").slideUp(300);
$(item).closest("li").siblings("li").children(".question").attr("title","답변 열기");
}
}
function fn_qnaReg(){
var data = new FormData(document.getElementById("qnaForm"));
var url = "${pageContext.request.contextPath}/web/ve/aplct/fndtnEnhanceTrn/qnaRegAjax.do";
$.ajax({
type:"POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
console.log('returnData : ', returnData);
if(returnData.result == "success"){
// 대상자 테이블 pk 값
var sspnIdtmtTrgtOrd = returnData.id;
alert(returnData.msg);
}else{
alert(returnData.msg);
}
// fn_target_confirm_clean();
location.reload();
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
$('#target_confirm_popup-close').click();
}
</script>
<!-- content -->
@ -71,7 +127,7 @@
</div>
</div>
<div class="tb_list02">
<div class="tb_list02" style="padding: 0 0 40px 0;">
<table>
<caption>최근 교육 목록표</caption>
<colgroup>
@ -136,6 +192,101 @@
</tbody>
</table>
</div>
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<button type="button" class="btnType04" data-info="prcsAplctPrd_0000220" data-tooltip="target_confirm_popup">교육문의</button>
</div>
</div>
<div class="tb_tit02">
<div class="tb_tit02_left">
<div class="t_best">Q&A</div>
</div>
<div class="btn_wrap1">
<%-- <button type="button" title="최근 교육 목록 더보기" class="con_more" onclick="location.href='<c:url value="/web/ve/aplct/fndtnEnhanceTrn/fndtnEduAplctList.do" />'">더보기</button> --%>
</div>
</div>
<div class="tb_list02">
<div class="faq_Wrap">
<ul class="faq">
<c:forEach var="list" items="${qnaList}" varStatus="status">
<li>
<button type="button" title="답변 열기" class="question" onclick="faqOpen(this);">
<p class="qst_text"><span>질문</span>Q</p>
<p class="qst_cont">${list.qnaCn }</p>
</button>
<div class="answer">
<div class="answer_in">
<p class="qst_text"><span>답변</span>A</p>
<p class="awr_cont">
<c:choose>
<c:when test="${not empty list.qnaAnswerCn }">
${list.qnaAnswerCn }
</c:when>
<c:otherwise>
내용이 없습니다.
</c:otherwise>
</c:choose>
</p>
</div>
</div>
</li>
</c:forEach>
<c:if test="${empty list}">
<li><spring:message code="common.nodata.msg" /></li>
</c:if>
</ul>
</div>
</div>
</form:form>
</div>
</div>
<form id="qnaForm" name="qnaForm" method="post">
<!-- 교육대상자 확인 -->
<div class="tooltip-wrap">
<div class="popup_wrap popType01" tabindex="0" data-tooltip-con="target_confirm_popup" data-focus="target_confirm_popup" data-focus-prev="target_confirm_popup_close">
<div class="popup_tit">
<p>교육문의하기</p>
<button class="btn_popup_close tooltip-close" data-focus="target_confirm_popup_close" title="팝업 닫기"><i></i></button>
</div>
<div class="popup_cont">
<div class="cont_body">
<div class="pop_tb_type01" style="overflow:visible;">
<table>
<colgroup>
<col style="width:27%;">
<col style="width:auto;">
</colgroup>
<tr>
<th>문의내용</th>
<td>
<textarea type="text" id="qnaCn" name="qnaCn" style="height: 220px;width: 100%;"></textarea>
</td>
</tr>
</table>
</div>
<div class="pop_btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
<button type="button" class="btnType05" onclick="fn_qnaReg()">문의</button>
<button type="button" class="btnType02 tooltip-close" id="target_confirm_popup-close" data-focus="target_confirm_popup-close" data-focus-next="target_confirm_popup">취소</button>
</div>
<div class="btn_right">
</div>
</div>
</div>
</div>
</div>
</div>
<!--// 신청 클릭 > 기소유예 대상자 확인 팝업 -->
</form>

View File

@ -454,7 +454,7 @@ $(document).ready(function(){
<div class="btn_center">
</div>
<div class="btn_right">
<button type="button" class="btnType01" onclick="fn_eduInquiry()">교육문의(미개발)</button>
<!-- <button type="button" class="btnType01" onclick="fn_eduInquiry()">교육문의(미개발)</button> -->
</div>
</div>