Просмотр исходного кода

Merge branch 'develop' of http://112.172.147.34:4936/style24/style24.front.git into develop

gagamel 5 лет назад
Родитель
Сommit
87f06387e5

+ 20 - 0
src/main/java/com/style24/front/biz/dao/TsfCustomerDao.java

@@ -3,6 +3,7 @@ package com.style24.front.biz.dao;
 import com.style24.core.support.annotation.ShopDs;
 import com.style24.persistence.domain.CustSnsInfo;
 import com.style24.persistence.domain.Customer;
+import com.style24.persistence.domain.WishList;
 
 /**
  * 고객(회원) Dao
@@ -75,4 +76,23 @@ public interface TsfCustomerDao {
 	 * @since 2021. 03. 02
 	 */
 	String getCustomerMaxCustId(Customer customer);
+	
+	/**
+	 * 위시리스트 등록
+	 *
+	 * @param wishlist - 위시리스트 정보
+	 * @return
+	 * @author eskim
+	 * @since 2021. 03. 08
+	 */
+	void createWishList(WishList wishlist);
+
+	/**
+	 * 위시리스트 삭제처리
+	 *
+	 * @param params - 고객일련번호, 상품코드
+	 * @author eskim
+	 * @since 2021. 03. 08
+	 */
+	void deleteWishList(WishList wishList);
 }

+ 52 - 13
src/main/java/com/style24/front/biz/service/TsfCustomerService.java

@@ -1,32 +1,36 @@
 package com.style24.front.biz.service;
 
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.core.authority.SimpleGrantedAuthority;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
 import com.fasterxml.jackson.databind.ObjectMapper;
-import com.gagaframework.web.parameter.GagaMap;
-import com.gagaframework.web.security.GagaPasswordEncoder;
 import com.style24.core.biz.service.TscCustomerService;
 import com.style24.core.support.env.TscConstants;
 import com.style24.core.support.session.TscSession;
 import com.style24.core.support.util.MaskingUtils;
+import com.style24.front.biz.dao.TsfCustomerDao;
 import com.style24.front.support.security.TsfLoginDetails;
 import com.style24.front.support.security.session.TsfSession;
 import com.style24.persistence.domain.Coupon;
 import com.style24.persistence.domain.CustSnsInfo;
 import com.style24.persistence.domain.Customer;
 import com.style24.persistence.domain.Login;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.core.authority.SimpleGrantedAuthority;
-import org.springframework.stereotype.Service;
-
-import com.style24.front.biz.dao.TsfCustomerDao;
+import com.style24.persistence.domain.WishList;
 
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.transaction.annotation.Transactional;
 
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
-import java.util.ArrayList;
-import java.util.List;
+import com.gagaframework.web.parameter.GagaMap;
+import com.gagaframework.web.security.GagaPasswordEncoder;
 
 /**
  * 고객(회원) Service
@@ -612,7 +616,42 @@ public class TsfCustomerService {
 		return maskingCustId;
 	}
 
+	/**
+	 * 위시리스트 등록
+	 *
+	 * @return void
+	 * @author eskim
+	 * @since 2021. 03. 08
+	 */
+	@Transactional("shopTxnManager")
+	public void createWishList(Collection<WishList> wishlist) {
+
+		for (WishList wishInfo : wishlist) {
+			wishInfo.setCustNo(TsfSession.getInfo().getCustNo());
+			wishInfo.setAfLinkCd(TsfSession.getAttribute("afLinkCd"));
+			//wishInfo.setIthrCd(GagaCookieUtil.getCookie(TsfSession.getHttpServletRequest(), TsfConstants.CK_PREFIX + "_ithrCd"));
+			//wishInfo.setContentsLoc(GagaCookieUtil.getCookie(TsfSession.getHttpServletRequest(), TsfConstants.CK_PREFIX + "_contentsLoc"));
+			wishInfo.setRegNo(TsfSession.getInfo().getCustNo());
+			customerDao.createWishList(wishInfo);
+		}
+	}
+
+	/**
+	 * 위시리스트 삭제처리
+	 *
+	 * @param paramList - 고객 일련번호
+	 * @return void
+	 * @author eskim
+	 * @since 2021. 03. 08
+	 */
+	@Transactional("shopTxnManager")
+	public void deleteWishList(Collection<WishList> wishlist) {
 
+		for (WishList wishInfo : wishlist) {
+			wishInfo.setCustNo(TsfSession.getInfo().getCustNo());
+			customerDao.deleteWishList(wishInfo);
+		}
+	}
 
 
 }

+ 14 - 0
src/main/java/com/style24/front/biz/web/TsfCommonController.java

@@ -21,6 +21,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.multipart.MultipartFile;
 
 import com.style24.front.support.controller.TsfBaseController;
+import com.style24.front.support.security.session.TsfSession;
 
 import lombok.extern.slf4j.Slf4j;
 
@@ -171,4 +172,17 @@ public class TsfCommonController extends TsfBaseController {
 		return ufList;
 	}
 
+	/**
+	 * 로그인 체크
+	 *
+	 * @return true:로그인, false:비로그인
+	 * @author eskim
+	 * @since 2021. 3. 08
+	 */
+	@GetMapping("/login/check")
+	@ResponseBody
+	public boolean checkLogin() {
+		return TsfSession.isLogin();
+	}
+
 }

+ 42 - 11
src/main/java/com/style24/front/biz/web/TsfMypageController.java

@@ -4,21 +4,16 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.lang.Nullable;
 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.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.servlet.ModelAndView;
 
-import com.gagaframework.web.parameter.GagaMap;
-import com.gagaframework.web.rest.server.GagaResponseStatus;
 import com.style24.core.biz.service.TscCustomerService;
 import com.style24.core.biz.service.TscKakaoPayService;
 import com.style24.core.biz.service.TscOrderChangeService;
@@ -42,9 +37,13 @@ import com.style24.persistence.domain.Coupon;
 import com.style24.persistence.domain.Customer;
 import com.style24.persistence.domain.Order;
 import com.style24.persistence.domain.Point;
+import com.style24.persistence.domain.WishList;
 
 import lombok.extern.slf4j.Slf4j;
 
