Browse Source

기획전 내 쿠폰 상세 재 수정

bin2107 4 years ago
parent
commit
a1dd27c858

+ 108 - 23
src/main/java/com/style24/persistence/mybatis/shop/TsfCoupon.xml

@@ -1321,29 +1321,114 @@
 
 	<select id="getPlanCouponDetailInfo" parameterType="Coupon" resultType="Coupon">
 		/*TsfCoupon.getPlanCouponDetailInfo*/
-		SELECT C.CPN_ID                          /*쿠폰ID*/
-		     , C.CPN_NM                           /*쿠폰명*/
-		     , C.BUY_LIMIT_AMT                    /*구매제한금액*/
-		     , C.MAX_DC_AMT                       /*최대할인금액*/
-		     , CASE WHEN #{frontGb} = 'P' THEN C.DC_PVAL
-		    		WHEN #{frontGb} = 'M' THEN C.DC_MVAL
-		    		WHEN #{frontGb} = 'A' THEN C.DC_AVAL  END             AS DC_VAL          /*할인값*/
-		     , CASE WHEN C.DC_WAY = 'G240_10' THEN '원'
-		       ELSE '%'  END             AS DC_WAY          /*할인방법*/
-		     , CONCAT(CASE WHEN C.BUY_LIMIT_AMT = 0 THEN ''
-		                  ELSE CONCAT(FORMAT(C.BUY_LIMIT_AMT , 0),'원 이상 구매 시 ') END
-		     , CASE WHEN C.MAX_DC_AMT = 0 THEN ''
-		       ELSE CONCAT('최대 ',FORMAT(C.MAX_DC_AMT , 0),'원 할인') END)     AS USE_CONDITION   /*사용조건*/
-		     , CASE WHEN C.CUST_PUB_LIMIT_QTY = 0 THEN '' ELSE CONCAT('1인당 최대',C.CUST_PUB_LIMIT_QTY,'매')  END   AS ISSUE_CONDITION /*발급조건*/
-		     , C.AVAIL_STDT                      /*유효시작일자*/
-		     , C.AVAIL_EDDT                      /*유효종료일자*/
-		FROM   (
-		   SELECT *
-		   FROM TB_COUPON
-		   WHERE 1=1
-		   AND   CPN_STAT = 'G232_11' /*진행중인쿠폰*/
-		   AND   CPN_ID   = #{cpnId}
-		) C
+		SELECT Z.CPN_ID                                /*쿠폰ID*/
+		     , Z.CPN_NM                                /*쿠폰명*/
+		     , Z.BUY_LIMIT_AMT                         /*구매제한금액*/
+		     , Z.MAX_DC_AMT                            /*최대할인금액*/
+		     , Z.DC_VAL                                /*할인값*/
+		     , Z.DC_WAY                                /*할인방법*/
+		     , Z.USE_CONDITION                         /*사용조건*/
+		     , Z.ISSUE_CONDITION                       /*발급조건*/
+		     , Z.AVAIL_STDT                            /*유효시작일자*/
+		     , Z.AVAIL_EDDT                            /*유효종료일자*/
+		     , GROUP_CONCAT(Z.TGT_CONDITION) AS TGT_CONDITION
+		FROM
+		    (
+		        WITH TAB_COUPON AS (
+		            SELECT  C.CPN_ID                          /*쿠폰ID*/
+		                 , C.CPN_NM                           /*쿠폰명*/
+		                 , C.BUY_LIMIT_AMT                    /*구매제한금액*/
+		                 , C.MAX_DC_AMT                       /*최대할인금액*/
+		                 , CASE WHEN #{frontGb} = 'P' THEN C.DC_PVAL
+		                        WHEN #{frontGb} = 'M' THEN C.DC_MVAL
+		                        WHEN #{frontGb} = 'A' THEN C.DC_AVAL
+		                END             AS DC_VAL          /*할인값*/
+		                 , CASE WHEN C.DC_WAY = 'G240_10' THEN '원'
+		                        ELSE '%'
+		                END             AS DC_WAY          /*할인방법*/
+		                 , CONCAT(CASE WHEN C.BUY_LIMIT_AMT = 0 THEN ''
+		                               ELSE CONCAT(FORMAT(C.BUY_LIMIT_AMT , 0),'원 이상 구매 시 ')
+		                              END
+		                ,CASE WHEN C.MAX_DC_AMT = 0 THEN ''
+		                      ELSE CONCAT('최대 ',FORMAT(C.MAX_DC_AMT , 0),'원 할인')
+		                              END)     AS USE_CONDITION   /*사용조건*/
+		                 , CASE WHEN C.CUST_PUB_LIMIT_QTY = 0 THEN ''
+		                        ELSE CONCAT('1인당 최대',C.CUST_PUB_LIMIT_QTY,'매')
+		                END             AS ISSUE_CONDITION /*발급조건*/
+		                 , C.AVAIL_STDT                      /*유효시작일자*/
+		                 , C.AVAIL_EDDT                      /*유효종료일자*/
+		            FROM   TB_COUPON C
+		            WHERE  1=1
+		              AND    C.CPN_STAT = 'G232_11' /*진행중인쿠폰*/
+		              AND    C.CPN_ID   = #{cpnId}
+		        )
+		           , TAB_COUPON_REFVAL1 AS (
+		            SELECT CR.CPN_ID
+		                 , CR.CPN_TARGET
+		                 , CASE WHEN CR.CPN_TARGET = 'G260_10' /*상품*/ THEN (SELECT GOODS_NM FROM TB_GOODS WHERE GOODS_CD = CR.REF_VAL AND GOODS_STAT = 'G008_90')
+		                        WHEN CR.CPN_TARGET = 'G260_11' /*카테고리*/ THEN
+		                            CASE WHEN IFNULL((SELECT COUNT(1) FROM TB_CATE_4SRCH WHERE CATE1_NO = CR.REF_VAL),0) > 0 THEN (SELECT CATE1_NM FROM TB_CATE_4SRCH WHERE CATE1_NO = CR.REF_VAL LIMIT 1)
+		                                WHEN IFNULL((SELECT COUNT(1) FROM TB_CATE_4SRCH WHERE CATE2_NO = CR.REF_VAL),0) > 0 THEN (SELECT CONCAT(CATE1_NM,' > ',CATE2_NM) FROM TB_CATE_4SRCH WHERE CATE2_NO = CR.REF_VAL LIMIT 1)
+		                                WHEN IFNULL((SELECT COUNT(1) FROM TB_CATE_4SRCH WHERE CATE3_NO = CR.REF_VAL),0) > 0 THEN (SELECT CONCAT(CATE1_NM,' > ',CATE2_NM) FROM TB_CATE_4SRCH WHERE CATE3_NO = CR.REF_VAL LIMIT 1)
+		                                WHEN IFNULL((SELECT COUNT(1) FROM TB_CATE_4SRCH WHERE CATE4_NO = CR.REF_VAL),0) > 0 THEN (SELECT CONCAT(CATE1_NM,' > ',CATE2_NM) FROM TB_CATE_4SRCH WHERE CATE4_NO = CR.REF_VAL LIMIT 1)
+		                               END
+		                        WHEN CR.CPN_TARGET = 'G260_12' /*브랜드*/ THEN (SELECT BRAND_KNM FROM TB_BRAND WHERE BRAND_CD = CR.REF_VAL AND USE_YN = 'Y')
+		                        WHEN CR.CPN_TARGET = 'G260_13' /*업체*/ THEN (SELECT SUPPLY_COMP_NM FROM TB_SUPPLY_COMPANY WHERE SUPPLY_COMP_CD = CR.REF_VAL AND USE_YN = 'Y' AND SUPPLY_STAT = 'G010_30')
+		                END AS REF_VAL
+		                 , RANK() OVER(PARTITION BY CR.CPN_ID, CR.CPN_TARGET ORDER BY CR.REF_VAL) AS RK
+		            FROM     TB_COUPON_REFVAL CR
+		            WHERE    CR.CPN_TARGET != 'G260_14' /*제외상품아닌넘*/
+		              AND      CR.CPN_ID = #{cpnId}
+		        )
+		           , TAB_COUPON_REFVAL2 AS (
+		            SELECT CPN_ID
+		                 , CPN_TARGET
+		                 , GROUP_CONCAT(REF_VAL ORDER BY RK ASC SEPARATOR '/' ) AS REF_VAL
+		                 , (SELECT COUNT(*)
+		                    FROM   TAB_COUPON_REFVAL1
+		                    WHERE  CPN_ID = CR.CPN_ID
+		                      AND    CPN_TARGET = CR.CPN_TARGET)                  AS CNT
+		            FROM   TAB_COUPON_REFVAL1 CR
+		            WHERE  1 = 1
+		              AND    (
+		                    (CPN_TARGET != 'G260_12' AND RK = 1) /*브랜드 외는 1개만 노출*/
+		                    OR
+		                    (CPN_TARGET = 'G260_12' AND RK <![CDATA[<=]]> 2) /*브랜드만 2개 노출*/
+		                )
+		            GROUP  BY CPN_ID, CPN_TARGET
+		        )
+		        SELECT C.CPN_ID                                /*쿠폰ID*/
+		             , C.CPN_NM                                /*쿠폰명*/
+		             , C.BUY_LIMIT_AMT                         /*구매제한금액*/
+		             , C.MAX_DC_AMT                            /*최대할인금액*/
+		             , C.DC_VAL                                /*할인값*/
+		             , C.DC_WAY                                /*할인방법*/
+		             , C.USE_CONDITION                         /*사용조건*/
+		             , C.ISSUE_CONDITION                       /*발급조건*/
+		             , C.AVAIL_STDT                            /*유효시작일자*/
+		             , C.AVAIL_EDDT                            /*유효종료일자*/
+		             , CONCAT(CR.REF_VAL,CASE WHEN CR.CPN_TARGET = 'G260_10' AND CR.CNT > 1 THEN ' 외'
+		                                      WHEN CR.CPN_TARGET = 'G260_11' AND CR.CNT > 1 THEN ' 외'
+		                                      WHEN CR.CPN_TARGET = 'G260_12' AND CR.CNT > 2 THEN ' 외'
+		                                      WHEN CR.CPN_TARGET = 'G260_13' AND CR.CNT > 1 THEN ' 외'
+		                                      ELSE ''
+		            END) AS TGT_CONDITION /*대상조건*/
+		        FROM   TAB_COUPON C LEFT OUTER JOIN TAB_COUPON_REFVAL2 CR
+		                                           ON  C.CPN_ID = CR.CPN_ID
+		        WHERE C.CPN_ID = #{cpnId}
+		        ORDER  BY C.AVAIL_EDDT
+		    )Z
+		GROUP BY  Z.CPN_ID                                /*쿠폰ID*/
+		        , Z.CPN_NM                                /*쿠폰명*/
+		        , Z.BUY_LIMIT_AMT                         /*구매제한금액*/
+		        , Z.MAX_DC_AMT                            /*최대할인금액*/
+		        , Z.DC_VAL                                /*할인값*/
+		        , Z.DC_WAY                                /*할인방법*/
+		        , Z.USE_CONDITION                         /*사용조건*/
+		        , Z.ISSUE_CONDITION                       /*발급조건*/
+		        , Z.AVAIL_STDT                            /*유효시작일자*/
+		        , Z.AVAIL_EDDT                            /*유효종료일자*/
+		ORDER BY CPN_ID LIMIT 1
 	</select>
 	
 </mapper>

+ 3 - 0
src/main/webapp/WEB-INF/views/web/common/fragments/GnbWeb.html

@@ -251,6 +251,7 @@
 							} else if(item.contentsType == 'O'){
 								let outletCate = fnGetOutletCategory(item.gtabNm);
 								$('#divGnbTab').append(outletCate);
+								$('#ulGnbTab').append(outletCate);
 								// $('#divGnbTab').append('<li><a href="' + item.linkUrl + '">' + item.gtabNm + '</a></li>');
 								// $('#ulGnbTab').append('<li><a href="' + item.linkUrl + '">' + item.gtabNm + '</a></li>');
 								fnGetOutletLeafCategory(outletCate);
@@ -545,8 +546,10 @@
 			if (categoryWidth > 994 ){
 				bdList_index[i].style.display="none";
 				mrList_index[i].style.display="block";
+				return false;
 			}else if(categoryWidth < 993 ){
 				$('.more_category').css('display', 'none');
+				return false;
 			}
 			categoryWidth = $('#divGnbTab').outerWidth();
 		}