Compare commits

...

2 Commits

Author SHA1 Message Date
jazz
1dc4d79d95 Merge remote-tracking branch 'origin/master' 2025-12-26 11:09:10 +09:00
jazz
d4facbb997 fix : 1:1문의 게시글관리(관리자) 2025-12-26 11:08:58 +09:00
11 changed files with 482 additions and 60 deletions

View File

@@ -81,6 +81,10 @@ public interface BOGnrlbbscttMapper {
/*사용자 > 이용안내 조회*/ /*사용자 > 이용안내 조회*/
public List<DataMap> selectUseGuidanceCn(BOGnrlbbscttVO bbsctt); public List<DataMap> selectUseGuidanceCn(BOGnrlbbscttVO bbsctt);
/**********1:1문의**********/
/*1:1문의 목록 조회*/
public List<DataMap> selectBOM2mBbscttListInqire(BOGnrlbbscttVO bbsctt);
/******************* /*******************
* 게시글 상세 조회 * 게시글 상세 조회
*******************/ *******************/

View File

@@ -32,6 +32,8 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static java.lang.Integer.parseInt;
/** /**
* 게시글 관리 Service * 게시글 관리 Service
* *
@@ -334,6 +336,14 @@ public class BOGnrlbbscttService {
resultList = mapper.selectBOEvtBbscttListInqire(bbsctt); resultList = mapper.selectBOEvtBbscttListInqire(bbsctt);
} }
break; break;
case "12": //1:1문의
resultList = mapper.selectBOM2mBbscttListInqire(bbsctt);
if(resultList != null && resultList.size() !=0){
resultCnt.setTotCnt(((BigInteger) resultList.get(0).get("totCnt")).intValue());
}else{
resultCnt.setTotCnt(0);
}
break;
} }
/*비속어 필터*/ /*비속어 필터*/

View File

@@ -303,6 +303,9 @@ public class GnrlscttController {
case "11" : case "11" :
returnUrl = "mngr/bbs/gnrlsctt/EvtResultListR"; returnUrl = "mngr/bbs/gnrlsctt/EvtResultListR";
break; break;
case "12" :
returnUrl = "mngr/bbs/gnrlsctt/m2mQnaBbscttListR";
break;
} }
return returnUrl; return returnUrl;
} }

View File

