瀏覽代碼

Merge branch 'master' of http://112.172.147.34:4936/style24/style24.doc

swkim 5 年之前
父節點
當前提交
6c47fe5fff

+ 9 - 3
산출물/3.설계/05.DB-Object/06.DDL/table.sql

@@ -435,6 +435,11 @@ CREATE TABLE TB_BRAND
 COMMENT '브랜드코드. 신규 브랜드 등록에 의한 발생'
 ;
 
+CREATE INDEX IX_BRAND_01
+  ON TB_BRAND (
+    BRAND_GROUP_NO
+  );
+
 INSERT INTO tb_brand (BRAND_CD, BRAND_ENM, BRAND_KNM, DISP_NM_LANG, BRAND_GRP_NM, SUPPLY_COMP_CD, DISTRIBUTION_GB, SELF_YN, ERP_BRAND_CD, DELV_FEE_CD, MIN_ORD_AMT, DELV_FEE, DELV_LOC_CD, SELL_FEE_RATE, PNT_PRATE10, PNT_MRATE10, PNT_PRATE20, PNT_MRATE20, LOGO_FILE_NM, RGB_CD, DISP_ORD, USE_YN, BRAND_NO, BRAND_GROUP_NO, REG_NO, REG_DT, UPD_NO, UPD_DT) VALUES ('E0001', 'NIKE', '나이키', 'EN', 'NIKE', null, 'G065_20', 'N', null, null, 0, 0, null, 0, 0, 0, 0, 0, null, null, 99, 'Y', 117, 117, 2, '2006-10-18 16:47:26', 2, '2018-10-04 17:33:52');
 INSERT INTO tb_brand (BRAND_CD, BRAND_ENM, BRAND_KNM, DISP_NM_LANG, BRAND_GRP_NM, SUPPLY_COMP_CD, DISTRIBUTION_GB, SELF_YN, ERP_BRAND_CD, DELV_FEE_CD, MIN_ORD_AMT, DELV_FEE, DELV_LOC_CD, SELL_FEE_RATE, PNT_PRATE10, PNT_MRATE10, PNT_PRATE20, PNT_MRATE20, LOGO_FILE_NM, RGB_CD, DISP_ORD, USE_YN, BRAND_NO, BRAND_GROUP_NO, REG_NO, REG_DT, UPD_NO, UPD_DT) VALUES ('E0002', 'GEIGER', '가이거', 'EN', '가이거(GEIGER)', null, 'G065_20', 'N', null, null, 0, 0, null, 0, 0, 0, 0, 0, null, null, 99, 'Y', 178, 178, 2, '2006-11-06 15:28:23', 2, '2019-05-28 14:44:42');
 INSERT INTO tb_brand (BRAND_CD, BRAND_ENM, BRAND_KNM, DISP_NM_LANG, BRAND_GRP_NM, SUPPLY_COMP_CD, DISTRIBUTION_GB, SELF_YN, ERP_BRAND_CD, DELV_FEE_CD, MIN_ORD_AMT, DELV_FEE, DELV_LOC_CD, SELL_FEE_RATE, PNT_PRATE10, PNT_MRATE10, PNT_PRATE20, PNT_MRATE20, LOGO_FILE_NM, RGB_CD, DISP_ORD, USE_YN, BRAND_NO, BRAND_GROUP_NO, REG_NO, REG_DT, UPD_NO, UPD_DT) VALUES ('E0003', 'SEIKO', '세이코', 'EN', 'SEIKO', null, 'G065_20', 'N', null, null, 0, 0, null, 0, 0, 0, 0, 0, null, null, 99, 'Y', 183, 183, 2, '2006-11-06 15:31:20', 2, '2017-03-03 09:23:18');
@@ -8790,8 +8795,8 @@ ALTER TABLE TB_GOODS_PRICE_RES
 DROP TABLE IF EXISTS TB_GOODS_BENEFIT RESTRICT;
 CREATE TABLE TB_GOODS_BENEFIT (
   GOODS_CD             VARCHAR(20)  NOT NULL COMMENT '상품코드', -- 상품코드
-  IS_COUPON            CHAR(1)      NOT NULL DEFAULT 'N' COMMENT '상품쿠폰존재여부', -- 상품쿠폰존재여부
-  IS_FREEGIFT          CHAR(1)      NOT NULL DEFAULT 'N' COMMENT '사은품존재여부', -- 사은품존재여부
+  CPN_YN               CHAR(1)      NOT NULL DEFAULT 'N' COMMENT '상품쿠폰존재여부', -- 상품쿠폰존재여부
+  FREEGIFT_YN          CHAR(1)      NOT NULL DEFAULT 'N' COMMENT '사은품존재여부', -- 사은품존재여부
   REG_DT               TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '등록일시', -- 등록일시
   UPD_DT               TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '수정일시' -- 수정일시
 )
