فهرست منبع

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

swkim 5 سال پیش
والد
کامیت
af2e7bc9cc

BIN
.DS_Store


BIN
산출물/.DS_Store


BIN
산출물/2.분석/01.마스터테이블(로딩용)/ST24_환경설정(V0.4)-20210225.xlsx


BIN
산출물/2.분석/BOS_기타정책.xlsx


BIN
산출물/3.설계/.DS_Store


+ 9 - 7
산출물/3.설계/05.DB-Object/01.db_view/VW_SEARCH_GOODS.sql

@@ -88,12 +88,6 @@ SELECT DISTINCT  G.GOODS_CD
                   GROUP BY GOODS_CD )
             END) AS STOCK_QTY
        , K.AD_KEYWORD
-      -- , FN_IS_GOODS_COUPON('P',G.GOODS_CD, BP.CURR_PRICE) AS COUPON_PC_ICON  -- 속도 이슈
-      -- , FN_IS_GOODS_COUPON('M',G.GOODS_CD, BP.CURR_PRICE) AS COUPON_MO_ICON
-      -- , FN_IS_GOODS_COUPON('A',G.GOODS_CD, BP.CURR_PRICE) AS COUPON_APP_ICON
-      -- , (CASE WHEN BP.CURR_PRICE <= E.MIN_ORD_AMT THEN 'Y' ELSE 'N' END) AS DELV_FREE_ICON
-      -- , FN_GET_FREEGIFT_GOODS_YN(G.GOODS_CD) AS FREEGIFT_ICON
-      -- , (CASE WHEN G.FORMAL_GB = 'G009_10' THEN 'Y' ELSE 'N' END) AS NEW_GOODS_ICON
        , (SELECT GROUP_CONCAT(DISTINCT CONCAT(C4.LEAF_CATE_NO , '|', C4.FULL_CATE_NM ) ) FROM TB_CATE_4SRCH C4
                                                                                          INNER JOIN TB_CATE_GOODS CG ON C4.LEAF_CATE_NO = CG.CATE_NO 
                                                                                          WHERE  C4.SITE_CD = 'G000_10'
@@ -103,6 +97,13 @@ SELECT DISTINCT  G.GOODS_CD
         , G.REG_DT AS REG_DT 
         , GS.SELL_WEEK_QTY AS ORDER_CNT
         , GS.REVIEW_REG_CNT AS REVIEW_CNT
+        , (CASE WHEN G.SELF_GOODS_YN ='Y' AND ifnull(QDS.GOODS_CD, 'Y') THEN 'Y' ELSE 'N' END ) AS QUIK_DELV_YN
+      -- , FN_IS_GOODS_COUPON('P',G.GOODS_CD, BP.CURR_PRICE) AS COUPON_PC_ICON  -- 속도 이슈
+      -- , FN_IS_GOODS_COUPON('M',G.GOODS_CD, BP.CURR_PRICE) AS COUPON_MO_ICON
+      -- , FN_IS_GOODS_COUPON('A',G.GOODS_CD, BP.CURR_PRICE) AS COUPON_APP_ICON
+      -- , (CASE WHEN BP.CURR_PRICE <= E.MIN_ORD_AMT THEN 'Y' ELSE 'N' END) AS DELV_FREE_ICON
+      -- , FN_GET_FREEGIFT_GOODS_YN(G.GOODS_CD) AS FREEGIFT_ICON
+      -- , (CASE WHEN G.FORMAL_GB = 'G009_10' THEN 'Y' ELSE 'N' END) AS NEW_GOODS_ICON
 FROM TB_GOODS G
 INNER JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
                       AND B.USE_YN = 'Y'
@@ -148,6 +149,7 @@ LEFT OUTER JOIN (SELECT MAX(GOODS_CD) AS GOODS_CD
 LEFT OUTER JOIN TB_ITEMKIND I ON G.ITEMKIND_CD  = I.ITEMKIND_CD 
 -- LEFT OUTER JOIN TB_WISHLIST W ON G.GOODS_CD = W.GOODS_CD
 --                               AND IFNULL( 0 /**P*/, 0) = W.CUST_NO
+LEFT OUTER JOIN TB_GOODS_QUICK_DELEVERY_SKIP QDS ON G.GOODS_CD  = QDS.GOODS_CD 
 WHERE 1 = 1                              
 -- AND G.GOODS_CD =  '14443216' /**P*/  -- 테스트용   입점:STYS00000042 , 자사:14443216 , 딜 : STYD000000025 , 세트 : STYS00000042
 AND G.SELF_MALL_YN = 'Y' -- 자사몰 노출(기획전과 상품상세는 노출)
@@ -156,4 +158,4 @@ AND G.GOODS_STAT = 'G008_90'
 -- ) Z
 -- WHERE 1 = 1
 -- AND Z.AD_KEYWORD IS NOT NULL
-;
+;

+ 0 - 1
산출물/3.설계/05.DB-Object/01.db_view/VW_STOCK.sql

@@ -2,7 +2,6 @@ CREATE VIEW VW_STOCK AS
     SELECT
         A.GOODS_CD,
         A.OPT_CD,
-        CONCAT(A.OPT_CD1,  NVL2(A.OPT_CD2, '', CONCAT('/', A.OPT_CD2))) AS OPT_NM,
 		A.OPT_CD1,
 		A.OPT_CD2,
         A.CURR_STOCK_QTY,

+ 0 - 1
산출물/3.설계/05.DB-Object/01.db_view/VW_STOCK_COMPOSE.sql

@@ -2,7 +2,6 @@ CREATE VIEW VW_STOCK_COMPOSE AS
     SELECT
         A.GOODS_CD,
         '' AS OPT_CD,
-        '' AS OPT_NM,
 		'' AS OPT_CD1,
 		'' AS OPT_CD2,
         SUM(B.CURR_STOCK_QTY)CURR_STOCK_QTY,

+ 9 - 7
산출물/3.설계/05.DB-Object/03.db_function/FN_IS_GOODS_COUPON.sql

@@ -4,16 +4,18 @@ create FUNCTION FN_IS_GOODS_COUPON
 	(I_FRONT_GB       VARCHAR(20)
 	,I_GOODS_CD       VARCHAR(20)
 	,I_CURR_PRICE     int
+	,I_USABLE_CUST_GB VARCHAR(20)
 	) RETURNS CHAR(1)
 /******************************************************************************
 /*
 /* Module       : 상품쿠폰 존재여부
 /* Program Name : FN_IS_GOODS_COUPON
-/* Description  : 상품의 최대로 할인 받는 쿠폰정보 조회한다.
-/*
+/* Description  : 상품상세에서 다운받을수 있는 쿠폰이 존재하는지 확인한다.
+/*                  
 /*                Input  : i_front_gb => 프론트구분(P:PC, M:모바일,A:APP )
 /*                         i_goods_cd => 상품코드
 /*                         i_curr_price => 현재판매가
+/*                         i_usable_cust_gb => 고객구분
 /*                OutPut : 쿠폰정보
 /*
 /* Program History
@@ -36,17 +38,17 @@ BEGIN
                       AND    CP.DOWN_ABL_YN = 'Y'    -- 상품상세 다운로드 가능여부 
                       AND    NOW() <= IF (CP.PD_GB = 'D', DATE_FORMAT(DATE_ADD(NOW(), INTERVAL 1 DAY), '%Y-%m-%d %H:%i:%S'), CP.AVAIL_EDDT)
                       AND    NOW() BETWEEN CP.DOWN_STDT AND CP.DOWN_EDDT
-                      AND    CP.CPN_TYPE  IN ('G230_11', 'G230_30') /*  상품쿠폰,배송비 쿠폰*/
+                      AND    CP.CPN_TYPE  IN ('G230_11', 'G230_20', 'G230_30') /*  상품쿠폰, 주문서 쿠폰, 배송비 쿠폰*/
                       AND    (SELECT COUNT(1)
                               FROM TB_COUPON_CUST_GBN
                               WHERE CPN_ID = CP.CPN_ID
-                              AND USABLE_CUST_GB IN ('G100_10') /*사용가능고객구분 일반회원*/
+                              AND USABLE_CUST_GB IN (i_usable_cust_gb) /*사용가능고객구분 일반 : G100_10, 임직원 : G100_20*/
                              ) >= 1
-                      AND    (SELECT COUNT(1) 
+                     /* AND    (SELECT COUNT(1) 
                               FROM TB_COUPON_CUST_GRADE
                               WHERE CPN_ID = CP.CPN_ID
-                              AND USABLE_CUST_GRADE IN ('G110_10', 'G110_20', 'G110_30', 'G110_40', 'G110_50' ) /*전체고객*/
-                              ) = 5
+                              AND USABLE_CUST_GRADE IN ('G110_10', 'G110_20', 'G110_30', 'G110_40', 'G110_50' ) 
+                              ) = 5 */
                       AND    CP.BUY_LIMIT_AMT <= I_CURR_PRICE  /*최소주문금액*/
                       AND    (CASE WHEN I_FRONT_GB = 'P' THEN DC_PVAL
                                    WHEN I_FRONT_GB = 'M' THEN DC_MVAL

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1847 - 1740
산출물/3.설계/05.DB-Object/06.DDL/table.sql


BIN
산출물/3.설계/99.검색/검색.xlsx


BIN
산출물/3.설계/99.검색/검색_20210303.xlsx


+ 184 - 0
산출물/3.설계/99.검색/검색_상품색인.sql

@@ -0,0 +1,184 @@
+DROP TABLE TB_SEARCH_ENGINE;
+
+CREATE TABLE TB_SEARCH_ENGINE AS
+WITH TAB_GOODS AS (
+	SELECT G.GOODS_CD
+	     , G.GOODS_NM
+	     , G.GOODS_TNM
+	     , G.GOODS_GB
+	     , G.FOREIGN_BUY_YN
+	     , G.PARALLEL_IMPORT_YN
+	     , G.ORDER_MADE_YN
+	     , G.GOODS_SNM
+	     , G.BRAND_CD
+	     , G.ITEMKIND_CD
+	     , G.FORMAL_GB
+	     , G.LIST_PRICE
+	     , G.CURR_PRICE
+	     , G.SELF_GOODS_YN
+	     , G.GOODS_STAT
+	     , G.PNT_PRATE
+	     , G.PRE_PPNT_USABLE_YN
+	     , G.PNT_MRATE
+	     , G.PRE_MPNT_USABLE_YN
+	     , G.MIN_ORD_QTY
+	     , G.MAX_ORD_QTY
+	     , G.DAY_MAX_ORD_QTY
+	     , G.SEX_GB
+	     , G.MAIN_COLOR_CD
+	     , G.SUPPLY_COMP_CD
+	     , G.SELF_MALL_YN
+	     , G.AGE_GRP_CD
+	     , G.SEASON_CD 
+	     , G.GOODS_TYPE
+	     , G.REG_DT AS REG_DT 
+	     , (CASE WHEN BG.DISP_NM_LANG = 'EN' THEN BG.BRAND_GROUP_ENM ELSE BG.BRAND_GROUP_KNM END) AS BRAND_GROUP_NM
+         , BG.BRAND_GROUP_NO
+         , E.DELV_FEE
+         , E.MIN_ORD_AMT
+         , GS.SELL_WEEK_QTY AS ORDER_CNT
+         , GS.REVIEW_REG_CNT AS REVIEW_CNT
+         , I.SIZE_GB
+         , CASE WHEN I.SIZE_GB = 'T' THEN '상의'
+                WHEN I.SIZE_GB = 'B' THEN '하의'
+                WHEN I.SIZE_GB = 'S' THEN '신발'
+               ELSE NULL
+            END       AS SIZE_GB_NM
+         , (CASE WHEN G.SELF_GOODS_YN ='Y' AND ifnull(QDS.GOODS_CD, 'Y') THEN 'Y' ELSE 'N' END ) AS QUIK_DELV_YN   
+	FROM   TB_GOODS G
+	INNER JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
+                         AND B.USE_YN = 'Y'
+    INNER JOIN TB_BRAND_GROUP BG ON B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO
+                                 AND BG.USE_YN = 'Y' 
+    INNER JOIN TB_DELV_FEE_POLICY E ON G.SUPPLY_COMP_CD = E.SUPPLY_COMP_CD
+                                AND G.DELV_FEE_CD =  E.DELV_FEE_CD
+    INNER JOIN TB_GOODS_SUMMARY GS ON G.GOODS_CD = GS.GOODS_CD          
+    INNER JOIN TB_ITEMKIND I ON  G.ITEMKIND_CD = I.ITEMKIND_CD
+    -- LEFT OUTER JOIN TB_ITEMKIND I ON  G.ITEMKIND_CD = I.ITEMKIND_CD
+    LEFT OUTER JOIN TB_GOODS_QUICK_DELEVERY_SKIP QDS ON G.GOODS_CD  = QDS.GOODS_CD                                      
+	WHERE G.SELF_MALL_YN = 'Y' -- 자사몰 노출(기획전과 상품상세는 노출)
+	-- AND G.GOODS_STAT = 'G008_90'
+-- 	 AND G.GOODS_CD  IN ('14373685','14373686','14373687','14373688','14373690','14373697','14373699'  , '10770554','10770563','10770569','10770570' , 'AMM11QTS36')
+)
+-- SELECT * FROM TAB_GOODS ;  -- 25075
+, TAB_OPT_SIZE AS (
+    /*옵션 사이즈 목록 조회*/
+    /*자사상품*/
+    SELECT G.GOODS_CD
+        --  , O.OPT_CD
+         , O.OPT_CD1
+         , C.COLOR_FILE /*RGB값*/
+         , GROUP_CONCAT(CONCAT(O.OPT_CD2,'|',O.SOLDOUT_YN,'|',VS.CURR_STOCK_QTY)) AS SIZE_INFO
+    FROM   TAB_GOODS G
+         , TB_OPTION O
+         , TB_COLOR C
+         , VW_STOCK VS
+    WHERE  G.GOODS_CD = O.GOODS_CD
+    AND    O.OPT_CD1 = C.COLOR_CD
+    AND    O.GOODS_CD = VS.GOODS_CD
+    AND    O.OPT_CD = VS.OPT_CD
+    AND    G.SELF_GOODS_YN = 'Y' /*자사상품*/
+    AND    O.DISP_YN = 'Y'
+    AND    C.USE_YN = 'Y'
+    GROUP  BY G.GOODS_CD, O.OPT_CD1, C.COLOR_FILE
+    UNION ALL
+    /*입점상품*/
+    SELECT G.GOODS_CD
+         -- , O.OPT_CD
+         , G.MAIN_COLOR_CD AS OPT_CD1
+         , NULL            AS COLOR_FILE /*RGB값*/
+         , GROUP_CONCAT(CONCAT(O.OPT_CD2,'|',O.SOLDOUT_YN,'|',VS.CURR_STOCK_QTY)) AS SIZE_INFO
+    FROM   TAB_GOODS G
+         , TB_OPTION O
+         , VW_STOCK VS
+    WHERE  G.GOODS_CD = O.GOODS_CD
+    AND    O.GOODS_CD = VS.GOODS_CD
+    AND    O.OPT_CD = VS.OPT_CD
+    AND    G.SELF_GOODS_YN = 'N' /*입점상품*/
+    AND    O.DISP_YN = 'Y'
+    GROUP  BY G.GOODS_CD,G.MAIN_COLOR_CD
+)
+--  SELECT * FROM TAB_OPT_SIZE;
+, TAB_OPT AS (
+    /*옵션 목록*/
+    SELECT OS.GOODS_CD
+         , OS.OPT_CD1
+         , GROUP_CONCAT(OS.SIZE_INFO ORDER BY OS.SIZE_INFO) AS SIZES
+    FROM   TAB_OPT_SIZE OS
+    GROUP  BY OS.GOODS_CD, OS.OPT_CD1
+)
+-- SELECT * FROM TAB_OPT;
+, TAB_AD_KEYWORD AS (
+	/* 상품별 키워드 목록*/
+    SELECT AKG.GOODS_CD
+          , GROUP_CONCAT(AK.AD_KEYWORD) AS  AD_KEYWORD
+     FROM TB_AD_KEYWORD AK
+     INNER JOIN TB_AD_KEYWORD_GOODS AKG ON AK.AD_KEYWORD_SQ  = AKG.AD_KEYWORD_SQ
+     INNER JOIN TAB_GOODS G ON AKG.GOODS_CD = G.GOODS_CD
+     WHERE NOW() BETWEEN  AK.AD_KEYWORD_STDT AND AK.AD_KEYWORD_EDDT
+     AND AK.USE_YN  = 'Y'
+     GROUP BY  AKG.GOODS_CD
+)
+, TAB_GOODS_VIDEO AS (
+	SELECT MAX(GOODS_CD) AS GOODS_CD 
+         , MAX(CASE WHEN  RNUM = 1 THEN  VIDEO_GB END) AS  VIDEO_GB_M
+         , MAX(CASE WHEN  RNUM = 1 THEN  VIDEO_VAL END) AS  VIDEO_VAL_M
+         , MAX(CASE WHEN  RNUM = 2 THEN  VIDEO_GB END) AS  VIDEO_GB_S
+         , MAX(CASE WHEN  RNUM = 2 THEN  VIDEO_VAL END) AS  VIDEO_VAL_S
+   FROM (
+         SELECT A.DISPLOC_VAL AS GOODS_CD
+              , B.VIDEO_GB 
+              , B.VIDEO_VAL 
+              , A.REG_DT 
+              , RANK() OVER(PARTITION BY A.DISPLOC_VAL ORDER BY A.REG_DT ) RNUM 
+         FROM TB_VIDEO_DISPLOC  A
+         INNER JOIN  TB_VIDEO B ON A.VIDEO_SQ = B.VIDEO_SQ 
+                                AND B.DISP_YN ='Y'
+         INNER JOIN  TAB_GOODS G ON A.DISPLOC_VAL = G.GOODS_CD                      
+         WHERE A.DISPLOC_GB ='G'
+         AND A.DISP_YN = 'Y'
+        ) Z
+)
+, TAB_CPN_ICON AS (
+    /*상품별 쿠폰 아이콘 목록*/
+    SELECT G.GOODS_CD
+         , GBP.PC_CURR_PRICE
+         , GBP.MO_CURR_PRICE
+         , GBP.APP_CURR_PRICE
+         -- , FN_IS_GOODS_COUPON('P',G.GOODS_CD,ifnull(GBP.PC_CURR_PRICE, G.CURR_PRICE, 'G100_10'))  AS CPN_PC_ICON  -- 속도 이슈  일반:G100_10, 임직원:G100_20
+         -- , FN_IS_GOODS_COUPON('M',G.GOODS_CD,ifnull(GBP.PC_CURR_PRICE, G.CURR_PRICE, 'G100_10'))  AS CPN_MO_ICON
+         -- , FN_IS_GOODS_COUPON('A',G.GOODS_CD,ifnull(GBP.PC_CURR_PRICE, G.CURR_PRICE, 'G100_10')) AS CPN_APP_ICON
+          , FN_GET_FREEGIFT_GOODS_YN(G.GOODS_CD)                  AS FREEGIFT_ICON
+    FROM   TAB_GOODS G
+    LEFT OUTER JOIN TB_GOODS_BENEFIT_PRICE GBP ON G.GOODS_CD = GBP.GOODS_CD
+                                                AND    GBP.CUST_GB = 'G100_00'
+)
+--  SELECT COUNT(*) FROM (
+SELECT G.*
+     , O.OPT_CD1 AS COLOR_CD
+     , O.SIZES
+     -- , CI.CPN_PC_ICON
+     -- , CI.CPN_MO_ICON
+     -- , CI.CPN_APP_ICON
+     , '' AS CPN_PC_ICON
+     , '' AS CPN_MO_ICON
+     , '' AS CPN_APP_ICON
+     , CI.FREEGIFT_ICON
+     , AK.AD_KEYWORD
+     , GV.VIDEO_GB_M
+     , GV.VIDEO_VAL_M
+     , GV.VIDEO_GB_S
+     , GV.VIDEO_VAL_S
+     , FN_GET_CODE_NM('G073',G.GOODS_GB) AS GOODS_GB_NM
+     , FN_GET_CODE_NM('G007',G.SEX_GB) AS SEX_NM
+     , FN_GET_CODE_NM('G023',G.AGE_GRP_CD) AGE_GRP_NM
+     , FN_GET_CODE_NM('G006',G.SEASON_CD) SEASON_NM
+FROM   TAB_GOODS G
+INNER JOIN  TAB_CPN_ICON CI ON  G.GOODS_CD = CI.GOODS_CD
+LEFT OUTER JOIN  TAB_OPT O ON G.GOODS_CD = O.GOODS_CD
+LEFT OUTER JOIN TAB_AD_KEYWORD AK ON G.GOODS_CD = AK.GOODS_CD
+LEFT OUTER JOIN TAB_GOODS_VIDEO GV ON G.GOODS_CD = GV.GOODS_CD
+-- AND    G.SELF_GOODS_YN = 'Y'
+-- AND    G.GOODS_CD = '14373685'
+--  ) A
+;

+ 121 - 6
산출물/검색/검색_상품색인.sql → 산출물/3.설계/99.검색/검색_상품색인_org.sql

@@ -87,12 +87,6 @@ SELECT DISTINCT  G.GOODS_CD
                   GROUP BY GOODS_CD )
             END) AS STOCK_QTY
        , K.AD_KEYWORD
