초기소스
This commit is contained in:
@@ -0,0 +1,483 @@
|
||||
package com.wb.domainserver.domain.mngr.bbs.bbsmngr.controller;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.wb.domainserver.common.msg.GconeMessageSource;
|
||||
import com.wb.domainserver.domain.mngr.bbs.bbsmngr.vo.BbsmngrVO;
|
||||
import com.wb.domainserver.exception.WnbtRestException;
|
||||
import com.wb.domainserver.response.WnbtResponse;
|
||||
import com.wb.domainserver.response.WnbtWebClientResponseHandler;
|
||||
import com.wb.domainserver.security.authorization.annotation.AuthPolicy;
|
||||
import com.wb.domainserver.security.authorization.annotation.Policy;
|
||||
import com.wb.domainserver.util.communicate.RESRC;
|
||||
import com.wb.domainserver.util.communicate.ReplyFromResrc;
|
||||
import com.wb.domainserver.util.communicate.SendToResrc;
|
||||
import com.wb.domainserver.util.communicate.ValidateResultConverter;
|
||||
import com.wb.domainserver.util.string.StringUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.ModelMap;
|
||||
import org.springframework.validation.BindingResult;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.CookieValue;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/**
|
||||
* BbsmngrController Class (front)
|
||||
*
|
||||
* @author 최범식
|
||||
* @since 2023-12-12
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* == (Modification Information) == 개정이력
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2023-12-12 최범식 최초 생성
|
||||
* 2024-04-25 추지훈 수정
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
|
||||
@Slf4j
|
||||
@Controller
|
||||
@RequestMapping("/mngr/bbs/bbsmngr")
|
||||
public class BbsmngrController {
|
||||
|
||||
/** WebClient 호출을 위한 wrapper */
|
||||
@Autowired
|
||||
private WnbtWebClientResponseHandler responseHandler;
|
||||
|
||||
@Autowired
|
||||
private SendToResrc sendToResrc;
|
||||
|
||||
/** 공통 메시지 처리를 위한 메시지 객체 */
|
||||
@Autowired
|
||||
private GconeMessageSource gconeMessageSource;
|
||||
|
||||
@Value("${mngrfo.common.board.nc.ntcntalkSndngFormInnb01}")
|
||||
private String ntcntalkSndngFormInnb1;
|
||||
|
||||
@Value("${mngrfo.common.board.nc.ntcntalkSndngFormInnb02}")
|
||||
private String ntcntalkSndngFormInnb2;
|
||||
|
||||
/**
|
||||
* 게시판 화면
|
||||
* @param BbsmngrVO 게시판 등록 파라미터 VO
|
||||
* @return String JSP 경로
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectBbsListInqireForm")
|
||||
public String selectBbsListInqireForm(BbsmngrVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/selectBOBbsListInqireFrom", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
return "mngr/bbs/bbsmngr/BbsListRForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 게시판 목록 조회
|
||||
* @param BbsmngrVO 게시판 등록 파라미터 VO
|
||||
* @return String JSP 경로
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectBbsListInqire")
|
||||
public String selectBbsListInqire(BbsmngrVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/selectBOBbsListInqire", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bbs/bbsmngr/BbsListR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 안내 허용 도메인 파일 팝업
|
||||
* @param BbsmngrVO 게시판 등록 파라미터 VO
|
||||
* @param model 모델객체
|
||||
* @return String JSP 경로
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectGuidancePermDomnFilPopup", method = RequestMethod.GET)
|
||||
public ResponseEntity<WnbtResponse> selectGuidancePermDomnFilPopup(BbsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/selectBOSlangDftSetupPopupForm", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
/**
|
||||
* 안내 허용 도메인 파일 수정
|
||||
* @param BbsmngrVO 게시판 등록 파라미터 VO
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/updateGuidancePermDomnFil" , method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateGuidancePermDomnFil(BbsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/updateBOSlangSetupRegist", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
/**
|
||||
* 비속어 기본 설정 팝업
|
||||
* @param BbsmngrVO 게시판 등록 파라미터 VO
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectSlangDftSetupPopupForm", method = RequestMethod.GET)
|
||||
public ResponseEntity<WnbtResponse> selectSlangDftSetupPopupForm(BbsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/selectBOSlangDftSetupPopupForm", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
/**
|
||||
* 비속어 설정 저장
|
||||
* @param BbsmngrVO 게시판 등록 파라미터 VO
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/updateSlangSetupRegist" , method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateSlangSetupRegist(BbsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/updateBOSlangSetupRegist", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
/**
|
||||
* 게시판 등록화면
|
||||
* @param BbsmngrVO 게시판 등록 파라미터 VO
|
||||
* @return String JSP 경로
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectBbsRegistForm")
|
||||
public String selectBbsRegistForm(BbsmngrVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setNtcntalkSndngFormInnbArr(new String[] {ntcntalkSndngFormInnb1, ntcntalkSndngFormInnb2});
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
Map<String,Object> resultMap = responseHandler.handleResponseAsMap(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/selectBOBbsRegistForm",vo)
|
||||
);
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
try {
|
||||
resultMap.put("updBbsList", objectMapper.writeValueAsString(resultMap.get("updBbsList")));
|
||||
|
||||
} catch (WnbtRestException wre){
|
||||
throw new WnbtRestException(wre.getMessage());
|
||||
} catch(Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
model.addAttribute("resultMap", resultMap);
|
||||
|
||||
return "mngr/bbs/bbsmngr/BbsRegistC";
|
||||
}
|
||||
|
||||
/**
|
||||
* 게시판 등록
|
||||
* @param BbsmngrVO 게시판 등록 파라미터 VO
|
||||
* @param bindingResult 바인딩 및 정합성 점검결과 객체
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/insertBbsRegist", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> insertBbsRegist(@Validated BbsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd, BindingResult bindingResult){
|
||||
|
||||
if(bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}
|
||||
List<Map<String, String>> errorList = new ArrayList<>();
|
||||
if (vo.getPgeVtcCnt() <= 0) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("pgeVtcCnt", gconeMessageSource.getMessage("errors.required", new Object[]{"페이지세로건수는 최소 1 입니다."})));
|
||||
}
|
||||
//메시지 문자 내용 없을 시
|
||||
if ("01".equals(vo.getBbscttSndngMthCd())) {
|
||||
List<String> nullChk = new ArrayList<>();
|
||||
if (vo.getSmsCnArr() != null) {
|
||||
for (int i = 0; i < vo.getSmsCnArr().length; i++) {
|
||||
if (StringUtil.isEmpty(vo.getSmsCnArr()[i])) {
|
||||
nullChk.add("Y");
|
||||
}
|
||||
}
|
||||
}
|
||||
if (nullChk != null) {
|
||||
if (nullChk.size() == 2) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("smsCnArr", gconeMessageSource.getMessage("errors.required", new Object[]{"문자 양식"})));
|
||||
}
|
||||
}
|
||||
}
|
||||
//파일 첨부 사용 시 파일 확장자 없을 때
|
||||
if ("Y".equals(vo.getFilAtchUseAt())) {
|
||||
if (StringUtil.isEmpty(vo.getFilPermFilExtsn())) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("smsCnArr", gconeMessageSource.getMessage("errors.required", new Object[]{"파일 첨부 허용 파일 확장자"})));
|
||||
} else {//띄어쓰기, 앞 뒤 공백 제거
|
||||
vo.setFilPermFilExtsn(vo.getFilPermFilExtsn().replace(" ", "").trim());
|
||||
}
|
||||
}
|
||||
if (errorList != null && errorList.size() > 0) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convertCustomValidate(errorList));
|
||||
}
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/insertBOBbsRegist", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
/**
|
||||
* 게시판 아이디 중복확인
|
||||
* @param BbsmngrVO 게시판 등록 파라미터 VO
|
||||
* @param bindingResult 바인딩 및 정합성 점검결과 객체
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectBbsIdDplctCnfirm", method = RequestMethod.GET)
|
||||
public ResponseEntity<WnbtResponse> selectBbsIdDplctCnfirm(BbsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
List<Map<String, String>> errorList = new ArrayList<>();
|
||||
final String REGEX_ID = "^[A-Za-z[0-9]-_$]{6,30}$";
|
||||
Pattern boardId = Pattern.compile(REGEX_ID);
|
||||
if (!boardId.matcher(vo.getBbsId()).matches()) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("boradId", gconeMessageSource.getMessage("errors.boardId", new Object[] {"게시판 아이디"})));
|
||||
}
|
||||
if(errorList != null && !errorList.isEmpty()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convertCustomValidate(errorList));
|
||||
}
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/selectBOBbsIdDplctCnfirm", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
/**
|
||||
* 게시판 수정 폼
|
||||
* @param BbsmngrVO 게시판 등록 파라미터 VO
|
||||
* @param model 모델객체
|
||||
* @return String JSP 경로
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectBbsDtlUpdtForm")
|
||||
public String selectBbsDtlUpdtForm(BbsmngrVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setNtcntalkSndngFormInnbArr(new String[] {ntcntalkSndngFormInnb1, ntcntalkSndngFormInnb2});
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
Map<String,Object> resultMap = responseHandler.handleResponseAsMap(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/selectBOBbsDtlUpdtForm",vo)
|
||||
);
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
try {
|
||||
resultMap.put("updBbsList", objectMapper.writeValueAsString(resultMap.get("updBbsList")));
|
||||
|
||||
} catch (WnbtRestException wre){
|
||||
throw new WnbtRestException(wre.getMessage());
|
||||
} catch(Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
model.addAttribute("resultMap", resultMap);
|
||||
|
||||
return "mngr/bbs/bbsmngr/BbsDtlUpdtU";
|
||||
}
|
||||
/**
|
||||
* 게시판 수정
|
||||
* @param BbsmngrVO 게시판 등록 파라미터 VO
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/updateBbsUpdt")
|
||||
public ResponseEntity<WnbtResponse> updateBbsUpdt(@Validated BbsmngrVO vo, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
if(bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}
|
||||
List<Map<String, String>> errorList = new ArrayList<>();
|
||||
if("0".equals(vo.getGnrlRvwMlgValidMtCnt())){
|
||||
throw new WnbtRestException("일반후기 마일리지 유효 월 수는 0 이상 이여야 합니다");
|
||||
}
|
||||
if("0".equals(vo.getPhotoRvwMlgValidMtCnt())){
|
||||
throw new WnbtRestException("포토후기 마일리지 유효 월 수는 0 이상 이여야 합니다");
|
||||
}
|
||||
if(vo.getAditPymntMlgAccmlmnyAmt() != null && "0".equals(vo.getAditPymntMlgValidMtCnt())){
|
||||
throw new WnbtRestException("추가지급 마일리지 유효 월 수는 0 이상 이여야 합니다");
|
||||
}
|
||||
|
||||
//메시지 문자 내용 없을 시
|
||||
if ("01".equals(vo.getBbscttSndngMthCd())){
|
||||
List<String> nullChk = new ArrayList<>();
|
||||
if(vo.getSmsCnArr() != null){
|
||||
for (int i = 0; i < vo.getSmsCnArr().length; i++) {
|
||||
if (StringUtil.isEmpty(vo.getSmsCnArr()[i])) {
|
||||
nullChk.add("Y");
|
||||
}
|
||||
}
|
||||
}
|
||||
if(nullChk != null){
|
||||
if (nullChk.size() == 2) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("smsCnArr", gconeMessageSource.getMessage("errors.required", new Object[]{"문자 양식"})));
|
||||
}
|
||||
}
|
||||
}
|
||||
//파일 첨부 사용 시 파일 확장자 없을 때
|
||||
if ("Y".equals(vo.getFilAtchUseAt())){
|
||||
if(StringUtil.isEmpty(vo.getFilPermFilExtsn())){
|
||||
errorList.add(ValidateResultConverter.setErrorMap("smsCnArr", gconeMessageSource.getMessage("errors.required", new Object[]{"파일 첨부 허용 파일 확장자"})));
|
||||
}else{//띄어쓰기, 앞 뒤 공백 제거
|
||||
vo.setFilPermFilExtsn(vo.getFilPermFilExtsn().replace(" ","").trim());
|
||||
}
|
||||
}
|
||||
if(errorList != null && errorList.size() > 0) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convertCustomValidate(errorList));
|
||||
}
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/updateBOBbsUpdt", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
/**
|
||||
* 게시판 복사 폼
|
||||
* @param BbsmngrVO 게시판 등록 파라미터 VO
|
||||
* @param model 모델객체
|
||||
* @return String JSP 경로
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectBbsCopyForm")
|
||||
public String selectBbsCopyForm(BbsmngrVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setNtcntalkSndngFormInnbArr(new String[] {ntcntalkSndngFormInnb1, ntcntalkSndngFormInnb2});
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
Map<String,Object> resultMap = responseHandler.handleResponseAsMap(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/selectBOBbsDtlUpdtForm",vo)
|
||||
);
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
try {
|
||||
resultMap.put("updBbsList", objectMapper.writeValueAsString(resultMap.get("updBbsList")));
|
||||
|
||||
} catch (WnbtRestException wre){
|
||||
throw new WnbtRestException(wre.getMessage());
|
||||
} catch(Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
model.addAttribute("resultMap", resultMap);
|
||||
|
||||
return "mngr/bbs/bbsmngr/BbsCopyC";
|
||||
}
|
||||
/**
|
||||
* 게시판 삭제
|
||||
* @param BbsmngrVO 게시판 등록 파라미터 VO
|
||||
* @return String JSP 경로
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/deleteBbsDel")
|
||||
public ResponseEntity<WnbtResponse> deleteBbsDel(BbsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/updateBOBbsDel", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
/**
|
||||
* 게시글 대시보드 조회폼
|
||||
* @param BbsmngrVO 게시판 등록 파라미터 VO
|
||||
* @param model 모델객체
|
||||
* @return String JSP 경로
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectBbscttDshboardInqireForm")
|
||||
public String selectBbscttDshboardInqireForm(BbsmngrVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
Map<String,Object> resultMap = responseHandler.handleResponseAsMap(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/selectBOBbscttDshboardInqireForm",vo)
|
||||
);
|
||||
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
|
||||
try {
|
||||
resultMap.put("updBbsList", objectMapper.writeValueAsString(resultMap.get("updBbsList")));
|
||||
|
||||
} catch (WnbtRestException wre){
|
||||
throw new WnbtRestException(wre.getMessage());
|
||||
} catch(Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
model.addAttribute("resultMap", resultMap);
|
||||
|
||||
return "mngr/bbs/bbsmngr/BbscttDshboardForm";
|
||||
}
|
||||
/**
|
||||
* 게시글 대시보드 조회
|
||||
* @param BbsmngrVO 게시판 등록 파라미터 VO
|
||||
* @param model 모델객체
|
||||
* @return String JSP 경로
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectBbscttDshboardInqire")
|
||||
public String selectBbscttDshboardInqire(BbsmngrVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/selectBOBbscttDshboardInqire", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bbs/bbsmngr/BbscttDshboardR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 주요 게시판 보기 설정 팝업
|
||||
* @param BbsmngrVO
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectMainBbsExpsrSetupPopupForm")
|
||||
public ResponseEntity<WnbtResponse> selectMainBbsExpsrSetupPopupForm(BbsmngrVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/selectBOMainBbsExpsrSetupPopupForm", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
/**
|
||||
* 주요 게시판 보기 설정 수정
|
||||
* @param BbsmngrVO 게시판 등록 파라미터 VO
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/updateMainBbsExpsrSetupUpdt" , method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateMainBbsExpsrSetupUpdt(BbsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/updateBOMainBbsExpsrSetupUpdt", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,329 @@
|
||||
package com.wb.domainserver.domain.mngr.bbs.bbsmngr.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class BbsmngrVO extends AbstractVO {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 게시판 게시판 번호 */
|
||||
private String rnum;
|
||||
/** 게시판 게시판 ID */
|
||||
@NotEmpty(message = "게시판 ID")
|
||||
private String bbsId;
|
||||
/** 게시판 쇼핑몰 코드 */
|
||||
private String sopmalCd;
|
||||
/** 게시판 설정정보 고유번호 */
|
||||
private String setupInfoInnb;
|
||||
/** 게시판 게시판명 */
|
||||
@NotEmpty(message = "게시판명")
|
||||
private String bbsNm;
|
||||
/** 게시판 게시판 유형 */
|
||||
private String bbsTyCd;
|
||||
/** 게시판 게시판 유형명 */
|
||||
private String bbsTyNm;
|
||||
/** 게시판 스킨 (리스트형, 갤러리형, 아코디언형) */
|
||||
private String sknTyCd;
|
||||
/** 게시판 읽기 사용여부 */
|
||||
private String bbscttRedngUseAt;
|
||||
/** 게시판 읽기 전체 | 회원 */
|
||||
private String bbscttRedngAuthorDvCd;
|
||||
/** 게시판 쓰기 사용여부 */
|
||||
private String bbscttRegistUseAt;
|
||||
/** 게시판 쓰기 전체 | 회원 */
|
||||
private String bbscttRegistAuthorDvCd;
|
||||
/** 게시판 답글 사용여부 */
|
||||
private String answRegistUseAt;
|
||||
/** 게시판 답글 전체 | 회원 */
|
||||
private String answRegistAuthorDvCd;
|
||||
/** 게시판 댓글 사용여부 */
|
||||
private String cmRegistUseAt;
|
||||
/** 게시판 댓글 전체 | 회원 */
|
||||
private String cmRegistAuthorDvCd;
|
||||
/** 게시판 게시글평가사용여부 */
|
||||
private String bbscttEvlUseAt;
|
||||
/** 게시판 추천/비추천, 추천 */
|
||||
private String bbscttEvlRecomendStep;
|
||||
/** 게시판 댓글평가사용여부 */
|
||||
private String cmEvlUseAt;
|
||||
/** 게시판 추천/비추천, 추천 */
|
||||
private String cmEvlRecomendStep;
|
||||
/** 게시판 기본내용사용여부 */
|
||||
private String dftCnUseAt;
|
||||
/** 게시판 기본내용 */
|
||||
private String dftCn;
|
||||
/** 게시판 모바일기본내용사용여부 */
|
||||
private String mblDftCnUseAt;
|
||||
/** 게시판 모바일기본내용 */
|
||||
private String mblDftCn;
|
||||
/** 게시판 비밀글사용여부 */
|
||||
private String secretBbscttUseAt;
|
||||
/** 게시판 자동등록방지사용여부 */
|
||||
private String atmcRegistPrvnUseAt;
|
||||
/** 게시판 파일첨부사용여부 */
|
||||
private String filAtchUseAt;
|
||||
/** 게시판 댓글설정사용여부 */
|
||||
private String cmSetupUseAt;
|
||||
/** 게시판 추천상품노출여부 */
|
||||
private String recomendGoodsExpsrAt;
|
||||
/** 게시판 비속어 개별 | 통합 */
|
||||
private String slangFlterUseAt;
|
||||
/** 게시판 페이지세로건수 */
|
||||
private Integer pgeVtcCnt;
|
||||
/** 게시판 페이지가로건수 */
|
||||
private Integer pgeWthCnt;
|
||||
/** 게시판 아이디(등급),아이디, 이름(등급),이름,이름(아이디,등급),이름(아이디) */
|
||||
private String wrterIndictTyCd;
|
||||
/** 게시판 관리자명 */
|
||||
private String mngrNm;
|
||||
/** 게시판 게시글발송방식코드 */
|
||||
private String bbscttSndngMthCd;
|
||||
/** 게시판 리뷰노출여부 */
|
||||
private String bbsExpsrAt;
|
||||
/** 게시판 상품상세페이지 노출건수 */
|
||||
private String goodsDtlPgeExpsrCnt;
|
||||
/** 게시판 신규게시물기준일수 */
|
||||
private String newNttStdrDeCnt;
|
||||
/** 게시판 인기게시물기준조회건수 */
|
||||
private String popularNttStdrInqireCnt;
|
||||
/** 리스트표시여부_번호 */
|
||||
private String innbYn;
|
||||
/** 리스트표시여부_제목 */
|
||||
private String sjYn;
|
||||
/** 리스트표시여부_내용 */
|
||||
private String cnYn;
|
||||
/** 리스트표시여부_작성자 */
|
||||
private String regusrNmYn;
|
||||
/** 리스트표시여부_등록일 */
|
||||
private String registDtYn;
|
||||
/** 리스트표시여부_공지기간 */
|
||||
private String ntcDeYn;
|
||||
/** 리스트표시여부_조회수 */
|
||||
private String inqireCntYn;
|
||||
|
||||
/** 게시판 마일리지 */
|
||||
/** 게시판 작성글자수 */
|
||||
private String writngChrCnt;
|
||||
/** 게시판 일반후기마일리지적립금액 */
|
||||
private String gnrlRvwMlgAccmlmnyAmt;
|
||||
/** 게시판 일반후기마일리지유효월수 */
|
||||
private String gnrlRvwMlgValidMtCnt;
|
||||
/** 게시판 포토후기마일리지적립금액 */
|
||||
private String photoRvwMlgAccmlmnyAmt;
|
||||
/** 게시판 포토후기마일리지유효월수 */
|
||||
private String photoRvwMlgValidMtCnt;
|
||||
/** 게시판 추가마일리지지급시작일자 */
|
||||
private String aditMlgPymntBgnDe;
|
||||
/** 게시판 추가마일리지지급종료일자 */
|
||||
private String aditMlgPymntEndDe;
|
||||
/** 게시판 추가지급마일리지적립금액 */
|
||||
private String aditPymntMlgAccmlmnyAmt;
|
||||
/** 게시판 추가지급마일리지유효월수 */
|
||||
private String aditPymntMlgValidMtCnt;
|
||||
/** 게시판 마일리지 자동 지급 여부 */
|
||||
private String goodsRvwMlgPymntAt;
|
||||
|
||||
/** 게시판 주요게시판여부 */
|
||||
private String mainBbsAt;
|
||||
/** 게시판 주요게시판노출순서 */
|
||||
private String mainBbsExpsrOrdr;
|
||||
|
||||
/** 게시판 전체 | 회원 */
|
||||
private String[] redngAuthorDvCdArr;
|
||||
private String[] registAuthorDvCdArr;
|
||||
private String[] answRegistAuthorDvCdArr;
|
||||
private String[] cmRegistAuthorDvCdArrArr;
|
||||
private String[] bbscttRedngAuthorDvCd_c;
|
||||
private String[] bbscttRegistAuthorDvCd_c;
|
||||
private String[] answRegistAuthorDvCd_c;
|
||||
private String[] cmRegistAuthorDvCd_c;
|
||||
|
||||
/** 게시판 기능 권한 [] 값 */
|
||||
private String bbscttRedngAuthorDvCdNm;
|
||||
private String bbscttRegistAuthorDvCdNm;
|
||||
private String answRegistAuthorDvCdNm;
|
||||
private String cmRegistAuthorDvCdNm;
|
||||
|
||||
/** 게시판읽기 권한 회원 _ 전체여부 */
|
||||
private String bbscttRedngAuthorDvCd_c_all;
|
||||
/** 게시판쓰기 권한 회원 _ 전체여부 */
|
||||
private String bbscttRegistAuthorDvCd_c_all;
|
||||
/** 답변쓰기 권한 회원 _ 전체여부 */
|
||||
private String answRegistAuthorDvCd_c_all;
|
||||
/** 댓글쓰기 권한 회원 _ 전체여부 */
|
||||
private String cmRegistAuthorDvCd_c_all;
|
||||
|
||||
|
||||
public void setBbscttRedngAuthorDvCd_c(String[] bbscttRedngAuthorDvCd_c) {
|
||||
this.redngAuthorDvCdArr = bbscttRedngAuthorDvCd_c;
|
||||
}
|
||||
public void setBbscttRegistAuthorDvCd_c(String[] bbscttRegistAuthorDvCd_c) {
|
||||
this.registAuthorDvCdArr = bbscttRegistAuthorDvCd_c;
|
||||
}
|
||||
public void setAnswRegistAuthorDvCd_c(String[] answRegistAuthorDvCd_c) {
|
||||
this.answRegistAuthorDvCdArr = answRegistAuthorDvCd_c;
|
||||
}
|
||||
public void setCmRegistAuthorDvCd_c(String[] cmRegistAuthorDvCd_c) {
|
||||
this.cmRegistAuthorDvCdArrArr = cmRegistAuthorDvCd_c;
|
||||
}
|
||||
|
||||
/** 게시판 검색어 */
|
||||
private String srchWord;
|
||||
/** 게시판 타입 검색어 */
|
||||
private String[] srchBbsTyCdArr;
|
||||
private String srchBbsTyCd;
|
||||
/** 게시판 스킨 검색어 */
|
||||
private String[] srchSknTyCdArr;
|
||||
private String srchSknTyCd;
|
||||
private String pageDv;
|
||||
|
||||
/** boardform */
|
||||
/** 문항 고유번호 */
|
||||
private String qesitmInnb;
|
||||
/** 문항 고유번호 "분류" */
|
||||
private String inputDvInnb;
|
||||
/** 문항 고유번호 "별점관리" */
|
||||
private String scoreInnb;
|
||||
/** 점수 표시 */
|
||||
private String qesitmInnb_s;
|
||||
/** 분류명 */
|
||||
private String oldDvQesitmInnbs;
|
||||
/** 입력항목 */
|
||||
private String oldIpQesitmInnbs;
|
||||
/** 분류명 */
|
||||
private String[] qesitmInnb_d;
|
||||
/** 입력항목 */
|
||||
private String[] qesitmInnb_i;
|
||||
|
||||
/** 문항명 */
|
||||
private String qesitmNm;
|
||||
/** 입력항목 */
|
||||
private String[] qesitmNm_i;
|
||||
/** 분류명 */
|
||||
private String[] qesitmNm_d;
|
||||
|
||||
private String starDelList;
|
||||
|
||||
/** 문항설명 */
|
||||
private String qesitmDc;
|
||||
private String[] qesitmDc_i;
|
||||
|
||||
/** 추가입력, 추가평가, 분류관리, 별점 */
|
||||
private String aditItmDvCd;
|
||||
/** 입력항목 */
|
||||
private String[] aditItmDv_i;
|
||||
|
||||
/** 문항필수여부 */
|
||||
private String qesitmEssntlAt;
|
||||
private String[] qesitmEssntlAt_i;
|
||||
|
||||
/** 문항사용여부 */
|
||||
private String qesitmUseAt;
|
||||
private String[] qesitmUseAt_i;
|
||||
|
||||
/** 라디오,셀렉트,체크,텍스트,이미지, 점수 */
|
||||
private String itmTyCd;
|
||||
private String itmTyCdNm;
|
||||
/** 입력항목|공지|이벤트 */
|
||||
private String[] itmTy_i;
|
||||
|
||||
/** 문항순서 */
|
||||
private String qesitmOrdr;
|
||||
/** 이미지, 점수 (항목구분 : 별점평가 인 경우만 입력) */
|
||||
private String scoreIndictMthCd;
|
||||
|
||||
/** boardform_itm */
|
||||
/** 항목 고유번호 */
|
||||
private String itmInnb;
|
||||
private String[] oldItmInnbs;
|
||||
private String olddvItmInnbs;
|
||||
private String[] itmInnb_i;
|
||||
/** 항목 내용 */
|
||||
private String itmCn;
|
||||
private String[] itmCn_i;
|
||||
/** 항목 순서 */
|
||||
private String itmOrdr;
|
||||
|
||||
|
||||
/** board_rpus_answ */
|
||||
/** 게시판 자주쓰는답변 고유번호 */
|
||||
private String rpuseAnswInnb;
|
||||
private String oldRpusInnbs;
|
||||
/** 게시판 내용 */
|
||||
private String cn;
|
||||
private List<String> cnArr;
|
||||
/** 게시판 정렬순서 */
|
||||
private String sortOrdr;
|
||||
|
||||
/** board_auth */
|
||||
/** 기능권한 고유번호 */
|
||||
private String fnctAuthorInnb;
|
||||
/** 회원등급 고유번호 */
|
||||
private String mbrGradInnb;
|
||||
/** 회원등급그룹 고유번호 */
|
||||
private String mbrGradGroupInnb;
|
||||
/** 기능구분코드 */
|
||||
private String fnctDvCd;
|
||||
|
||||
|
||||
/** board_design_item */
|
||||
/** 게시판 표시항목 고유번호 */
|
||||
private String indictItmInnb;
|
||||
private String[] rpuseAnswInnbArr;
|
||||
/** 게시판 항목명 */
|
||||
private String itmNm;
|
||||
private String[] itmNmArr;
|
||||
|
||||
/** board_setup_info */
|
||||
/** 게시판 마스킹비속어 */
|
||||
private String mskgSlang;
|
||||
/** 게시판 허용도메인 */
|
||||
private String permDomn;
|
||||
/** 게시판 허용파일확장자 */
|
||||
private String filPermFilExtsn;
|
||||
/** 게시판 허용이미지확장자 */
|
||||
private String permImgExtsn;
|
||||
|
||||
/** board_sms */
|
||||
/** SMS 게시글발송구분코드 */
|
||||
private String bbscttSndngDvCd;
|
||||
private String[] sndngDvCdArr;
|
||||
/** SMS 알림톡 발송양식 고유번호 */
|
||||
private String ntcntalkSndngFormInnb;
|
||||
private String[] ntcntalkSndngFormInnbArr;
|
||||
/** SMS 내용 */
|
||||
private String smsCn;
|
||||
private String[] smsCnArr;
|
||||
/** SMS 알림발송고유번호 */
|
||||
private String ntcnSndngInnb;
|
||||
private String[] ntcnSndngInnbArr;
|
||||
|
||||
/** 게시판 기능권한 */
|
||||
private List<Map<String, Object>> authorList;
|
||||
/** 게시판 추가 문항 + 항목 */
|
||||
private Map<String, Object> addItems;
|
||||
/** 게시판 분류 항목 */
|
||||
private Map<String, Object> divItems;
|
||||
/** 게시판 자주쓰는 질문 */
|
||||
private List<Map<String, Object>> rpusAnsList;
|
||||
/** 게시판 디자인 + 운영 사이트 표시항목 */
|
||||
private Map<String, Object> design;
|
||||
/** 게시판 메시지 발송 */
|
||||
private Map<String, Object> smsSndng;
|
||||
/** 주요 게시판 > 비노출 */
|
||||
private String[] nonExpArr;
|
||||
/** 주요 게시판 > 노출 */
|
||||
private String[] expArr;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,113 @@
|
||||
package com.wb.domainserver.domain.mngr.bbs.cm.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.hibernate.validator.constraints.Length;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class CmVO extends AbstractVO {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
/**
|
||||
* 댓글고유번호
|
||||
*/
|
||||
private String cmInnb;
|
||||
/**
|
||||
* 게시글고유번호
|
||||
*/
|
||||
private String bbscttInnb;
|
||||
/**
|
||||
* 게시판ID
|
||||
*/
|
||||
private String bbsId;
|
||||
/**
|
||||
* 부모댓글고유번호
|
||||
*/
|
||||
private String parntsCmInnb;
|
||||
/**
|
||||
* 회원고유번호
|
||||
*/
|
||||
private Integer mbrInnb;
|
||||
/**
|
||||
* 회원ID
|
||||
*/
|
||||
private String mbrid;
|
||||
/**
|
||||
* 회원명
|
||||
*/
|
||||
private String mbrNm;
|
||||
/**
|
||||
* DEPTH
|
||||
*/
|
||||
private Integer depth;
|
||||
/**
|
||||
* 내용
|
||||
*/
|
||||
@NotBlank(message = "내용")
|
||||
@Length(min = 0, max = 100, message = "내용")
|
||||
private String cn;
|
||||
/**
|
||||
* 비밀번호
|
||||
*/
|
||||
private String password;
|
||||
/**
|
||||
* 비밀댓글여부
|
||||
*/
|
||||
private String secretBbscttAt;
|
||||
/**
|
||||
* IP
|
||||
*/
|
||||
private String ip;
|
||||
/**
|
||||
* AGNET_ID
|
||||
*/
|
||||
private String agentId;
|
||||
/**
|
||||
* 사용여부
|
||||
*/
|
||||
private String useAt;
|
||||
/**
|
||||
* 삭제작업자
|
||||
*/
|
||||
private Integer delusr;
|
||||
/**
|
||||
* 삭제일시
|
||||
*/
|
||||
private Date delDt;
|
||||
/**
|
||||
* 작성자 구분 코드
|
||||
*/
|
||||
private String regusrDvCd;
|
||||
/**
|
||||
* 쇼핑몰코드
|
||||
*/
|
||||
private String sopmalCd;
|
||||
/**
|
||||
* 신규댓글
|
||||
*/
|
||||
private String newCm;
|
||||
/**
|
||||
* 댓글삭제리스트
|
||||
*/
|
||||
private String[] delCmInnbArr;
|
||||
/*
|
||||
* 요청 값
|
||||
*/
|
||||
/*요청 페이지 구분(고객센터=>csc , 서브페이지=>subPage, 이용안내 => useGudiance, crm => crm)*/
|
||||
private String reqUrl;
|
||||
|
||||
/* 서버 구분 sopmal or mngr*/
|
||||
private String serverDv;
|
||||
|
||||
/*상세 구분*/
|
||||
private String dtlAt;
|
||||
|
||||
/*사용자 등록,수정시 목록이동 or 등록,수정폼 유지*/
|
||||
private String listAt;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,147 @@
|
||||
package com.wb.domainserver.domain.mngr.bbs.cnslt.controller;
|
||||
|
||||
import com.wb.domainserver.common.msg.GconeMessageSource;
|
||||
import com.wb.domainserver.domain.mngr.bbs.cnslt.vo.CnsltVO;
|
||||
import com.wb.domainserver.exception.WnbtRestException;
|
||||
import com.wb.domainserver.response.WnbtResponse;
|
||||
import com.wb.domainserver.response.WnbtWebClientResponseHandler;
|
||||
import com.wb.domainserver.security.authorization.annotation.AuthPolicy;
|
||||
import com.wb.domainserver.security.authorization.annotation.Policy;
|
||||
import com.wb.domainserver.util.communicate.*;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.ModelMap;
|
||||
import org.springframework.validation.BindingResult;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.CookieValue;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Controller
|
||||
@RequestMapping("/mngr/bbs/cnslt")
|
||||
@Slf4j
|
||||
public class CnsltController {
|
||||
|
||||
|
||||
/** WebClient 호출을 위한 wrapper */
|
||||
@Autowired
|
||||
private WnbtWebClientResponseHandler responseHandler;
|
||||
|
||||
@Autowired
|
||||
private SendToResrc sendToResrc;
|
||||
|
||||
@Autowired
|
||||
private GconeMessageSource gconeMessageSource;
|
||||
|
||||
|
||||
/**
|
||||
* 고객상담 통합게시판 목록 이동
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectCstmrCnsltUnityBbscttListInqireForm")
|
||||
public String selectCstmrCnsltUnityBbscttListInqireForm(CnsltVO cnsltVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
cnsltVO.setSopmalCd(authSopmalCd);
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/cnslt/selectBOCstmrCnsltUnityBbscttListInqireForm", cnsltVO),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bbs/cnslt/CstmrCnsltUnityBbscttListRForm";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 고객사담 통합게시판 목록 조회
|
||||
* @param cnsltVO
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectCstmrCnsltUnityBbscttListInqire")
|
||||
public String selectCstmrCnsltUnityBbscttListInqire(CnsltVO cnsltVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
cnsltVO.setSopmalCd(authSopmalCd);
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/cnslt/selectBOCstmrCnsltUnityBbscttListInqire", cnsltVO),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bbs/cnslt/CstmrCnsltUnityBbscttListR";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 고객상담 상세 내역 팝업
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectCstmrCnsltDtlUpdtInqirePopup")
|
||||
public String selectCstmrCnsltDtlUpdtInqirePopup(CnsltVO cnsltVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
cnsltVO.setSopmalCd(authSopmalCd);
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/cnslt/selectBOCnsltDtlUpdtInqirePopup", cnsltVO),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bbs/cnslt/CstmrCnsltDtlUpdtPopupU";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 상담 수정
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateCstmrCnsltUpdt")
|
||||
public ResponseEntity<WnbtResponse> updateCstmrCnsltUpdt(@Validated CnsltVO cnsltVO, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
// 정합성 검사
|
||||
if(bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
} else {
|
||||
List<Map<String, String>> errorList = new ArrayList<>();
|
||||
|
||||
if (cnsltVO.getCnsltCn() == null || cnsltVO.getCnsltCn().isEmpty()) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("cnsltCn",
|
||||
gconeMessageSource.getMessage("errors.required", new Object[] { "상담 내용" })));
|
||||
}
|
||||
|
||||
if (errorList != null && !errorList.isEmpty()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convertCustomValidate(errorList));
|
||||
}
|
||||
}
|
||||
|
||||
if (cnsltVO.getOrdrNb() != null && cnsltVO.getOrdrNb() == "") {
|
||||
cnsltVO.setOrdrNb(null);
|
||||
}
|
||||
|
||||
if (cnsltVO.getDlivyInnb() != null && cnsltVO.getDlivyInnb() == "") {
|
||||
cnsltVO.setDlivyInnb(null);
|
||||
}
|
||||
|
||||
if (cnsltVO.getGoodsInqryBbscttNb() != null && cnsltVO.getGoodsInqryBbscttNb() == "") {
|
||||
cnsltVO.setGoodsInqryBbscttNb(null);
|
||||
}
|
||||
|
||||
if (cnsltVO.getGoodsRvwBbscttNb() != null && cnsltVO.getGoodsRvwBbscttNb() == "") {
|
||||
cnsltVO.setGoodsRvwBbscttNb(null);
|
||||
}
|
||||
cnsltVO.setSopmalCd(authSopmalCd);
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/cnslt/updateBOCnsltUpdt", cnsltVO),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,132 @@
|
||||
package com.wb.domainserver.domain.mngr.bbs.cnslt.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
*
|
||||
* 관리자 - 상담 VO
|
||||
* @author 추지훈
|
||||
* @since 2024-01-26
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* == (Modification Information) == 개정이력
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2024-01-26 추지훈. 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class CnsltVO extends AbstractVO{
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
|
||||
/**
|
||||
* 상담 컬럼
|
||||
*/
|
||||
|
||||
/** 상담내역고유번호 */
|
||||
private Integer cnsltDtlsInnb;
|
||||
/** 쇼핑몰 코드 */
|
||||
private String sopmalCd;
|
||||
/** 회원고유번호 */
|
||||
private Integer mbrInnb;
|
||||
/** 회원 아이디 */
|
||||
private String mbrid;
|
||||
/** 회원명 */
|
||||
private String mbrNm;
|
||||
/** 회원 핸드폰번호 */
|
||||
private String mbtlnb;
|
||||
/** 회원명 이메일*/
|
||||
private String email;
|
||||
/** 회원구분코드 */
|
||||
private String mbrDvCd;
|
||||
/** 관리자 고유번호 */
|
||||
private String mngrInnb;
|
||||
/** 관리자이름 */
|
||||
private String mngrNm;
|
||||
/** 상담분류 */
|
||||
private String cnsltCl;
|
||||
/** 관련주문번호 */
|
||||
private String ordrNb;
|
||||
/** 관련주문번호 */
|
||||
private String ordrInnb;
|
||||
/** 출고코드 */
|
||||
private String dlivyInnb;
|
||||
/** 반품코드 */
|
||||
private String rtngudCdNb;
|
||||
/** 환불코드 */
|
||||
private String refndCdNb;
|
||||
/** 관련상품문의 */
|
||||
private String goodsInqryBbscttNb;
|
||||
/** 관련상담번호 */
|
||||
private String goodsRvwBbscttNb;
|
||||
/** 처리상태 */
|
||||
private String procsSttusCd;
|
||||
/** 처리일시 */
|
||||
private String procsDt;
|
||||
/** 상담내용 */
|
||||
private String cnsltCn;
|
||||
/** 전화구분코드 */
|
||||
private String telnbDvCd;
|
||||
/** 대분류 */
|
||||
private String lrgeCl;
|
||||
/** 중분류 */
|
||||
private String middlCl;
|
||||
/** 소분류 */
|
||||
private String smllCl;
|
||||
/** 녹취 key */
|
||||
private String recrdKy;
|
||||
/** 전화번호 */
|
||||
private String telnb;
|
||||
|
||||
|
||||
/**
|
||||
* 검색
|
||||
*/
|
||||
|
||||
/** 검색_검색어 구분 */
|
||||
private String srchKeywordDv;
|
||||
/** 검색_검색어 */
|
||||
private String srchKeyword;
|
||||
/** 검색_등록일 구분 */
|
||||
private String srchDtDv;
|
||||
/** 검색_시작일 */
|
||||
private String srchStartDate;
|
||||
/** 검색_종료일 */
|
||||
private String srchEndDate;
|
||||
/** 검색_상담자 */
|
||||
private String srchMngrNm;
|
||||
/** 검색_처리 여부 */
|
||||
private String[] srchProcsSttusCd;
|
||||
/** 검색_관련번호 구분 */
|
||||
private String srchRelateDv;
|
||||
/** 검색_관련번호 */
|
||||
private String srchRelateNm;
|
||||
/** 검색_상담내용 */
|
||||
private String srchCnsltCn;
|
||||
|
||||
|
||||
/** 녹취 키 */
|
||||
private String customer_record_key;
|
||||
/** menu 인덱스*/
|
||||
private String menuIdx;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,740 @@
|
||||
package com.wb.domainserver.domain.mngr.bbs.gnrlsctt.controller;
|
||||
|
||||
import com.wb.domainserver.common.msg.GconeMessageSource;
|
||||
import com.wb.domainserver.domain.mngr.bbs.cm.vo.CmVO;
|
||||
import com.wb.domainserver.domain.mngr.bbs.gnrlsctt.service.GnrlbbscttService;
|
||||
import com.wb.domainserver.domain.mngr.bbs.gnrlsctt.vo.GnrlscttVO;
|
||||
import com.wb.domainserver.exception.WnbtRestException;
|
||||
import com.wb.domainserver.response.WnbtResponse;
|
||||
import com.wb.domainserver.response.WnbtWebClientResponseHandler;
|
||||
import com.wb.domainserver.security.authorization.annotation.AuthPolicy;
|
||||
import com.wb.domainserver.security.authorization.annotation.Policy;
|
||||
import com.wb.domainserver.util.communicate.*;
|
||||
import com.wb.domainserver.util.file.service.FileStorageService;
|
||||
import com.wb.domainserver.util.string.StringUtil;
|
||||
import com.wb.domainserver.util.util.Util;
|
||||
import jakarta.servlet.http.Cookie;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.ModelMap;
|
||||
import org.springframework.validation.BindingResult;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.CookieValue;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 일반게시글 관리 Controller
|
||||
*
|
||||
* @author 김혜지
|
||||
* @version 1.0
|
||||
* @see <pre>
|
||||
* == (Modification Information) == 개정이력
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2024-01-05 김혜지 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
* @since 2024-01-05
|
||||
*/
|
||||
@Slf4j
|
||||
@Controller
|
||||
@RequestMapping("/mngr/bbs/gnrlsctt")
|
||||
public class GnrlscttController {
|
||||
/**
|
||||
* WebClient 호출을 위한 wrapper
|
||||
*/
|
||||
@Autowired
|
||||
private WnbtWebClientResponseHandler responseHandler;
|
||||
@Autowired
|
||||
private SendToResrc sendToResrc;
|
||||
@Autowired
|
||||
private GconeMessageSource gconeMessageSource;
|
||||
@Autowired
|
||||
private FileStorageService filestore;
|
||||
@Autowired
|
||||
private GnrlbbscttService service;
|
||||
|
||||
/**
|
||||
* 게시글 목록 조회(검색 section)
|
||||
*
|
||||
* @param vo 파라미터 vo
|
||||
* @param model
|
||||
* @return GnrlBbscttListRForm.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBbscttListInqireForm")
|
||||
public String selectBbscttListInqireForm(GnrlscttVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
vo.setRvwBbscttDv("bbsctt");
|
||||
vo.setServerDv("mngr");
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
//게시글 노출 항목 설정값과 게시판 목록 조회
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttListInqireForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bbs/gnrlsctt/GnrlBbscttListRForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 일반게시글 목록 조회 (리스트 section)
|
||||
* @param vo 파라미터 vo
|
||||
* @param model
|
||||
* @return GnrlBbscttListR.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBbscttListInqire")
|
||||
public String selectBbscttListInqire(GnrlscttVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
//쇼핑몰코드 set
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttListInqire", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
model.addAttribute("vo", vo);
|
||||
String bbsTyCd = vo.getBbsTyCd();
|
||||
String returnUrl = "";
|
||||
switch (bbsTyCd) {
|
||||
case "01" :
|
||||
returnUrl = "mngr/bbs/gnrlsctt/GnrlBbscttListR";
|
||||
break;
|
||||
case "02" :
|
||||
returnUrl = "mngr/bbs/gnrlsctt/NoticeListR";
|
||||
break;
|
||||
case "03" :
|
||||
returnUrl = "mngr/bbs/gnrlsctt/EvtBbscttListR";
|
||||
break;
|
||||
case "04" :
|
||||
returnUrl = "mngr/bbs/gnrlsctt/FaqListR";
|
||||
break;
|
||||
case "05" :
|
||||
returnUrl = "mngr/bbs/gnrlsctt/GoodsQnaBbscttListR";
|
||||
break;
|
||||
case "08" :
|
||||
returnUrl = "mngr/bbs/gnrlsctt/GnrlBbscttListR";
|
||||
break;
|
||||
case "09" :
|
||||
returnUrl = "mngr/bbs/gnrlsctt/MgzListR";
|
||||
break;
|
||||
case "10" :
|
||||
returnUrl = "mngr/bbs/gnrlsctt/useGuidanceListR";
|
||||
break;
|
||||
case "11" :
|
||||
returnUrl = "mngr/bbs/gnrlsctt/EvtResultListR";
|
||||
break;
|
||||
}
|
||||
return returnUrl;
|
||||
}
|
||||
/**
|
||||
* 일반게시글 상세 조회 팝업
|
||||
* @param vo 파라미터 vo
|
||||
* @param model
|
||||
* @return GnrlBbscttDtlPopupR.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectBbscttDtlInqirePopup")
|
||||
public String selectBbscttDtlInqirePopup(HttpServletRequest request, ModelMap model, GnrlscttVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
/*agentId,ip set*/
|
||||
Map<String,String> req = new HashMap<>();
|
||||
req = Util.getRequestInfo(request);
|
||||
String agentId =req.get("userAgent");
|
||||
vo.setAgentId(agentId);
|
||||
String ip = req.get("XForwardedFor");
|
||||
vo.setIp(ip);
|
||||
|
||||
//쇼핑몰 set
|
||||
vo.setServerDv("mngr");
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttDtlInqirePopup", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
model.addAttribute("ip", ip);
|
||||
model.addAttribute("dtlPop",vo.getDtlPop());
|
||||
return "mngr/bbs/gnrlsctt/GnrlBbscttDtlPopupR";
|
||||
}
|
||||
/**
|
||||
* 일반게시글 상세 댓글 조회
|
||||
* @param vo 파라미터 vo
|
||||
* @param model
|
||||
* @return GnrlBbscttDtlPopupR.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectCmList")
|
||||
public String selectCmList(HttpServletRequest request, CmVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
vo.setServerDv("mngr");
|
||||
|
||||
//ip주소 get
|
||||
Map<String, String> req = new HashMap<>();
|
||||
req = Util.getRequestInfo(request);
|
||||
String ip = req.get("XForwardedFor");
|
||||
vo.setIp(ip);
|
||||
|
||||
//쇼핑몰 set
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/cm/selectBOCmList", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
model.addAttribute("cmVO", vo);
|
||||
model.addAttribute("ip", ip);
|
||||
return "mngr/bbs/gnrlsctt/CmListR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 마일리지 회수 금액 조회
|
||||
*
|
||||
* @param bbsctt 파라미터 vo
|
||||
* @return ResponseEntity
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectMlgRtrvlAmt", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> selectMlgRtrvlAmt(GnrlscttVO bbsctt, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
//쇼핑몰코드 set
|
||||
bbsctt.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOMlgRtrvlAmt", bbsctt),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 게시글 논리 삭제
|
||||
* @param bbsctt 파라미터 vo
|
||||
* @return ResponseEntity
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/updateBbscttDel" , method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateBbscttDel(GnrlscttVO bbsctt, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
//쇼핑몰코드 set
|
||||
bbsctt.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/updateBOBbscttDel", bbsctt),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
/**
|
||||
* 일반게시글 등록 팝업
|
||||
* @param vo 파라미터 vo
|
||||
* @param model
|
||||
* @return GnrlBbscttRegistPopupC.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectBbscttRegistPopupForm")
|
||||
public String selectBbscttRegistPopupForm(HttpServletRequest request, GnrlscttVO bbsctt, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
//쇼핑몰코드 set
|
||||
bbsctt.setServerDv("mngr");
|
||||
bbsctt.setSopmalCd(authSopmalCd);
|
||||
|
||||
//ip주소 get
|
||||
Map<String, String> req = new HashMap<>();
|
||||
req = Util.getRequestInfo(request);
|
||||
String ip = req.get("XForwardedFor");
|
||||
bbsctt.setIp(ip);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttRegistPopupForm", bbsctt),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
model.addAttribute("ip", ip);
|
||||
return "mngr/bbs/gnrlsctt/GnrlBbscttRegistPopupC";
|
||||
}
|
||||
|
||||
/**
|
||||
* 일반게시글 등록
|
||||
* @param bbsctt 파라미터 vo
|
||||
* @param BindingResult
|
||||
* @return ResponseEntity
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/insertBbscttRegist" , method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> insertBbscttRegist( HttpServletRequest request,@Validated GnrlscttVO bbsctt, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
List<Map<String, String>> errorList = new ArrayList<>();
|
||||
//validation체크
|
||||
if(bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}else if(true) {
|
||||
//노출 여부가 'Y'이고 노출 기간 제한 '기본'일 시 날짜 지정 여부 체크
|
||||
if ("Y".equals(bbsctt.getExpsrAt()) && "Y".equals(bbsctt.getNtcePdSetupAt())) {
|
||||
if (StringUtil.isEmpty(bbsctt.getNtceBgnDe())) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("ntceBgnDe", gconeMessageSource.getMessage("errors.required", new Object[]{"노출 시작일"})));
|
||||
}
|
||||
if (StringUtil.isEmpty(bbsctt.getNtceEndDe())) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("ntceEndDe", gconeMessageSource.getMessage("errors.required", new Object[]{"노출 종료일"})));
|
||||
}
|
||||
}
|
||||
//공지글 등록 여부가 'Y'이고 공지 기간 제한 '기본'일 시 날짜 지정 여부 체크
|
||||
if ("Y".equals(bbsctt.getNtcAt()) && "Y".equals(bbsctt.getNtcPdSetupAt())) {
|
||||
if (StringUtil.isEmpty(bbsctt.getNtcBgnDe())) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("ntcBgnDe", gconeMessageSource.getMessage("errors.required", new Object[]{"공지 시작일"})));
|
||||
}
|
||||
if (StringUtil.isEmpty(bbsctt.getNtcEndDe())) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("ntcEndDe", gconeMessageSource.getMessage("errors.required", new Object[]{"공지 종료일"})));
|
||||
}
|
||||
}
|
||||
//비밀글 여부가 'Y'이고 비밀번호 없을 시
|
||||
if("Y".equals(bbsctt.getSecretBbscttAt())) {
|
||||
if(StringUtil.isEmpty(bbsctt.getPassword())){
|
||||
errorList.add(ValidateResultConverter.setErrorMap("password", gconeMessageSource.getMessage("errors.required", new Object[]{"비밀번호"})));
|
||||
}
|
||||
}
|
||||
//순서 여부가 'Y'이고 순서 값 없을 시
|
||||
if("Y".equals(bbsctt.getSortOrdrAt())) {
|
||||
if(bbsctt.getSortOrdr()== null){
|
||||
errorList.add(ValidateResultConverter.setErrorMap("sortOrdr", gconeMessageSource.getMessage("errors.required", new Object[]{"순서"})));
|
||||
}
|
||||
}
|
||||
//게시판 스킨타입이 갤러리형이고 대표이미지 없을 시
|
||||
if ("02".equals(bbsctt.getSknTyCd()) && "N".equals(bbsctt.getRepresntFilAt())) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("represntFilAt", gconeMessageSource.getMessage("errors.required", new Object[]{"대표이미지"})));
|
||||
}
|
||||
//필수 입력 여부설정이 Y 이고 입력 여부가 N일 시 validation 체크
|
||||
if(bbsctt.getQesitmEssntlAtArr() != null) {
|
||||
for (int idx = 0; idx < bbsctt.getQesitmEssntlAtArr().length; idx++) {
|
||||
if ("Y".equals(bbsctt.getQesitmEssntlAtArr()[idx]) && "N".equals(bbsctt.getQesitmAtArr()[idx])) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("answCnArr", gconeMessageSource.getMessage("errors.required", new Object[]{bbsctt.getQesitmNmArr()[idx]})));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(errorList != null
|
||||
&& errorList.size() > 0) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convertCustomValidate(errorList));
|
||||
}
|
||||
|
||||
//쇼핑몰코드 set
|
||||
bbsctt.setServerDv("mngr");
|
||||
bbsctt.setSopmalCd(authSopmalCd);
|
||||
|
||||
/*agentId,ip set*/
|
||||
Map<String, String> req = new HashMap<>();
|
||||
req = Util.getRequestInfo(request);
|
||||
String ip = req.get("XForwardedFor");
|
||||
bbsctt.setIp(ip);
|
||||
|
||||
String agentId = "";
|
||||
|
||||
// 쿠키를 가져옴
|
||||
Cookie[] cookies = request.getCookies();
|
||||
|
||||
//agentId 쿠키 있을 경우 가져옴
|
||||
if (cookies != null) {
|
||||
for (Cookie cookie : cookies) {
|
||||
if (cookie.getName().equals("agent_id")) {
|
||||
agentId = cookie.getValue();
|
||||
bbsctt.setAgentId(agentId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//파일 경로 설정 (등록)
|
||||
List<HashMap<String, Object>> file = new ArrayList<HashMap<String, Object>>();
|
||||
request.setAttribute("shopCd", bbsctt.getSopmalCd());
|
||||
request.setAttribute("subPathId", bbsctt.getBbsId());
|
||||
request.setAttribute("pathGubun", "BDIG");
|
||||
if ("Y".equals(bbsctt.getRepresntFilAt())) { //대표이미지 업로드 할 경우
|
||||
List<HashMap<String, Object>> represntUlpladFileList = new ArrayList<HashMap<String, Object>>();
|
||||
represntUlpladFileList = filestore.fileUpload(request); //BDIG로 경로 구분 get
|
||||
|
||||
//대표 이미지 파일 등록
|
||||
HashMap<String, Object> representUlpladFileMap = new HashMap<String, Object>();
|
||||
representUlpladFileMap = represntUlpladFileList.get(0); //첫번재 파일 정보만 get(대표이미지 첫번째)
|
||||
bbsctt.setRepresntFileInfo(representUlpladFileMap); //대표이미지 파일 정보 set
|
||||
represntUlpladFileList.remove(0); //대표이미지 정보 삭제
|
||||
|
||||
//파일 첨부 등록
|
||||
//일반 파일 첨부일 경우
|
||||
if(represntUlpladFileList.size() > 0){
|
||||
List<HashMap<String, Object>> ulpladFileMap = new ArrayList<HashMap<String, Object>>();
|
||||
request.setAttribute("pathGubun", "BDFL");//게시판 일반첨부파일 구분
|
||||
request.setAttribute("validExp", bbsctt.getFilPermFilExtsn());//게시판 일반첨부파일 구분
|
||||
ulpladFileMap = filestore.fileUpload(request); //경로구분이 바뀐 주소로 set
|
||||
bbsctt.setFileInfo(ulpladFileMap); //파일 set
|
||||
}
|
||||
} else {
|
||||
//파일 첨부 등록
|
||||
List<HashMap<String, Object>> ulpladFileMap = new ArrayList<HashMap<String, Object>>();
|
||||
request.setAttribute("pathGubun", "BDFL");//게시판 일반첨부파일 구분
|
||||
request.setAttribute("validExp", bbsctt.getFilPermFilExtsn());//게시판 일반첨부파일 구분
|
||||
ulpladFileMap = filestore.fileUpload(request);
|
||||
bbsctt.setFileInfo(ulpladFileMap);
|
||||
}
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/insertBOBbscttRegist", bbsctt),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
}
|
||||
/******************************************************
|
||||
* 게시글 수정 팝업
|
||||
******************************************************/
|
||||
/**
|
||||
* 일반게시글 수정 팝업
|
||||
* @param bbsctt 파라미터 vo
|
||||
* @param model
|
||||
* @return GnrlBbscttUpdtPopupU.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectBbscttUpdtPopupForm")
|
||||
public String selectBbscttUpdtPopupForm(GnrlscttVO bbsctt, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
//쇼핑몰코드 set
|
||||
bbsctt.setServerDv("mngr");
|
||||
bbsctt.setSopmalCd(authSopmalCd);
|
||||
|
||||
//게시글 상세 조회 및 게시판 설정 조회
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttUpdtPopupForm", bbsctt),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
model.addAttribute("dtlPop", bbsctt.getDtlPop());
|
||||
return "mngr/bbs/gnrlsctt/GnrlBbscttUpdtPopupU";
|
||||
}
|
||||
/**
|
||||
* 일반게시글 수정
|
||||
* @param bbsctt 파라미터 vo
|
||||
* @param bindingResult
|
||||
* @return ResponseEntity
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/updateBbscttUpdt" , method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateBbscttUpdt( HttpServletRequest request,@Validated GnrlscttVO bbsctt, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
List<Map<String, String>> errorList = new ArrayList<>();
|
||||
//validation체크
|
||||
if(bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}else if(true) {
|
||||
//노출 여부가 'Y'이고 노출 기간 제한 '기본'일 시 날짜 지정 여부 체크
|
||||
if ("Y".equals(bbsctt.getExpsrAt()) && "Y".equals(bbsctt.getNtcePdSetupAt())) {
|
||||
if (StringUtil.isEmpty(bbsctt.getNtceBgnDe())) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("ntceBgnDe", gconeMessageSource.getMessage("errors.required", new Object[]{"노출 시작일"})));
|
||||
}
|
||||
if (StringUtil.isEmpty(bbsctt.getNtceEndDe())) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("ntceEndDe", gconeMessageSource.getMessage("errors.required", new Object[]{"노출 종료일"})));
|
||||
}
|
||||
}
|
||||
//공지글 등록 여부가 'Y'이고 공지 기간 제한 '기본'일 시 날짜 지정 여부 체크
|
||||
if ("Y".equals(bbsctt.getNtcAt()) && "Y".equals(bbsctt.getNtcPdSetupAt())) {
|
||||
if (StringUtil.isEmpty(bbsctt.getNtcBgnDe())) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("ntcBgnDe", gconeMessageSource.getMessage("errors.required", new Object[]{"공지 시작일"})));
|
||||
}
|
||||
if (StringUtil.isEmpty(bbsctt.getNtcEndDe())) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("ntcEndDe", gconeMessageSource.getMessage("errors.required", new Object[]{"공지 종료일"})));
|
||||
}
|
||||
}
|
||||
//게시판 스킨타입이 갤러리형이고 대표이미지 없을 시
|
||||
if("02".equals(bbsctt.getSknTyCd())&& "N".equals(bbsctt.getRepresntFilAt())){
|
||||
errorList.add(ValidateResultConverter.setErrorMap("represntFilAt", gconeMessageSource.getMessage("errors.required", new Object[]{"대표이미지"})));
|
||||
}
|
||||
//순서 여부가 'Y'이고 순서 값 없을 시
|
||||
if("Y".equals(bbsctt.getSortOrdrAt())) {
|
||||
if(bbsctt.getSortOrdr()== null){
|
||||
errorList.add(ValidateResultConverter.setErrorMap("sortOrdr", gconeMessageSource.getMessage("errors.required", new Object[]{"순서"})));
|
||||
}
|
||||
}
|
||||
//필수 입력 여부설정이 Y 이고 입력 여부가 N일 시 validation 체크
|
||||
if(bbsctt.getQesitmEssntlAtArr() != null) {
|
||||
for (int idx = 0; idx < bbsctt.getQesitmEssntlAtArr().length; idx++) {
|
||||
if ("Y".equals(bbsctt.getQesitmEssntlAtArr()[idx]) && "N".equals(bbsctt.getQesitmAtArr()[idx])) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("answCnArr", gconeMessageSource.getMessage("errors.required", new Object[]{bbsctt.getQesitmNmArr()[idx]})));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(errorList != null
|
||||
&& errorList.size() > 0) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convertCustomValidate(errorList));
|
||||
}
|
||||
|
||||
//쇼핑몰코드 set
|
||||
bbsctt.setServerDv("mngr");
|
||||
bbsctt.setSopmalCd(authSopmalCd);
|
||||
|
||||
//파일 경로 설정 (수정)
|
||||
List<HashMap<String, Object>> file = new ArrayList<HashMap<String, Object>>();
|
||||
request.setAttribute("shopCd", bbsctt.getSopmalCd()); //쇼핑몰 코드
|
||||
request.setAttribute("subPathId", bbsctt.getBbsId()); //게시판 아이디
|
||||
request.setAttribute("pathGubun", "BDIG"); //이미지 경로 set
|
||||
if ("Y".equals(bbsctt.getRepresntFilAt())) { //대표이미지 업로드 할 경우
|
||||
List<HashMap<String, Object>> represntUlpladFileList = new ArrayList<HashMap<String, Object>>();
|
||||
if ("Y".equals(bbsctt.getRepresntFilChangeAt())) {//대표이미지 파일을 변경할 경우
|
||||
represntUlpladFileList = filestore.fileUpload(request); //BDIG로 경로 구분 get
|
||||
//대표 이미지 파일 등록
|
||||
HashMap<String, Object> representUlpladFileMap = new HashMap<String, Object>();
|
||||
representUlpladFileMap = represntUlpladFileList.get(0); //첫번재 파일 정보만 get(대표이미지 첫번째)
|
||||
bbsctt.setRepresntFileInfo(representUlpladFileMap); //대표이미지 파일 정보 set
|
||||
represntUlpladFileList.remove(0);
|
||||
//파일 첨부 등록
|
||||
if (represntUlpladFileList.size() > 0) {
|
||||
List<HashMap<String, Object>> ulpladFileMap = new ArrayList<HashMap<String, Object>>();
|
||||
//일반 파일 첨부일 경우
|
||||
if ("N".equals(bbsctt.getDropzoneAt())) {
|
||||
request.setAttribute("pathGubun", "BDFL");//게시판 일반첨부파일 구분
|
||||
request.setAttribute("validExp", bbsctt.getFilPermFilExtsn());//게시판 일반첨부파일 구분
|
||||
}
|
||||
ulpladFileMap = filestore.fileUpload(request); //경로구분이 바뀐 주소로 set
|
||||
if ("Y".equals(bbsctt.getRepresntFilChangeAt())) {//대표이미지 파일을 변경할 경우
|
||||
ulpladFileMap.remove(0);
|
||||
}
|
||||
bbsctt.setFileInfo(ulpladFileMap); //파일 set
|
||||
}
|
||||
}else{
|
||||
List<HashMap<String, Object>> ulpladFileMap = new ArrayList<HashMap<String, Object>>();
|
||||
//일반 파일 첨부일 경우
|
||||
if ("N".equals(bbsctt.getDropzoneAt())) {
|
||||
request.setAttribute("pathGubun", "BDFL");//게시판 일반첨부파일 구분
|
||||
request.setAttribute("validExp", bbsctt.getFilPermFilExtsn());//게시판 일반첨부파일 구분
|
||||
}
|
||||
ulpladFileMap = filestore.fileUpload(request); //경로구분이 바뀐 주소로 set
|
||||
bbsctt.setFileInfo(ulpladFileMap); //파일 set
|
||||
}
|
||||
} else {
|
||||
List<HashMap<String, Object>> ulpladFileMap = new ArrayList<HashMap<String, Object>>();
|
||||
//파일 첨부 등록
|
||||
if ("N".equals(bbsctt.getDropzoneAt())) {
|
||||
request.setAttribute("pathGubun", "BDFL");//게시판 일반첨부파일 구분
|
||||
request.setAttribute("validExp", bbsctt.getFilPermFilExtsn());//게시판 일반첨부파일 구분
|
||||
}
|
||||
ulpladFileMap = filestore.fileUpload(request);
|
||||
bbsctt.setFileInfo(ulpladFileMap);
|
||||
}
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/updateBOBbscttUpdt", bbsctt),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 댓글 등록
|
||||
* @param cm 파라미터 vo
|
||||
* @return ResponseEntity
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/insertBbscttCmRegist")
|
||||
public ResponseEntity<WnbtResponse> insertBbscttCmRegist(HttpServletRequest request ,@Validated CmVO cm, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
if(bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}
|
||||
|
||||
//쇼핑몰코드 set
|
||||
cm.setServerDv("mngr");
|
||||
cm.setSopmalCd(authSopmalCd);
|
||||
|
||||
//ip주소 get
|
||||
Map<String,String> req = Util.getRequestInfo(request);
|
||||
String ip = req.get("XForwardedFor");
|
||||
cm.setIp(ip);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/cm/insertBOCmRegist", cm),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 댓글 수정
|
||||
* @param cm 파라미터 vo
|
||||
* @return ResponseEntity
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/updateBbscttCmUpdt" , method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateBbscttCmUpdt(@Validated CmVO cm, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
if(bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}
|
||||
|
||||
//쇼핑몰코드 set
|
||||
cm.setServerDv("mngr");
|
||||
cm.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/cm/updateBOCmUpdt", cm),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 댓글 논리 삭제
|
||||
*
|
||||
* @param cm 파라미터 vo
|
||||
* @return ResponseEntity
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/deleteBbscttCmDel", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> deleteBbscttCmDel(CmVO cm, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
if (bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}
|
||||
|
||||
//쇼핑몰코드 set
|
||||
cm.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/cm/deleteBOCmDel", cm),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* FAQ 노출여부 수정
|
||||
*
|
||||
* @param bbsctt 파라미터 vo
|
||||
* @param bindingResult
|
||||
* @return ResponseEntity
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateBbscttExpsrAt", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateBbscttExpsrAt(GnrlscttVO bbsctt, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
if (bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}
|
||||
//쇼핑몰코드 set
|
||||
bbsctt.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/updateBOBbscttExpsrAt", bbsctt),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 일반게시글 답변 등록 팝업
|
||||
*
|
||||
* @param bbsctt 파라미터 vo
|
||||
* @param model
|
||||
* @return GnrlBbscttUpdtPopupU.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBbscttAnswRegistPopupForm")
|
||||
public String selectBbscttAnswRegistPopupForm(GnrlscttVO bbsctt, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
bbsctt.setServerDv("mngr");
|
||||
//쇼핑몰코드 set
|
||||
bbsctt.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO,"/gcone/bbs/gnrlbbsctt/selectBOBbscttAnswRegistPopupForm", bbsctt),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
model.addAttribute("dtlPop", bbsctt.getDtlPop());
|
||||
return "mngr/bbs/gnrlsctt/GnrlBbscttAnswRegistPopupC";
|
||||
}
|
||||
|
||||
/**
|
||||
* 일반게시글 답변 등록
|
||||
* @param bbsctt 파라미터 vo
|
||||
* @param bindingResult
|
||||
* @return ResponseEntity<WnbtResponse>
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/insertBbscttAnswRegist")
|
||||
public ResponseEntity<WnbtResponse> insertBbscttAnswRegist(HttpServletRequest request, @Validated GnrlscttVO bbsctt, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
if (bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}
|
||||
|
||||
bbsctt.setServerDv("mngr");
|
||||
//쇼핑몰코드 set
|
||||
bbsctt.setSopmalCd(authSopmalCd);
|
||||
|
||||
/*agentId,ip set*/
|
||||
Map<String, String> req = new HashMap<>();
|
||||
req = Util.getRequestInfo(request);
|
||||
String ip = req.get("XForwardedFor");
|
||||
bbsctt.setIp(ip);
|
||||
|
||||
String agentId = "";
|
||||
|
||||
// 쿠키를 가져옴
|
||||
Cookie[] cookies = request.getCookies();
|
||||
|
||||
//agentId 쿠키 있을 경우 가져옴
|
||||
if (cookies != null) {
|
||||
for (Cookie cookie : cookies) {
|
||||
if (cookie.getName().equals("agent_id")) {
|
||||
agentId = cookie.getValue();
|
||||
bbsctt.setAgentId(agentId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/insertBOBbscttRegist", bbsctt),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 일반게시글 답변 수정 팝업
|
||||
*
|
||||
* @param bbsctt 파라미터 vo
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBbscttAnswUpdtPopupForm")
|
||||
public String selectBbscttAnswUpdtPopupForm(GnrlscttVO bbsctt, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
//쇼핑몰코드 set
|
||||
bbsctt.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO,"/gcone/bbs/gnrlbbsctt/selectBOBbscttAnswUpdtPopupForm", bbsctt),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
model.addAttribute("dtlPop", bbsctt.getDtlPop());
|
||||
return "mngr/bbs/gnrlsctt/GnrlBbscttAnswUpdtPopupU";
|
||||
}
|
||||
|
||||
/**
|
||||
* 일반게시글 답변 수정
|
||||
*
|
||||
* @param bbsctt 파라미터 vo
|
||||
* @param bindingResult
|
||||
* @return ResponseEntity<WnbtResponse>
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateBbscttAnswUpdt", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateBbscttAnswUpdt(@Validated GnrlscttVO bbsctt, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
if (bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}
|
||||
//쇼핑몰코드 set
|
||||
bbsctt.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/updateBOBbscttUpdt", bbsctt),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
package com.wb.domainserver.domain.mngr.bbs.gnrlsctt.mapper;
|
||||
|
||||
import com.wb.domainserver.domain.mngr.bbs.gnrlsctt.vo.GnrlscttVO;
|
||||
import com.wb.domainserver.util.dataaccess.DataMap;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
/**
|
||||
* 일반게시글 관리 Mapper
|
||||
*
|
||||
* @author 김혜지
|
||||
* @since 2024-01-05
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* == (Modification Information) == 개정이력
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2024-01-05 김혜지 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
@Mapper
|
||||
@Repository
|
||||
public interface GnrlbbscttMapper {
|
||||
/*******************
|
||||
* 게시글 상세 조회
|
||||
*******************/
|
||||
/** 게시글 상세조회 */
|
||||
public DataMap selectBOBbscttDtlInqirePopup(GnrlscttVO bbsctt);
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
package com.wb.domainserver.domain.mngr.bbs.gnrlsctt.service;
|
||||
|
||||
import com.wb.domainserver.domain.mngr.bbs.gnrlsctt.mapper.GnrlbbscttMapper;
|
||||
import com.wb.domainserver.domain.mngr.bbs.gnrlsctt.vo.GnrlscttVO;
|
||||
import com.wb.domainserver.util.dataaccess.DataMap;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 게시글 관리 Service
|
||||
*
|
||||
* @author 김혜지
|
||||
* @since 2024-01-05
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* == (Modification Information) == 개정이력
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2024-01-05 김혜지 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class GnrlbbscttService {
|
||||
|
||||
@Autowired
|
||||
private GnrlbbscttMapper mapper;
|
||||
/*************************************************************************************
|
||||
* 상세조회 service시작
|
||||
*****************************************************************************************/
|
||||
/**
|
||||
* 게시글 상세조회
|
||||
*
|
||||
* @param bbsctt 파라미터VO
|
||||
* @return BOGnrlbbscttVO 상세조회 결과
|
||||
*/
|
||||
public Map<String, Object> selectBOBbscttDtlInqirePopup(GnrlscttVO bbsctt) {
|
||||
Map<String, Object> map = new HashMap<String, Object>();
|
||||
//게시글 상세 조회
|
||||
|
||||
DataMap bbscttInfo = new DataMap();
|
||||
bbscttInfo = mapper.selectBOBbscttDtlInqirePopup(bbsctt);
|
||||
|
||||
map.put("dataMap", bbscttInfo);
|
||||
return map;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,331 @@
|
||||
package com.wb.domainserver.domain.mngr.bbs.gnrlsctt.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.hibernate.validator.constraints.Length;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class GnrlscttVO extends AbstractVO {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
//게시판 검색 조건 쇼핑몰 코드
|
||||
private String sopmalCd;
|
||||
/**
|
||||
* 게시글 정보
|
||||
*/
|
||||
/*회원고유번호*/
|
||||
private Integer mbrInnb;
|
||||
/*회원고유번호*/
|
||||
private String MbrDvCd;
|
||||
/** 게시글고유번호 */
|
||||
private String bbscttInnb;
|
||||
/** 부모게시글고유번호 */
|
||||
private String parntsBbscttInnb;
|
||||
/** 게시판ID */
|
||||
private String bbsId;
|
||||
/** DEPTH */
|
||||
private Integer depth;
|
||||
/** 등록자구분코드 */
|
||||
private String regusrDvCd;
|
||||
/** 등록자ID */
|
||||
private String regusrId;
|
||||
/** 등록자명 */
|
||||
private String regusrNm;
|
||||
/** 비밀번호 */
|
||||
private String password;
|
||||
@NotBlank(message = "내용")
|
||||
@Length(max = 16777215, message = "내용")
|
||||
/** 내용 */
|
||||
private String cn;
|
||||
/** 제목 */
|
||||
@NotBlank(message = "제목")
|
||||
@Length(min = 0, max = 100, message = "제목")
|
||||
private String sj;
|
||||
/** 조회건수 */
|
||||
private Integer inqireCnt;
|
||||
/** 댓글사용여부 */
|
||||
private String cmUseAt;
|
||||
/** 추천건수 */
|
||||
private Integer recomendCnt;
|
||||
/** 비추천건수 */
|
||||
private Integer nonrecomendCnt;
|
||||
/** 정렬순서 */
|
||||
private Integer sortOrdr;
|
||||
/** 정렬순서여부 */
|
||||
private String sortOrdrAt;
|
||||
/** 대표이미지원본파일명 */
|
||||
private String reprsntImgOrginlFilNm;
|
||||
/** 대표이미지시스템파일명 */
|
||||
private String reprsntImgSysFilNm;
|
||||
/** 비밀글여부 */
|
||||
private String secretBbscttAt;
|
||||
/** 공지여부 */
|
||||
private String ntcAt;
|
||||
/** 노출여부 */
|
||||
private String expsrAt;
|
||||
/** 온라인여부 */
|
||||
private String onlineAt;
|
||||
/** 오프라인여부 */
|
||||
private String oflneAt;
|
||||
/** 게시기간설정여부 */
|
||||
private String ntcePdSetupAt;
|
||||
/** 게시시작일자 */
|
||||
private String ntceBgnDe;
|
||||
/** 게시종료일자 */
|
||||
private String ntceEndDe;
|
||||
/** 공지기간설정여부 */
|
||||
private String ntcPdSetupAt;
|
||||
/** 공지시작일자 */
|
||||
private String ntcBgnDe;
|
||||
/** 공지종료일자 */
|
||||
private String ntcEndDe;
|
||||
/** 메인노출여부 */
|
||||
private String mainExpsrAt;
|
||||
/** 베스트여부 */
|
||||
private String bstAt;
|
||||
/** 포토리뷰여부 */
|
||||
private String photoRvwAt;
|
||||
/** NPay 게시글 일련번호 */
|
||||
private String npayBbscttSnb;
|
||||
/** NPay 답변 전송여부*/
|
||||
private String npayAnswTrnsmisAt;
|
||||
/** NPay 답변번호*/
|
||||
private String npayAnswNb;
|
||||
/** NPay 상품주문번호*/
|
||||
private String npayGoodsOrdrnb;
|
||||
/** NPay 리뷰유형코드*/
|
||||
private String npayRvwTyCd;
|
||||
/** IP */
|
||||
private String ip;
|
||||
/** agentId */
|
||||
private String agentId;
|
||||
/** 사용여부 */
|
||||
private String useAt;
|
||||
/** 삭제작업자 */
|
||||
private Integer delusr;
|
||||
/** 삭제일시 */
|
||||
private Date delDt;
|
||||
|
||||
|
||||
/**
|
||||
* 검색조건
|
||||
*/
|
||||
/** 검색구분 */
|
||||
private String srchDv;
|
||||
/** 검색어 */
|
||||
private String srchKeyword;
|
||||
/** 검색 시작일 */
|
||||
private String srchStartDt;
|
||||
/** 검색 종료일 */
|
||||
private String srchEndDt;
|
||||
/** 게시판 이름 코드 */
|
||||
private String bbsTyCd;
|
||||
/** 답변 상태 */
|
||||
private String answSttus;
|
||||
/** 분류명 */
|
||||
private String srchitmInnb;
|
||||
/** 기간 */
|
||||
private String datePeriod;
|
||||
/** 순번 */
|
||||
private Integer rnum;
|
||||
/** 항목내용 */
|
||||
private String itmCn;
|
||||
/** 대시보드여부 */
|
||||
private String dashAt;
|
||||
|
||||
/**
|
||||
* 게시글추가문항답변
|
||||
*/
|
||||
|
||||
/** 문항답변고유번호 */
|
||||
private String qesitmAnswInnb;
|
||||
/** 문항고유번호 */
|
||||
private String qesitmInnb;
|
||||
/** 문항필수여부 */
|
||||
private String qesitmEssntlAt;
|
||||
/** 문항사용여부 */
|
||||
private String qesitmUseAt;
|
||||
/** 문항순서 */
|
||||
private String qesitmOrdr;
|
||||
/** 항목고유번호 */
|
||||
private String itmInnb;
|
||||
/** 답변내용 */
|
||||
private String answCn;
|
||||
/** 평가점수 */
|
||||
private String evlScore;
|
||||
/** 문항필수여부(배열) */
|
||||
private String[] qesitmEssntlAtArr;
|
||||
/** 문항고유번호(배열) */
|
||||
private String[] qesitmInnbArr;
|
||||
/** 문항 명(배열) */
|
||||
private String[] qesitmNmArr;
|
||||
/** 항목고유번호(배열) */
|
||||
private String[] itmInnbArr;
|
||||
/** 답변내용(배열) */
|
||||
private String[] answCnArr;
|
||||
/** 답변 여부(배열) */
|
||||
private String[] qesitmAtArr;
|
||||
|
||||
/** 선택삭제 게시판리스트 */ // 필요없을듯
|
||||
//private String[] delBbsIdArr;
|
||||
/** 선택삭제 게시글리스트 */
|
||||
private String[] delBbscttInnbArr;
|
||||
|
||||
/**
|
||||
* 첨부파일 정보
|
||||
*/
|
||||
|
||||
|
||||
/* 파일 고유번호 */
|
||||
private String bbscttAtchmnfilInnb;
|
||||
/** 원본파일명 */
|
||||
private String orginlFilNm;
|
||||
/** 변환파일명 */
|
||||
private String sysFilNm;
|
||||
/** 파일타입 */
|
||||
private String filTy;
|
||||
/** 파일크기 */
|
||||
private String filMg;
|
||||
/** 파일경로 */
|
||||
private String filCours;
|
||||
/** 파일정보 */
|
||||
private List<HashMap<String, Object>> fileInfo;
|
||||
/** 대표이미지 파일 정보*/
|
||||
private HashMap<String, Object> represntFileInfo;
|
||||
/*파일 존재여부*/
|
||||
private String filExtAt;
|
||||
/*현존 파일 정보*/
|
||||
private String extFiles;
|
||||
/*기존 파일 정보*/
|
||||
private String filesInfo;
|
||||
/*기존 파일 변화 여부*/
|
||||
private String extFilChangeAt;
|
||||
/*대표이미지 첨부 구분*/
|
||||
private String represntFilAt;
|
||||
/*파일 수정여부*/
|
||||
private String represntFilChangeAt;
|
||||
/*파일 첨부 허용 확장자*/
|
||||
private String filPermFilExtsn;
|
||||
/*드롭존 존재 여부*/
|
||||
private String dropzoneAt;
|
||||
/*파일 구분*/
|
||||
private String filDvCd;
|
||||
/** 댓글 리스트 */
|
||||
private String[] cmList;
|
||||
private String boardAnswInnb;
|
||||
private String oldFileName;
|
||||
private String bbsNm;
|
||||
|
||||
/** 항목고유번호 리스트 */
|
||||
private String[] itmInnbAns;
|
||||
/** 답변내용 리스트 */
|
||||
private String[] answCnAns;
|
||||
private String[] qesitmInnbAns;
|
||||
/** 항목고유번호 (분류) */
|
||||
private String itmInnbDiv;
|
||||
/** 답변내용 (분류) */
|
||||
private String answCnDiv;
|
||||
private String qesitmInnbDiv;
|
||||
/*
|
||||
* 상세 조회
|
||||
*/
|
||||
/*상품고유번호*/
|
||||
private String goodsInnb;
|
||||
/*상품고유번호배열*/
|
||||
private String[] goodsInnbArr;
|
||||
/*주문상품옵션고유번호*/
|
||||
private String ordrGoodsOptnInnb;
|
||||
/*주문상품옵션고유번호 배열*/
|
||||
private String[] ordrGoodsOptnInnbArr;
|
||||
/*추천상품고유번호*/
|
||||
private String recomendGoodsInnb;
|
||||
/** 상세조회와 페이지 구분처리 */
|
||||
private String dtlPop;
|
||||
|
||||
/**
|
||||
* 게시판 설정
|
||||
*/
|
||||
/** 설정고유번호 */
|
||||
private String setupInfoInnb;
|
||||
/** 비속어필터사용여부 */
|
||||
private String slangFlterUseAt;
|
||||
/** 마스킹비속어 */
|
||||
private String mskgSlang;
|
||||
/*스킨타입코드*/
|
||||
private String sknTyCd;
|
||||
/*추천상품노출여부*/
|
||||
private String recomendGoodsExpsrAt;
|
||||
/* 갤러리형 목록 조회 행 개수*/
|
||||
private String pgeVtcCnt;
|
||||
/* 갤러리형 목록 조회 열 개수*/
|
||||
private String pgeWthCnt;
|
||||
/*이전글다음글 조회 여부*/
|
||||
private String prevNext;
|
||||
/*게시글발송방식코드*/
|
||||
private String bbscttSndngMthCd;
|
||||
|
||||
/*sms 관련*/
|
||||
private String bbscttSndngDvCd;
|
||||
/*
|
||||
* 메시지 발송
|
||||
*/
|
||||
/*답변 휴대폰번호*/
|
||||
private String answMbtlnb;
|
||||
/*답변수신여부*/
|
||||
private String answSmsRecptn;
|
||||
/*답변 타겟 작성자 아이디*/
|
||||
private String answRegusrId;
|
||||
/*답변 타겟 작성자 이름*/
|
||||
private String answRegusrNm;
|
||||
/*답변 타겟 작성자 고유번호*/
|
||||
private Integer answRegusr;
|
||||
|
||||
/**
|
||||
* 권한
|
||||
*/
|
||||
//관리자 인지 사용자인지
|
||||
private String AuthDv;
|
||||
//사용자 고유번호
|
||||
private Integer AuthInnb;
|
||||
|
||||
/*
|
||||
* 요청 값
|
||||
*/
|
||||
/*요청 페이지 구분(고객센터=>csc , 서브페이지=>subPage, 이용안내 => useGudiance, crm => crm)*/
|
||||
private String reqUrl;
|
||||
|
||||
/* 서버 구분 sopmal or mngr*/
|
||||
private String serverDv;
|
||||
|
||||
/*상세 구분*/
|
||||
private String dtlAt;
|
||||
|
||||
/*사용자 등록,수정시 목록이동 or 등록,수정폼 유지*/
|
||||
private String listAt;
|
||||
|
||||
/*리뷰,게시글 구분*/
|
||||
private String rvwBbscttDv;
|
||||
|
||||
/*공지여부 'Y' 개수*/
|
||||
private Integer nonNtcCnt;
|
||||
|
||||
/*공지여부 'N' 개수*/
|
||||
private Integer ntcCnt;
|
||||
|
||||
/*총 건수*/
|
||||
private Integer totCnt;
|
||||
|
||||
/*비밀번호 변경 여부*/
|
||||
private String passwordChngAt;
|
||||
|
||||
/*스크립트 내용*/
|
||||
private String cnScript;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,424 @@
|
||||
package com.wb.domainserver.domain.mngr.bbs.rvw.controller;
|
||||
|
||||
import com.wb.domainserver.common.msg.GconeMessageSource;
|
||||
import com.wb.domainserver.domain.mngr.bbs.rvw.vo.RvwVO;
|
||||
import com.wb.domainserver.exception.WnbtRestException;
|
||||
import com.wb.domainserver.response.WnbtResponse;
|
||||
import com.wb.domainserver.response.WnbtWebClientResponseHandler;
|
||||
import com.wb.domainserver.security.authorization.annotation.AuthPolicy;
|
||||
import com.wb.domainserver.security.authorization.annotation.Policy;
|
||||
import com.wb.domainserver.util.communicate.*;
|
||||
import com.wb.domainserver.util.file.service.FileStorageService;
|
||||
import com.wb.domainserver.util.util.Util;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.ModelMap;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.validation.BindingResult;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.CookieValue;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
@Controller
|
||||
@Slf4j
|
||||
@RequestMapping("/mngr/bbs/rvw")
|
||||
public class RvwController {
|
||||
/**
|
||||
* WebClient 호출을 위한 wrapper
|
||||
*/
|
||||
@Autowired
|
||||
private WnbtWebClientResponseHandler responseHandler;
|
||||
@Autowired
|
||||
private SendToResrc sendToResrc;
|
||||
@Autowired
|
||||
private GconeMessageSource gconeMessageSource;
|
||||
@Autowired
|
||||
private FileStorageService filestore;
|
||||
|
||||
/**
|
||||
* 게시글 목록 조회 팝업 (검색 section)
|
||||
*
|
||||
* @param vo 파라미터 vo
|
||||
* @return GnrlBbscttListRForm.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.PUBLIC)
|
||||
@RequestMapping(value = "/selectRvwListInqireForm")
|
||||
public String selectRvwListInqireForm(RvwVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
vo.setRvwBbscttDv("rvw");
|
||||
//게시글 노출 항목 설정값과 게시판 목록 조회
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttListInqireForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
return "mngr/bbs/rvw/RvwListRForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 리뷰 목록 조회 (리스트 section)
|
||||
*
|
||||
* @param vo 파라미터 vo
|
||||
* @return GnrlBbscttListR.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.PUBLIC)
|
||||
@RequestMapping(value = "/selectRvwListInqire")
|
||||
public String selectRvwListInqire(RvwVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
//게시글 노출 항목 설정값과 게시판 목록 조회
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttListInqire", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
return "mngr/bbs/rvw/RvwListR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 베스트 후기 수정(리스트 section)
|
||||
*
|
||||
* @param rvwVO 파라미터 vo
|
||||
* @return GnrlBbscttListR.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.PUBLIC)
|
||||
@RequestMapping(value = "/updateRvwBstAt", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateRvwBstAt(RvwVO rvwVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
rvwVO.setSopmalCd(authSopmalCd);
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/updateBORvwBstAt", rvwVO),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 리뷰 메인노츨 수정
|
||||
*
|
||||
* @param rvwVO 파라미터 vo
|
||||
* @return GnrlBbscttListR.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.PUBLIC)
|
||||
@RequestMapping(value = "/updateRvwMainExpsrAt", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateRvwMainExpsrAt(RvwVO rvwVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
rvwVO.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/updateBORvwMainExpsrAt", rvwVO),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 리뷰 상세 조회 팝업
|
||||
*
|
||||
* @param vo 파라미터 vo
|
||||
* @return GnrlBbscttDtlPopupR.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.PUBLIC)
|
||||
@RequestMapping(value = "/selectRvwDtlInqirePopup")
|
||||
public String selectRvwDtlInqirePopup(RvwVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
vo.setRvwBbscttDv("rvw");
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttDtlInqirePopup", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
model.addAttribute("dtlPop", vo.getDtlPop());
|
||||
return "mngr/bbs/rvw/RvwDtlPopupR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 게시글 논리 삭제
|
||||
*
|
||||
* @param bbsctt 파라미터 vo
|
||||
* @return ResponseEntity
|
||||
*/
|
||||
@Policy(AuthPolicy.PUBLIC)
|
||||
@RequestMapping(value = "/updateRvwDel", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateRvwDel(@RequestBody RvwVO bbsctt, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
bbsctt.setSopmalCd(authSopmalCd);
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/updateBOBbscttDel", bbsctt),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 리뷰 등록 팝업
|
||||
*
|
||||
* @param bbsctt 파라미터 vo
|
||||
* @return GnrlBbscttRegistPopupC.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.PUBLIC)
|
||||
@RequestMapping(value = "/selectRvwRegistPopupForm")
|
||||
public String selectRvwRegistPopupForm(HttpServletRequest request, RvwVO rvwVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
//ip주소 get
|
||||
Map<String, String> req = new HashMap<>();
|
||||
req = Util.getRequestInfo(request);
|
||||
String ip = req.get("XForwardedFor");
|
||||
rvwVO.setIp(ip);
|
||||
rvwVO.setSopmalCd(authSopmalCd);
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttRegistPopupForm", rvwVO),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
model.addAttribute("ip", ip);
|
||||
return "mngr/bbs/rvw/RvwRegistPopupC";
|
||||
}
|
||||
|
||||
/**
|
||||
* 리뷰 등록
|
||||
*
|
||||
* @param bbsctt 파라미터 vo
|
||||
* @return ResponseEntity
|
||||
*/
|
||||
@Policy(AuthPolicy.PUBLIC)
|
||||
@RequestMapping(value = "/insertRvwRegist", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> insertRvwRegist(HttpServletRequest request, @Validated RvwVO rvwVO, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
List<Map<String, String>> errorList = new ArrayList<>();
|
||||
//validation체크
|
||||
if (bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
} else if (true) {
|
||||
//순서 여부가 'Y'이고 순서 값 없을 시
|
||||
if ("Y".equals(rvwVO.getSortOrdrAt())) {
|
||||
if (rvwVO.getSortOrdr() == null) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("sortOrdr", gconeMessageSource.getMessage("errors.required", new Object[]{"순서"})));
|
||||
}
|
||||
}
|
||||
//필수 입력 여부설정이 Y 이고 입력 여부가 N일 시 validation 체크(추가입력항목,입력항목)
|
||||
if (rvwVO.getQesitmEssntlAtArr() != null) {
|
||||
for (int idx = 0; idx < rvwVO.getQesitmEssntlAtArr().length; idx++) {
|
||||
if ("Y".equals(rvwVO.getQesitmEssntlAtArr()[idx]) && "N".equals(rvwVO.getQesitmAtArr()[idx])) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("answCnArr", gconeMessageSource.getMessage("errors.required", new Object[]{rvwVO.getQesitmNmArr()[idx]})));
|
||||
}
|
||||
}
|
||||
}
|
||||
//필수 입력 여부설정이 Y 이고 입력 여부가 N일 시 validation 체크(리뷰)
|
||||
if (rvwVO.getRvwQesitmEssntlAtArr() != null) {
|
||||
for (int idx = 0; idx < rvwVO.getRvwQesitmEssntlAtArr().length; idx++) {
|
||||
if ("Y".equals(rvwVO.getRvwQesitmEssntlAtArr()[idx]) && "N".equals(rvwVO.getRvwQesitmAtArr()[idx])) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("evlScoreArr", gconeMessageSource.getMessage("errors.required", new Object[]{rvwVO.getRvwQesitmNmArr()[idx]})));
|
||||
}
|
||||
}
|
||||
}
|
||||
if (rvwVO.getGoodsInnbArr() == null) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("goodsInnbArr", gconeMessageSource.getMessage("errors.required", new Object[]{"상품 정보"})));
|
||||
}
|
||||
}
|
||||
if (errorList != null
|
||||
&& errorList.size() > 0) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convertCustomValidate(errorList));
|
||||
}
|
||||
|
||||
|
||||
//ip주소 get
|
||||
Map<String, String> req = new HashMap<>();
|
||||
req = Util.getRequestInfo(request);
|
||||
String ip = req.get("XForwardedFor");
|
||||
rvwVO.setIp(ip);
|
||||
rvwVO.setSopmalCd(authSopmalCd);
|
||||
|
||||
//파일 경로 설정
|
||||
request.setAttribute("shopCd", rvwVO.getSopmalCd());
|
||||
request.setAttribute("pathGubun", "BDIG");//게시판 이미지 구분
|
||||
request.setAttribute("subPathId", rvwVO.getBbsId()); //게시판일 경우에만 셋팅
|
||||
request.setAttribute("validExp", rvwVO.getAcceptFileExtensions()); //게시판 중 BDFL 일경우만 셋팅
|
||||
|
||||
//파일 업로드
|
||||
if ("Y".equals(rvwVO.getFilAtch())) {
|
||||
List<HashMap<String, Object>> ulpladFileMap = new ArrayList<HashMap<String, Object>>();
|
||||
ulpladFileMap = filestore.fileUpload(request);
|
||||
rvwVO.setFileInfo(ulpladFileMap);
|
||||
rvwVO.setFilDvCd("01");
|
||||
if (!CollectionUtils.isEmpty(rvwVO.getFileInfo())) {
|
||||
rvwVO.setPhotoRvwAt("Y");
|
||||
}
|
||||
}
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/insertBOBbscttRegist", rvwVO),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/******************************************************
|
||||
* 게시글 수정 팝업
|
||||
******************************************************/
|
||||
/**
|
||||
* 리뷰 수정 팝업
|
||||
*
|
||||
* @param bbsctt 파라미터 vo
|
||||
* @param model
|
||||
* @return GnrlBbscttUpdtPopupU.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.PUBLIC)
|
||||
@RequestMapping(value = "/selectRvwUpdtPopupForm")
|
||||
public String selectRvwUpdtPopupForm(RvwVO bbsctt, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
bbsctt.setRvwBbscttDv("rvw");
|
||||
bbsctt.setSopmalCd(authSopmalCd);
|
||||
//게시글 상세 조회 및 게시판 설정 조회
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttUpdtPopupForm", bbsctt),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
model.addAttribute("dtlPop", bbsctt.getDtlPop());
|
||||
return "mngr/bbs/rvw/RvwUpdtPopupU";
|
||||
}
|
||||
|
||||
/**
|
||||
* 리뷰 수정
|
||||
*
|
||||
* @param bbsctt 파라미터 vo
|
||||
* @param bindingResult
|
||||
* @return ResponseEntity
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateRvwUpdt", method = RequestMethod.POST)
|
||||
@SuppressWarnings("unchecked")
|
||||
public ResponseEntity<WnbtResponse> updateRvwUpdt(HttpServletRequest request, @Validated RvwVO rvwVO, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
List<Map<String, String>> errorList = new ArrayList<>();
|
||||
//validation체크
|
||||
if (bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
} else if (true) {
|
||||
//순서 여부가 'Y'이고 순서 값 없을 시
|
||||
if ("Y".equals(rvwVO.getSortOrdrAt())) {
|
||||
if (rvwVO.getSortOrdr() == null) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("sortOrdr", gconeMessageSource.getMessage("errors.required", new Object[]{"순서"})));
|
||||
}
|
||||
}
|
||||
//필수 입력 여부설정이 Y 이고 입력 여부가 N일 시 validation 체크(추가입력항목,입력항목)
|
||||
if (rvwVO.getQesitmEssntlAtArr() != null) {
|
||||
for (int idx = 0; idx < rvwVO.getQesitmEssntlAtArr().length; idx++) {
|
||||
if ("Y".equals(rvwVO.getQesitmEssntlAtArr()[idx]) && "N".equals(rvwVO.getQesitmAtArr()[idx])) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("answCnArr", gconeMessageSource.getMessage("errors.required", new Object[]{rvwVO.getQesitmNmArr()[idx]})));
|
||||
}
|
||||
}
|
||||
}
|
||||
//필수 입력 여부설정이 Y 이고 입력 여부가 N일 시 validation 체크(리뷰)
|
||||
if (rvwVO.getRvwQesitmEssntlAtArr() != null) {
|
||||
for (int idx = 0; idx < rvwVO.getRvwQesitmEssntlAtArr().length; idx++) {
|
||||
if ("Y".equals(rvwVO.getRvwQesitmEssntlAtArr()[idx]) && "N".equals(rvwVO.getRvwQesitmAtArr()[idx])) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("evlScoreArr", gconeMessageSource.getMessage("errors.required", new Object[]{rvwVO.getRvwQesitmNmArr()[idx]})));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (errorList != null && errorList.size() > 0) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convertCustomValidate(errorList));
|
||||
}
|
||||
|
||||
//ip주소 get
|
||||
Map<String, String> req = new HashMap<>();
|
||||
req = Util.getRequestInfo(request);
|
||||
String ip = req.get("XForwardedFor");
|
||||
rvwVO.setIp(ip);
|
||||
|
||||
//쇼핑몰설정 set
|
||||
rvwVO.setSopmalCd(authSopmalCd);
|
||||
|
||||
//파일 경로 설정
|
||||
request.setAttribute("shopCd", rvwVO.getSopmalCd());
|
||||
request.setAttribute("pathGubun", "BDIG");//게시판 일반첨부파일 구분
|
||||
request.setAttribute("subPathId", rvwVO.getBbsId()); //게시판일 경우에만 셋팅
|
||||
request.setAttribute("validExp", rvwVO.getAcceptFileExtensions()); //게시판 중 BDFL 일경우만 셋팅
|
||||
|
||||
//파일 업로드
|
||||
if ("Y".equals(rvwVO.getFilAtch())) {
|
||||
List<HashMap<String, Object>> ulpladFileMap = new ArrayList<HashMap<String, Object>>();
|
||||
ulpladFileMap = filestore.fileUpload(request);
|
||||
rvwVO.setFileInfo(ulpladFileMap);
|
||||
rvwVO.setFilDvCd("01");
|
||||
}
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/updateBOBbscttUpdt", rvwVO),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 추가입력항목 조회
|
||||
*
|
||||
* @param bbsctt
|
||||
* @return ResponseEntity
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectItmCnListAjax")
|
||||
public ResponseEntity<WnbtResponse> selectItmCnListAjax(RvwVO bbsctt, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
bbsctt.setSopmalCd(authSopmalCd);
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOItmCnListAjax", bbsctt),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectRvwLgqyRegistPopupForm")
|
||||
public String selectRvwLgqyRegistPopupForm(RvwVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
return "/mngr/bbs/rvw/RvwLgqyRegistPopupC";
|
||||
}
|
||||
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/insertRvwLgqyRegist", method = RequestMethod.POST)
|
||||
public String insertRvwLgqyRegist(RvwVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
return "/";
|
||||
}
|
||||
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectRvwLgqyRegistListInqire")
|
||||
public String selectRvwLgqyRegistListInqire(RvwVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return "/mngr/bbs/rvw/RvwLgqyRegistListR";
|
||||
}
|
||||
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/insertRvwLgqyRegistBng", method = RequestMethod.POST)
|
||||
public String insertRvwLgqyRegistBng(RvwVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return "/";
|
||||
}
|
||||
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/deleteRvwLgqyRegistDel", method = RequestMethod.POST)
|
||||
public String deleteRvwLgqyRegistDel(RvwVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return "/0";
|
||||
}
|
||||
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectRvwLgqyRegistDtlUpdtPopupForm")
|
||||
public String selectRvwLgqyRegistDtlUpdtPopupForm(RvwVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return "/mngr/bbs/rvw/RvwLgqyRegistDtlUpdtPopupU";
|
||||
}
|
||||
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateRvwLgqyRegistUpdt", method = RequestMethod.POST)
|
||||
public String updateRvwLgqyRegistUpdt(RvwVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return "/";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.wb.domainserver.domain.mngr.bbs.rvw.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class BbsFormAnswVO extends AbstractVO{/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 1030532645994110994L;
|
||||
// 답변 출력
|
||||
/** 게시글 고유번호 */
|
||||
private Integer bbscttInnb;
|
||||
/** 문항 고유번호 */
|
||||
private Integer qesitmInnb;
|
||||
/** 답변내용 */
|
||||
private String answCn;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.wb.domainserver.domain.mngr.bbs.rvw.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class BbsFormItmVO extends AbstractVO{
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 8087305150158091337L;
|
||||
/** 문항 번호*/
|
||||
private String qesitmInnb;
|
||||
/** 항목고유 id*/
|
||||
private String itmInnb;
|
||||
/** 항목내용*/
|
||||
private String itmCn;
|
||||
/** 항목순서*/
|
||||
private Integer itmOrdr;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package com.wb.domainserver.domain.mngr.bbs.rvw.vo;
|
||||
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class BbsFormVO extends AbstractVO{
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 1607485104712731512L;
|
||||
/** 게시판 문항 고유번호*/
|
||||
private String qesitmInnb;
|
||||
/** 게시판 id*/
|
||||
private String bbsInnb;
|
||||
/** 추가항목구분 */
|
||||
private String aditItmDv;
|
||||
/** 문항명 */
|
||||
private String qesitmNm;
|
||||
/** 문항설명 */
|
||||
private String qesitmDc;
|
||||
/** 문항유형 */
|
||||
private String itmTy;
|
||||
/** 문항순서 */
|
||||
private Integer qesitmOrdr;
|
||||
/** 사용여부 */
|
||||
private String useAt;
|
||||
|
||||
/** 게시판 문항의 요소들*/
|
||||
private List<BbsFormItmVO> bbsFormItmList;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.wb.domainserver.domain.mngr.bbs.rvw.vo;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class DelInfoVO{
|
||||
/** 삭제 회원 구분 코드 */
|
||||
private String mbrDvCd;
|
||||
|
||||
/** 삭제 회원 고유번호 */
|
||||
private String regusrDvCd;
|
||||
|
||||
/** 삭제 회원 고유번호 */
|
||||
private String regusr;
|
||||
|
||||
/** 상품 고유번호 */
|
||||
private String goodsInnb;
|
||||
|
||||
/** 게시글 고유번호*/
|
||||
private String bbscttInnb;
|
||||
|
||||
/*회수 금액*/
|
||||
private String rtrvlMlgAmt;
|
||||
}
|
||||
@@ -0,0 +1,329 @@
|
||||
package com.wb.domainserver.domain.mngr.bbs.rvw.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.hibernate.validator.constraints.Length;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class RvwVO extends AbstractVO {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
//게시판 검색 조건 쇼핑몰 코드
|
||||
private String sopmalCd;
|
||||
/**
|
||||
* 게시글 정보
|
||||
*/
|
||||
|
||||
/** 게시글고유번호 */
|
||||
private String bbscttInnb;
|
||||
/** 부모게시글고유번호 */
|
||||
private String parntsBbscttInnb;
|
||||
/** 게시판ID */
|
||||
private String bbsId;
|
||||
/** DEPTH */
|
||||
private Integer depth;
|
||||
/** 등록자구분코드 */
|
||||
private String regusrDvCd;
|
||||
/** 등록자ID */
|
||||
private String regusrId;
|
||||
/** 등록자ID 직접등록여부 */
|
||||
private String regusrIdAt;
|
||||
/** 등록자명 */
|
||||
private String regusrNm;
|
||||
/** 비밀번호 */
|
||||
@Length(min = 0, max = 20, message = "비밀번호")
|
||||
private String password;
|
||||
/** 제목 */
|
||||
@NotBlank(message = "제목")
|
||||
@Length(min = 0, max = 100, message = "제목")
|
||||
private String sj;
|
||||
@NotBlank(message = "내용")
|
||||
@Length(max = 16777215, message = "내용")
|
||||
/** 내용 */
|
||||
private String cn;
|
||||
/** 조회건수 */
|
||||
private Integer inqireCnt;
|
||||
/** 댓글사용여부 */
|
||||
private String cmUseAt;
|
||||
/** 추천건수 */
|
||||
private Integer recomendCnt;
|
||||
/** 비추천건수 */
|
||||
private Integer nonrecomendCnt;
|
||||
/** 정렬순서 */
|
||||
private Integer sortOrdr;
|
||||
/** 정렬순서여부 */
|
||||
private String sortOrdrAt;
|
||||
/** 대표이미지원본파일명 */
|
||||
private String reprsntImgOrginlFilNm;
|
||||
/** 대표이미지시스템파일명 */
|
||||
private String reprsntImgSysFilNm;
|
||||
/** 비밀글여부 */
|
||||
private String secretBbscttAt;
|
||||
/** 공지여부 */
|
||||
private String ntcAt;
|
||||
/** 노출여부 */
|
||||
private String expsrAt;
|
||||
/** 온라인여부 */
|
||||
private String onlineAt;
|
||||
/** 오프라인여부 */
|
||||
private String oflneAt;
|
||||
/** 게시기간설정여부 */
|
||||
private String ntcePdSetupAt;
|
||||
/** 게시시작일자 */
|
||||
private String ntceBgnDe;
|
||||
/** 게시종료일자 */
|
||||
private String ntceEndDe;
|
||||
/** 공지기간설정여부 */
|
||||
private String ntcPdSetupAt;
|
||||
/** 공지시작일자 */
|
||||
private String ntcBgnDe;
|
||||
/** 공지종료일자 */
|
||||
private String ntcEndDe;
|
||||
/** 메인노출여부 */
|
||||
private String mainExpsrAt;
|
||||
/** 베스트여부 */
|
||||
private String bstAt;
|
||||
/** 포토리뷰여부 */
|
||||
private String photoRvwAt;
|
||||
/** NPay 게시글 일련번호 */
|
||||
private String npayBbscttSnb;
|
||||
/** NPay 답변 전송여부*/
|
||||
private String npayAnswTrnsmisAt;
|
||||
/** NPay 답변번호*/
|
||||
private String npayAnswNb;
|
||||
/** NPay 상품주문번호*/
|
||||
private String npayGoodsOrdrnb;
|
||||
/** NPay 리뷰유형코드*/
|
||||
private String npayRvwTyCd;
|
||||
/** IP */
|
||||
private String ip;
|
||||
/** agentId */
|
||||
private String agentId;
|
||||
/** 사용여부 */
|
||||
private String useAt;
|
||||
/** 삭제작업자 */
|
||||
private Integer delusr;
|
||||
|
||||
|
||||
/**
|
||||
* 검색조건
|
||||
*/
|
||||
/** 검색구분 */
|
||||
private String srchDv;
|
||||
/** 검색어 */
|
||||
private String srchKeyword;
|
||||
/** 검색 시작일 */
|
||||
private String srchStartDt;
|
||||
/** 검색 종료일 */
|
||||
private String srchEndDt;
|
||||
/** 게시판 이름 코드 */
|
||||
private String bbsTyCd;
|
||||
/** 답변 상태 */
|
||||
private String answSttus;
|
||||
/** 분류명 */
|
||||
private String srchitmInnb;
|
||||
/** 기간 */
|
||||
private String datePeriod;
|
||||
/** 순번 */
|
||||
private Integer rnum;
|
||||
/** 항목내용 */
|
||||
private String itmCn;
|
||||
/** 대시보드 구분 */
|
||||
private String dashAt;
|
||||
/*주문번호검색*/
|
||||
private String srchOrdrInnb;
|
||||
/*네이버페이후기검색*/
|
||||
private String npayAt;
|
||||
/**
|
||||
* 게시글추가문항답변
|
||||
*/
|
||||
|
||||
/** 문항답변고유번호 */
|
||||
private String qesitmAnswInnb;
|
||||
/** 문항고유번호 */
|
||||
private String qesitmInnb;
|
||||
/** 문항필수여부 */
|
||||
private String qesitmEssntlAt;
|
||||
/** 문항사용여부 */
|
||||
private String qesitmUseAt;
|
||||
/** 문항순서 */
|
||||
private String qesitmOrdr;
|
||||
/** 항목고유번호 */
|
||||
private String itmInnb;
|
||||
/** 답변내용 */
|
||||
private String answCn;
|
||||
/** 평가점수 */
|
||||
private String evlScore;
|
||||
/** 문항필수여부(배열) */
|
||||
private String[] qesitmEssntlAtArr;
|
||||
/** 문항고유번호(배열) */
|
||||
private String[] qesitmInnbArr;
|
||||
/** 문항 명(배열) */
|
||||
private String[] qesitmNmArr;
|
||||
/** 항목고유번호(배열) */
|
||||
private String[] itmInnbArr;
|
||||
/** 답변내용(배열) */
|
||||
private String[] answCnArr;
|
||||
/** 답변 여부(배열) */
|
||||
private String[] qesitmAtArr;
|
||||
/** 타입 코드 */
|
||||
private String[]itmTyCdArr;
|
||||
/** 리뷰 문항 필수 여부 배열*/
|
||||
private String[] rvwQesitmEssntlAtArr;
|
||||
/** 리뷰 문항 명 배열*/
|
||||
private String[] rvwQesitmNmArr;
|
||||
/** 리뷰 답변 여부 배열*/
|
||||
private String[] rvwQesitmAtArr;
|
||||
/** 리뷰 문항고유번호 배열*/
|
||||
private String[] rvwQesitmInnbArr;
|
||||
/** 리뷰 평점 배열*/
|
||||
private String[] evlScoreArr;
|
||||
/** 리뷰 항목고유번호 배열*/
|
||||
private String[] rvwItmInnbArr;
|
||||
/** 선택삭제 게시판리스트 */ // 필요없을듯
|
||||
//private String[] delBbsIdArr;
|
||||
/** 선택삭제 게시글리스트 */
|
||||
private String[] delBbscttInnbArr;
|
||||
|
||||
/**
|
||||
* 첨부파일 정보
|
||||
*/
|
||||
|
||||
|
||||
/* 파일 고유번호 */
|
||||
private String bbscttAtchmnfilInnb;
|
||||
/** 원본파일명 */
|
||||
private String orginlFilNm;
|
||||
/** 변환파일명 */
|
||||
private String sysFilNm;
|
||||
/** 파일타입 */
|
||||
private String filTy;
|
||||
/** 파일크기 */
|
||||
private String filMg;
|
||||
/** 파일경로 */
|
||||
private String filCours;
|
||||
/** 파일정보 */
|
||||
private List<HashMap<String, Object>> fileInfo;
|
||||
/*파일 존재여부*/
|
||||
private String filExtAt;
|
||||
/*현존 파일 정보*/
|
||||
private String extFiles;
|
||||
/*기존 파일 정보*/
|
||||
private String filesInfo;
|
||||
/*기존 파일 변화 여부*/
|
||||
private String extFilChangeAt;
|
||||
/*대표이미지 첨부 구분*/
|
||||
private String represntFilAt;
|
||||
/*파일 수정여부*/
|
||||
private String filChangeAt;
|
||||
/*파일 설정 여부*/
|
||||
private String filAtch;
|
||||
/*파일 확장자*/
|
||||
private String AcceptFileExtensions;
|
||||
/*파일 구분*/
|
||||
private String filDvCd;
|
||||
/** 댓글 리스트 */
|
||||
private String[] cmList;
|
||||
private String boardAnswInnb;
|
||||
private String oldFileName;
|
||||
private String bbsNm;
|
||||
|
||||
/** 항목고유번호 리스트 */
|
||||
private String[] itmInnbAns;
|
||||
/** 답변내용 리스트 */
|
||||
private String[] answCnAns;
|
||||
private String[] qesitmInnbAns;
|
||||
/** 항목고유번호 (분류) */
|
||||
private String itmInnbDiv;
|
||||
/** 답변내용 (분류) */
|
||||
private String answCnDiv;
|
||||
private String qesitmInnbDiv;
|
||||
/*
|
||||
* 상세 조회
|
||||
*/
|
||||
/*상품고유번호*/
|
||||
private String goodsInnb;
|
||||
/*상품고유번호배열*/
|
||||
private String[] goodsInnbArr;
|
||||
/*주문상품옵션고유번호*/
|
||||
private String ordrGoodsOptnInnb;
|
||||
/*주문상품옵션고유번호 배열*/
|
||||
private String[] ordrGoodsOptnInnbArr;
|
||||
/*추천상품고유번호*/
|
||||
private String recomendGoodsInnb;
|
||||
/** 상세조회와 페이지 구분처리 */
|
||||
private String dtlPop;
|
||||
/** 재구매여부 */
|
||||
private List<String> reOrderAtArr;
|
||||
|
||||
/**
|
||||
* 게시판 설정
|
||||
*/
|
||||
/** 설정고유번호 */
|
||||
private String setupInfoInnb;
|
||||
/** 비속어필터사용여부 */
|
||||
private String slangFlterUseAt;
|
||||
/** 마스킹비속어 */
|
||||
private String mskgSlang;
|
||||
/*스킨타입코드*/
|
||||
private String sknTyCd;
|
||||
/*추천상품노출여부*/
|
||||
private String recomendGoodsExpsrAt;
|
||||
/* 갤러리형 목록 조회 행 개수*/
|
||||
private String pgeVtcCnt;
|
||||
/* 갤러리형 목록 조회 열 개수*/
|
||||
private String pgeWthCnt;
|
||||
/*이전글다음글 조회 여부*/
|
||||
private String prevNext;
|
||||
|
||||
/**
|
||||
* 리뷰
|
||||
*/
|
||||
// 추가항목 정보(FM_BOARD_ADDITM)
|
||||
private List<BbsFormVO> bbsFormVoList;
|
||||
/**
|
||||
* 권한
|
||||
*/
|
||||
//권한 구분 (REDNG : 읽기권한, REGIST: 쓰기권한, CM: 댓글등록권한)
|
||||
private String AuthDv;
|
||||
|
||||
/*
|
||||
* 요청 값
|
||||
*/
|
||||
/*요청 페이지 구분(고객센터=>csc , 서브페이지=>subPage, 이용안내 => useGudiance, crm => crm)*/
|
||||
private String reqUrl;
|
||||
|
||||
/* 서버 구분 sopmal or mngr*/
|
||||
private String serverDv;
|
||||
|
||||
/*상세 구분*/
|
||||
private String dtlAt;
|
||||
|
||||
/*사용자 등록,수정시 목록이동 or 등록,수정폼 유지*/
|
||||
private String listAt;
|
||||
|
||||
/*리뷰,게시글 구분*/
|
||||
private String rvwBbscttDv;
|
||||
|
||||
|
||||
/*페이징 관련*/
|
||||
/*공지여부 'Y' 개수(공지사항,매거진,일반)*/
|
||||
private Integer ntcCnt;
|
||||
/*베스트여부 'Y'개수 (리뷰)*/
|
||||
private Integer bstCnt;
|
||||
/*총 건수*/
|
||||
private Integer totCnt;
|
||||
|
||||
/*삭제 관련*/
|
||||
/*회수 마일리지 관련 정보*/
|
||||
private List<DelInfoVO> delInfoArr;
|
||||
/*마일리지 수동 회수 여부*/
|
||||
private String mlgPassivRtrvlAt;
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user