+import com.gagaframework.web.parameter.GagaMap;
+import com.gagaframework.web.rest.server.GagaResponseStatus;
+
 /**
  * 마이페이지 Controller
  * 
@@ -533,8 +532,6 @@ public class TsfMypageController extends TsfBaseController {
 		
 		result.set("accumulatePointList",pointService.getAccumulatePointList(point));
 		
-		log.info("result {}", result);
-		
 		return result;
 	}
 	
@@ -556,8 +553,6 @@ public class TsfMypageController extends TsfBaseController {
 		
 		result.set("usePointList",pointService.getUsePointList(point));
 		
-		log.info("result {}", result);
-		
 		return result;
 	}
 	
@@ -579,8 +574,6 @@ public class TsfMypageController extends TsfBaseController {
 		
 		result.set("allPointList",pointService.getAllPointList(point));
 		
-		log.info("result {}", result);
-		
 		return result;
 	}
 
@@ -598,4 +591,42 @@ public class TsfMypageController extends TsfBaseController {
 		return coreOrderRefundService.cnclRtnRefundAmt(orderList);
 	}
 
+	/**
+	 * 위시리스트 등록처리
+	 *
+	 * @param wishList 
+	 * @return GagaResponse
+	 * @author eskim
+	 * @since 2021. 03. 08
+	 */
+	@PostMapping("/wish/list/put")
+	@ResponseBody
+	public GagaMap createWishList(@RequestBody Collection<WishList> wishList) throws Exception {
+		GagaMap result = new GagaMap();
+
+		customerService.createWishList(wishList);
+		result.set("status", "200");
+
+		return result;
+	}
+
+	/**
+	 * 위시리스트 삭제처리
+	 *
+	 * @param wishList
+	 * @return GagaResponse
+	 * @throws Exception
+	 * @author eskim
+	 * @since 2021. 03. 08
+	 */
+	@PostMapping("/wish/list/delete")
+	@ResponseBody
+	public GagaMap deleteWishList(@RequestBody Collection<WishList> wishList) throws Exception {
+		GagaMap result = new GagaMap();
+
+		customerService.deleteWishList(wishList);
+		result.set("status", "200");
+
+		return result;
+	}
 }

+ 5 - 3
src/main/java/com/style24/persistence/domain/Counsel.java

@@ -1,6 +1,7 @@
 package com.style24.persistence.domain;
 
 import com.fasterxml.jackson.annotation.JsonInclude;
+import com.style24.core.support.util.MaskingUtils;
 import com.style24.persistence.TscBaseDomain;
 import com.style24.persistence.TscPageRequest;
 
