/**
   * 신규 게시판 마스터 등록을 위한 등록페이지로 이동한다.
   *
   * @param boardMasterVO
   * @param model
   * @return
   * @throws Exception
   */
  @RequestMapping("/cop/bbs/addBBSMaster.do")
  public String addBBSMaster(
      @ModelAttribute("searchVO") BoardMasterVO boardMasterVO, ModelMap model) throws Exception {
    BoardMaster boardMaster = new BoardMaster();

    ComDefaultCodeVO vo = new ComDefaultCodeVO();

    vo.setCodeId("COM004");

    List<?> codeResult = cmmUseService.selectCmmCodeDetail(vo);

    model.addAttribute("typeList", codeResult);

    vo.setCodeId("COM009");

    codeResult = cmmUseService.selectCmmCodeDetail(vo);

    model.addAttribute("attrbList", codeResult);
    model.addAttribute("boardMaster", boardMaster);

    String flag = propertyService.getString("Globals.addedOptions");
    if (flag != null && flag.trim().equalsIgnoreCase("true")) {
      model.addAttribute("addedOptions", "true");
    }

    return "cop/bbs/EgovBoardMstrRegist";
  }
  /**
   * 게시판 마스터 정보를 수정한다.
   *
   * @param boardMasterVO
   * @param boardMaster
   * @param model
   * @return
   * @throws Exception
   */
  @RequestMapping("/cop/bbs/UpdateBBSMasterInf.do")
  public String updateBBSMasterInf(
      @ModelAttribute("searchVO") BoardMasterVO boardMasterVO,
      @ModelAttribute("boardMaster") BoardMaster boardMaster,
      BindingResult bindingResult,
      ModelMap model)
      throws Exception {

    LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
    Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();

    beanValidator.validate(boardMaster, bindingResult);
    if (bindingResult.hasErrors()) {
      BoardMasterVO vo = bbsAttrbService.selectBBSMasterInf(boardMasterVO);

      model.addAttribute("result", vo);

      return "cop/bbs/EgovBoardMstrUpdt";
    }

    if (isAuthenticated) {
      boardMaster.setLastUpdusrId(user.getUniqId());
      boardMaster.setPosblAtchFileSize(propertyService.getString("posblAtchFileSize"));
      bbsAttrbService.updateBBSMasterInf(boardMaster);
    }

    return "forward:/cop/bbs/SelectBBSMasterInfs.do";
  }
  /**
   * 게시판 마스터 상세내용을 조회한다.
   *
   * @param boardMasterVO
   * @param model
   * @return
   * @throws Exception
   */
  @RequestMapping("/cop/bbs/SelectBBSMasterInf.do")
  public String selectBBSMasterInf(
      @ModelAttribute("searchVO") BoardMasterVO searchVO, ModelMap model) throws Exception {
    BoardMasterVO vo = bbsAttrbService.selectBBSMasterInf(searchVO);

    model.addAttribute("result", vo);

    String flag = propertyService.getString("Globals.addedOptions");
    if (flag != null && flag.trim().equalsIgnoreCase("true")) {
      model.addAttribute("addedOptions", "true");
    }

    return "cop/bbs/EgovBoardMstrUpdt";
  }
  /**
   * 신규 게시판 마스터 정보를 등록한다.
   *
   * @param boardMasterVO
   * @param boardMaster
   * @param status
   * @return
   * @throws Exception
   */
  @RequestMapping("/cop/bbs/insertBBSMasterInf.do")
  public String insertBBSMasterInf(
      @ModelAttribute("searchVO") BoardMasterVO boardMasterVO,
      @ModelAttribute("boardMaster") BoardMaster boardMaster,
      BindingResult bindingResult,
      SessionStatus status,
      ModelMap model)
      throws Exception {
    LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
    Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();

    beanValidator.validate(boardMaster, bindingResult);
    if (bindingResult.hasErrors()) {

      ComDefaultCodeVO vo = new ComDefaultCodeVO();

      vo.setCodeId("COM004");

      List<?> codeResult = cmmUseService.selectCmmCodeDetail(vo);

      model.addAttribute("typeList", codeResult);

      vo.setCodeId("COM009");

      codeResult = cmmUseService.selectCmmCodeDetail(vo);

      model.addAttribute("attrbList", codeResult);

      return "cop/bbs/EgovBoardMstrRegist";
    }

    if (isAuthenticated) {
      boardMaster.setFrstRegisterId(user.getUniqId());
      boardMaster.setUseAt("Y");
      boardMaster.setTrgetId("SYSTEMDEFAULT_REGIST");
      boardMaster.setPosblAtchFileSize(propertyService.getString("posblAtchFileSize"));

      bbsAttrbService.insertBBSMastetInf(boardMaster);
    }

    return "forward:/cop/bbs/SelectBBSMasterInfs.do";
  }
  /**
   * 게시판 사용을 위한 게시판 속성정보 한 건을 상세조회한다.
   *
   * @param boardMasterVO
   * @param model
   * @return
   * @throws Exception
   */
  @RequestMapping("/cop/bbs/SelectBBSMasterInfByTrget.do")
  public String selectBBSMasterInfByTrget(
      @ModelAttribute("searchVO") BoardMasterVO boardMasterVO,
      @RequestParam Map<String, Object> commandMap,
      ModelMap model)
      throws Exception {

    checkAuthority(boardMasterVO); // server-side 권한 확인

    BoardMasterVO vo = bbsAttrbService.selectBBSMasterInf(boardMasterVO);

    vo.setTrgetId(boardMasterVO.getTrgetId());

    model.addAttribute("result", vo);

    String flag = propertyService.getString("Globals.addedOptions");
    if (flag != null && flag.trim().equalsIgnoreCase("true")) {
      model.addAttribute("addedOptions", "true");
    }

    return "cop/bbs/EgovBdMstrUpdtByTrget";
  }