eskim 5 лет назад
Родитель
Сommit
7f275e3ff8

+ 9 - 0
src/main/java/com/style24/front/biz/dao/TsfCounselDao.java

@@ -119,6 +119,15 @@ public interface TsfCounselDao {
 	 * @since 2020. 12. 28
 	 */
 	Collection<Counsel> getGoodsQnaList(Counsel counsel);
+	
+	/**
+	 * 상품문의 목록 - 상품상세용
+	 * @param counsel -상담정보
+	 * @return
+	 * @author eskim
+	 * @since 2021. 03. 05
+	 */
+	Collection<Counsel> getGoodsQnaListForGoods(Counsel counsel);
 
 	/**
 	 * 상품문의 삭제

+ 11 - 0
src/main/java/com/style24/front/biz/service/TsfCounselService.java

@@ -193,6 +193,17 @@ public class TsfCounselService {
 		return counselDao.getGoodsQnaList(counsel);
 	}
 
+	/**
+	 * 상품문의 목록 - 상품상세용
+	 * @param counsel -상담정보
+	 * @return
+	 * @author eskim
+	 * @since 2021. 03. 05
+	 */
+	public Collection<Counsel> getGoodsQnaListForGoods(Counsel counsel) {
+		return counselDao.getGoodsQnaListForGoods(counsel);
+	}
+	
 	/**
 	 * 상품문의 삭제
 	 * @param counsel - 상담정보

+ 1 - 0
src/main/java/com/style24/front/biz/web/TsfCallcenterController.java

@@ -316,6 +316,7 @@ public class TsfCallcenterController extends TsfBaseController {
 	@PostMapping("/goods/qna/create")
 	@ResponseBody
 	public GagaResponse createGoodsQna(@RequestBody Counsel counsel) {
+		log.info("createGoodsQna counsel = {}", counsel);
 		counselService.createGoodsQna(counsel);
 		return super.ok(message.getMessage("SUCC_0001"));
 	}

+ 41 - 5
src/main/java/com/style24/front/biz/web/TsfGoodsController.java

@@ -7,6 +7,7 @@ import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.servlet.ModelAndView;
@@ -19,6 +20,7 @@ import com.style24.front.biz.service.TsfGoodsService;
 import com.style24.front.support.controller.TsfBaseController;
 import com.style24.front.support.env.TsfConstants;
 import com.style24.front.support.security.session.TsfSession;
+import com.style24.persistence.TscPageRequest;
 import com.style24.persistence.domain.CardPromotion;
 import com.style24.persistence.domain.Counsel;
 import com.style24.persistence.domain.Goods;
@@ -27,6 +29,7 @@ import com.style24.persistence.domain.Lookbook;
 
 import lombok.extern.slf4j.Slf4j;
 
+import com.gagaframework.web.parameter.GagaMap;
 import com.gagaframework.web.util.GagaCookieUtil;
 
 /**
@@ -312,11 +315,13 @@ public class TsfGoodsController extends TsfBaseController {
 		return stockQty;
 	}
 	
+	
+	
 	/**
 	 * 상품상세 -  상품 QNA LIST 레이어
 	 * @return
 	 * @author eskim
-	 * @since 2021. 3. 4
+	 * @since 2021. 3. 5
 	 */
 	@PostMapping("/qna/layer/{goodsCd}")
 	public ModelAndView goodsQnaForm(@PathVariable String goodsCd) {
@@ -335,18 +340,49 @@ public class TsfGoodsController extends TsfBaseController {
 	
 	
 	/**
-	 * 상품상세 -  카드혜택안내 레이어
+	 * 상품문의 목록
+	 * @param counsel - 상담정보
+	 * @return
+	 * @author gagamel
+	 * @since 2020. 12. 28
+	 */
+	@PostMapping("/qna/list")
+	@ResponseBody
+	public GagaMap getGoodsQnaList(@RequestBody Counsel counsel) {
+
+		log.info(" getGoodsQnaList =>{}", counsel);
+		counsel.setSiteCd(TscConstants.Site.STYLE24.value());
+
+		GagaMap result = new GagaMap();
+
+		TscPageRequest pageable = new TscPageRequest((counsel.getPageNo() > 0 ? counsel.getPageNo() - 1 : 0), counsel.getPageSize(), counsel.getPageUnit());
+		pageable.setTotalCount(counselService.getGoodsQnaTotalCount(counsel));
+		counsel.setPageable(pageable);
+
+		if(TsfSession.isLogin()) {
+			counsel.setCustNo(TsfSession.getInfo().getCustNo());
+		}
+		
+		result.set("paging", counsel);
+		result.set("dataList", counselService.getGoodsQnaListForGoods(counsel));
+
+		return result;
+	}
+	
+	/**
+	 * 상품상세 -  상품 QNA 등록
 	 * @return
 	 * @author eskim
-	 * @since 2021. 3. 4
+	 * @since 2021. 3. 5
 	 */
 	@PostMapping("/qna/create/layer/{goodsCd}")
 	public ModelAndView qnaCreateForm(@PathVariable String goodsCd) {
 		ModelAndView mav = new ModelAndView();
-		CardPromotion cardPromotion = new CardPromotion();
-		//mav.addObject("cardInfoList", goodsService.getCardPromotionList(cardPromotion));
+		mav.addObject("goodsCd", goodsCd);
 		mav.setViewName(super.getDeviceViewName("goods/GoodsQnaDetailForm"));
 		return mav;
 	}
 	
+	
+	
 }

+ 9 - 1
src/main/java/com/style24/persistence/domain/Counsel.java

@@ -47,12 +47,19 @@ public class Counsel extends TscBaseDomain {
 	private String ansDt;			// 답변일자
 	private String secretYn;		// 비밀글여부(상품문의에서만 사용)
 	private String delYn;			// 삭제여부
+	private int selfGb;				// 내문의 1: , 그외 0
 
 	// 1:1문의(총, 답변완료, 처리중) 건수
 	private int totCnt;		// 총건수
 	private int ansCnt;		// 답변완료건수
 	private int ingCnt;		// 처리중건수
 
+	
+	// Masking
+	//public String getMaskingCustId() {
+		//return MaskingUtils.id(this.custId);
+	//}
+		
 	// Pagination
 	@JsonInclude(JsonInclude.Include.NON_EMPTY)
 	private TscPageRequest pageable;
@@ -60,5 +67,6 @@ public class Counsel extends TscBaseDomain {
 	private int pageNo = 1;
 	private int pageSize = 10;
 	private int pageUnit = 10;
-
+	
+	
 }

+ 44 - 3
src/main/java/com/style24/persistence/mybatis/shop/TsfCounsel.xml

@@ -242,7 +242,7 @@
 		     , CONCAT('[',#{relGoodsCd},'] 상품문의')
 		     , #{questContent}
 		     , NOW()
-		     , #{secretYn}
+		     , ifNull(#{secretYn},'N')
 		     , 'G060_10' /*답변상태:처리중*/
 		     , 'N'
 		     , #{regNo}
@@ -286,7 +286,7 @@
 		AND    A.DEL_YN = 'N' /*삭제안된넘*/
 	</select>
 	
-	<!-- 상품문의 목록 -->
+	<!-- 상품문의 목록 - 고객센터용-->
 	<select id="getGoodsQnaList" parameterType="Counsel" resultType="Counsel">
 		/* TsfCounsel.getGoodsQnaList */
 		<include refid="selectForPagingHeader"/>
@@ -315,12 +315,53 @@
 		<if test="relGoodsCd != null and relGoodsCd != '' ">
 		AND    A.REL_GOODS_CD = #{relGoodsCd}
 		</if>
-		<if test="secretYn != null and secretYn != '' ">
+		<if test='secretYn != null and secretYn == "Y" '>
+		AND    A.SECRET_YN = #{secretYn}
+		</if>
+		AND    A.SITE_CD = #{siteCd}
+		AND    A.COUNSEL_TYPE = 'G' /*상담유형(상품문의)*/
+		AND    A.DEL_YN = 'N' /*삭제안된넘*/
+		<include refid="selectForPagingFooter"/>
+	</select>
+	
+	<!-- 상품문의 목록 - 상품목록용 -->
+	<select id="getGoodsQnaListForGoods" parameterType="Counsel" resultType="Counsel">
+		/* TsfCounsel.getGoodsQnaListForGoods */
+		<include refid="selectForPagingHeader"/>
+		SELECT Z.*
+		     , RANK() OVER(ORDER BY SELF_GB DESC, QUEST_DT_ORD DESC) AS NUMB
+		FROM (
+		SELECT A.COUNSEL_SQ                                       /*상담일련번호*/
+		     , A.SITE_CD                                          /*사이트코드*/
+		     , DATE_FORMAT(A.QUEST_DT,'%Y.%m.%d')  AS QUEST_DT    /*문의일자*/
+		     , A.SECRET_YN                                        /*비밀글여부*/
+		     , A.CELL_PHNNO                                       /*휴대전화번호*/
+		     , A.SMS_REQ_YN                                       /*SMS(알림톡)답변수신여부*/
+		     , A.REL_GOODS_CD                                     /*관련상품코드*/
+		     , G.GOODS_NM                                         /*상품명*/
+		     , A.QUEST_TITLE                                      /*문의제목*/
+		     , A.QUEST_CONTENT                                    /*질문내용*/
+		     , A.ANS_TITLE                                        /*답변제목*/
+		     , A.ANS_CONTENT                                      /*답변내용*/
+		     , A.ANS_STAT                                         /*답변상태*/
+		     , FN_GET_CODE_NM('G060',ANS_STAT)     AS ANS_STAT_NM /*답변상태명*/
+		     , DATE_FORMAT(A.ANS_DT,'%Y.%m.%d')    AS ANS_DT      /*답변일자*/
+		     , C.CUST_ID                                          /*등록자ID*/
+		     , (CASE WHEN A.CUST_NO  = #{custNo} THEN 1 ELSE 0 END) AS SELF_GB
+		     , A.QUEST_DT AS QUEST_DT_ORD
+		FROM   TB_COUNSEL A
+		     , TB_GOODS G
+		     , TB_CUSTOMER C
+		WHERE  A.REL_GOODS_CD = G.GOODS_CD
+		AND    A.CUST_NO = C.CUST_NO
+		AND    A.REL_GOODS_CD = #{relGoodsCd}
+		<if test='secretYn != null and secretYn == "Y" '>
 		AND    A.SECRET_YN = #{secretYn}
 		</if>
 		AND    A.SITE_CD = #{siteCd}
 		AND    A.COUNSEL_TYPE = 'G' /*상담유형(상품문의)*/
 		AND    A.DEL_YN = 'N' /*삭제안된넘*/
+		) Z
 		<include refid="selectForPagingFooter"/>
 	</select>
 	

+ 1 - 1
src/main/webapp/WEB-INF/views/web/callcenter/FaqFormWeb.html

@@ -81,7 +81,7 @@
 								</div>
 								<div class="ui_foot">
 									<div class="ui_row">
-										<ul class="pageNav">
+										<ul class="pageNav" id="pageNav">
 										</ul>
 									</div>
 								</div>

+ 2 - 2
src/main/webapp/WEB-INF/views/web/callcenter/GoodsQnaFormWeb.html

@@ -70,7 +70,7 @@
 								</div>
 								<div class="ui_foot">
 									<div class="ui_row">
-										<ul class="pageNav">
+										<ul class="pageNav" id="pageNav">
 										</ul>
 									</div>
 								</div>
@@ -120,7 +120,7 @@
 				tag += '				<span class="fold_state ' + (item.ansStat == "G060_10" ? "doing" : "done") + '">' + item.ansStatNm + '</span>\n'; //답변완료 : done / 처리중 : doing
 				tag += '				<div class="fold_tit">\n';
 				tag += '					<span class="prod">' + item.goodsNm + ' ' + item.relGoodsCd + '</span>\n';
-				tag += '					<span>' + item.questTitle + '</span>\n';
+				tag += '					<span>' + item.questContent + '</span>\n';
 				tag += '				</div>\n';
 				tag += '				<span class="data">' + item.questDt + '</span>\n';
 				tag += '			</div>\n';

+ 1 - 1
src/main/webapp/WEB-INF/views/web/callcenter/NoticeFormWeb.html

@@ -49,7 +49,7 @@
 								</div>
 								<div class="ui_foot">
 									<div class="ui_row">
-										<ul class="pageNav">
+										<ul class="pageNav" id="pageNav">
 										</ul>
 									</div>
 								</div>

+ 1 - 1
src/main/webapp/WEB-INF/views/web/callcenter/OneToOneQnaFormWeb.html

@@ -73,7 +73,7 @@
 								</div>
 								<div class="ui_foot">
 									<div class="ui_row">
-										<ul class="pageNav">
+										<ul class="pageNav" id="pageNav">
 										</ul>
 									</div>
 								</div>

+ 1 - 1
src/main/webapp/WEB-INF/views/web/goods/CardPrmtFormWeb.html

@@ -94,5 +94,5 @@
 		</div>
 	</div>
 </div>	
-<a href="#close-modal" rel="modal:close" onclick="cfCloseLayer('layer_card_benefit')" class="close-modal">Close</a>
+<a href="javascript:void(0);" rel="modal:close" onclick="cfCloseLayer('layer_card_benefit')" class="close-modal">Close</a>
 </html>

+ 1 - 19
src/main/webapp/WEB-INF/views/web/goods/GoodsDetailFormWeb.html

@@ -348,7 +348,7 @@
 									<li>
 										<div class="ex_qna">
 											<a href="javascript:void(0);" id="btn_pdQnaList_pop" th:onclick="cfGoodsQng([[${goodsInfo.goodsCd}]])" >
-												<span class="tit">문의<em class="number">(<th:block th:text="${#numbers.formatInteger(goodsQnaCnt, 0,'COMMA')}" ></th:block><th:block th:if="${goodsQnaCnt > 0}" th:text="+"></th:block>)</em></span>
+												<span class="tit">문의<em class="number">(<th:block th:text="${#numbers.formatInteger(goodsQnaCnt, 0,'COMMA')}" ></th:block><th:block th:if="${goodsQnaCnt > 0}" th:text="${'+'}"></th:block>)</em></span>
 											</a>
 										</div>
 									</li>
@@ -3371,24 +3371,6 @@
 			return false;
 		});		
 		
-		//팝업 - 상품문의 작성
-		$(document).on('click','#btn_pdQnaWrite_pop',function(e){
-			$("#pdQnaWritePop").modal("show");
-
-			// 상품문의 작성 > 글자수 체크
-			$('.pd_qnawrite_pop .doc_itemqna').keyup(function (e){
-				var contentQna = $(this).val();
-				$('#itemqna_cnt').html("(<em class='c_primary'>"+contentQna.length+"</em>/500자)");  
-				if (contentQna.length > 500){
-					alert("최대 500자까지 입력 가능합니다.");
-					$(this).val(contentQna.substring(0, 500));
-					$('#itemqna_cnt').html("(<em class='c_primary'>500</em>/500자)");
-				}
-			});				
-
-			return false;
-		});
-
 		//팝업 - 배송교환반품 안내
 		$(document).on('click','#btn_pdDeliveryPop',function(e){
 			$('body').addClass('lock');

+ 42 - 7
src/main/webapp/WEB-INF/views/web/goods/GoodsQnaDetailFormWeb.html

@@ -20,6 +20,8 @@
 			<h5 class="modal-title" id="pdQnaWriteLabel">상품 문의하기</h5>
 		</div>
 		<div class="modal-body">
+		<form id="goodsQnaDetailForm" name="goodsQnaDetailForm" action="#" th:action="@{'/callcenter/goods/qna/create'}">
+		<input type="hidden" name="relGoodsCd" th:value ="${goodsCd}"/>
 			<div class="pop_cont">
 				<div class="info_txt">
 					<ul>
@@ -30,12 +32,12 @@
 				</div>
 				<div class="form_field">
 					<div class="input_box">
-						<textarea class="doc_itemqna" name="" id="" cols="30" rows="10" placeholder="문의내용 입력(500자 이내)" style="resize: none;"></textarea>
+						<textarea class="doc_itemqna" name="questContent" id="" cols="30" rows="10" placeholder="문의내용 입력(500자 이내)" style="resize: none;"></textarea>
 						<p class="txt_cnt">
 							<span id="itemqna_cnt" class="itemqna_cnt">(<em class="c_primary">0</em>/500자)</span>
 						</p>			  
 						<div class="secret_box">
-							<input id="wr_secret" type="checkbox"><label for="wr_secret"><span>비밀글설정</span></label>
+							<input id="wr_secret" type="checkbox" name="smsReqYn" value="Y"><label for="wr_secret"><span>비밀글설정</span></label>
 						</div>
 					</div> 
 				</div>
@@ -46,11 +48,11 @@
 							<dd>
 								<div class="form_field">
 									<div>
-										<input type="radio" name="rdi-push" id="rdi-push1" value="" checked="">
+										<input type="radio" name="smsReqYn" id="rdi-push1" value="Y" checked="checked">
 										<label for="rdi-push1"><span>수신</span></label>
 									</div>
 									<div>
-										<input type="radio" name="rdi-push" id="rdi-push2" value="">
+										<input type="radio" name="smsReqYn" id="rdi-push2" value="N">
 										<label for="rdi-push2"><span>미수신</span></label>
 									</div>
 								</div>
@@ -59,13 +61,14 @@
 					</dl>
 				</div>
 			</div>
+		</form>	
 		</div>
 		<div class="modal-footer">
-			<button type="button" class="btn btn_dark"><span>등록</span></button>
+			<button type="button" class="btn btn_dark" id="btnGoodsQnaSave"><span>등록</span></button>
 		</div>
 	</div>
 </div>
-<a href="#close-modal" rel="modal:close" id="pdQnaWritePop_close" class="close-modal">Close</a> 	
+<a href="javascript:void(0);" rel="modal:close" onclick="cfCloseLayer('layer_goods_qna_reg')" class="close-modal">Close</a> 	
 <script th:inline="javascript">
 /*<![CDATA[*/
 
@@ -78,7 +81,39 @@
 			$(this).val(contentQna.substring(0, 500));
 			$('#itemqna_cnt').html("(<em class='c_primary'>500</em>/500자)");
 		}
-	});				
+	});
+	
+	// 저장
+	$('#btnGoodsQnaSave').on('click', function() {
+		
+		gagajf.ajaxFormSubmit($('#goodsQnaDetailForm').prop('action')
+				, $('#goodsQnaDetailForm')
+				, function() {
+					mcxDialog.alert("상품 문의가 등록되었습니다. 빠른 시일 내에 답변드리겠습니다.");
+				}
+		);
+/*		
+		// 입력 값 체크
+		if (gagajf.isNull($("#goodsQnaDetailForm  textarea[name=questContent]").val())){
+			mcxDialog.alert("문의내용을 입력해주세요.");
+			return false;
+		}
+		
+		mcxDialog.confirm("저장하시겠습니까?", {
+			cancelBtnText: "취소",
+			sureBtnText: "확인",
+			sureBtnClick: function() {
+				gagajf.ajaxFormSubmit($('#goodsQnaDetailForm').prop('action')
+						, $('#goodsQnaDetailForm')
+						, function() {
+							mcxDialog.alert("상품 문의가 등록되었습니다. 빠른 시일 내에 답변드리겠습니다.");
+						}
+				);
+			}
+		});
+*/		
+	});
+	
 
 
 /*]]>*/

+ 38 - 417
src/main/webapp/WEB-INF/views/web/goods/GoodsQnaFormWeb.html

@@ -41,6 +41,10 @@
 	<div class="full_pop_container">
 		<!-- 상품문의 리스트 내용 -->
 		<div class="pd_qnalist">
+		<form id="goodsQnaForm" name="goodsQnaForm" action="#" th:action="@{'/goods/qna/list'}">
+		<input type="hidden" name="pageNo" value ="1"/>
+		<input type="hidden" name="pageSize" value ="10"/>
+		<input type="hidden" name="relGoodsCd" th:value ="${goodsInfo.goodsCd}"/>
 			<div class="info_txt">
 				<ul>
 					<li>상품에 대해 궁금한 점이 있으시다면 문의해주세요.</li>
@@ -54,366 +58,23 @@
 			<div class="qna_list">
 				<!-- 나열조건결과 있을 때 노출 내용 -->
 				<div class="form_field">
-					<input id="except_secret" type="checkbox" value="Y" name="secretYn"><label for="except_secret"><span>비밀글제외</span></label>
+					<input id="except_secret" type="checkbox" value="Y" name="secretYn" onclick=""><label for="except_secret"><span>비밀글제외</span></label>
 				</div>
 				<div class="ui_row">
 					<div class="foldGroup case1">
-						<ul>
-							<li class="my_qna"> <!-- 내가 쓴 글에 클래스 my_qna 추가 -->
-								<div class="fold_head">
-									<a href="javascript:void(0)">
-										<div>
-											<span class="fold_state done">답변완료</span> <!-- 답변완료 : done / 처리중 : doing -->
-											<div class="fold_tit">
-												<span>상품을 받았는데, 옷의 색상이 화면과 다릅니다.</span>												
-												<i class="ico ico_myqna"></i> <!-- 내가 쓴 글에 추가되는 아이콘 --> 
-												<i class="ico ico_secret"></i> <!-- 비밀글에 추가되는 아이콘 --> 
-											</div>
-											<div class="data">
-												<span class="wr_id">abcd***</span>
-												<span class="wr_date">2020.12.02</span>
-											</div>
-										</div>
-									</a>
-								</div>
-								<div class="fold_cont" style="display:none;">
-									<!-- 상품문의 내용 -->
-									<div class="fold_detail">
-										<div>
-											<p>
-												PC에서 남성 분또 맨투맨 (T203TS120P)<br>
-												오렌지 컬러 선물하려고 하는데 선물을 할 수 없다고 나오네요.<br>
-												다른 컬러는 선물이 가능한 것 같은데 오렌지 컬러는 왜 안 되는건가요?<br>
-												바쁘시겠지만 확인 부탁드립니다.
-											</p>
-										</div>
-										<button type="button" class="btn btn_default btn_del"><span><i class="ico ico_trash"></i>삭제</span></button>
-									</div>
-									<!-- //상품문의 내용 -->
-									<!-- 내 1대1문의 답변 -->
-									<div class="fold_answer">
-										<div class="answer_head">
-											답변이 등록되었습니다.
-										</div>
-										<div class="answer_body">
-											안녕하세요, 고객님. 스타일24 담당자 배수지 입니다. <br>
-											문의주신 해당 상품의 선물하기는 모바일에서만 사용이 가능합니다. <br>
-											이외 궁금하신 사항이 있으시면 1:1문의나 고객센터(1544-5336)로 문의 부탁 드립니다. <br>
-											고객 만족을 위해 더욱 더 노력하는 스타일24가 되겠습니다. <br>
-											좋은 하루 보내세요, 감사합니다.
-										</div>
-										<span class="data">2020.12.02</span>
-									</div>
-									<!-- //내 1대1문의 답변 -->
-								</div>
-							</li>
-							<li class="my_qna"> <!-- 내가 쓴 글에 클래스 my_qna 추가 -->
-								<div class="fold_head">
-									<a href="javascript:void(0)">
-										<div>
-											<span class="fold_state doing">처리중</span> <!-- 답변완료 : done / 처리중 : doing -->
-											<div class="fold_tit">
-												<span>상품 상세정보에 품절이라고 되어있습니다. 언제 다시 구매할 수 있을까요? 상품 상세정보에 품절이라고 되어있습니다. 언제 다시 구매할 수 있을까요?</span>
-												<i class="ico ico_myqna"></i> <!-- 내가 쓴 글에 추가되는 아이콘 --> 
-											</div>
-											<div class="data">
-												<span class="wr_id">abcd***</span>
-												<span class="wr_date">2020.12.02</span>
-											</div>
-										</div>
-									</a>
-								</div>
-								<div class="fold_cont" style="display: none;">
-									<!-- 상품문의 내용 -->
-									<div class="fold_detail">
-										<div>
-											<p>
-												핑크색 재입고 되나요?<br>
-												노랑 샀는데 편하고 좋아서<br> 
-												하나 더 사려하는데 핑크가 없네요 ㅠ<br>
-												재입고 가능여부 알려주세요!!!!!																
-											</p>
-										</div>
-										<button type="button" class="btn btn_default btn_del"><span><i class="ico ico_trash"></i>삭제</span></button>
-									</div> 
-									<!-- //상품문의 내용 -->
-								</div>
-							</li>
-							<li>
-								<div class="fold_head">
-									<a href="javascript:void(0)">
-										<div>
-											<span class="fold_state doing">처리중</span> <!-- 답변완료 : done / 처리중 : doing -->
-											<div class="fold_tit">
-												<span>상품 상세정보에 품절이라고 되어있습니다. 언제 다시 구매할 수 있을까요? 상품 상세정보에 품절이라고 되어있습니다. 언제 다시 구매할 수 있을까요?</span>
-												<i class="ico ico_secret"></i> <!-- 비밀글에 추가되는 아이콘 --> 
-											</div>
-											<div class="data">
-												<span class="wr_id">abcd***</span>
-												<span class="wr_date">2020.12.02</span>
-											</div>
-										</div>
-									</a>
-								</div>
-								<div class="fold_cont" style="display: none;">
-									<!-- 상품문의 내용 -->
-									<div class="fold_detail">
-										<div>
-											<p>
-												핑크색 재입고 되나요?<br>
-												노랑 샀는데 편하고 좋아서<br> 
-												하나 더 사려하는데 핑크가 없네요 ㅠ<br>
-												재입고 가능여부 알려주세요!!!!!																
-											</p>
-										</div>
-										<button type="button" class="btn btn_default btn_del"><span><i class="ico ico_trash"></i>삭제</span></button>
-									</div> 
-									<!-- //상품문의 내용 -->
-								</div>
-							</li>	
-							<li>
-								<div class="fold_head">
-									<a href="javascript:void(0)">
-										<div>
-											<span class="fold_state doing">처리중</span> <!-- 답변완료 : done / 처리중 : doing -->
-											<div class="fold_tit">
-												<span>상품 상세정보에 품절이라고 되어있습니다. 언제 다시 구매할 수 있을까요? 상품 상세정보에 품절이라고 되어있습니다. 언제 다시 구매할 수 있을까요?</span>
-											</div>
-											<div class="data">
-												<span class="wr_id">abcd***</span>
-												<span class="wr_date">2020.12.02</span>
-											</div>
-										</div>
-									</a>
-								</div>
-								<div class="fold_cont" style="display: none;">
-									<!-- 상품문의 내용 -->
-									<div class="fold_detail">
-										<div>
-											<p>
-												핑크색 재입고 되나요?<br>
-												노랑 샀는데 편하고 좋아서<br> 
-												하나 더 사려하는데 핑크가 없네요 ㅠ<br>
-												재입고 가능여부 알려주세요!!!!!																
-											</p>
-										</div>
-										<button type="button" class="btn btn_default btn_del"><span><i class="ico ico_trash"></i>삭제</span></button>
-									</div> 
-									<!-- //상품문의 내용 -->
-								</div>
-							</li>		
-							<li>
-								<div class="fold_head">
-									<a href="javascript:void(0)">
-										<div>
-											<span class="fold_state doing">처리중</span> <!-- 답변완료 : done / 처리중 : doing -->
-											<div class="fold_tit">
-												<span>상품 상세정보에 품절이라고 되어있습니다. 언제 다시 구매할 수 있을까요? 상품 상세정보에 품절이라고 되어있습니다. 언제 다시 구매할 수 있을까요?</span>
-											</div>
-											<div class="data">
-												<span class="wr_id">abcd***</span>
-												<span class="wr_date">2020.12.02</span>
-											</div>
-										</div>
-									</a>
-								</div>
-								<div class="fold_cont" style="display: none;">
-									<!-- 상품문의 내용 -->
-									<div class="fold_detail">
-										<div>
-											<p>
-												핑크색 재입고 되나요?<br>
-												노랑 샀는데 편하고 좋아서<br> 
-												하나 더 사려하는데 핑크가 없네요 ㅠ<br>
-												재입고 가능여부 알려주세요!!!!!																
-											</p>
-										</div>
-										<button type="button" class="btn btn_default btn_del"><span><i class="ico ico_trash"></i>삭제</span></button>
-									</div> 
-									<!-- //상품문의 내용 -->
-								</div>
-							</li>		
-							<li>
-								<div class="fold_head">
-									<a href="javascript:void(0)">
-										<div>
-											<span class="fold_state doing">처리중</span> <!-- 답변완료 : done / 처리중 : doing -->
-											<div class="fold_tit">
-												<span>상품 상세정보에 품절이라고 되어있습니다. 언제 다시 구매할 수 있을까요? 상품 상세정보에 품절이라고 되어있습니다. 언제 다시 구매할 수 있을까요?</span>
-											</div>
-											<div class="data">
-												<span class="wr_id">abcd***</span>
-												<span class="wr_date">2020.12.02</span>
-											</div>
-										</div>
-									</a>
-								</div>
-								<div class="fold_cont" style="display: none;">
-									<!-- 상품문의 내용 -->
-									<div class="fold_detail">
-										<div>
-											<p>
-												핑크색 재입고 되나요?<br>
-												노랑 샀는데 편하고 좋아서<br> 
-												하나 더 사려하는데 핑크가 없네요 ㅠ<br>
-												재입고 가능여부 알려주세요!!!!!																
-											</p>
-										</div>
-										<button type="button" class="btn btn_default btn_del"><span><i class="ico ico_trash"></i>삭제</span></button>
-									</div> 
-									<!-- //상품문의 내용 -->
-								</div>
-							</li>		
-							<li>
-								<div class="fold_head">
-									<a href="javascript:void(0)">
-										<div>
-											<span class="fold_state doing">처리중</span> <!-- 답변완료 : done / 처리중 : doing -->
-											<div class="fold_tit">
-												<span>상품 상세정보에 품절이라고 되어있습니다. 언제 다시 구매할 수 있을까요? 상품 상세정보에 품절이라고 되어있습니다. 언제 다시 구매할 수 있을까요?</span>
-											</div>
-											<div class="data">
-												<span class="wr_id">abcd***</span>
-												<span class="wr_date">2020.12.02</span>
-											</div>
-										</div>
-									</a>
-								</div>
-								<div class="fold_cont" style="display: none;">
-									<!-- 상품문의 내용 -->
-									<div class="fold_detail">
-										<div>
-											<p>
-												핑크색 재입고 되나요?<br>
-												노랑 샀는데 편하고 좋아서<br> 
-												하나 더 사려하는데 핑크가 없네요 ㅠ<br>
-												재입고 가능여부 알려주세요!!!!!																
-											</p>
-										</div>
-										<button type="button" class="btn btn_default btn_del"><span><i class="ico ico_trash"></i>삭제</span></button>
-									</div> 
-									<!-- //상품문의 내용 -->
-								</div>
-							</li>		
-							<li>
-								<div class="fold_head">
-									<a href="javascript:void(0)">
-										<div>
-											<span class="fold_state doing">처리중</span> <!-- 답변완료 : done / 처리중 : doing -->
-											<div class="fold_tit">
-												<span>상품 상세정보에 품절이라고 되어있습니다. 언제 다시 구매할 수 있을까요? 상품 상세정보에 품절이라고 되어있습니다. 언제 다시 구매할 수 있을까요?</span>
-											</div>
-											<div class="data">
-												<span class="wr_id">abcd***</span>
-												<span class="wr_date">2020.12.02</span>
-											</div>
-										</div>
-									</a>
-								</div>
-								<div class="fold_cont" style="display: none;">
-									<!-- 상품문의 내용 -->
-									<div class="fold_detail">
-										<div>
-											<p>
-												핑크색 재입고 되나요?<br>
-												노랑 샀는데 편하고 좋아서<br> 
-												하나 더 사려하는데 핑크가 없네요 ㅠ<br>
-												재입고 가능여부 알려주세요!!!!!																
-											</p>
-										</div>
-										<button type="button" class="btn btn_default btn_del"><span><i class="ico ico_trash"></i>삭제</span></button>
-									</div> 
-									<!-- //상품문의 내용 -->
-								</div>
-							</li>		
-							<li>
-								<div class="fold_head">
-									<a href="javascript:void(0)">
-										<div>
-											<span class="fold_state doing">처리중</span> <!-- 답변완료 : done / 처리중 : doing -->
-											<div class="fold_tit">
-												<span>상품 상세정보에 품절이라고 되어있습니다. 언제 다시 구매할 수 있을까요? 상품 상세정보에 품절이라고 되어있습니다. 언제 다시 구매할 수 있을까요?</span>
-											</div>
-											<div class="data">
-												<span class="wr_id">abcd***</span>
-												<span class="wr_date">2020.12.02</span>
-											</div>
-										</div>
-									</a>
-								</div>
-								<div class="fold_cont" style="display: none;">
-									<!-- 상품문의 내용 -->
-									<div class="fold_detail">
-										<div>
-											<p>
-												핑크색 재입고 되나요?<br>
-												노랑 샀는데 편하고 좋아서<br> 
-												하나 더 사려하는데 핑크가 없네요 ㅠ<br>
-												재입고 가능여부 알려주세요!!!!!																
-											</p>
-										</div>
-										<button type="button" class="btn btn_default btn_del"><span><i class="ico ico_trash"></i>삭제</span></button>
-									</div> 
-									<!-- //상품문의 내용 -->
-								</div>
-							</li>		
-							<li>
-								<div class="fold_head">
-									<a href="javascript:void(0)">
-										<div>
-											<span class="fold_state doing">처리중</span> <!-- 답변완료 : done / 처리중 : doing -->
-											<div class="fold_tit">
-												<span>상품 상세정보에 품절이라고 되어있습니다. 언제 다시 구매할 수 있을까요? 상품 상세정보에 품절이라고 되어있습니다. 언제 다시 구매할 수 있을까요?</span>
-											</div>
-											<div class="data">
-												<span class="wr_id">abcd***</span>
-												<span class="wr_date">2020.12.02</span>
-											</div>
-										</div>
-									</a>
-								</div>
-								<div class="fold_cont" style="display: none;">
-									<!-- 상품문의 내용 -->
-									<div class="fold_detail">
-										<div>
-											<p>
-												핑크색 재입고 되나요?<br>
-												노랑 샀는데 편하고 좋아서<br> 
-												하나 더 사려하는데 핑크가 없네요 ㅠ<br>
-												재입고 가능여부 알려주세요!!!!!																
-											</p>
-										</div>
-										<button type="button" class="btn btn_default btn_del"><span><i class="ico ico_trash"></i>삭제</span></button>
-									</div> 
-									<!-- //상품문의 내용 -->
-								</div>
-							</li>		
-						</ul>										
+						<ul id="ulGoodsQna">
+						</ul>
 					</div>
 				</div>
 				<div class="ui_foot">
 					<div class="ui_row">
-						<ul class="pageNav">
-							<li class="disabled"><a href="#">«</a></li>
-							<li class="prev disabled"><a href="#">‹</a></li>
-							<li><a href="#">1</a></li>
-							<li class="active"><a href="#">2</a></li>
-							<li><a href="#">3</a></li>
-							<li><a href="#">4</a></li>
-							<li><a href="#">5</a></li>
-							<li><a href="#">6</a></li>
-							<li><a href="#">7</a></li>
-							<li><a href="#">8</a></li>
-							<li><a href="#">9</a></li>
-							<li><a href="#">10</a></li>
-							<li class="next"><a href="#">›</a></li>
-							<li><a href="#">»</a></li>
+						<ul class="pageNav" id="pageNav">
 						</ul>
 					</div>			
 				</div>
 				<!-- //나열조건결과 있을 때 노출 내용 -->
 				<!-- 나열조건결과 없을 때 노출 내용 -->
-				<div class="nodata">
+				<div class="nodata" style="display:none;">
 					<div class="txt_box">
 						<p>
 							등록된 상품문의가 없습니다.
@@ -422,48 +83,47 @@
 				</div>
 				<!-- //나열조건결과 없을 때 노출 내용 -->
 			</div>
+		</form>	
 		</div>
-				
 	</div>
 </div>
-<form id="goodsGnaForm" name="goodsGnaForm" action="#" th:action="@{'/callcenter/onetoone/qna/list'}">
-	<input type="hidden" name="pageNo" value ="1"/>
-	<input type="hidden" name="pageSize" value ="10"/>
-</form>
 <script src="/ux/plugins/gaga/gaga.paging.js"></script>
 <script th:inline="javascript">
 /*<![CDATA[*/
-	$(document).ready(function() {
-		// 고객센터 LNB 설정
-		fnSetCallcenterLnb(2);
-		
-		fnGetList();
-	});
 	
 	let fnGetList = function() {
 		// Initialize a pagination
-		gagaPaging.init('qnaForm', fnGetListCallback, 'pageNav', 10);
+		gagaPaging.init('goodsQnaForm', fnGetListCallback, 'pageNav', 10);
 
 		// Load data
 		gagaPaging.load(1);
 	}
 	
 	var fnGetListCallback = function(result) {
-		$('#ulQna').html('');
-
+		$('#ulGoodsQna').html('');
+		$('.nodata').hide();
 		// 목록
 		if (result.dataList != null && result.dataList.length > 0) {
+			
 			$.each(result.dataList, function(idx, item) {
-				let tag = '<li>\n';
+				let tag = '<li class="'+ (item.selfGb == 1 ? "my_qna" : "") +'">\n';  // <!-- 내가 쓴 글에 클래스 my_qna 추가 -->
 				tag += '	<div class="fold_head">\n';
 				tag += '		<a href="javascript:void(0)">\n';
 				tag += '			<div>\n';
 				tag += '				<span class="fold_state ' + (item.ansStat == "G060_10" ? "doing" : "done") + '">' + item.ansStatNm + '</span>\n'; //답변완료 : done / 처리중 : doing
 				tag += '				<div class="fold_tit">\n';
-				tag += '					<span class="prod">[' + item.counselClsfNm + ']</span>\n';
-				tag += '					<span>' + item.questTitle + '</span>\n';
+				tag += '					<span>' + item.questContent + '</span>\n';
+				if (item.selfGb == 1){
+				tag += '					<i class="ico ico_myqna"></i>\n';	//내가 쓴 글에 추가되는 아이콘
+				}
+				if (item.secretYn == "Y"){
+				tag += '					<i class="ico ico_secret"></i>\n';	//비밀글에 추가되는 아이콘
+				}
+				tag += '				</div>\n';
+				tag += '				<div class="data">\n';
+				tag += '					<span class="wr_id">'+ item.custId+'</span>\n';
+				tag += '					<span class="wr_data">' + item.questDt + '</span>\n';
 				tag += '				</div>\n';
-				tag += '				<span class="data">' + item.questDt + '</span>\n';
 				tag += '			</div>\n';
 				tag += '		</a>\n';
 				tag += '	</div>\n';
@@ -471,74 +131,35 @@
 				tag += '		<div class="fold_detail">\n'; //문의 내용
 				tag += '			<div>\n';
 				tag += '				<p>' + item.questContent + '</p>\n';
-				
-				if (!gagajf.isNull(item.sysFileNm1) || !gagajf.isNull(item.sysFileNm2)) {
-					tag += '				<p class="img_group">\n';
-					
-					if (!gagajf.isNull(item.sysFileNm1)) {
-						tag += '					<span class="thumb_pic">\n';
-						tag += '						<img src="' + _uploadImageUrl + '/counsel/' + item.sysFileNm1 + '" alt="" onerror="this.src=\'/image/bg_profile.png\'">\n';
-						tag += '					</span>\n';
-					}
-					
-					if (!gagajf.isNull(item.sysFileNm2)) {
-						tag += '					<span class="thumb_pic">\n';
-						tag += '						<img src="' + _uploadImageUrl + '/counsel/' + item.sysFileNm2 + '" alt="" onerror="this.src=\'/image/bg_profile.png\'">\n';
-						tag += '					</span>\n';
-					}
-					
-					tag += '				</p>\n';
-				}
-				
 				tag += '			</div>\n';
-				
-				if (item.ansStat == 'G060_10') { // 처리중일때
-					tag += '			<button type="button" class="btn btn_default btn_del" onclick="fnDeleteQna(' + item.counselSq + ');"><span><i class="ico ico_trash"></i>삭제</span></button>\n';
-				}
-				
 				tag += '		</div>\n';
 				
 				if (item.ansStat == 'G060_20') { // 답변완료 상태일 때
-					tag += '		<div class="fold_answer">\n'; //문의 답변
-					tag += '			<div class="answer_head">답변이 등록되었습니다.</div>\n';
-					tag += '			<div class="answer_body">' + item.ansContent + '</div>\n';
-					tag += '			<span class="data">' + item.ansDt + '</span>\n';
-					tag += '		</div>\n';
+					tag += '	<div class="fold_answer">\n'; //문의 답변
+					tag += '		<div class="answer_head">답변이 등록되었습니다.</div>\n';
+					tag += '		<div class="answer_body">' + item.ansContent + '</div>\n';
+					tag += '		<span class="data">' + item.ansDt + '</span>\n';
+					tag += '	</div>\n';
 				}
 				
 				tag += '	</div>\n';
 				tag += '</li>\n';
 				
-				$('#ulQna').append(tag);
+				$('#ulGoodsQna').append(tag);
 			});
 		} else {
-			let tag = '<li>내역이 없습니다.</li>\n';
-			$('#ulQna').append(tag);
-			$('#divQna').addClass('nodata');
+			$('.nodata').show();
+			$('.ui_foot').hide();
 		}
 
 		// Create pagination
 		gagaPaging.createPagination(result.paging.pageable);
 	}
 	
-	// 삭제
-	let fnDeleteQna = function(counselSq) {
-		mcxDialog.confirm("등록된 내용을 삭제하시겠습니까?", {
-			cancelBtnText: "취소",
-			sureBtnText: "확인",
-			sureBtnClick: function() {
-				let params = new Object();
-				params.counselSq = counselSq;
-				
-				var jsonData = JSON.stringify(params);
-				gagajf.ajaxJsonSubmit('/callcenter/onetoone/qna/delete'
-						, jsonData
-						, function() {
-							fnGetList();
-						});
-			}
-		});
-	}
+	$(document).ready(function() {
+		fnGetList();
+	});
+	
 /*]]>*/
 </script>
 

+ 2 - 2
src/main/webapp/ux/plugins/gaga/gaga.paging.js

@@ -69,7 +69,7 @@ var gagaPaging = {
 	 * Create a pagination
 	 * @param pageable - page 정보
 	 */
-	createPagination : function(pageable) {
+	createPagination : function(pageable) {debugger;
 		// Generate pagination
 		var html;
 		if (gagajf.isNull(pageable.generatedPagination)) {
@@ -161,7 +161,7 @@ var gagaPaging = {
 		});
 	},
 	
-	generatedPagination : function (pageable) {
+	generatedPagination : function (pageable) {debugger;
 		let pageNo = pageable.pageNo;
 		let pageSize = pageable.pageSize;
 		let pageUnit = pageable.pageUnit;