@@ -1,6 +1,8 @@
package com.wb.domainserver.domain.mngr.bbs.rvw.controller; package com.wb.domainserver.domain.mngr.bbs.rvw.controller;
import com.wb.domainserver.common.msg.GconeMessageSource; import com.wb.domainserver.common.msg.GconeMessageSource;
import com.wb.domainserver.common.mvc.tags.ui.pagination.PaginationInfo;
import com.wb.domainserver.common.prop.PaginationProperties;
import com.wb.domainserver.domain.gcone.bbs.bbs.service.BOBbsService; import com.wb.domainserver.domain.gcone.bbs.bbs.service.BOBbsService;
import com.wb.domainserver.domain.gcone.bbs.bbs.vo.BOBbsVO; import com.wb.domainserver.domain.gcone.bbs.bbs.vo.BOBbsVO;
import com.wb.domainserver.domain.gcone.bbs.gnrlbbsctt.service.BOGnrlbbscttService; import com.wb.domainserver.domain.gcone.bbs.gnrlbbsctt.service.BOGnrlbbscttService;
@@ -84,6 +86,8 @@ public class RvwController {
private BOMssageService boMssageService; private BOMssageService boMssageService;
@Autowired @Autowired
private BOOrdrService boOrdrService; private BOOrdrService boOrdrService;
@Autowired
private PaginationProperties paginationProperties;
/** /**
* 게시글 목록 조회 팝업 (검색 section) * 게시글 목록 조회 팝업 (검색 section)
@@ -177,67 +181,55 @@ public class RvwController {
@RequestMapping(value = "/selectRvwListInqire") @RequestMapping(value = "/selectRvwListInqire")
public String selectRvwListInqire(BOGnrlbbscttVO bbsctt, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { public String selectRvwListInqire(BOGnrlbbscttVO bbsctt, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
bbsctt.setSopmalCd(authSopmalCd); bbsctt.setSopmalCd(authSopmalCd);
//게시글 노출 항목 설정값과 게시판 목록 조회
Map<String, Object> content = new HashMap<String, Object>();
AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if ("01".equals(user.getSysDvCd())) {
if ("01".equals(user.getSysDvCd())) {//사용자 조회 일 경우
bbsctt.setSopmalCd(user.getSopmalCd()); bbsctt.setSopmalCd(user.getSopmalCd());
bbsctt.setMbrDvCd(user.getMbrDvCd());
bbsctt.setMbrInnb(user.getUserInnb());
} }
if ("mpage".equals(bbsctt.getReqUrl()) || "crm".equals(bbsctt.getReqUrl())) {
if (!"crm".equals(bbsctt.getReqUrl())) {
if (user.getUserInnb() > 0) { if (user.getUserInnb() > 0) {
bbsctt.setRegusr(user.getUserInnb()); bbsctt.setRegusr(user.getUserInnb());
if ("sopmal".equals(bbsctt.getServerDv())) {
bbsctt.setRegusrDvCd("01"); bbsctt.setRegusrDvCd("01");
} else {
bbsctt.setRegusrDvCd("02");
}
} else { } else {
bbsctt.setRegusr(0); bbsctt.setRegusr(0);
bbsctt.setRegusrDvCd("99"); bbsctt.setRegusrDvCd("99");
} }
} }
// pagination
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(bbsctt.getPageIndex());
paginationInfo.setRecordCountPerPage(bbsctt.getPageUnit());
paginationInfo.setPageSize(paginationProperties.getPageSize());
bbsctt.setPaginationInfo(paginationInfo);
bbsctt.setFirstIndex(paginationInfo.getFirstRecordIndex());
bbsctt.setLastIndex(paginationInfo.getLastRecordIndex());
bbsctt.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
// 게시글 목록조회
Map<String, Object> resultList = new HashMap<String, Object>();
resultList = service.selectBOBbscttListInqire(bbsctt);
// 게시판 설정 정보 조회
BOBbsVO bbsVO = new BOBbsVO(); BOBbsVO bbsVO = new BOBbsVO();
// bbsVO에 쇼핑몰코드, 해당 게시판 set // bbsVO에 쇼핑몰코드, 해당 게시판 set
bbsVO.setSopmalCd(bbsctt.getSopmalCd()); bbsVO.setSopmalCd(bbsctt.getSopmalCd());
bbsVO.setBbsId(bbsctt.getBbsId()); bbsVO.setBbsId(bbsctt.getBbsId());
bbsVO.setBbsTyCd(bbsctt.getBbsTyCd()); bbsVO.setBbsTyCd(bbsctt.getBbsTyCd());
// 게시판 설정 정보 조회
DataMap bbsInfo = new DataMap(); DataMap bbsInfo = new DataMap();
bbsInfo = bbsService.selectBOBbsSetupInfo(bbsVO); bbsInfo = bbsService.selectBOBbsSetupInfo(bbsVO);
DataMap content = new DataMap();
//사용자에서 이벤트 폼 조회시 해당 쇼핑몰 이벤트 게시판 정보 조회(이벤트,당첨자발표 게시판)
List<DataMap> evtBbsList = new ArrayList<>();
if ("sopmal".equals(bbsctt.getServerDv())) {
if ("03".equals((String) bbsInfo.get("bbsTyCd")) || "11".equals((String) bbsInfo.get("bbsTyCd"))) {
evtBbsList = bbsService.selectBOEvtBbsList(bbsVO);
content.put("evtBbsList", evtBbsList);
}
}
// 분류 조회
List<DataMap> itmList = new ArrayList<>();
itmList = service.selectBOBbscttItmInqire(bbsctt);
// 게시판 목록 조회 및 게시글 개수 조회(관리자 페이지)
List<DataMap> bbsListCnt = new ArrayList<>();
if (!"01".equals(user.getSysDvCd())) {
bbsListCnt = bbsService.selectBOBbsttListInqire(bbsVO);
content.put("bbsListCnt", bbsListCnt);
}
Map<String, Object> qesitmList = new HashMap<String, Object>();
Map<String, Object> rvwQesitmList = new HashMap<String, Object>();
//리뷰 목록 조회일 시 service 호출
if ("rvw".equals(bbsctt.getRvwBbscttDv())) {
//추가항목 리스트, 추가항목 항목 리스트(리뷰)
qesitmList = service.selectBOBbscttRegistPopupForm(bbsctt);
//리뷰항목 리스트, 리뷰항목 항목 리스트
rvwQesitmList = service.selectBOStarItm(bbsctt);
}
content.put("bbsInfo", bbsInfo); content.put("bbsInfo", bbsInfo);
content.put("itmList", itmList);
if ("rvw".equals(bbsctt.getRvwBbscttDv())) {
content.put("qesitmList", qesitmList);
content.put("rvwQesitmList", rvwQesitmList);
}
content.put("bbsctt", bbsctt); content.put("bbsctt", bbsctt);
content.put("resultList", resultList);
content.put("paginationInfo", bbsctt.getPaginationInfo());
model.addAttribute("resultMap",content); model.addAttribute("resultMap",content);
// responseHandler.handleResponse( // responseHandler.handleResponse(

View File

@@ -1543,6 +1543,146 @@
ORDER BY -FB.SORT_ORDR DESC ORDER BY -FB.SORT_ORDR DESC
</select> </select>
<select id="selectBOM2mBbscttListInqire"
parameterType="com.wb.domainserver.domain.gcone.bbs.gnrlbbsctt.vo.BOGnrlbbscttVO"
resultType="dataMap">
SELECT *
FROM (
SELECT CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM
,TB.*
FROM (SELECT ROW_NUMBER() OVER() TOT_CNT,
FB.BBSCTT_INNB ,
FB.IP ,
FB.SJ ,
FB.CN ,
FB.EXPSR_AT ,
FB.PASSWORD ,
FB.REGUSR ,
FB.NTCE_PD_SETUP_AT ,
FB.NTC_AT ,
FB.NTC_PD_SETUP_AT ,
FB.INQIRE_CNT ,
FB.SECRET_BBSCTT_AT ,
FB.USE_AT ,
IFNULL(FB.SORT_ORDR, 999) SORT_ORDR ,
FB.SOPMAL_CD ,
FB.REGUSR_DV_CD ,
FB.REGUSR_ID ,
FB.REGUSR_NM ,
CONCAT(SUBSTRING(FB.REGUSR_NM, 1, 1), '*', SUBSTRING(FB.REGUSR_NM, CHAR_LENGTH(FB.REGUSR_NM), 1))MASKING_REGUSR_NM ,
FMG.MBR_GRAD_NM ,
FBM.NEW_NTT_STDR_DE_CNT ,
FBM.POPULAR_NTT_STDR_INQIRE_CNT ,
FB.Npay_BBSCTT_SNB ,
IFNULL(FBM.MNGR_NM, '관리자') AS MNGR_NM ,
FBM.WRTER_INDICT_TY_CD ,
FBA.ANSW_CN ,
CASE
WHEN FB.INQIRE_CNT <![CDATA[>=]]> FBM.POPULAR_NTT_STDR_INQIRE_CNT THEN 'Y'
ELSE 'N'
END POPULAR_AT ,
CASE
WHEN DATE_FORMAT(FB.REGIST_DT, '%Y-%m-%d') <![CDATA[>=]]> DATE_FORMAT(DATE_SUB( NOW(), INTERVAL FBM.NEW_NTT_STDR_DE_CNT DAY), '%Y-%m-%d') THEN 'Y'
ELSE 'N'
END NEW_AT ,
FB.NTCE_BGN_DE ,
FB.NTCE_END_DE ,
DATE_FORMAT(FB.REGIST_DT, '%Y-%m-%d %H:%i:%s') REGIST_DT ,
DATE_FORMAT(FB.REGIST_DT, '%Y-%m-%d %H:%i') SUM_REGIST_DT, /* 사용자 등록일 조회*/
DATE_FORMAT(FB.UPDT_DT, '%Y-%m-%d %H:%i:%s') UPDT_DT ,
FB.NTC_BGN_DE ,
FB.NTC_END_DE ,
'0' NTC_DVN ,
EXISTS (
SELECT
FBF.BBSCTT_ATCHMNFIL_INNB
FROM
GC_BOARDDATA_FILE FBF
WHERE
FBF.BBSCTT_INNB = FB.BBSCTT_INNB
AND FBF.SOPMAL_CD = FB.SOPMAL_CD) AS ISFILES ,
ANSW.BBSCTT_INNB AS ANSW_BBSCTT_INNB ,
ANSW.SJ AS ANSW_SJ ,
ANSW.CN AS ANSW_BBSCTT_CN ,
DATE_FORMAT(ANSW.REGIST_DT, '%Y-%m-%d %H:%i:%s') AS ANSW_REGIST_DT ,
FBG.GOODS_INNB ,
FG.GOODS_NM ,
FGI.IMG,
GM.JOIN_MTH_CD,
GM.MBR_DV_CD,
GOI.ORDR_INNB,
GOIO.ORDR_GOODS_OPTN_INNB
FROM
GC_BOARDDATA FB
INNER JOIN GC_BOARDMANAGER FBM ON
FB.SOPMAL_CD = FBM.SOPMAL_CD
AND FB.BBS_ID = FBM.BBS_ID
INNER JOIN GC_SHOP FS ON
FS.SOPMAL_CD = FB.SOPMAL_CD
LEFT JOIN GC_BOARDDATA_GOODS FBG ON
FB.BBSCTT_INNB = FBG.BBSCTT_INNB
AND FB.SOPMAL_CD = FBG.SOPMAL_CD
LEFT JOIN GC_ORDER_ITEM_OPTION GOIO ON
GOIO.ORDR_GOODS_OPTN_INNB = FBG.ORDR_GOODS_OPTN_INNB
AND GOIO.SOPMAL_CD = FBG.SOPMAL_CD
LEFT JOIN GC_ORDER_ITEM GOI ON
GOI.ORDR_GOODS_INNB = GOIO.ORDR_GOODS_INNB
AND GOI.SOPMAL_CD = GOIO.SOPMAL_CD
LEFT JOIN GC_GOODS FG ON
FBG.GOODS_INNB = FG.GOODS_INNB
AND FBG.SOPMAL_CD = FG.SOPMAL_CD
LEFT JOIN GC_GOODS_IMAGE FGI ON
FG.GOODS_INNB = FGI.GOODS_INNB
AND FG.SOPMAL_CD = FGI.SOPMAL_CD
AND FGI.IMG_KND = '02'
AND FGI.CUT_NB = 1
LEFT JOIN GC_BOARDDATA ANSW ON
FB.SOPMAL_CD = ANSW.SOPMAL_CD
AND FB.BBS_ID = ANSW.BBS_ID
AND FB.BBSCTT_INNB = ANSW.PARNTS_BBSCTT_INNB
AND ANSW.DEPTH = 1
AND ANSW.USE_AT = 'Y'
LEFT JOIN GC_MEMBER_GRAD_MAPPING FMGM ON
FB.SOPMAL_CD = FMGM.SOPMAL_CD
AND FB.REGUSR = FMGM.MBR_INNB
LEFT JOIN GC_MEMBER GM
ON GM.MBR_DV_CD = FMGM.MBR_DV_CD
AND GM.MBR_INNB = FMGM.MBR_INNB
LEFT JOIN GC_MEMBER_GRAD FMG ON
FMGM.MBR_GRAD_INNB = FMG.MBR_GRAD_INNB
LEFT JOIN GC_BOARD_ADDITM FBA ON
FB.SOPMAL_CD = FBA.SOPMAL_CD
AND FB.BBSCTT_INNB = FBA.BBSCTT_INNB
AND FBA.QESITM_INNB IN (
SELECT
FBF.QESITM_INNB
FROM
GC_BOARDFORM FBF
WHERE
FBF.ADIT_ITM_DV_CD = '03'
AND FBA.SOPMAL_CD = FBF.SOPMAL_CD
AND FBF.BBS_ID = FB.BBS_ID)
WHERE 1=1
<include refid="selectListWhere"/>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(serverDv, 'sopmal')">
<include refid="selectSopmalNtceWhere"/>
</if>
AND (FB.USE_AT = 'Y'
/* 사용자 화면에선 삭제글은 보이지 않음 */
<if test = "!@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(serverDv, 'sopmal')">
OR ANSW.BBSCTT_INNB IS NOT NULL
</if>
)
AND FB.DEPTH = 0
AND FB.SOPMAL_CD = #{sopmalCd}
AND FB.BBS_ID = #{bbsId}
ORDER BY BBSCTT_INNB DESC) TB
WHERE (@rownum:=0)=0
) PV
WHERE 1=1
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
</select>
<!--***************************************** <!--*****************************************
게시글 상세 조회 시작 게시글 상세 조회 시작
@@ -1671,7 +1811,7 @@
,LEAD(FB.REGUSR_ID)OVER(ORDER BY FB.BBSCTT_INNB DESC)AS AFTER_REGUSR_ID ,LEAD(FB.REGUSR_ID)OVER(ORDER BY FB.BBSCTT_INNB DESC)AS AFTER_REGUSR_ID
,LEAD(FB.REGUSR_NM)OVER(ORDER BY FB.BBSCTT_INNB DESC)AS AFTER_REGUSR_NM ,LEAD(FB.REGUSR_NM)OVER(ORDER BY FB.BBSCTT_INNB DESC)AS AFTER_REGUSR_NM
</if> </if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(rvwBbscttDv, 'rvw')">/* 리뷰 상세보기 일 때만 */ <if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(rvwBbscttDv, 'rvw') || @com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(bbsTyCd, '12')">/* 리뷰, 1:1문의 상세보기 일 때만 */
,FOI.ORDR_INNB ,FOI.ORDR_INNB
</if> </if>
,GM.JOIN_MTH_CD ,GM.JOIN_MTH_CD
@@ -1691,7 +1831,7 @@
AND GM.MBR_INNB = FMGM.MBR_INNB AND GM.MBR_INNB = FMGM.MBR_INNB
LEFT JOIN GC_MEMBER_GRAD FMG LEFT JOIN GC_MEMBER_GRAD FMG
ON FMGM.MBR_GRAD_INNB = FMG.MBR_GRAD_INNB ON FMGM.MBR_GRAD_INNB = FMG.MBR_GRAD_INNB
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(rvwBbscttDv, 'rvw')">/* 리뷰 상세보기 일 때만 */ <if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(rvwBbscttDv, 'rvw') || @com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(bbsTyCd, '12')">/* 리뷰, 1:1문의 상세보기 일 때만 */
LEFT JOIN GC_BOARDDATA_GOODS FBG LEFT JOIN GC_BOARDDATA_GOODS FBG
ON FB.BBSCTT_INNB = FBG.BBSCTT_INNB ON FB.BBSCTT_INNB = FBG.BBSCTT_INNB
AND FB.SOPMAL_CD = FBG.SOPMAL_CD AND FB.SOPMAL_CD = FBG.SOPMAL_CD