@@ -59,9 +60,10 @@ public class Counsel extends TscBaseDomain {
 	private int ingCnt;		// 처리중건수
 
 	// Masking
-	//public String getMaskingCustId() {
-	//return MaskingUtils.id(this.custId);
-	//}
+	public String getMaskingCustId() {
+		return (this.custId != null) ?  MaskingUtils.id(this.custId) : this.custId;
+	}
+	
 
 	// Pagination
 	@JsonInclude(JsonInclude.Include.NON_EMPTY)

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

@@ -96,7 +96,7 @@ public class Goods extends TscBaseDomain {
 	private String custGrade;	//고객등급
 	private Integer custNo;		//고객번호
 	private String soldoutGoodsDisplayYn = "N";	//품절노추여부
-	private int pointUnit = 10;	//포인트단위
+	private int pointUnit = 1;	//포인트단위
 	private String goodsNmFull;	//상품타이틀+ 상품명
 	private String sysImgNm;	//상품이미지
 	private String logoFileNm;	//브랜드로고이미지

+ 24 - 0
src/main/java/com/style24/persistence/domain/WishList.java

@@ -0,0 +1,24 @@
+package com.style24.persistence.domain;
+
+import com.style24.persistence.TscBaseDomain;
+
+import lombok.Data;
+
+/**
+ * 위시리스트 Domain
+ * 
+ * @author eskim
+ * @since 2021. 03. 08
+ */
+@SuppressWarnings("serial")
+@Data
+public class WishList extends TscBaseDomain {
+
+	private Integer custNo;
+	private String goodsCd;
+	private String afLinkCd;
+	private String ithrCd;
+	private String contentsLoc;
+	private Integer planDtlSq;
+
+}

+ 36 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsfCustomer.xml

@@ -442,4 +442,40 @@
 		      ) B
 	</select>
 
+	<!-- 위시리스트 등록 -->
+	<insert id="createWishList" parameterType="WishList">
+		/* TsfCustomer.createWishList */
+		INSERT INTO TB_WISHLIST
+		(
+		            CUST_NO
+		          , GOODS_CD
+		          , AF_LINK_CD
+		          , ITHR_CD
+		          , CONTENTS_LOC
+		          , PLAN_DTL_SQ
+		          , REG_NO
+		          , REG_DT
+		         ) VALUES (
+		            #{custNo}
+		          , #{goodsCd}
+		          , #{afLinkCd}
+		          , #{ithrCd}
+		          , #{contentsLoc}
+		          , #{planDtlSq}
+		          , #{regNo}
+		          , NOW()
+		         )
+		ON DUPLICATE KEY UPDATE
+		         REG_DT = NOW()
+	</insert>
+
+	<!-- 위시리스트 삭제 -->
+	<delete id="deleteWishList" parameterType="WishList">
+		/* TsfCustomer.deleteWishInfo */
+		DELETE FROM TB_WISHLIST
+		WHERE  CUST_NO = #{custNo}
+		<if test="goodsCd != null and goodsCd != ''">
+		AND    GOODS_CD = #{goodsCd}
+		</if>
+	</delete>
 </mapper>

+ 81 - 43
src/main/java/com/style24/persistence/mybatis/shop/TsfPoint.xml

@@ -46,34 +46,49 @@
 	<!-- 적립내역 조회-->
 	<select id="getAccumulatePointList" parameterType="Point" resultType="Point">
 	/* TsfPoint.getAccumulatePointList */
-	SELECT
-		CASE   TCHP.OCCUR_GB
-		WHEN   'G069_12' THEN '상품 구매'
-		WHEN   'G069_20' THEN '리뷰'
-		WHEN   'G069_30' THEN '이벤트'
-		WHEN   'G069_90' THEN '관리자'
-		END AS OCCUR_GB ,	
-		CASE   TCHP.OCCUR_GB  	
-		WHEN   'G069_12' THEN TG.GOODS_NM 
-		WHEN   'G069_20' THEN TG.GOODS_NM 
-		WHEN   'G069_30' THEN TCHP.OCCUR_DTL_DESC
-		WHEN   'G069_90' THEN TCHP.OCCUR_DTL_DESC
+	SELECT	
+	   CASE   TCHP.OCCUR_GB
+			WHEN   'G069_12' THEN '상품 구매'
+			WHEN   'G069_20' THEN '리뷰'
+			WHEN   'G069_30' THEN '이벤트'
+			WHEN   'G069_90' THEN '관리자'
+		END AS OCCUR_GB
+	  , CASE   TCHP.OCCUR_GB
+			WHEN   'G069_12' THEN TG.GOODS_NM
+			WHEN   'G069_20' THEN TG.GOODS_NM
+			WHEN   'G069_30' THEN TCHP.OCCUR_DTL_DESC
+			WHEN   'G069_90' THEN TCHP.OCCUR_DTL_DESC
 		END AS  OCCUR_DTL_DESC
 			  , TCHP.PNT_AMT AS pntAmt
 			  , TCHP.UPD_DT  AS pntUploadDt
 		FROM TB_CUST_POINT_HST TCHP
+		LEFT JOIN 
+		(
+			SELECT REVIEW_SQ
+				 , ORD_NO 
+				 , ORD_DTL_NO 
+		         , GOODS_CD
+			FROM TB_REVIEW TR
+			WHERE TR.PNT_GIVE_STAT = 'G043_30' 														/* 리뷰조건 : 포인트지급반영*/
+		) TR
+		ON TCHP.REVIEW_SQ = TR.REVIEW_SQ
+		AND (TCHP.ORD_NO = TR.ORD_NO AND TCHP.ORD_DTL_NO = TR.ORD_DTL_NO)
 		LEFT JOIN TB_ORDER_DETAIL TOD
-		ON TOD.ORD_NO = TCHP.ORD_NO
-		AND TOD.ORD_DTL_NO = TCHP.ORD_DTL_NO
-		LEFT JOIN TB_GOODS TG 
-		ON TG.GOODS_CD = TOD.GOODS_CD 
+		ON TCHP.ORD_NO = TOD.ORD_NO
+		AND TCHP.ORD_DTL_NO = TOD.ORD_DTL_NO
+		LEFT JOIN TB_GOODS TG
+		ON (TG.GOODS_CD = TOD.GOODS_CD OR TG.GOODS_CD = TR.GOODS_CD)
 		WHERE TCHP.CUST_NO = #{custNo}
+		AND CASE 																					/* 상품평조건 */
+			WHEN TCHP.REVIEW_SQ IS NULL THEN 1
+			WHEN TCHP.REVIEW_SQ IS NOT NULL AND TR.REVIEW_SQ IS NOT NULL THEN 1
+		END > 0	
 		AND TCHP.OCCUR_GB IN ('G069_12','G069_20','G069_30','G069_90')
-		AND TCHP.PNT_UPLOAD_STAT = 'G070_30'
+		AND TCHP.PNT_UPLOAD_STAT = 'G070_30'														/* 공통코드 : 반영완료 */
 		AND TCHP.PNT_AMT <![CDATA[>]]> 0
 		AND DATE_FORMAT(TCHP.UPD_DT,'%Y%m') = #{searchDt}
-		GROUP BY TCHP.OCCUR_GB, PNT_AMT, GOODS_NM, TCHP.OCCUR_DTL_DESC, TCHP.UPD_DT
-	ORDER BY TCHP.UPD_DT DESC
+		GROUP BY tchp.REVIEW_SQ,TCHP.OCCUR_GB, PNT_AMT, GOODS_NM, TCHP.OCCUR_DTL_DESC, TCHP.UPD_DT
+	ORDER BY TCHP.UPD_DT DESC;
 	</select>
 	
 	<!-- 사용내역 조회-->
@@ -81,69 +96,92 @@
 	/* TsfPoint.getUsePointList */
 	SELECT
 		CASE   TCHP.OCCUR_GB
-		WHEN   'G069_10' THEN '구매 사용'
-		WHEN   'G069_21' THEN '구매 취소'
-		WHEN   'G069_90' THEN '관리자'
-		WHEN   'G069_99' THEN '소멸'
+			WHEN   'G069_13' THEN '구매 취소'
+			WHEN   'G069_40' THEN '구매 사용'
+			WHEN   'G069_42' THEN '사은품'
+			WHEN   'G069_90' THEN '관리자'
+			WHEN   'G069_99' THEN '소멸'
 		END AS OCCUR_GB ,	
 		CASE   TCHP.OCCUR_GB	
-		WHEN   'G069_10' THEN TG.GOODS_NM 
-		WHEN   'G069_21' THEN TG.GOODS_NM 
-		WHEN   'G069_90' THEN TCHP.OCCUR_DTL_DESC
-		WHEN   'G069_99' THEN TCHP.OCCUR_DTL_DESC
+			WHEN   'G069_13' THEN TG.GOODS_NM
+			WHEN   'G069_40' THEN TG.GOODS_NM 
+			WHEN   'G069_42' THEN TG.GOODS_NM
+			WHEN   'G069_90' THEN TCHP.OCCUR_DTL_DESC
+			WHEN   'G069_99' THEN '유효기간 경과 소멸'
 		END AS OCCUR_DTL_DESC
 			 , TCHP.PNT_AMT AS pntAmt
 			 , TCHP.UPD_DT  AS pntUploadDt
 		FROM TB_CUST_POINT_HST TCHP
-		LEFT JOIN TB_ORDER_DETAIL TOD
+		LEFT JOIN TB_ORDER_DETAIL TOD																/* 주문상세 */
 		ON TOD.ORD_NO = TCHP.ORD_NO
 		AND TOD.ORD_DTL_NO = TCHP.ORD_DTL_NO
-		LEFT JOIN TB_GOODS TG 
+		LEFT JOIN TB_ORD_FREEGIFT TOF																/* 사은품 */
+		ON TOD.ORD_NO = TOF.ORD_NO
+		LEFT JOIN TB_GOODS TG																		/* 상품품 */
 		ON TG.GOODS_CD = TOD.GOODS_CD 
 		WHERE TCHP.CUST_NO = #{custNo}
-		AND TCHP.OCCUR_GB IN ('G069_10','G069_21','G069_90','G069_99')
-		AND TCHP.PNT_UPLOAD_STAT = 'G070_30'
+		AND TCHP.OCCUR_GB IN ('G069_13','G069_40','G069_42','G069_90','G069_99')
+		AND TCHP.PNT_UPLOAD_STAT = 'G070_30'														/* 공통코드 : 반영완료 */
 		AND 0 <![CDATA[>]]> TCHP.PNT_AMT
 		AND DATE_FORMAT(TCHP.UPD_DT,'%Y%m') = #{searchDt}
-		GROUP BY  TCHP.OCCUR_GB, PNT_AMT, GOODS_NM,  TCHP.OCCUR_DTL_DESC, TCHP.UPD_DT
+		GROUP BY  TCHP.OCCUR_GB, PNT_AMT, GOODS_NM, TCHP.OCCUR_DTL_DESC, TCHP.UPD_DT
 	ORDER BY TCHP.UPD_DT DESC;
 	</select>
 	
 	<!-- 전체내역 조회-->
 	<select id="getAllPointList" parameterType="Point" resultType="Point">
-		/* TsfPoint.getAllPointList */
+	/* TsfPoint.getAllPointList */
 	SELECT
 		CASE   TCHP.OCCUR_GB
-		WHEN   'G069_10' THEN '구매 사용'
 		WHEN   'G069_12' THEN '상품 구매'
+		WHEN   'G069_13' THEN '구매 취소'
 		WHEN   'G069_20' THEN '리뷰'	
-		WHEN   'G069_21' THEN '구매 취소'
 		WHEN   'G069_30' THEN '이벤트'
+		WHEN   'G069_40' THEN '구매 사용'
+		WHEN   'G069_42' THEN '사은품'
 		WHEN   'G069_90' THEN '관리자'
 		WHEN   'G069_99' THEN '소멸'
 		END AS OCCUR_GB ,	
 		CASE   TCHP.OCCUR_GB
-		WHEN   'G069_10' THEN TG.GOODS_NM
 		WHEN   'G069_12' THEN TG.GOODS_NM 
+		WHEN   'G069_13' THEN TG.GOODS_NM 
 		WHEN   'G069_20' THEN TG.GOODS_NM 
-		WHEN   'G069_21' THEN TG.GOODS_NM
 		WHEN   'G069_30' THEN TCHP.OCCUR_DTL_DESC
+		WHEN   'G069_40' THEN TG.GOODS_NM 
+		WHEN   'G069_42' THEN TG.GOODS_NM
 		WHEN   'G069_90' THEN TCHP.OCCUR_DTL_DESC
-		WHEN   'G069_99' THEN TCHP.OCCUR_DTL_DESC
+		WHEN   'G069_99' THEN '유효기간 경과 소멸'
 		END AS OCCUR_DTL_DESC
 			 , TCHP.PNT_AMT AS pntAmt
 			 , TCHP.UPD_DT  AS pntUploadDt
 		FROM TB_CUST_POINT_HST TCHP
+		LEFT JOIN 
+		(
+			SELECT REVIEW_SQ
+				 , ORD_NO 
+				 , ORD_DTL_NO 
+		         , GOODS_CD
+			FROM TB_REVIEW TR
+			WHERE TR.PNT_GIVE_STAT = 'G043_30'
+		) TR
+		ON TCHP.REVIEW_SQ = TR.REVIEW_SQ
+		AND (TCHP.ORD_NO = TR.ORD_NO AND TCHP.ORD_DTL_NO = TR.ORD_DTL_NO)
 		LEFT JOIN TB_ORDER_DETAIL TOD
-		ON TOD.ORD_NO = TCHP.ORD_NO
-		AND TOD.ORD_DTL_NO = TCHP.ORD_DTL_NO
+		ON TCHP.ORD_NO = TOD.ORD_NO
+		AND TCHP.ORD_DTL_NO = TOD.ORD_DTL_NO
+		LEFT JOIN TB_ORD_FREEGIFT TOF
+		ON TOD.ORD_NO = TOF.ORD_NO
 		LEFT JOIN TB_GOODS TG 
-		ON TG.GOODS_CD = TOD.GOODS_CD 
+		ON (TG.GOODS_CD = TOD.GOODS_CD OR TG.GOODS_CD = TR.GOODS_CD)
 		WHERE TCHP.CUST_NO = #{custNo}
-		AND TCHP.OCCUR_GB IN ('G069_10','G069_12','G069_20','G069_21','G069_30','G069_90','G069_99')
+		AND CASE
+			WHEN TCHP.REVIEW_SQ IS NULL THEN 1
+			WHEN TCHP.REVIEW_SQ IS NOT NULL AND TR.REVIEW_SQ IS NOT NULL THEN 1
+		END > 0		
+		AND TCHP.OCCUR_GB IN ('G069_12','G069_13','G069_20','G069_30','G069_40','G069_42','G069_90','G069_99')
 		AND TCHP.PNT_UPLOAD_STAT = 'G070_30'
 		AND DATE_FORMAT(TCHP.UPD_DT,'%Y%m') = #{searchDt}
-		GROUP BY TCHP.OCCUR_GB, PNT_AMT, GOODS_NM, TCHP.OCCUR_DTL_DESC, TCHP.UPD_DT
+		GROUP BY TCHP.REVIEW_SQ, TCHP.OCCUR_GB, PNT_AMT, GOODS_NM, TCHP.OCCUR_DTL_DESC, TCHP.UPD_DT
 	ORDER BY TCHP.UPD_DT DESC;
 	</select>
 </mapper>

+ 65 - 437
src/main/webapp/WEB-INF/views/web/goods/GoodsDetailFormWeb.html

@@ -87,7 +87,7 @@
 								<div class="desc_top">
 									<a href="javascript:void(0);" class="btn_brand" th:onclick="cfnGoToBrandMain([[${goodsInfo.brandGroupNo}]])" th:text="${goodsInfo.brandGroupNm}">NBA 키즈</a>
 									<button type="button" class="itemShare">상품 공유하기</button>
-									<button type="button" class="itemLike" th:classappend="${wishYn == 'Y'}? 'active' : ''">관심상품 추가</button>
+									<button type="button" class="itemLike" th:classappend="${goodsInfo.wishYn == 'Y'}? 'active' : ''"  onclick="cfnPutWishList(this);" th:attr="goodsCd=${params.goodsCd}, ithrCd=${params.ithrCd}, contentsLoc=${params.contentsLoc}, planDtlSq=${params.planDtlSq}">관심상품 추가</button>
 								</div>
 								<div class="desc_info">
 									<div class="title_blk">
@@ -421,114 +421,6 @@
 									</div>
 								</div>
 							</div>
-							<div class="swiper-slide">
-								<div class="item_prod">
-									<div class="item_state">
-										<a href="#none" class="itemLink">
-											<div class="itemPic">
-												<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdTogether1.jpg">
-												<button type="button" class="itemLike">관심상품 추가</button>
-											</div>
-											<p class="itemBrand">BRAND NAME1</p>
-											<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
-											<p class="itemPrice">80,100
-												<span class="itemPrice_original">89,000</span>
-												<span class="itemPercent">10%</span>
-											</p>
-										</a>
-									</div>
-								</div>
-							</div>
-							<div class="swiper-slide">
-								<div class="item_prod">
-									<div class="item_state">
-										<a href="#none" class="itemLink">
-											<div class="itemPic">
-												<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdTogether1.jpg">
-												<button type="button" class="itemLike">관심상품 추가</button>
-											</div>
-											<p class="itemBrand">BRAND NAME1</p>
-											<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
-											<p class="itemPrice">80,100
-												<span class="itemPrice_original">89,000</span>
-												<span class="itemPercent">10%</span>
-											</p>
-										</a>
-									</div>
-								</div>
-							</div>
-							<div class="swiper-slide">
-								<div class="item_prod">
-									<div class="item_state">
-										<a href="#none" class="itemLink">
-											<div class="itemPic">
-												<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdTogether1.jpg">
-												<button type="button" class="itemLike">관심상품 추가</button>
-											</div>
-											<p class="itemBrand">BRAND NAME1</p>
-											<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
-											<p class="itemPrice">80,100
-												<span class="itemPrice_original">89,000</span>
-												<span class="itemPercent">10%</span>
-											</p>
-										</a>
-									</div>
-								</div>
-							</div>
-							<div class="swiper-slide">
-								<div class="item_prod">
-									<div class="item_state">
-										<a href="#none" class="itemLink">
-											<div class="itemPic">
-												<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdTogether1.jpg">
-												<button type="button" class="itemLike">관심상품 추가</button>
-											</div>
-											<p class="itemBrand">BRAND NAME1</p>
-											<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
-											<p class="itemPrice">80,100
-												<span class="itemPrice_original">89,000</span>
-												<span class="itemPercent">10%</span>
-											</p>
-										</a>
-									</div>
-								</div>
-							</div>
-							<div class="swiper-slide">
-								<div class="item_prod">
-									<div class="item_state">
-										<a href="#none" class="itemLink">
-											<div class="itemPic">
-												<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdTogether1.jpg">
-												<button type="button" class="itemLike">관심상품 추가</button>
-											</div>
-											<p class="itemBrand">BRAND NAME1</p>
-											<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
-											<p class="itemPrice">80,100
-												<span class="itemPrice_original">89,000</span>
-												<span class="itemPercent">10%</span>
-											</p>
-										</a>
-									</div>
-								</div>
-							</div>
-							<div class="swiper-slide">
-								<div class="item_prod">
-									<div class="item_state">
-										<a href="#none" class="itemLink">
-											<div class="itemPic">
-												<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdTogether1.jpg">
-												<button type="button" class="itemLike">관심상품 추가</button>
-											</div>
-											<p class="itemBrand">BRAND NAME1</p>
-											<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
-											<p class="itemPrice">80,100
-												<span class="itemPrice_original">89,000</span>
-												<span class="itemPercent">10%</span>
-											</p>
-										</a>
-									</div>
-								</div>
-							</div>
 						</div>
 						<!-- Add Scrollbar -->
 						<div class="swiper-scrollbar"></div> 
@@ -560,53 +452,97 @@
 					</div>
 				</div>
 				<!-- //상품설명 노출 -->
-				<!-- 관리자 에디터입력 내용   상단 html -->
-				<th:block th:if="${goodsNoticeList != null and !goodsNoticeList.empty}" ></th:block>
-				<div class="mdhtml_box" th:each="goodsNotice, status : ${goodsNoticeList}" th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsNotice.noticeContent))}">
-				</div>
+				<!-- 관리자 에디터입력 내용   공지 html -->
+					<th:block th:if="${goodsNoticeList != null and !goodsNoticeList.empty}" >
+				<div class="mdhtml_box" th:each="goodsNotice, status : ${goodsNoticeList}" th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsNotice.noticeContent))}"></div>
+					</th:block>
+				<!-- 관리자 에디터입력 내용   공지 html -->
 				<!-- 관리자 에디터입력 내용 노출  상단 html -->