-      -- , FN_IS_GOODS_COUPON('P',G.GOODS_CD, BP.CURR_PRICE) AS COUPON_PC_ICON  -- 속도 이슈
-      -- , FN_IS_GOODS_COUPON('M',G.GOODS_CD, BP.CURR_PRICE) AS COUPON_MO_ICON
-      -- , FN_IS_GOODS_COUPON('A',G.GOODS_CD, BP.CURR_PRICE) AS COUPON_APP_ICON
-      -- , (CASE WHEN BP.CURR_PRICE <= E.MIN_ORD_AMT THEN 'Y' ELSE 'N' END) AS DELV_FREE_ICON
-      -- , FN_GET_FREEGIFT_GOODS_YN(G.GOODS_CD) AS FREEGIFT_ICON
-      -- , (CASE WHEN G.FORMAL_GB = 'G009_10' THEN 'Y' ELSE 'N' END) AS NEW_GOODS_ICON
        , (SELECT GROUP_CONCAT(DISTINCT CONCAT(C4.LEAF_CATE_NO , '|', C4.FULL_CATE_NM ) ) FROM TB_CATE_4SRCH C4
                                                                                          INNER JOIN TB_CATE_GOODS CG ON C4.LEAF_CATE_NO = CG.CATE_NO 
                                                                                          WHERE  C4.SITE_CD = 'G000_10'
@@ -102,6 +96,13 @@ SELECT DISTINCT  G.GOODS_CD
         , G.REG_DT AS REG_DT 
         , GS.SELL_WEEK_QTY AS ORDER_CNT
         , GS.REVIEW_REG_CNT AS REVIEW_CNT
+        , (CASE WHEN G.SELF_GOODS_YN ='Y' AND ifnull(QDS.GOODS_CD, 'Y') THEN 'Y' ELSE 'N' END ) AS QUIK_DELV_YN
+      -- , FN_IS_GOODS_COUPON('P',G.GOODS_CD, BP.CURR_PRICE) AS COUPON_PC_ICON  -- 속도 이슈
+      -- , FN_IS_GOODS_COUPON('M',G.GOODS_CD, BP.CURR_PRICE) AS COUPON_MO_ICON
+      -- , FN_IS_GOODS_COUPON('A',G.GOODS_CD, BP.CURR_PRICE) AS COUPON_APP_ICON
+      -- , (CASE WHEN BP.CURR_PRICE <= E.MIN_ORD_AMT THEN 'Y' ELSE 'N' END) AS DELV_FREE_ICON
+      -- , FN_GET_FREEGIFT_GOODS_YN(G.GOODS_CD) AS FREEGIFT_ICON
+      -- , (CASE WHEN G.FORMAL_GB = 'G009_10' THEN 'Y' ELSE 'N' END) AS NEW_GOODS_ICON
 FROM TB_GOODS G
 INNER JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
                       AND B.USE_YN = 'Y'
@@ -147,6 +148,7 @@ LEFT OUTER JOIN (SELECT MAX(GOODS_CD) AS GOODS_CD
 LEFT OUTER JOIN TB_ITEMKIND I ON G.ITEMKIND_CD  = I.ITEMKIND_CD 
 -- LEFT OUTER JOIN TB_WISHLIST W ON G.GOODS_CD = W.GOODS_CD
 --                               AND IFNULL( 0 /**P*/, 0) = W.CUST_NO
+LEFT OUTER JOIN TB_GOODS_QUICK_DELEVERY_SKIP QDS ON G.GOODS_CD  = QDS.GOODS_CD 
 WHERE 1 = 1                              
 -- AND G.GOODS_CD =  '14443216' /**P*/  -- 테스트용   입점:STYS00000042 , 자사:14443216 , 딜 : STYD000000025 , 세트 : STYS00000042
 AND G.SELF_MALL_YN = 'Y' -- 자사몰 노출(기획전과 상품상세는 노출)
@@ -155,4 +157,117 @@ AND G.GOODS_STAT = 'G008_90'
 -- ) Z
 -- WHERE 1 = 1
 -- AND Z.AD_KEYWORD IS NOT NULL
+;
+
+
+TRUNCATE TABLE TMP_SEARCH_ENGINE;
+
+CREATE TABLE TMP_SEARCH_ENGINE AS
+WITH TAB_GOODS AS (
+	SELECT G.GOODS_CD
+	     , G.GOODS_NM
+	     , G.GOODS_TNM
+	     , G.GOODS_GB
+	     , G.FOREIGN_BUY_YN
+	     , G.PARALLEL_IMPORT_YN
+	     , G.ORDER_MADE_YN
+	     , G.GOODS_SNM        
+	     , G.BRAND_CD
+	     , G.ITEMKIND_CD
+	     , G.FORMAL_GB
+	     , G.LIST_PRICE
+	     , G.CURR_PRICE
+	     , G.SELF_GOODS_YN
+	     , G.GOODS_STAT
+	     , G.PNT_PRATE
+	     , G.PRE_PPNT_USABLE_YN
+	     , G.PNT_MRATE
+	     , G.PRE_MPNT_USABLE_YN
+	     , G.MIN_ORD_QTY
+	     , G.MAX_ORD_QTY
+	     , G.DAY_MAX_ORD_QTY
+	     , G.SEX_GB
+	     , G.MAIN_COLOR_CD
+	     , G.SUPPLY_COMP_CD
+	     , G.SELF_MALL_YN
+	     , G.AGE_GRP_CD
+	     , G.SEASON_CD 
+	     , G.GOODS_TYPE
+	     , G.REG_DT AS REG_DT 
+	FROM   TB_GOODS G
+), TAB_OPT_SIZE AS (
+    /*옵션 사이즈 목록 조회*/
+    /*자사상품*/
+    SELECT G.GOODS_CD
+         , O.OPT_CD
+         , O.OPT_CD1
+         , C.COLOR_FILE /*RGB값*/
+         , GROUP_CONCAT(CONCAT(O.OPT_CD2,'|',O.SOLDOUT_YN,'|',VS.CURR_STOCK_QTY)) AS SIZE_INFO
+    FROM   TAB_GOODS G
+         , TB_OPTION O
+         , TB_COLOR C
+         , VW_STOCK VS
+    WHERE  G.GOODS_CD = O.GOODS_CD
+    AND    O.OPT_CD1 = C.COLOR_CD
+    AND    O.GOODS_CD = VS.GOODS_CD
+    AND    O.OPT_CD = VS.OPT_CD
+    AND    G.SELF_GOODS_YN = 'Y' /*자사상품*/
+    AND    O.DISP_YN = 'Y'
+    AND    C.USE_YN = 'Y'
+    GROUP  BY G.GOODS_CD, O.OPT_CD, O.OPT_CD1, C.COLOR_FILE
+    UNION ALL
+    /*입점상품*/
+    SELECT G.GOODS_CD
+         , O.OPT_CD
+         , G.MAIN_COLOR_CD AS OPT_CD1
+         , NULL            AS COLOR_FILE /*RGB값*/
+         , GROUP_CONCAT(CONCAT(O.OPT_CD2,'|',O.SOLDOUT_YN,'|',VS.CURR_STOCK_QTY)) AS SIZE_INFO
+    FROM   TAB_GOODS G
+         , TB_OPTION O
+         , VW_STOCK VS
+    WHERE  G.GOODS_CD = O.GOODS_CD
+    AND    O.GOODS_CD = VS.GOODS_CD
+    AND    O.OPT_CD = VS.OPT_CD
+    AND    G.SELF_GOODS_YN = 'N' /*입점상품*/
+    AND    O.DISP_YN = 'Y'
+    GROUP  BY G.GOODS_CD, O.OPT_CD, G.MAIN_COLOR_CD
+), TAB_OPT AS (
+    /*옵션 목록*/
+    SELECT OS.GOODS_CD
+         , GROUP_CONCAT(OS.SIZE_INFO ORDER BY OS.SIZE_INFO) AS SIZES
+    FROM   TAB_OPT_SIZE OS
+    GROUP  BY OS.GOODS_CD, OS.OPT_CD1
+), TAB_CPN_ICON AS (
+    /*상품별 쿠폰 아이콘 목록*/
+    SELECT G.GOODS_CD
+         , FN_IS_GOODS_COUPON('P',G.GOODS_CD,GBP.PC_CURR_PRICE)  AS CPN_PC_ICON  -- 속도 이슈
+         , FN_IS_GOODS_COUPON('M',G.GOODS_CD,GBP.MO_CURR_PRICE)  AS CPN_MO_ICON
+         , FN_IS_GOODS_COUPON('A',G.GOODS_CD,GBP.APP_CURR_PRICE) AS CPN_APP_ICON
+         , FN_GET_FREEGIFT_GOODS_YN(G.GOODS_CD)                  AS FREEGIFT_ICON
+    FROM   TAB_GOODS G
+         , TB_GOODS_BENEFIT_PRICE GBP
+    WHERE  G.GOODS_CD = GBP.GOODS_CD
+    AND    GBP.CUST_GB = 'G100_00'
+)
+SELECT G.*
+     , O.SIZES
+     , CI.CPN_PC_ICON
+     , CI.CPN_MO_ICON
+     , CI.CPN_APP_ICON
+     , CI.FREEGIFT_ICON
+     , I.SIZE_GB
+     , CASE WHEN I.SIZE_GB = 'T' THEN '상의'
+            WHEN I.SIZE_GB = 'B' THEN '하의'
+            WHEN I.SIZE_GB = 'S' THEN '신발'
+            ELSE NULL
+       END       AS SIZE_GB_NM
+FROM   TAB_GOODS G
+     , TAB_OPT O
+     , TAB_CPN_ICON CI
+     , TB_ITEMKIND I
+WHERE  G.GOODS_CD = O.GOODS_CD
+AND    G.GOODS_CD = CI.GOODS_CD
+AND    G.ITEMKIND_CD = I.ITEMKIND_CD
+-- AND    G.SELF_GOODS_YN = 'Y'
+-- AND    G.GOODS_CD = '14373685'
 ;

BIN
산출물/3.설계/ERD/.DS_Store


BIN
산출물/3.설계/ST24_TSIT-D202-프로그램목록(V2.1)-20210219.xlsx


BIN
산출물/3.설계/ST24_TSIT-D202-프로그램목록(V2.2)-20210226.xlsx


BIN
산출물/3.설계/ST24_TSIT-D202-프로그램목록(V2.2)-20210301.xlsx


BIN
산출물/4.구축/엑셀샘플/SF005_입점상품등록.xlsx


برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است