View File

@@ -1914,3 +1914,29 @@ function history_add(serializeData){
window.history.replaceState({}, '', currentUrl.toString()); window.history.replaceState({}, '', currentUrl.toString());
} }
/**
* 주문번호를 받아 새창에 주문상세화면 호출
*/
const fn_comm_go_ordr_dtl = function(ordrInnb) {
// form 생성
var form = document.createElement('form');
form.method = 'POST';
form.action = '/mngr/ordr/ordrmngr/selectOrdrDtlInqire';
form.target = '_blank'; // 새 창
// 파라미터 input 생성
var input = document.createElement('input');
input.type = 'hidden';
input.name = 'ordrInnb';
input.value = ordrInnb;
form.appendChild(input);
// body에 form 추가 후 submit
document.body.appendChild(form);
form.submit();
// submit 후 form 제거 (메모리 관리)
document.body.removeChild(form);
}

View File

@@ -1146,7 +1146,7 @@
</div> </div>
</td> </td>
</tr> </tr>
<c:if test="${resultMap.bbsVo.bbsTyCd ne '05' && resultMap.bbsVo.bbsTyCd ne '10'}"> <c:if test="${resultMap.bbsVo.bbsTyCd ne '05' && resultMap.bbsVo.bbsTyCd ne '10' && resultMap.bbsVo.bbsTyCd ne '12'}">
<tr id="bbscttEvlAt" <tr id="bbscttEvlAt"
<c:if test="${resultMap.bbsVo.bbscttRegistUseAt ne 'Y'}">style="display: none"</c:if>> <c:if test="${resultMap.bbsVo.bbscttRegistUseAt ne 'Y'}">style="display: none"</c:if>>
<th>게시글 평가</th> <th>게시글 평가</th>
@@ -1341,7 +1341,7 @@
</td> </td>
</tr> </tr>
</c:if> </c:if>
<c:if test="${resultMap.bbsVo.bbsTyCd eq '01' || resultMap.bbsVo.bbsTyCd eq '05'}"> <c:if test="${resultMap.bbsVo.bbsTyCd eq '01' || resultMap.bbsVo.bbsTyCd eq '05' || resultMap.bbsVo.bbsTyCd eq '12'}">
<tr> <tr>
<th>답글 쓰기&nbsp;&nbsp;&nbsp; <th>답글 쓰기&nbsp;&nbsp;&nbsp;
<label class="b-checkbox checkbox "> <label class="b-checkbox checkbox ">
@@ -1381,7 +1381,7 @@
</colgroup> </colgroup>
<tbody> <tbody>
<%--게시판 타입 일반게시글, 상품q&a, 일반리뷰, 한달리뷰, 대량구매--%> <%--게시판 타입 일반게시글, 상품q&a, 일반리뷰, 한달리뷰, 대량구매--%>
<c:if test="${resultMap.bbsVo.bbsTyCd eq '01' || resultMap.bbsVo.bbsTyCd eq '05' || resultMap.bbsVo.bbsTyCd eq '06' || resultMap.bbsVo.bbsTyCd eq '07' || resultMap.bbsVo.bbsTyCd eq '08'}"> <c:if test="${resultMap.bbsVo.bbsTyCd eq '01' || resultMap.bbsVo.bbsTyCd eq '05' || resultMap.bbsVo.bbsTyCd eq '06' || resultMap.bbsVo.bbsTyCd eq '07' || resultMap.bbsVo.bbsTyCd eq '08' || resultMap.bbsVo.bbsTyCd eq '12'}">
<tr> <tr>
<th rowspan="2">게시글 기본 문구</th> <th rowspan="2">게시글 기본 문구</th>
<td> <td>
@@ -1487,7 +1487,7 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<c:if test="${resultMap.bbsVo.bbsTyCd eq '01' || resultMap.bbsVo.bbsTyCd eq '05' || resultMap.bbsVo.bbsTyCd eq '08' || resultMap.bbsVo.bbsTyCd eq '09'}"> <c:if test="${resultMap.bbsVo.bbsTyCd eq '01' || resultMap.bbsVo.bbsTyCd eq '05' || resultMap.bbsVo.bbsTyCd eq '08' || resultMap.bbsVo.bbsTyCd eq '09' || resultMap.bbsVo.bbsTyCd eq '12'}">
<th>비밀글 여부</th> <th>비밀글 여부</th>
<td> <td>
<div class="td-inner"> <div class="td-inner">
@@ -1557,7 +1557,7 @@
</table> </table>
</div> </div>
</c:if> </c:if>
<c:if test="${resultMap.bbsVo.bbsTyCd eq '01' || resultMap.bbsVo.bbsTyCd eq '02' || resultMap.bbsVo.bbsTyCd eq '03' || resultMap.bbsVo.bbsTyCd eq '04' || resultMap.bbsVo.bbsTyCd eq '05' || resultMap.bbsVo.bbsTyCd eq '06' || resultMap.bbsVo.bbsTyCd eq '07' || resultMap.bbsVo.bbsTyCd eq '10' || resultMap.bbsVo.bbsTyCd eq '11' }"> <c:if test="${resultMap.bbsVo.bbsTyCd eq '01' || resultMap.bbsVo.bbsTyCd eq '02' || resultMap.bbsVo.bbsTyCd eq '03' || resultMap.bbsVo.bbsTyCd eq '04' || resultMap.bbsVo.bbsTyCd eq '05' || resultMap.bbsVo.bbsTyCd eq '06' || resultMap.bbsVo.bbsTyCd eq '07' || resultMap.bbsVo.bbsTyCd eq '10' || resultMap.bbsVo.bbsTyCd eq '11' || resultMap.bbsVo.bbsTyCd eq '12'}">
<h3 class="content-section__inner-title">게시글 작성 상세 설정</h3> <h3 class="content-section__inner-title">게시글 작성 상세 설정</h3>
<div class="table-wrapper"> <div class="table-wrapper">
<table class="table"> <table class="table">
@@ -1660,7 +1660,7 @@
<div class="td-inner"> <div class="td-inner">
<div class="custom-radio-container"> <div class="custom-radio-container">
<input type="hidden" name="qesitmInnb_s" <input type="hidden" name="qesitmInnb_s"
value="${resultMap.bbsVo.rvwInputList[0].scoreIndictMthCd }"/> value="${resultMap.rvwInputList[0].scoreIndictMthCd }"/>
<c:forEach var="cgn022" <c:forEach var="cgn022"
items="${resultMap.codeContent[0].cgn022 }" items="${resultMap.codeContent[0].cgn022 }"
varStatus="status"> varStatus="status">
@@ -1800,7 +1800,7 @@
</td> </td>
</tr> </tr>
</c:if> </c:if>
<c:if test="${resultMap.bbsVo.bbsTyCd eq '01' || resultMap.bbsVo.bbsTyCd eq '05'}"> <c:if test="${resultMap.bbsVo.bbsTyCd eq '01' || resultMap.bbsVo.bbsTyCd eq '05' || resultMap.bbsVo.bbsTyCd eq '12'}">
<tr id="rpuseDv" <tr id="rpuseDv"
<c:if test="${resultMap.bbsVo.answRegistUseAt ne 'Y'}">style="display:none"</c:if>> <c:if test="${resultMap.bbsVo.answRegistUseAt ne 'Y'}">style="display:none"</c:if>>
<th>자주쓰는 답변</th> <th>자주쓰는 답변</th>
@@ -1928,7 +1928,7 @@
</td> </td>
</tr> </tr>
</c:if> </c:if>
<c:if test="${resultMap.bbsVo.bbsTyCd eq '01' || resultMap.bbsVo.bbsTyCd eq '02' || resultMap.bbsVo.bbsTyCd eq '04' || resultMap.bbsVo.bbsTyCd eq '05' || resultMap.bbsVo.bbsTyCd eq '06' || resultMap.bbsVo.bbsTyCd eq '07' || resultMap.bbsVo.bbsTyCd eq '10' || resultMap.bbsVo.bbsTyCd eq '11' }"> <c:if test="${resultMap.bbsVo.bbsTyCd eq '01' || resultMap.bbsVo.bbsTyCd eq '02' || resultMap.bbsVo.bbsTyCd eq '04' || resultMap.bbsVo.bbsTyCd eq '05' || resultMap.bbsVo.bbsTyCd eq '06' || resultMap.bbsVo.bbsTyCd eq '07' || resultMap.bbsVo.bbsTyCd eq '10' || resultMap.bbsVo.bbsTyCd eq '11' || resultMap.bbsVo.bbsTyCd eq '12'}">
<tr id="listUaccordion"> <tr id="listUaccordion">
<th>페이지당 노출수</th> <th>페이지당 노출수</th>
<td> <td>
@@ -1960,7 +1960,7 @@
</div> </div>
</div> </div>
</td> </td>
<c:if test="${resultMap.bbsVo.bbsTyCd eq '01' || resultMap.bbsVo.bbsTyCd eq '02' || resultMap.bbsVo.bbsTyCd eq '03' || resultMap.bbsVo.bbsTyCd eq '04' || resultMap.bbsVo.bbsTyCd eq '05' || resultMap.bbsVo.bbsTyCd eq '09'}"> <c:if test="${resultMap.bbsVo.bbsTyCd eq '01' || resultMap.bbsVo.bbsTyCd eq '02' || resultMap.bbsVo.bbsTyCd eq '03' || resultMap.bbsVo.bbsTyCd eq '04' || resultMap.bbsVo.bbsTyCd eq '05' || resultMap.bbsVo.bbsTyCd eq '09' || resultMap.bbsVo.bbsTyCd eq '12'}">
<th>인기게시물 기준 조회 일수</th> <th>인기게시물 기준 조회 일수</th>
<td> <td>
<div class="td-inner"> <div class="td-inner">
@@ -2042,7 +2042,8 @@
<col> <col>
</colgroup> </colgroup>
<tbody> <tbody>
<c:if test="${resultMap.bbsVo.bbsTyCd eq '01' || resultMap.bbsVo.bbsTyCd eq '03' || resultMap.bbsVo.bbsTyCd eq '05' || resultMap.bbsVo.bbsTyCd eq '06' || resultMap.bbsVo.bbsTyCd eq '07' }"> <%-- 일반, 이벤트, 상품Q&A, 일반리뷰, 한달리뷰, 1:1문의 --%>
<c:if test="${resultMap.bbsVo.bbsTyCd eq '01' || resultMap.bbsVo.bbsTyCd eq '03' || resultMap.bbsVo.bbsTyCd eq '05' || resultMap.bbsVo.bbsTyCd eq '06' || resultMap.bbsVo.bbsTyCd eq '07' || resultMap.bbsVo.bbsTyCd eq '12' }">
<tr> <tr>
<th>사용자</th> <th>사용자</th>
<td> <td>
@@ -2061,7 +2062,8 @@
</td> </td>
</tr> </tr>
</c:if> </c:if>
<c:if test="${resultMap.bbsVo.bbsTyCd eq '01' || resultMap.bbsVo.bbsTyCd eq '03' || resultMap.bbsVo.bbsTyCd eq '04' || resultMap.bbsVo.bbsTyCd eq '05' || resultMap.bbsVo.bbsTyCd eq '06' || resultMap.bbsVo.bbsTyCd eq '07' }"> <%-- 일반, 이벤트, 상품Q&A, FAQ, 일반리뷰, 한달리뷰, 1:1문의 --%>
<c:if test="${resultMap.bbsVo.bbsTyCd eq '01' || resultMap.bbsVo.bbsTyCd eq '03' || resultMap.bbsVo.bbsTyCd eq '04' || resultMap.bbsVo.bbsTyCd eq '05' || resultMap.bbsVo.bbsTyCd eq '06' || resultMap.bbsVo.bbsTyCd eq '07' || resultMap.bbsVo.bbsTyCd eq '12'}">
<tr> <tr>
<th>관리자</th> <th>관리자</th>
<td> <td>
@@ -2105,7 +2107,7 @@
</div> </div>
</section> </section>
</c:if> </c:if>
<c:if test="${resultMap.bbsVo.bbsTyCd eq '01' || resultMap.bbsVo.bbsTyCd eq '05' || resultMap.bbsVo.bbsTyCd eq '08'}"> <c:if test="${resultMap.bbsVo.bbsTyCd eq '01' || resultMap.bbsVo.bbsTyCd eq '05' || resultMap.bbsVo.bbsTyCd eq '08' || resultMap.bbsVo.bbsTyCd eq '12'}">
<section class="content-section content-fold"> <section class="content-section content-fold">
<div class="content-fold__header"> <div class="content-fold__header">
<h3 class="content-section__title">메시지 발송</h3> <h3 class="content-section__title">메시지 발송</h3>
@@ -2385,7 +2387,7 @@
name="photoRvwMlgAccmlmnyAmt" name="photoRvwMlgAccmlmnyAmt"
value="${resultMap.bbsVo.photoRvwMlgAccmlmnyAmt }" value="${resultMap.bbsVo.photoRvwMlgAccmlmnyAmt }"
title="해당 인풋에 대한 설명" maxlength="10"> title="해당 인풋에 대한 설명" maxlength="10">
<span class="input-unit-text">원</span> <span class="input-unit-text">점</span>
</div> </div>
유효기간: 유효기간:
<div class="input-container"> <div class="input-container">
@@ -2408,7 +2410,7 @@
name="gnrlRvwMlgAccmlmnyAmt" name="gnrlRvwMlgAccmlmnyAmt"
value="${resultMap.bbsVo.gnrlRvwMlgAccmlmnyAmt }" value="${resultMap.bbsVo.gnrlRvwMlgAccmlmnyAmt }"
title="포토후기마일리지적립금액" maxlength="10"> title="포토후기마일리지적립금액" maxlength="10">
<span class="input-unit-text">원</span> <span class="input-unit-text">점</span>
</div> </div>
유효기간: 유효기간:
<div class="input-container"> <div class="input-container">
@@ -2451,7 +2453,7 @@
name="aditPymntMlgAccmlmnyAmt" name="aditPymntMlgAccmlmnyAmt"
value="${resultMap.bbsVo.aditPymntMlgAccmlmnyAmt }" value="${resultMap.bbsVo.aditPymntMlgAccmlmnyAmt }"
title="추가지급마일리지적립금액" maxlength="10"> title="추가지급마일리지적립금액" maxlength="10">
<span class="input-unit-text">원</span> <span class="input-unit-text">점</span>
</div> </div>
유효기간: 유효기간:
<div class="input-container"> <div class="input-container">