-				<div class="mdhtml_box" th:if="${goodsInfo.goodsTopDesc != null  and !goodsInfo.goodsTopDesc.empty}" th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsTopDesc))}">
-				</div>
-				<!-- //관리자 에디터입력 내용 노출 -->
+				<div class="mdhtml_box" th:if="${goodsInfo.goodsTopDesc != null  and !goodsInfo.goodsTopDesc.empty}" th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsTopDesc))}"></div>
+					
 				<!-- 착용컷 노출 -->
-				<div class="view_outfit_box">
+				<div class="view_outfit_box" th:if="${#strings.contains(goodsImgList,'_M1.') 
+													or #strings.contains(goodsImgList,'_M2.')
+													or #strings.contains(goodsImgList,'_M3.')
+													or #strings.contains(goodsImgList,'_M4.')
+													or #strings.contains(goodsImgList,'_M5.')}">
 					<span class="tit_view">OUTFIT VIEW</span>
 					<span class="model_info">(모델정보 : 185cm / 78kg / XL 착용)</span>
 					<div class="view">
-						<img src="/images/pc/thumb/tmp_outfit_desc1.jpg" alt="">
-						<img src="/images/pc/thumb/tmp_outfit_desc2.jpg" alt="">
-						<img src="/images/pc/thumb/tmp_outfit_desc3.jpg" alt="">
+						<th:block th:each="goodsImg, status : ${goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_M1.') 
+																					or #strings.contains(goodsImg.sysImgNm,'_M2.')
+																					or #strings.contains(goodsImg.sysImgNm,'_M3.')
+																					or #strings.contains(goodsImg.sysImgNm,'_M4.')
+																					or #strings.contains(goodsImg.sysImgNm,'_M5.')}">
+						<img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm}" alt="">
+						</th:block>
 					</div>
 				</div>