@@ -13543,4 +13548,5 @@ CREATE TABLE TB_LIMITED_TIME_COUPON (
   	UPD_DT 			TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '수정일시',
   	PRIMARY KEY (LIMIT_CPN_ID)
 )
-COMMENT '선착순쿠폰. 선착순쿠폰 등록에 의한 발생';
+COMMENT '선착순쿠폰. 선착순쿠폰 등록에 의한 발생';
+

二進制
산출물/3.설계/ST24_TSIT-D202-프로그램목록(V2.6)-20210326.xlsx


二進制
산출물/3.설계/ST24_TSIT-D202-프로그램목록(V2.7)-20210402.xlsx


+ 426 - 0
산출물/4.구축/데이터처리/상품리스트_쿼리문.sql

@@ -0,0 +1,426 @@
+-- 브랜드 *
+-- 사이즈 *
+-- 가격 *
+-- 할인율 *
+-- 연령 *
+-- 시즌 *
+-- 컬러 *
+-- 혜택 
+
+-- 필터-브랜드 (getFilterBrandList)
+SELECT BG.BRAND_GROUP_NO                   /*브랜드그룹번호*/
+     , CASE WHEN BG.DISP_NM_LANG = 'EN' THEN
+                BG.BRAND_GROUP_ENM
+            ELSE
+                BG.BRAND_GROUP_KNM
+       END               AS BRAND_GROUP_NM /*브랜드그룹명*/
+FROM   TB_BRAND_GROUP BG
+WHERE  BRAND_GROUP_NO IN (SELECT B.BRAND_GROUP_NO
+                          FROM   TB_CATE_4SRCH C4
+                               , TB_CATE_GOODS CG
+                               , TB_GOODS G
+                               , TB_GOODS_STOCK GS
+                               , TB_BRAND B
+                               , TB_SITE_BRAND SB
+                          WHERE  C4.LEAF_CATE_NO = CG.CATE_NO
+                          <choose>
+                              <when test="brandGroupNo != null and brandGroupNo != ''">
+                          AND    CG.BRAND_GROUP_NO = #{brandGroupNo}
+                              </when>
+                              <otherwise>
+                          AND    CG.BRAND_GROUP_NO = 0 /*브랜드메인에서 접근한 것이 아니면*/
+                              </otherwise>
+                          </choose>
+                          AND    CG.GOODS_CD = G.GOODS_CD
+                          AND    G.GOODS_CD = GS.GOODS_CD
+                          AND    G.BRAND_CD = B.BRAND_CD
+                          AND    B.BRAND_CD = SB.BRAND_CD
+                          AND    C4.SITE_CD = #{siteCd}
+                          AND    C4.CATE_GB = #{cateGb}
+                          AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+                          AND    C4.CATE1_NO = #{cate1No}
+                          <if test="cate2No != null and cate2No != ''">
+                          AND    C4.CATE2_NO = #{cate2No}
+                          </if>
+                          <if test="cate3No != null and cate3No != ''">
+                          AND    C4.CATE3_NO = #{cate3No}
+                          </if>
+                          <if test="cate4No != null and cate4No != ''">
+                          AND    C4.CATE4_NO = #{cate4No}
+                          </if>
+                          <if test="cate5No != null and cate5No != ''">
+                          AND    C4.CATE5_NO = #{cate5No}
+                          </if>
+                          AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
+                          AND    G.SELF_MALL_YN = 'Y'   /*몰노출상품*/
+                          AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT   /*판매기간*/
+                          AND    GS.STOCK_QTY <![CDATA[>]]> 0 /*재고있는상품*/
+                          AND    SB.SITE_CD = #{siteCd}
+                          AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+                          AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
+                         )
+WHERE  BG.USE_YN = 'Y' /*사용하는 브랜드그룹*/
+ORDER  BY 2
+;
+
+-- 필터 - 사이즈 (getFilterSizeList)
+SELECT DISTINCT
+       I.SIZE_GB /*사이즈구분(T:상의, B:하의, S:신발)*/
+     , S.OPT_CD2 /*옵션코드2*/
+FROM   TB_CATE_4SRCH C4
+     , TB_CATE_GOODS CG
+     , TB_GOODS G
+     , TB_ITEMKIND I
+     , VW_STOCK S
+     , TB_BRAND B
+     , TB_SITE_BRAND SB
+WHERE  C4.LEAF_CATE_NO = CG.CATE_NO
+<choose>
+    <when test="brandGroupNo != null and brandGroupNo != ''">
+AND    CG.BRAND_GROUP_NO = #{brandGroupNo}
+    </when>
+    <otherwise>
+AND    CG.BRAND_GROUP_NO = 0 /*브랜드메인에서 접근한 것이 아니면*/
+    </otherwise>
+</choose>
+AND    CG.GOODS_CD = G.GOODS_CD
+AND    G.ITEMKIND_CD = I.ITEMKIND_CD
+AND    G.GOODS_CD = S.GOODS_CD
+AND    G.BRAND_CD = B.BRAND_CD
+AND    B.BRAND_CD = SB.BRAND_CD
+AND    C4.SITE_CD = #{siteCd}
+AND    C4.CATE_GB = #{cateGb}
+AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+AND    C4.CATE1_NO = #{cate1No}
+<if test="cate2No != null and cate2No != ''">
+AND    C4.CATE2_NO = #{cate2No}
+</if>
+<if test="cate3No != null and cate3No != ''">
+AND    C4.CATE3_NO = #{cate3No}
+</if>
+<if test="cate4No != null and cate4No != ''">
+AND    C4.CATE4_NO = #{cate4No}
+</if>
+<if test="cate5No != null and cate5No != ''">
+AND    C4.CATE5_NO = #{cate5No}
+</if>
+AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
+AND    G.SELF_MALL_YN = 'Y'   /*몰노출상품*/
+AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT   /*판매기간*/
+AND    I.SIZE_GB IS NOT NULL
+AND    S.CURR_STOCK_QTY - S.BASE_STOCK_QTY <![CDATA[>]]> 0 /*재고있는옵션*/
+AND    S.SOLDOUT_YN = 'N' /*품절이 아닌 옵션*/
+AND    S.DISP_YN = 'Y' /*노출하는 옵션*/
+AND    LENGTH(S.OPT_CD2) > 0
+AND    SB.SITE_CD = #{siteCd}
+AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
+ORDER  BY CASE WHEN I.SIZE_GB = 'T' THEN 1
+               WHEN I.SIZE_GB = 'B' THEN 2
+               WHEN I.SIZE_GB = 'S' THEN 3
+               ELSE 4
+          END, S.OPT_CD2
+;
+
+-- 필터-가격 (getFilterPriceList)
+SELECT FLOOR(MIN_CURR_PRICE / 1000) * 1000                   AS PRICE1
+     , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 1) / 1000) * 1000 AS PRICE2
+     , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 2) / 1000) * 1000 AS PRICE3
+     , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 3) / 1000) * 1000 AS PRICE4
+     , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 4) / 1000) * 1000 AS PRICE5
+     , FLOOR(MAX_CURR_PRICE / 1000) * 1000                   AS PRICE6
+FROM   (
+        SELECT MIN(CURR_PRICE) AS MIN_CURR_PRICE                    /*최소현재판매가*/
+             , MAX(CURR_PRICE) AS MAX_CURR_PRICE                    /*최대현재판매가*/
+             , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
+        FROM   (
+                SELECT FN_GET_BENEFIT_PRICE(#{frontGb},G.GOODS_CD,G.CURR_PRICE,#{custGb}) AS CURR_PRICE /*현재판매가*/
+                FROM   TB_CATE_4SRCH C4
+                     , TB_CATE_GOODS CG
+                     , TB_GOODS G
+                     , TB_GOODS_STOCK GS
+                     , TB_BRAND B
+                     , TB_SITE_BRAND SB
+                WHERE  C4.LEAF_CATE_NO = CG.CATE_NO
+                <choose>
+                    <when test="brandGroupNo != null and brandGroupNo != ''">
+                AND    CG.BRAND_GROUP_NO = #{brandGroupNo}
+                    </when>
+                    <otherwise>
+                AND    CG.BRAND_GROUP_NO = 0 /*브랜드메인에서 접근한 것이 아니면*/
+                    </otherwise>
+                </choose>
+                AND    CG.GOODS_CD = G.GOODS_CD
+                AND    CG.GOODS_CD = GS.GOODS_CD
+                AND    G.BRAND_CD = B.BRAND_CD
+                AND    B.BRAND_CD = SB.BRAND_CD
+                AND    C4.SITE_CD = #{siteCd}
+                AND    C4.CATE_GB = #{cateGb}
+                AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+                AND    C4.CATE1_NO = #{cate1No}
+                <if test="cate2No != null and cate2No != ''">
+                AND    C4.CATE2_NO = #{cate2No}
+                </if>
+                <if test="cate3No != null and cate3No != ''">
+                AND    C4.CATE3_NO = #{cate3No}
+                </if>
+                <if test="cate4No != null and cate4No != ''">
+                AND    C4.CATE4_NO = #{cate4No}
+                </if>
+                <if test="cate5No != null and cate5No != ''">
+                AND    C4.CATE5_NO = #{cate5No}
+                </if>
+                AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
+                AND    G.SELF_MALL_YN = 'Y'   /*몰노출상품*/
+                AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT   /*판매기간*/
+                AND    GS.STOCK_QTY <![CDATA[>]]> 0 /*재고있는상품*/
+                AND    SB.SITE_CD = #{siteCd}
+                AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+                AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
+               ) Z
+       ) Z
+;
+
+-- 필터-연령대 (getFilterAgesList)
+SELECT CD    AS AGES_CD /*연령대코드*/
+     , CD_NM AS AGES_NM /*연령대명*/
+FROM   TB_COMMON_CODE
+WHERE  CD_GB = 'G023'
+AND    CD IN (SELECT G.AGE_GRP_CD
+              FROM   TB_CATE_4SRCH C4
+                   , TB_CATE_GOODS CG
+                   , TB_GOODS G
+                   , TB_GOODS_STOCK GS
+                   , TB_BRAND B
+                   , TB_SITE_BRAND SB
+              WHERE  C4.LEAF_CATE_NO = CG.CATE_NO
+              <choose>
+                  <when test="brandGroupNo != null and brandGroupNo != ''">
+              AND    CG.BRAND_GROUP_NO = #{brandGroupNo}
+                  </when>
+                  <otherwise>
+              AND    CG.BRAND_GROUP_NO = 0 /*브랜드메인에서 접근한 것이 아니면*/
+                  </otherwise>
+              </choose>
+              AND    CG.GOODS_CD = G.GOODS_CD
+              AND    CG.GOODS_CD = GS.GOODS_CD
+              AND    G.BRAND_CD = B.BRAND_CD
+              AND    B.BRAND_CD = SB.BRAND_CD
+              AND    C4.SITE_CD = #{siteCd}
+              AND    C4.CATE_GB = #{cateGb}
+              AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+              AND    C4.CATE1_NO = #{cate1No}
+              <if test="cate2No != null and cate2No != ''">
+              AND    C4.CATE2_NO = #{cate2No}
+              </if>
+              <if test="cate3No != null and cate3No != ''">
+              AND    C4.CATE3_NO = #{cate3No}
+              </if>
+              <if test="cate4No != null and cate4No != ''">
+              AND    C4.CATE4_NO = #{cate4No}
+              </if>
+              <if test="cate5No != null and cate5No != ''">
+              AND    C4.CATE5_NO = #{cate5No}
+              </if>
+              AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
+              AND    G.SELF_MALL_YN = 'Y'   /*몰노출상품*/
+              AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT   /*판매기간*/
+              AND    GS.STOCK_QTY <![CDATA[>]]> 0 /*재고있는상품*/
+              AND    SB.SITE_CD = #{siteCd}
+              AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+              AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
+             )
+AND    USE_YN = 'Y'
+ORDER  BY DISP_ORD
+;
+
+-- 필터-시즌 (getFilterSeasonList)
+SELECT CD    AS SEASON_CD /*시즌코드*/
+     , CD_NM AS SEASON_NM /*시즌명*/
+FROM   TB_COMMON_CODE
+WHERE  CD_GB = 'G006'
+AND    CD IN (SELECT G.SEASON_CD
+              FROM   TB_CATE_4SRCH C4
+                   , TB_CATE_GOODS CG
+                   , TB_GOODS G
+                   , TB_GOODS_STOCK GS
+                   , TB_BRAND B
+                   , TB_SITE_BRAND SB
+              WHERE  C4.LEAF_CATE_NO = CG.CATE_NO
+              <choose>
+                  <when test="brandGroupNo != null and brandGroupNo != ''">
+              AND    CG.BRAND_GROUP_NO = #{brandGroupNo}
+                  </when>
+                  <otherwise>
+              AND    CG.BRAND_GROUP_NO = 0 /*브랜드메인에서 접근한 것이 아니면*/
+                  </otherwise>
+              </choose>
+              AND    CG.GOODS_CD = G.GOODS_CD
+              AND    CG.GOODS_CD = GS.GOODS_CD
+              AND    G.BRAND_CD = B.BRAND_CD
+              AND    B.BRAND_CD = SB.BRAND_CD
+              AND    C4.SITE_CD = #{siteCd}
+              AND    C4.CATE_GB = #{cateGb}
+              AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+              AND    C4.CATE1_NO = #{cate1No}
+              <if test="cate2No != null and cate2No != ''">
+              AND    C4.CATE2_NO = #{cate2No}
+              </if>
+              <if test="cate3No != null and cate3No != ''">
+              AND    C4.CATE3_NO = #{cate3No}
+              </if>
+              <if test="cate4No != null and cate4No != ''">
+              AND    C4.CATE4_NO = #{cate4No}
+              </if>
+              <if test="cate5No != null and cate5No != ''">
+              AND    C4.CATE5_NO = #{cate5No}
+              </if>
+              AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
+              AND    G.SELF_MALL_YN = 'Y'   /*몰노출상품*/
+              AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT   /*판매기간*/
+              AND    GS.STOCK_QTY <![CDATA[>]]> 0 /*재고있는상품*/
+              AND    SB.SITE_CD = #{siteCd}
+              AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+              AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
+             )
+AND    USE_YN = 'Y'
+ORDER  BY DISP_ORD
+;
+
+-- 필터-컬러 (getFilterColorList)
+SELECT C.COLOR_GRP_CD               /*컬러그룹코드*/
+     , CC.CD_DESC     AS COLOR_CHIP /*컬러칩*/
+FROM   TB_COLOR C
+     , TB_COMMON_CODE CC
+WHERE  C.COLOR_GRP_CD = CC.CD
+AND    CC.CD_GB = 'G072'
+AND    C.COLOR_CD IN (SELECT O.OPT_CD1
+                      FROM   TB_CATE_4SRCH C4
+                           , TB_CATE_GOODS CG
+                           , TB_GOODS G
+                           , TB_GOODS_STOCK GS
+                           , TB_BRAND B
+                           , TB_SITE_BRAND SB
+                           , TB_OPTION O
+                      WHERE  C4.LEAF_CATE_NO = CG.CATE_NO
+                      <choose>
+                          <when test="brandGroupNo != null and brandGroupNo != ''">
+                      AND    CG.BRAND_GROUP_NO = #{brandGroupNo}
+                          </when>
+                          <otherwise>
+                      AND    CG.BRAND_GROUP_NO = 0 /*브랜드메인에서 접근한 것이 아니면*/
+                          </otherwise>
+                      </choose>
+                      AND    CG.GOODS_CD = G.GOODS_CD
+                      AND    CG.GOODS_CD = GS.GOODS_CD
+                      AND    G.BRAND_CD = B.BRAND_CD
+                      AND    B.BRAND_CD = SB.BRAND_CD
+                      AND    G.GOODS_CD = O.GOODS_CD
+                      AND    C4.SITE_CD = #{siteCd}
+                      AND    C4.CATE_GB = #{cateGb}
+                      AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+                      AND    C4.CATE1_NO = #{cate1No}
+                      <if test="cate2No != null and cate2No != ''">
+                      AND    C4.CATE2_NO = #{cate2No}
+                      </if>
+                      <if test="cate3No != null and cate3No != ''">
+                      AND    C4.CATE3_NO = #{cate3No}
+                      </if>
+                      <if test="cate4No != null and cate4No != ''">
+                      AND    C4.CATE4_NO = #{cate4No}
+                      </if>
+                      <if test="cate5No != null and cate5No != ''">
+                      AND    C4.CATE5_NO = #{cate5No}
+                      </if>
+                      AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
+                      AND    G.SELF_MALL_YN = 'Y'   /*몰노출상품*/
+                      AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT   /*판매기간*/
+                      AND    GS.STOCK_QTY <![CDATA[>]]> 0 /*재고있는상품*/
+                      AND    SB.SITE_CD = #{siteCd}
+                      AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+                      AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
+                      AND    O.SOLDOUT_YN = 'N' /*품절이 아닌 옵션*/
+                      AND    O.DISP_YN = 'Y' /*노출하는 옵션*/
+                     )
+AND    CC.USE_YN = 'Y'
+ORDER  BY CC.DISP_ORD
+;
+
+-- 필터 - 상품혜택 (getFilterGoodsBenefitList)
+WITH TAB_BENEFIT AS (
+    SELECT GB.CPN_YN
+         , GB.FREEGIFT_YN
+         , G.FORMAL_GB
+         , G.MIN_ORD_AMT
+         , FN_GET_BENEFIT_PRICE(#{frontGb},G.GOODS_CD,G.CURR_PRICE,#{custGb}) AS CURR_PRICE /*현재판매가*/
+    FROM   TB_CATE_4SRCH C4
+         , TB_CATE_GOODS CG
+         , TB_GOODS G
+         , TB_GOODS_STOCK GS
+         , TB_GOODS_BENEFIT GB
+         , TB_BRAND B
+         , TB_SITE_BRAND SB
+    WHERE  C4.LEAF_CATE_NO = CG.CATE_NO
+    <choose>
+        <when test="brandGroupNo != null and brandGroupNo != ''">
+    AND    CG.BRAND_GROUP_NO = #{brandGroupNo}
+        </when>
+        <otherwise>
+    AND    CG.BRAND_GROUP_NO = 0 /*브랜드메인에서 접근한 것이 아니면*/
+        </otherwise>
+    </choose>
+    AND    CG.GOODS_CD = G.GOODS_CD
+    AND    CG.GOODS_CD = GS.GOODS_CD
+    AND    G.GOODS_CD = GB.GOODS_CD
+    AND    G.BRAND_CD = B.BRAND_CD
+    AND    B.BRAND_CD = SB.BRAND_CD
+    AND    C4.SITE_CD = #{siteCd}
+    AND    C4.CATE_GB = #{cateGb}
+    AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+    AND    C4.CATE1_NO = #{cate1No}
+    <if test="cate2No != null and cate2No != ''">
+    AND    C4.CATE2_NO = #{cate2No}
+    </if>
+    <if test="cate3No != null and cate3No != ''">
+    AND    C4.CATE3_NO = #{cate3No}
+    </if>
+    <if test="cate4No != null and cate4No != ''">
+    AND    C4.CATE4_NO = #{cate4No}
+    </if>
+    <if test="cate5No != null and cate5No != ''">
+    AND    C4.CATE5_NO = #{cate5No}
+    </if>
+    AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
+    AND    G.SELF_MALL_YN = 'Y'   /*몰노출상품*/
+    AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT   /*판매기간*/
+    AND    GS.STOCK_QTY <![CDATA[>]]> 0 /*재고있는상품*/
+    AND    SB.SITE_CD = #{siteCd}
+    AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+    AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
+)
+SELECT '10'       AS BENEFIT_CD
+     , '쿠폰할인' AS BENEFIT_NM
+FROM   TAB_BENEFIT
+WHERE  CPN_YN = 'Y'
+
+UNION ALL
+
+SELECT '20'       AS BENEFIT_CD
+     , '무료배송' AS BENEFIT_NM
+FROM   TAB_BENEFIT
+WHERE  MIN_ORD_AMT >= CURR_PRICE
+
+UNION ALL
+
+SELECT '30'       AS BENEFIT_CD
+     , '사은품' AS BENEFIT_NM
+FROM   TAB_BENEFIT
+WHERE  FREEGIFT_YN = 'Y'
+
+UNION ALL
+
+SELECT '40'   AS BENEFIT_CD
+     , '신상' AS BENEFIT_NM
+FROM   TAB_BENEFIT
+WHERE  FORMAL_GB = 'G009_10'
+;