View File

@@ -120,7 +120,7 @@
onclick="fn_delete_bbsctt('<c:out value="${ bbscttInfo.bbscttInnb }"/>' onclick="fn_delete_bbsctt('<c:out value="${ bbscttInfo.bbscttInnb }"/>'
,'' ,''
,'' ,''
<c:if test="${bbsInfo.bbsTyCd eq '05'}"> <c:if test="${bbsInfo.bbsTyCd eq '05' || bbsInfo.bbsTyCd eq '12'}">
,'Y' ,'Y'
</c:if>);"> </c:if>);">
<spring:message code="button.delete"/></button> <spring:message code="button.delete"/></button>
@@ -390,6 +390,14 @@
</div> </div>
</td> </td>
</tr> </tr>
<c:if test="${bbsInfo.bbsTyCd eq '12'}">
<tr>
<th>주문번호</th>
<td colspan="3">
<div class="td-inner"><a style="cursor:pointer; text-decoration: underline;" onclick="fn_comm_go_ordr_dtl('<c:out value="${bbscttInfo.ordrInnb}" />');return false;"><c:out value="${bbscttInfo.ordrInnb}"/></a></div>
</td>
</tr>
</c:if>
<c:if test="${not empty resultMap.bbscttInfo.fileInfo}"> <c:if test="${not empty resultMap.bbscttInfo.fileInfo}">
<c:choose> <c:choose>
<c:when test = "${bbscttInfo.regusrDvCd ne '02'}"><%--상품qna 사진 미리보기--%> <c:when test = "${bbscttInfo.regusrDvCd ne '02'}"><%--상품qna 사진 미리보기--%>