+				
 				<!-- //착용컷 노출 -->
 				<!-- 상품컷 노출 -->
-				<div class="view_detail_box">
+				<div class="view_detail_box" th:if="${#strings.contains(goodsImgList,'_01.') 
+													or #strings.contains(goodsImgList,'_02.')
+													or #strings.contains(goodsImgList,'_D1.')
+													or #strings.contains(goodsImgList,'_D2.')
+													or #strings.contains(goodsImgList,'_D3.')
+													or #strings.contains(goodsImgList,'_D4.')
+													or #strings.contains(goodsImgList,'_D5.')}">
 					<span class="tit_view">PRODUCT VIEW</span>
 					<div class="view">
-						<img src="/images/pc/thumb/tmp_detail_desc1.jpg" alt="">
-						<img src="/images/pc/thumb/tmp_detail_desc2.jpg" alt="">
+						<th:block th:each="goodsImg, status : ${goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_01.') 
+																					or #strings.contains(goodsImg.sysImgNm,'_02.')
+																					or #strings.contains(goodsImg.sysImgNm,'_D1.')
+																					or #strings.contains(goodsImg.sysImgNm,'_D2.')
+																					or #strings.contains(goodsImg.sysImgNm,'_D3.')
+																					or #strings.contains(goodsImg.sysImgNm,'_D4.')
+																					or #strings.contains(goodsImg.sysImgNm,'_D5.')}">
+						<img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm}" alt="">
+						</th:block>
 					</div>
 				</div>
 				<!-- //상품컷 노출 -->
 				<!-- 원단 노출 -->
-				<div class="view_fabric_box">
+				<div class="view_fabric_box" th:if="${#strings.contains(goodsImgList,'_S1.')}">
 					<span class="tit_view">FABRIC</span>
 					<div class="view">
-						<img src="/images/pc/thumb/tmp_fabric_desc1.jpg" alt="">
+						<th:block th:each="goodsImg, status : ${goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_S1.')}">
+						<img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm}" alt="">
+						</th:block>
 					</div>
 				</div>
 				<!-- //원단 노출 -->
 				<!-- 라벨 노출 -->
-				<div class="view_label_box">
+				<div class="view_label_box" th:if="${#strings.contains(goodsImgList,'_L1.') 
+													or #strings.contains(goodsImgList,'_L2.')}">
 					<span class="tit_view">LABEL INFO</span>
 					<div class="view">
 						<span>
-							<img src="/images/pc/thumb/tmp_label_desc1.jpg" alt="">
-							<img src="/images/pc/thumb/tmp_label_desc2.jpg" alt="">
+							<th:block th:each="goodsImg, status : ${goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_L1.') 
+																					or #strings.contains(goodsImg.sysImgNm,'_L2.')}">
+							<img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm}" alt="">
+							</th:block>
 						</span>
 					</div>
 				</div>
-				<!-- //라벨 노출 -->					
+				<!-- //라벨 노출 -->
+				
+				<div class="view_detail_box" th:if="${not #strings.contains(goodsImgList,'_01.')}">
+					<div class="view">
+						<th:block th:each="goodsImg, status : ${goodsImgList}" >
+							<img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm}" alt="">
+							</th:block>
+					</div>
+				</div>
+				
+					<th:block th:if="${goodsInfo.goodsDesc != null  and !goodsInfo.goodsDesc.empty}" >
+				<!-- 상세 html 이 존재하면  -->
+				<div class="mdhtml_box" th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsDesc))}"></div>
+					</th:block>
+					
+				<!-- 관리자 에디터입력 내용 노출  하다단 html -->
+				<div class="mdhtml_box" th:if="${goodsInfo.goodsDownDesc != null  and !goodsInfo.goodsDownDesc.empty}" th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsDownDesc))}"></div>
+					
 				<!-- 브랜드 노출 -->
 				<div class="brand_box">
 					<p class="name" th:text="${goodsInfo.brandGroupNm}">TBJ 티비제이</p>
@@ -738,114 +674,6 @@
 										</div>
 									</div>
 								</div>
-								<div class="swiper-slide">
-									<div class="item_prod">
-										<div class="item_state">
-											<a href="#none" class="itemLink">
-												<div class="itemPic">
-													<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdClickother1.jpg">
-													<button type="button" class="itemLike">관심상품 추가</button>
-												</div>
-												<p class="itemBrand">BRAND NAME1</p>
-												<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
-												<p class="itemPrice">80,100
-													<span class="itemPrice_original">89,000</span>
-													<span class="itemPercent">10%</span>
-												</p>
-											</a>
-										</div>
-									</div>
-								</div>
-								<div class="swiper-slide">
-									<div class="item_prod">
-										<div class="item_state">
-											<a href="#none" class="itemLink">
-												<div class="itemPic">
-													<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdClickother1.jpg">
-													<button type="button" class="itemLike">관심상품 추가</button>
-												</div>
-												<p class="itemBrand">BRAND NAME1</p>
-												<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
-												<p class="itemPrice">80,100
-													<span class="itemPrice_original">89,000</span>
-													<span class="itemPercent">10%</span>
-												</p>
-											</a>
-										</div>
-									</div>
-								</div>
-								<div class="swiper-slide">
-									<div class="item_prod">
-										<div class="item_state">
-											<a href="#none" class="itemLink">
-												<div class="itemPic">
-													<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdClickother1.jpg">
-													<button type="button" class="itemLike">관심상품 추가</button>
-												</div>
-												<p class="itemBrand">BRAND NAME1</p>
-												<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
-												<p class="itemPrice">80,100
-													<span class="itemPrice_original">89,000</span>
-													<span class="itemPercent">10%</span>
-												</p>
-											</a>
-										</div>
-									</div>
-								</div>
-								<div class="swiper-slide">
-									<div class="item_prod">
-										<div class="item_state">
-											<a href="#none" class="itemLink">
-												<div class="itemPic">
-													<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdClickother1.jpg">
-													<button type="button" class="itemLike">관심상품 추가</button>
-												</div>
-												<p class="itemBrand">BRAND NAME1</p>
-												<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
-												<p class="itemPrice">80,100
-													<span class="itemPrice_original">89,000</span>
-													<span class="itemPercent">10%</span>
-												</p>
-											</a>
-										</div>
-									</div>
-								</div>
-								<div class="swiper-slide">
-									<div class="item_prod">
-										<div class="item_state">
-											<a href="#none" class="itemLink">
-												<div class="itemPic">
-													<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdClickother1.jpg">
-													<button type="button" class="itemLike">관심상품 추가</button>
-												</div>
-												<p class="itemBrand">BRAND NAME1</p>
-												<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
-												<p class="itemPrice">80,100
-													<span class="itemPrice_original">89,000</span>
-													<span class="itemPercent">10%</span>
-												</p>
-											</a>
-										</div>
-									</div>
-								</div>
-								<div class="swiper-slide">
-									<div class="item_prod">
-										<div class="item_state">
-											<a href="#none" class="itemLink">
-												<div class="itemPic">
-													<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdClickother1.jpg">
-													<button type="button" class="itemLike">관심상품 추가</button>
-												</div>
-												<p class="itemBrand">BRAND NAME1</p>
-												<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
-												<p class="itemPrice">80,100
-													<span class="itemPrice_original">89,000</span>
-													<span class="itemPercent">10%</span>
-												</p>
-											</a>
-										</div>
-									</div>
-								</div>
 							</div>
 						</div>
 						<!-- Add Pagination -->
@@ -919,8 +747,6 @@
 										</div>
 									</div>
 								</div>
-								
-								
 							</div>
 						</div>
 						<!-- Add Pagination -->
@@ -979,114 +805,6 @@
 										</div>
 									</div>
 								</div>
-								<div class="swiper-slide">
-									<div class="item_prod">
-										<div class="item_state">
-											<a href="#none" class="itemLink">
-												<div class="itemPic">
-													<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdRelate1.jpg">
-													<button type="button" class="itemLike">관심상품 추가</button>
-												</div>
-												<p class="itemBrand">BRAND NAME1</p>
-												<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
-												<p class="itemPrice">80,100
-													<span class="itemPrice_original">89,000</span>
-													<span class="itemPercent">10%</span>
-												</p>
-											</a>
-										</div>
-									</div>
-								</div>
-								<div class="swiper-slide">
-									<div class="item_prod">
-										<div class="item_state">
-											<a href="#none" class="itemLink">
-												<div class="itemPic">
-													<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdRelate1.jpg">
-													<button type="button" class="itemLike">관심상품 추가</button>
-												</div>
-												<p class="itemBrand">BRAND NAME1</p>
-												<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
-												<p class="itemPrice">80,100
-													<span class="itemPrice_original">89,000</span>
-													<span class="itemPercent">10%</span>
-												</p>
-											</a>
-										</div>
-									</div>
-								</div>
-								<div class="swiper-slide">
-									<div class="item_prod">
-										<div class="item_state">
-											<a href="#none" class="itemLink">
-												<div class="itemPic">
-													<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdRelate1.jpg">
-													<button type="button" class="itemLike">관심상품 추가</button>
-												</div>
-												<p class="itemBrand">BRAND NAME1</p>
-												<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
-												<p class="itemPrice">80,100
-													<span class="itemPrice_original">89,000</span>
-													<span class="itemPercent">10%</span>
-												</p>
-											</a>
-										</div>
-									</div>
-								</div>
-								<div class="swiper-slide">
-									<div class="item_prod">
-										<div class="item_state">
-											<a href="#none" class="itemLink">
-												<div class="itemPic">
-													<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdRelate1.jpg">
-													<button type="button" class="itemLike">관심상품 추가</button>
-												</div>
-												<p class="itemBrand">BRAND NAME1</p>
-												<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
-												<p class="itemPrice">80,100
-													<span class="itemPrice_original">89,000</span>
-													<span class="itemPercent">10%</span>
-												</p>
-											</a>
-										</div>
-									</div>
-								</div>
-								<div class="swiper-slide">
-									<div class="item_prod">
-										<div class="item_state">
-											<a href="#none" class="itemLink">
-												<div class="itemPic">
-													<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdRelate1.jpg">
-													<button type="button" class="itemLike">관심상품 추가</button>
-												</div>
-												<p class="itemBrand">BRAND NAME1</p>
-												<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
-												<p class="itemPrice">80,100
-													<span class="itemPrice_original">89,000</span>
-													<span class="itemPercent">10%</span>
-												</p>
-											</a>
-										</div>
-									</div>
-								</div>
-								<div class="swiper-slide">
-									<div class="item_prod">
-										<div class="item_state">
-											<a href="#none" class="itemLink">
-												<div class="itemPic">
-													<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdRelate1.jpg">
-													<button type="button" class="itemLike">관심상품 추가</button>
-												</div>
-												<p class="itemBrand">BRAND NAME1</p>
-												<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
-												<p class="itemPrice">80,100
-													<span class="itemPrice_original">89,000</span>
-													<span class="itemPercent">10%</span>
-												</p>
-											</a>
-										</div>
-									</div>
-								</div>
 							</div>
 						</div>
 						<!-- Add Pagination -->