View File

@@ -741,10 +741,11 @@
*********************************************************/ *********************************************************/
const fn_select_bbsctt_update_pop = function (bbscttInnb, dtlPop) { const fn_select_bbsctt_update_pop = function (bbscttInnb, dtlPop) {
const bbsId = $("#bbsId").val(); const bbsId = $("#bbsId").val();
const bbsTyCd = $("#bbsTyCd").val();
$.ajax({ $.ajax({
type: "post", type: "post",
url: "<c:url value='/mngr/bbs/gnrlsctt/selectBbscttUpdtPopupForm'/>", url: "<c:url value='/mngr/bbs/gnrlsctt/selectBbscttUpdtPopupForm'/>",
data: {"bbsId": bbsId, "bbscttInnb": bbscttInnb, "dtlPop": dtlPop}, data: {"bbsId": bbsId, "bbscttInnb": bbscttInnb, "dtlPop": dtlPop, "bbsTyCd":bbsTyCd},
success: function (data) { success: function (data) {
$("#modalDiv").find("script").remove(); $("#modalDiv").find("script").remove();
if ($("#board-list-update")) { if ($("#board-list-update")) {

View File

@@ -126,6 +126,12 @@
</div> </div>
</td> </td>
</tr> </tr>
<c:if test="${bbsInfo.bbsTyCd eq '12'}">
<tr>
<th>주문번호</th>
<td colspan="3"><a style="cursor:pointer; text-decoration: underline;" onclick="fn_comm_go_ordr_dtl('<c:out value="${bbscttInfo.ordrInnb}" />');return false;"><c:out value="${bbscttInfo.ordrInnb}"/></a></td>
</tr>
</c:if>
<tr class = "visibleAt"> <tr class = "visibleAt">
<c:choose> <c:choose>
<c:when test = "${bbsInfo.bbsTyCd ne '04' && bbsInfo.bbsTyCd ne '10'}"> <c:when test = "${bbsInfo.bbsTyCd ne '04' && bbsInfo.bbsTyCd ne '10'}">

View File

@@ -0,0 +1,230 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.Date" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<%--
Class Name : GoodsQnaBbscttListR.jsp
Description : 일반 게시글 목록 화면
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2023-12-08 김혜지 최초 생성
--%>
<section class="content-section">
<div class="form-control-container">
<div class="left">
<div class="search-number">
<span class="search-number__text">총 <strong><fmt:formatNumber value="${resultMap.paginationInfo.totalRecordCount}" pattern="#,###"/></strong>건</span>
</div>
</div>
<div class="center">
</div>
<div class="right">
<div class="select-box">
<select id="pageUnit" name="pageUnit" title="페이지당 출력될 목록건수" onchange="fn_select_bbsctt_list('1');">
<c:forEach items="${ resultMap.paginationInfo.pageUnitArr }" var="pageUnit" varStatus="pageUnitStatus">
<option value="<c:out value="${ pageUnit }"/>" <c:if test="${ resultMap.paginationInfo.recordCountPerPage eq pageUnit }">selected="selected"</c:if>><c:out value="${ pageUnit }"/>개씩</option>
</c:forEach>
</select>
</div>
</div>
</div>
<form id="listForm">
<hr class="horizontal-line">
<div class="form-control-container">
<div class="left">
<button type="button" class="btn outline sm" onclick="fn_delete_bbsctt('', 'many');">선택 <spring:message code="button.delete"/></button>
</div>
<div class="center">
</div>
<div class="right">
</div>
</div>
<hr class="spacing">
<div class="table-wrapper">
<table class="table vertical">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 3%;">
<col style="width: 3%;">
<col style="width: 7%;">
<col style="width: 7%;">
<col style="width: 5%;">
<col style="width: 18%;">
<col style="width: auto">
<col style="width: 5%">
<col style="width: 6%">
<col style="width: 4%">
<col style="width: 10%">
<col style="width: 5%">
</colgroup>
<thead>
<tr>
<th>
<label class="b-checkbox checkbox is-medium check-all" >
<input type="checkbox" value="" id="listChkA">
<span class="check"></span>
</label>
</th>
<th>번호</th>
<th>작성자</th>
<th>IP</th>
<th>분류</th>
<th>주문번호</th>
<th>제목</th>
<th>답변상태</th>
<th>등록일</th>
<th>조회수</th>
<th>관리</th>
<th>삭제</th>
</tr>
</thead>
<tbody id ="contentSection">
<c:choose>
<c:when test="${ not empty resultMap.resultList.resultList }">
<c:forEach items="${ resultMap.resultList.resultList }" var="resultList" varStatus="status">
<tr <c:if test = "${empty resultList.answBbscttInnb}">class="sendOut-info__reseller"</c:if>>
<td>
<c:if test="${ resultList.useAt eq 'Y' }">
<label class="b-checkbox checkbox is-medium chkLabel">
<input type="checkbox" value="${ resultList.bbscttInnb }"
name="selectedBbscttRow" class='bbscttChk'>
<span class="check"></span>
</label>
</c:if>
<input type = "hidden" value = "<c:out value="${ resultList.goodsInnb}"/>">
</td>
<td>
<c:out value="${resultMap.paginationInfo.totalRecordCount - resultList.rnum+1 }" />
</td>
<td>
<c:choose>
<%--회원--%>
<c:when test="${resultList.regusrDvCd eq '01'}">
<button type="button"
class="crmBtn"
data-info="info01"
onclick="fn_select_crm_mini_info(this,
'<c:out value='${resultList.regusr}'/>'
,'<c:out value='${resultList.mbrDvCd}'/>'
,'#modalDiv');">
<span class="gray-12">
<c:out value="${resultList.regusrNm}"/>
</span><br>
(<c:choose>
<c:when test="${resultList.joinMthCd eq 'kakao'}"><%--kakao--%>
<i class="icon icon_word-badge_kakao"></i>
</c:when>
<c:when test="${resultList.joinMthCd eq 'naver'}"><%--naver--%>
<i class="icon icon_word-badge_naver"></i>
</c:when>
<c:when test="${resultList.joinMthCd eq 'pos'}"><%--pos--%>
<i class="icon icon_word-badge_pos"></i>
<span class="fw-500 blue-7">
<c:out value="${resultList.regusrId}"/>
</span>
</c:when>
<c:otherwise>
<span class="fw-500 blue-7"><c:out value="${resultList.regusrId}"/></span>
</c:otherwise>
</c:choose>/
<span class="fw-500 green-8"><c:out value="${resultList.mbrGradNm}"/></span>)
</button>
</c:when>
<%--관리자--%>
<c:when test="${resultList.regusrDvCd eq '02'}">
<c:out value="${ resultList.mngrNm}"/>(<c:out value="${ resultList.maskingRegusrId}"/>)
</c:when>
<%--네이버페이--%>
<c:when test="${resultList.regusrDvCd eq '03'}">
naverpay
</c:when>
<%--비회원--%>
<c:when test="${resultList.regusrDvCd eq '99'}">
<c:out value="${resultList.maskingRegusrNm}"/>[비회원]
</c:when>
</c:choose>
</td>
<td><c:out value="${ resultList.ip}" /></td>
<td><c:out value="${resultList.answCn}" /></td>
<td><a class="under-line moveDetil" onclick="fn_comm_go_ordr_dtl('<c:out value="${resultList.ordrInnb}" />');return false;"><c:out value="${resultList.ordrInnb}" /></a></td>
<td class="left">
<a class="under-line moveDetil"
bbsctt-innb = "<c:out value="${ resultList.bbscttInnb }"/>"
bbs-id ="<c:out value="${ resultList.bbsId }"/>"
regusr-dv = "02">
<c:choose>
<c:when test = "${resultList.useAt eq 'Y'}">
<c:out value="${ resultList.sj }"/>
</c:when>
<c:otherwise>
<span class="stone-6">삭제된 게시글입니다.[<c:out value="${ resultList.updtDt}"/>]</span>
</c:otherwise>
</c:choose>
</a>
<c:if test="${resultList.isfiles eq 1}">
<i class="icon icon_image-badge"></i>
</c:if>
<c:if test="${resultList.newAt eq 'Y'}">
<i class="icon icon_new-badge"></i>
</c:if>
<c:if test="${resultList.popularAt eq 'Y'}">
<i class="icon icon_hot-badge"></i>
</c:if>
<c:if test="${ resultList.secretBbscttAt eq 'Y' }">
<i class="icon icon_lock"></i>
</c:if>
</td>
<td>
<c:if test = "${not empty resultList.answBbscttInnb}">답변완료</c:if>
<c:if test = "${empty resultList.answBbscttInnb}">답변대기</c:if>
</td>
<td><c:out value="${ resultList.registDt }"/></td>
<td><fmt:formatNumber value="${resultList.inqireCnt}" pattern="#,##0"/></td>
<td>
<div class="manage-btn-container">
<c:if test="${ resultList.useAt eq 'Y' && empty resultList.npayBbscttSnb}">
<button type ="button" class="btn xsm outline primary" onclick="fn_select_bbsctt_update_pop('<c:out value="${ resultList.bbscttInnb }"/>','<c:out value="${ resultList.bbsId }"/>','');"><spring:message code="button.update"/></button>
<c:if test = "${resultMap.bbsInfo.answRegist eq 'Y'}">
<c:choose>
<c:when test="${not empty resultList.answBbscttInnb}">
<button type ="button" class="btn xsm primary outline" onclick="fn_select_answ_update_pop('<c:out value="${ resultList.bbscttInnb }"/>', '<c:out value="${ resultList.answBbscttInnb}"/>','<c:out value="${ resultList.bbsId }"/>','');">답변 <spring:message code="button.update"/></button>
</c:when>
<c:otherwise>
<button type ="button" class="btn xsm primary" onclick="fn_select_answ_regist_pop('<c:out value="${ resultList.bbscttInnb }"/>','<c:out value="${ resultList.bbsId }"/>','');">답변 <spring:message code="button.insert"/></button>
</c:otherwise>
</c:choose>
</c:if>
</c:if>
</div>
</td>
<td>
<c:if test="${ resultList.useAt eq 'Y' && empty resultList.npayBbscttSnb}">
<div class="manage-btn-container">
<button class="btn xsm dark" type="button" onclick="fn_delete_bbsctt('<c:out value="${ resultList.bbscttInnb }"/>','','<c:out value="${ resultList.goodsInnb }"/>');"><spring:message code="button.delete"/></button>
</div>
</c:if>
</td>
</tr>
</c:forEach>
</c:when>
<c:otherwise>
<tr>
<td colspan="100%"><spring:message code="common.nodata"/></td>
</tr>
</c:otherwise>
</c:choose>
</tbody>
</table>
</div>
</form>
</section>
<input type="hidden" id="pageIndex" name="pageIndex" value="<c:out value = '${resultMap.bbsctt.pageIndex}'/>"/>
<div class="pagination__container">
<ui:pagination paginationInfo="${resultMap.paginationInfo}" type="image" jsFunction="fn_select_bbsctt_list" />
</div>