@@ -1163,96 +881,6 @@
 										</div>
 									</div>
 								</div>
-								<div class="swiper-slide">
-									<div class="item_prod">
-										<div class="item_state">
-											<a href="#none" class="itemLink">
-												<div class="itemPic">
-													<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdRelate1.jpg">
-													<button type="button" class="itemLike">관심상품 추가</button>
-												</div>
-												<p class="itemBrand">BRAND NAME1</p>
-												<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
-												<p class="itemPrice">80,100
-													<span class="itemPrice_original">89,000</span>
-													<span class="itemPercent">10%</span>
-												</p>
-											</a>
-										</div>
-									</div>
-								</div>
-								<div class="swiper-slide">
-									<div class="item_prod">
-										<div class="item_state">
-											<a href="#none" class="itemLink">
-												<div class="itemPic">
-													<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdRelate1.jpg">
-													<button type="button" class="itemLike">관심상품 추가</button>
-												</div>
-												<p class="itemBrand">BRAND NAME1</p>
-												<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
-												<p class="itemPrice">80,100
-													<span class="itemPrice_original">89,000</span>
-													<span class="itemPercent">10%</span>
-												</p>
-											</a>
-										</div>
-									</div>
-								</div>
-								<div class="swiper-slide">
-									<div class="item_prod">
-										<div class="item_state">
-											<a href="#none" class="itemLink">
-												<div class="itemPic">
-													<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdRelate1.jpg">
-													<button type="button" class="itemLike">관심상품 추가</button>
-												</div>
-												<p class="itemBrand">BRAND NAME1</p>
-												<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
-												<p class="itemPrice">80,100
-													<span class="itemPrice_original">89,000</span>
-													<span class="itemPercent">10%</span>
-												</p>
-											</a>
-										</div>
-									</div>
-								</div>
-								<div class="swiper-slide">
-									<div class="item_prod">
-										<div class="item_state">
-											<a href="#none" class="itemLink">
-												<div class="itemPic">
-													<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdRelate1.jpg">
-													<button type="button" class="itemLike">관심상품 추가</button>
-												</div>
-												<p class="itemBrand">BRAND NAME1</p>
-												<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
-												<p class="itemPrice">80,100
-													<span class="itemPrice_original">89,000</span>
-													<span class="itemPercent">10%</span>
-												</p>
-											</a>
-										</div>
-									</div>
-								</div>
-								<div class="swiper-slide">
-									<div class="item_prod">
-										<div class="item_state">
-											<a href="#none" class="itemLink">
-												<div class="itemPic">
-													<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdRelate1.jpg">
-													<button type="button" class="itemLike">관심상품 추가</button>
-												</div>
-												<p class="itemBrand">BRAND NAME1</p>
-												<div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
-												<p class="itemPrice">80,100
-													<span class="itemPrice_original">89,000</span>
-													<span class="itemPercent">10%</span>
-												</p>
-											</a>
-										</div>
-									</div>
-								</div>
 							</div>
 						</div>
 						<!-- Add Pagination -->

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

@@ -43,7 +43,7 @@
 		<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="pageSize" value ="20"/>
 		<input type="hidden" name="relGoodsCd" th:value ="${goodsInfo.goodsCd}"/>
 			<div class="info_txt">
 				<ul>
@@ -93,7 +93,7 @@
 	
 	let fnGetList = function() {
 		// Initialize a pagination
-		gagaPaging.init('goodsQnaForm', fnGetListCallback, 'pageNav', 10);
+		gagaPaging.init('goodsQnaForm', fnGetListCallback, 'pageNav', 20);
 
 		// Load data
 		gagaPaging.load(1);
@@ -121,7 +121,7 @@
 				}
 				tag += '				</div>\n';
 				tag += '				<div class="data">\n';
-				tag += '					<span class="wr_id">'+ item.custId+'</span>\n';
+				tag += '					<span class="wr_id">'+ item.maskingCustId+'</span>\n';
 				tag += '					<span class="wr_data">' + item.questDt + '</span>\n';
 				tag += '				</div>\n';
 				tag += '			</div>\n';

+ 33 - 18
src/main/webapp/WEB-INF/views/web/mypage/MypagePointFormWeb.html

@@ -86,24 +86,30 @@
 		// select 날짜 생성
 		var date = new Date();
 		var year = date.getFullYear();
-		var month = date.getMonth() + 1;
+		var month = date.getMonth() +1;
 		
 		var oneYearAgo = year -1;
-		var yearMonth = year;
 		var oneYearLater = year +1;
 		
+		if(10 > month){
+			month = 0 + "" + (date.getMonth()+1);
+		}
+		// Select this year month
+		var checkYm = year + "" + month;
+		
 		for(var i = 1;i <= 12; i++){
 			if(i < 10 && i != month){
-				$("#searchDt").append("<li onclick='fnChangeDate(this);' class='selected' value='"+ yearMonth + "" + 0 + i +"'>"+ yearMonth + "년" + " " + i + "월" +"</li>");
+				$("#searchDt").append("<li onclick='fnChangeDate(this);' class='selected' value='"+ year + "" + 0 + i +"'>"+ year + "년" + " " + i + "월" +"</li>");
 			}
 			else if(i < 10 && i == month){
-				$("#searchDt").append("<li onclick='fnChangeDate(this);' class='selected' value='"+ yearMonth + "" + 0 + i +"'>" + yearMonth + "년" + " " + i + "월" +"</li>");
+				$(".select").append("<li class='selected' value='"+ year + "" + 0 + i +"'>" + year + "년" + " " + i + "월" +"</li>");
+				$("#searchDt").append("<li onclick='fnChangeDate(this);' class='selected' value='"+ year + "" + 0 + i +"'>" + year + "년" + " " + i + "월" +"</li>");
 			}
 			else if(i > 9 && i != month){
-				$("#searchDt").append("<li onclick='fnChangeDate(this);' class='selected' value='"+ yearMonth + "" + i +"'>"+ yearMonth + "년" + " " + i + "월" +"</li>");
+				$("#searchDt").append("<li onclick='fnChangeDate(this);' class='selected' value='"+ year + "" + i +"'>"+ year + "년" + " " + i + "월" +"</li>");
 			}
 			else if(i > 9 && i == month){
-				$("#searchDt").append("<li onclick='fnChangeDate(this);' class='selected' value='"+ yearMonth + "" + i +"'>"+ yearMonth + "년" + " " + i + "월" +"</li>");
+				$("#searchDt").append("<li onclick='fnChangeDate(this);' class='selected' value='"+ year + "" + i +"'>"+ year + "년" + " " + i + "월" +"</li>");
 			}
 		}
 		
@@ -112,9 +118,8 @@
 		
 		let url = '/mypage/allpoint/list';		
 		let data = {};
-				
+
 		data.searchDt = $('#searchDt').find('.selected').val();
-		console.log(data);
 
 		var jsonData = JSON.stringify(data);
 		gagajf.ajaxJsonSubmit(url, jsonData, function(result) {
@@ -140,9 +145,13 @@
 		
 		let data = {};
 		
-		data.searchDt = $('#searchDt').find('.selected').val();
-		
-		console.log(data);
+		// 처음 화면 로딩시 이번 달 선택
+		if($('.select').find('.selected').val() == checkYm){
+			data.searchDt = $('.select').find('.selected').val();
+		}else{
+			data.searchDt = $('#searchDt').find('.selected').val();
+		}
+
 		var jsonData = JSON.stringify(data);
 		
 		$.ajax(
@@ -158,9 +167,7 @@
 				}
 		)
 	});
-	
 
-	
 	function PointAllListInfo(result) {
 		
 		let allPointList = result.allPointList;
@@ -197,7 +204,11 @@
 		
 		let data = {};
 		
-		data.searchDt = $('#searchDt').find('.selected').val();
+		if($('.select').find('.selected').val() == checkYm){
+			data.searchDt = $('.select').find('.selected').val();
+		}else{
+			data.searchDt = $('#searchDt').find('.selected').val();
+		}
 		
 		let jsonData = JSON.stringify(data);
 		
@@ -246,7 +257,11 @@
 		
 		let data = {};
 		
-		data.searchDt = $('#searchDt').find('.selected').val();
+		if($('.select').find('.selected').val() == checkYm){
+			data.searchDt = $('.select').find('.selected').val();
+		}else{
+			data.searchDt = $('#searchDt').find('.selected').val();
+		}
 		
 		let jsonData = JSON.stringify(data);
 		
@@ -287,9 +302,9 @@
 		// 마이페이지 location 설정
 		fnSetMypageLocation('STYLE24 포인트', '_PAGE_MYPAGE_POINT');
 		
-		// 전체내역
-		$("#SearchFullHistory").trigger('click');
-		
+		// 전체내역 표시
+ 		$("#SearchFullHistory").trigger('click');
+
 		// 셀렉트박스 활성화
 		$('.select_custom.type1').each(function(index) {
 			var selecter01 = new sCombo($(this));

+ 125 - 0
src/main/webapp/ux/style24_link.js

@@ -47,6 +47,8 @@ const _PAGE_MYPAGE_DELIVERY_ADDR = _frontUrl + "/mypage/delivery/addr/form";	//
 const _PAGE_MYPAGE_WISHLIST = _frontUrl + "/mypage/wish/list/form";				// 마이페이지 > 위시리스트
 const _PAGE_MYPAGE_CUSTOMER = _frontUrl + "/mypage/customer/form";				// 마이페이지 > 내정보 관리
 const _PAGE_MYPAGE_SECEDE = _frontUrl + "/mypage/customer/secede/form";			// 마이페이지 > 회원탈퇴
+const _PAGE_WISHLIST_PUT = _frontUrl + "/mypage/wish/list/put";					// 위시리스트 담기
+const _PAGE_WISHLIST_DEL = _frontUrl + "/mypage/wish/list/delete";				// 위시리스트 삭제
 
 //== 검색 ==/
 
@@ -493,4 +495,127 @@ function cfGoodsDelivery(goodsCd) {
 	cfOpenFullLayer(_PAGE_GOODS_DELIVERY_LAYER + goodsCd, 'layer_goods_delivery');
 }
 
+/**
+ * @type   : function
+ * @access : public
+ * @desc   : 로그인 확인
+ * <pre>
+ *		cfCheckLogin('callbackFn');
+ * </pre>
+ */
+function cfCheckLogin() {
+	var result = '';
+	$.ajax({
+		type: 'get'
+		, async: false
+		, url: '/common/login/check'
+		, success: function (data) {
+			result = data;
+		}
+	});
+
+	return result;
+}
+
+/**
+ * @type   : function
+ * @access : public
+ * @desc   : 위시리스트 담기/삭제
+ * <pre>
+ *	 cfnPutWishList(OBJ);
+ * </pre>
+ * @param  : goodsCd - 상품코드. 필수
+ * @param  : planSq - 기획전번호. 옵션
+ * @date   : 2021/03/08
+ * @author : yujung
+ */
+function cfnPutWishList(a) {
+
+	if (!cfCheckLogin()) {
+		cfnGoToPage(_PAGE_LOGIN);
+		return false;
+	}
+
+	var goodsCd = $(a).attr("goodsCd");
+	var ithrCd = $(a).attr("ithrCd");
+	var contentsLoc = $(a).attr("contentsLoc");
+	var planDtlSq = $(a).attr("planDtlSq");
+	var flag = 'REG';
+	if ($(a).hasClass('active')) {
+		flag = 'DEL'
+	}
+
+	if (gagajf.isNull(goodsCd)) return;
+
+	var data = [];
+
+	var params = new Object();
+	params.goodsCd = goodsCd;
+
+	if (!gagajf.isNull(ithrCd)) {
+		params.ithrCd = ithrCd;
+	}
+	if (!gagajf.isNull(contentsLoc)) {
+		params.contentsLoc = contentsLoc;
+	}
+	if (!gagajf.isNull(planDtlSq)) {
+		params.planDtlSq = planDtlSq;
+	}
+	data.push(params);
+
+	var jsonData = JSON.stringify(data);
+
+	if (flag == 'REG') {
+		gagajf.ajaxJsonSubmit(_PAGE_WISHLIST_PUT, jsonData, function (result) {
+			var Msg = '';
+			if (result.status == "200") {
+				$(a).addClass('active');
+				if (_frontGb == "M") {
+					Msg = '위시리스트에 담겼습니다.';
+
+				} else {
+
+				//	mcxDialog.confirm("위시리스트로 이동하시겠습니까?", {
+				//		cancelBtnText: "아니요",	//취소 또는 닫기 버튼명
+				//		sureBtnText: "예",		//처리문 버튼명
+				//		sureBtnClick: function () {
+				//			cfnGoToPage(_PAGE_WISHLIST);
+				//		}
+				//	});
+				}
+			} else if (result.status == "중복") {
+				Msg = '이미 등록 되어있습니다.';
+			} else {
+				//Msg = '오류로 인해 처리되지 않았습니다.';
+			}
 
+			// 메시지 처리
+			if (!gagajf.isNull(Msg)) {
+				if (_frontGb == "M") {
+			//		mcxDialog.toast(Msg);
+				} else {
+			//		mcxDialog.alertC(Msg);
+				}
+			}
+		});
+	} else {
+		gagajf.ajaxJsonSubmit(_PAGE_WISHLIST_DEL, jsonData, function (result) {
+			var Msg = '';
+			if (result.status == "200") {
+				Msg = '삭제 되었습니다.';
+				$(a).removeClass('active');
+			} else {
+				Msg = '오류로 인해 처리되지 않았습니다.';
+			}
+
+			// 메시지 처리
+			if (!gagajf.isNull(Msg)) {
+				if (_frontGb == "M") {
+			//		mcxDialog.toast(Msg);
+				} else {
+			//		mcxDialog.alertC(Msg);
+				}
+			}
+		});
+	}
+}