Pārlūkot izejas kodu

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

swkim 4 gadi atpakaļ
vecāks
revīzija
d274812e3f
26 mainītis faili ar 857 papildinājumiem un 4105 dzēšanām
  1. BIN
      산출물/3.설계/01.화면설계서/04.ADMIN/TSIT-D204-화면설계서-메인전시(V0.1)-20210520.pptx
  2. BIN
      산출물/3.설계/01.화면설계서/04.ADMIN/TSIT-D204-화면설계서-전시관리(V0.1)-20210524.pptx
  3. BIN
      산출물/3.설계/01.화면설계서/04.ADMIN/TSIT-D204-화면설계서-주문_클레임_20210825.pptx
  4. BIN
      산출물/3.설계/01.화면설계서/04.ADMIN/TSIT-D204-화면설계서-프로모션관리(V0.1)-20210521.pptx
  5. BIN
      산출물/3.설계/01.화면설계서/05.SCM/TSIT-D204-화면설계서-프로모션(V1.0)_SCM_20210901.pptx
  6. BIN
      산출물/3.설계/03.인터페이스/검색엔진/ST24_검색엔진연동(V0.20)-20210729.xlsx
  7. 54 48
      산출물/3.설계/05.DB-Object/06.DDL/table.sql
  8. BIN
      산출물/3.설계/ST24_TSIT-D302-배치목록(V0.6)-20210901.xlsx
  9. 139 143
      산출물/4.구축/데이터처리/07.카테고리재고생성(TB_CATE_STOCK).sql
  10. BIN
      산출물/4.구축/데이터처리/20210901_매출반영데이터.xlsx
  11. 242 175
      산출물/4.구축/데이터처리/네이버EP생성.sql
  12. 0 343
      산출물/4.구축/데이터처리/네이버EP생성_20210614.sql
  13. 0 934
      산출물/4.구축/데이터처리/네이버EP생성_20210614_2.sql
  14. 0 902
      산출물/4.구축/데이터처리/네이버EP생성_20210615_1.sql
  15. 0 956
      산출물/4.구축/데이터처리/네이버EP생성_20210615_2.sql
  16. 7 6
      산출물/4.구축/데이터처리/넷퍼시메일_회원정보동기화.sql
  17. 168 0
      산출물/4.구축/데이터처리/다음EP생성.sql
  18. 0 585
      산출물/4.구축/데이터처리/다음EP생성_20210614.sql
  19. 194 0
      산출물/4.구축/데이터처리/매출반영.sql
  20. BIN
      산출물/4.구축/데이터처리/매출반영_20210901.xlsx
  21. 1 1
      산출물/4.구축/데이터처리/일일거래내역.sql
  22. BIN
      산출물/4.구축/데이터처리/일일거래내역_20210830.xlsx
  23. BIN
      산출물/4.구축/데이터처리/자사상품옵션_노출안되고_품절된_상품.xlsx
  24. BIN
      산출물/6.전개/20210903 (스타일24) 통합테스트 이슈 보고 및 현황_수정.xlsx
  25. BIN
      산출물/6.전개/20210905 (스타일24) 통합테스트 이슈 보고 및 현황_수정3.xlsx
  26. 52 12
      산출물/6.전개/확인할사항_20210823.txt

BIN
산출물/3.설계/01.화면설계서/04.ADMIN/TSIT-D204-화면설계서-메인전시(V0.1)-20210520.pptx


BIN
산출물/3.설계/01.화면설계서/04.ADMIN/TSIT-D204-화면설계서-전시관리(V0.1)-20210524.pptx


BIN
산출물/3.설계/01.화면설계서/04.ADMIN/TSIT-D204-화면설계서-주문_클레임_20210825.pptx


BIN
산출물/3.설계/01.화면설계서/04.ADMIN/TSIT-D204-화면설계서-프로모션관리(V0.1)-20210521.pptx


BIN
산출물/3.설계/01.화면설계서/05.SCM/TSIT-D204-화면설계서-프로모션(V1.0)_SCM_20210901.pptx


BIN
산출물/3.설계/03.인터페이스/검색엔진/ST24_검색엔진연동(V0.20)-20210729.xlsx


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

@@ -16458,51 +16458,51 @@ CREATE TABLE NETPATHY_POINT
 COMMENT='넷퍼시 포인트. 넷퍼시메일 솔루션에 연동할 포인트 정보. 매일 1회 생성 시 발생'
 ;
 
-################################################################################
-#VW_STOCK대용임시(실시간재고)
-################################################################################
-DROP TABLE IF EXISTS VW_STOCK_TMP RESTRICT;
-CREATE TABLE VW_STOCK_TMP (
-    GOODS_CD       VARCHAR(20)       NOT NULL COMMENT '상품코드',
-    OPT_CD         VARCHAR(200) NOT NULL COMMENT '옵션코드',
-    OPT_CD1        VARCHAR(200)      NOT NULL COMMENT '옵션코드1(자사:COLOR_CD, 입점:옵션명1)', -- 옵션코드1(자사:COLOR_CD, 입점:옵션명1)
-    OPT_CD2        VARCHAR(200)      COMMENT '옵션코드2(자사:SIZE, 입점:옵션명2)',
-    CURR_STOCK_QTY SMALLINT          NOT NULL DEFAULT 0 COMMENT '현재고수량',
-    BASE_STOCK_QTY SMALLINT          NOT NULL DEFAULT 0 COMMENT '기준재고(안전재고)수량',
-    ADD_PRICE      INT               NOT NULL DEFAULT 0 COMMENT '추가가격',
-    SOLDOUT_YN     CHAR(1)           NOT NULL DEFAULT 'N' COMMENT '결품여부',
-    DISP_ORD       SMALLINT UNSIGNED  NOT NULL DEFAULT 1 COMMENT '표시순서',
-    DISP_YN        CHAR(1)           NOT NULL DEFAULT 'Y' COMMENT '표시여부',
-    PRIMARY KEY (GOODS_CD, OPT_CD)
-)
-COMMENT 'VW_STOCK대용임시(실시간재고). 배치에 의해 등록됨'
-;
-
-################################################################################
-#VW_STOCK대용(실시간재고)
-################################################################################
-DROP TABLE IF EXISTS VW_STOCK RESTRICT;
-CREATE TABLE VW_STOCK (
-    GOODS_CD       VARCHAR(20)       NOT NULL COMMENT '상품코드',
-    OPT_CD         VARCHAR(200) NOT NULL COMMENT '옵션코드',
-    OPT_CD1        VARCHAR(200)      NOT NULL COMMENT '옵션코드1(자사:COLOR_CD, 입점:옵션명1)', -- 옵션코드1(자사:COLOR_CD, 입점:옵션명1)
-    OPT_CD2        VARCHAR(200)      COMMENT '옵션코드2(자사:SIZE, 입점:옵션명2)',
-    CURR_STOCK_QTY SMALLINT          NOT NULL DEFAULT 0 COMMENT '현재고수량',
-    BASE_STOCK_QTY SMALLINT          NOT NULL DEFAULT 0 COMMENT '기준재고(안전재고)수량',
-    ADD_PRICE      INT               NOT NULL DEFAULT 0 COMMENT '추가가격',
-    SOLDOUT_YN     CHAR(1)           NOT NULL DEFAULT 'N' COMMENT '결품여부',
-    DISP_ORD       SMALLINT UNSIGNED  NOT NULL DEFAULT 1 COMMENT '표시순서',
-    DISP_YN        CHAR(1)           NOT NULL DEFAULT 'Y' COMMENT '표시여부',
-    REG_DT         TIMESTAMP         NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '등록일시',
-    PRIMARY KEY (GOODS_CD, OPT_CD)
-)
-COMMENT 'VW_STOCK대용(실시간재고). 배치에 의해 등록됨'
-;
-
-CREATE INDEX IX_VW_STOCK_01
-  ON VW_STOCK( -- 옵션
-    OPT_CD1 ASC -- 옵션명1
-  );
+--################################################################################
+--#VW_STOCK대용임시(실시간재고)
+--################################################################################
+--DROP TABLE IF EXISTS VW_STOCK_TMP RESTRICT;
+--CREATE TABLE VW_STOCK_TMP (
+--    GOODS_CD       VARCHAR(20)       NOT NULL COMMENT '상품코드',
+--    OPT_CD         VARCHAR(200) NOT NULL COMMENT '옵션코드',
+--    OPT_CD1        VARCHAR(200)      NOT NULL COMMENT '옵션코드1(자사:COLOR_CD, 입점:옵션명1)', -- 옵션코드1(자사:COLOR_CD, 입점:옵션명1)
+--    OPT_CD2        VARCHAR(200)      COMMENT '옵션코드2(자사:SIZE, 입점:옵션명2)',
+--    CURR_STOCK_QTY SMALLINT          NOT NULL DEFAULT 0 COMMENT '현재고수량',
+--    BASE_STOCK_QTY SMALLINT          NOT NULL DEFAULT 0 COMMENT '기준재고(안전재고)수량',
+--    ADD_PRICE      INT               NOT NULL DEFAULT 0 COMMENT '추가가격',
+--    SOLDOUT_YN     CHAR(1)           NOT NULL DEFAULT 'N' COMMENT '결품여부',
+--    DISP_ORD       SMALLINT UNSIGNED  NOT NULL DEFAULT 1 COMMENT '표시순서',
+--    DISP_YN        CHAR(1)           NOT NULL DEFAULT 'Y' COMMENT '표시여부',
+--    PRIMARY KEY (GOODS_CD, OPT_CD)
+--)
+--COMMENT 'VW_STOCK대용임시(실시간재고). 배치에 의해 등록됨'
+--;
+--
+--################################################################################
+--#VW_STOCK대용(실시간재고)
+--################################################################################
+--DROP TABLE IF EXISTS VW_STOCK RESTRICT;
+--CREATE TABLE VW_STOCK (
+--    GOODS_CD       VARCHAR(20)       NOT NULL COMMENT '상품코드',
+--    OPT_CD         VARCHAR(200) NOT NULL COMMENT '옵션코드',
+--    OPT_CD1        VARCHAR(200)      NOT NULL COMMENT '옵션코드1(자사:COLOR_CD, 입점:옵션명1)', -- 옵션코드1(자사:COLOR_CD, 입점:옵션명1)
+--    OPT_CD2        VARCHAR(200)      COMMENT '옵션코드2(자사:SIZE, 입점:옵션명2)',
+--    CURR_STOCK_QTY SMALLINT          NOT NULL DEFAULT 0 COMMENT '현재고수량',
+--    BASE_STOCK_QTY SMALLINT          NOT NULL DEFAULT 0 COMMENT '기준재고(안전재고)수량',
+--    ADD_PRICE      INT               NOT NULL DEFAULT 0 COMMENT '추가가격',
+--    SOLDOUT_YN     CHAR(1)           NOT NULL DEFAULT 'N' COMMENT '결품여부',
+--    DISP_ORD       SMALLINT UNSIGNED  NOT NULL DEFAULT 1 COMMENT '표시순서',
+--    DISP_YN        CHAR(1)           NOT NULL DEFAULT 'Y' COMMENT '표시여부',
+--    REG_DT         TIMESTAMP         NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '등록일시',
+--    PRIMARY KEY (GOODS_CD, OPT_CD)
+--)
+--COMMENT 'VW_STOCK대용(실시간재고). 배치에 의해 등록됨'
+--;
+--
+--CREATE INDEX IX_VW_STOCK_01
+--  ON VW_STOCK( -- 옵션
+--    OPT_CD1 ASC -- 옵션명1
+--  );
 
 ################################################################################
 # 상품권대량등록
@@ -33977,9 +33977,10 @@ CREATE TABLE TB_HANSAE_SALES (
   ERP_GB            VARCHAR(20)       NOT NULL COMMENT 'ERP구분(hsmk: 한세MK, hsdr: 한세드림)',
   DT_SALE           VARCHAR(8)        NOT NULL COMMENT '판매일자(YYYYMMDD형식)',
   TP_SALE           VARCHAR(1)        NOT NULL COMMENT '판매구분(1:판매, 2:환불)',
-  CD_STYLE          VARCHAR(20)       NOT NULL COMMENT '스타일코드',
-  CD_COLOR          VARCHAR(20)       NOT NULL COMMENT '색상코드',
-  CD_SIZE           VARCHAR(20)       NOT NULL COMMENT '사이즈코드',
+  CD_STYLE          VARCHAR(20)       NOT NULL COMMENT '스타일코드(SKU_MODEL_NO의 1~10)',
+  CD_COLOR          VARCHAR(20)       NOT NULL COMMENT '색상코드(SKU_MODEL_NO의 11~12)',
+  CD_SIZE           VARCHAR(20)       NOT NULL COMMENT '사이즈코드(SKU_MODEL_NO의 13~15)',
+  BRAND_CD          VARCHAR(5)        NOT NULL COMMENT '브랜드코드(브랜드)',
   QT_SALE           INT               NOT NULL COMMENT '판매수량',
   AM_ACSALE         INT               NOT NULL COMMENT '실판매금액(수량 * 단가)',
   DS_REMARK         VARCHAR(200)      NULL     COMMENT '비고',
@@ -33998,6 +33999,11 @@ ALTER TABLE TB_HANSAE_SALES
     );
 
 CREATE INDEX IX_HANSAE_SALES_01
+  ON TB_HANSAE_SALES (
+    ERP_GB, DT_SALE, BRAND_CD
+  );
+
+CREATE INDEX IX_HANSAE_SALES_02
   ON TB_HANSAE_SALES (
     ERP_GB, NO_IF, CD_STYLE, CD_COLOR, CD_SIZE
   );

BIN
산출물/3.설계/ST24_TSIT-D302-배치목록(V0.6)-20210901.xlsx


+ 139 - 143
산출물/4.구축/데이터처리/07.카테고리재고생성(TB_CATE_STOCK).sql

@@ -1,143 +1,139 @@
-
-TRUNCATE TABLE TB_CATE_STOCK_TMP;
-INSERT INTO TB_CATE_STOCK_TMP
-SELECT B.SITE_CD
-     , B.CATE1_NO
-     , B.CATE2_NO
-     , B.CATE3_NO
-     , B.CATE4_NO
-     , B.CATE5_NO
-     , A.GOODS_CD
-     , C.BRAND_GROUP_NO
-     , C.FORMAL_GB
-     , C.STOCK_QTY
-FROM   TB_CATE_GOODS A
-     , TB_CATE_4SRCH B
-     , (
-        SELECT G.GOODS_CD
-             , B.BRAND_GROUP_NO
-             , G.FORMAL_GB
-             , SUM(S.CURR_STOCK_QTY - S.BASE_STOCK_QTY) AS STOCK_QTY
-        FROM   TB_GOODS G USE INDEX (IX_GOODS_11)
-             , VW_STOCK S
-             , TB_BRAND B
-        WHERE  G.GOODS_CD = S.GOODS_CD
-        AND    G.BRAND_CD = B.BRAND_CD
-        AND    G.GOODS_TYPE = 'G056_N' /*일반상품*/
-        AND    G.GOODS_STAT = 'G008_90' /*승인된상품*/
-        AND    G.SELF_MALL_YN = 'Y' /*자사몰에노출하는넘만*/
-        AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*유효한판매기간*/
-        AND    S.SOLDOUT_YN = 'N' /*품절이아닌넘*/
-        AND    S.DISP_YN = 'Y' /*사이즈노출하는넘만*/
-        AND    S.CURR_STOCK_QTY - S.BASE_STOCK_QTY > 0 /*재고있는넘만*/
-        GROUP  BY G.GOODS_CD, B.BRAND_GROUP_NO, G.FORMAL_GB
-        UNION ALL
-        SELECT G.GOODS_CD
-             , B.BRAND_GROUP_NO
-             , G.FORMAL_GB
-             , SUM(S.CURR_STOCK_QTY - S.BASE_STOCK_QTY) AS STOCK_QTY
-        FROM   TB_GOODS G USE INDEX (IX_GOODS_11)
-             , TB_GOODS_COMPOSE GC
-             , VW_STOCK S
-             , TB_BRAND B
-        WHERE  G.GOODS_CD = GC.GOODS_CD
-        AND    GC.COMPS_GOODS_CD = S.GOODS_CD
-        AND    G.BRAND_CD = B.BRAND_CD
-        AND    G.GOODS_TYPE != 'G056_N' /*일반상품이 아닌넘*/
-        AND    G.GOODS_STAT = 'G008_90' /*승인된상품*/
-        AND    G.SELF_GOODS_YN = 'Y' /*자사상품만(세트상품과 딜상품은 자사상품만)*/
-        AND    G.SELF_MALL_YN = 'Y' /*자사몰에노출하는넘만*/
-        AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*유효한판매기간*/
-        AND    GC.USE_YN = 'Y' /*사용하는구성상품*/
-        AND    S.SOLDOUT_YN = 'N' /*품절이아닌넘*/
-        AND    S.DISP_YN = 'Y' /*사이즈노출하는넘만*/
-        AND    S.CURR_STOCK_QTY - S.BASE_STOCK_QTY > 0 /*재고있는넘만*/
-        GROUP  BY G.GOODS_CD, B.BRAND_GROUP_NO, G.FORMAL_GB
-       ) C
-WHERE  A.GOODS_CD = C.GOODS_CD
-AND    A.CATE_NO = B.LEAF_CATE_NO
-AND    B.CATE_TYPE = 'G031_10' /*상품분류카테고리*/
-;
-
-
-TRUNCATE TABLE TB_CATE_STOCK;
-INSERT INTO TB_CATE_STOCK (
-       SITE_CD
-     , CATE_NO
-     , BRAND_GROUP_NO
-     , FORMAL_GB
-     , STOCK_QTY
-     , GOODS_QTY
-     , REG_NO
-     , REG_DT
-)
-SELECT SITE_CD
-     , CATE_NO
-     , BRAND_GROUP_NO
-     , FORMAL_GB
-     , STOCK_QTY
-     , GOODS_QTY
-     , 0              AS REG_NO
-     , NOW()          AS REG_DT
-FROM   (
-        SELECT SITE_CD
-             , CATE5_NO                 AS CATE_NO
-             , BRAND_GROUP_NO
-             , FORMAL_GB
-             , SUM(STOCK_QTY)           AS STOCK_QTY
-             , COUNT(DISTINCT GOODS_CD) AS GOODS_QTY
-        FROM   TB_CATE_STOCK_TMP
-        WHERE  CATE5_NO IS NOT NULL
-        GROUP  BY SITE_CD, CATE5_NO, BRAND_GROUP_NO, FORMAL_GB
-        HAVING SUM(STOCK_QTY) > 0
-        UNION ALL
-        SELECT SITE_CD
-             , CATE4_NO                 AS CATE_NO
-             , BRAND_GROUP_NO
-             , FORMAL_GB
-             , SUM(STOCK_QTY)           AS STOCK_QTY
-             , COUNT(DISTINCT GOODS_CD) AS GOODS_QTY
-        FROM   TB_CATE_STOCK_TMP
-        WHERE  CATE4_NO IS NOT NULL
-        GROUP  BY SITE_CD, CATE4_NO, BRAND_GROUP_NO, FORMAL_GB
-        HAVING SUM(STOCK_QTY) > 0
-        UNION ALL
-        SELECT SITE_CD
-             , CATE3_NO                 AS CATE_NO
-             , BRAND_GROUP_NO
-             , FORMAL_GB
-             , SUM(STOCK_QTY)           AS STOCK_QTY
-             , COUNT(DISTINCT GOODS_CD) AS GOODS_QTY
-        FROM   TB_CATE_STOCK_TMP
-        WHERE  CATE3_NO IS NOT NULL
-        GROUP  BY SITE_CD, CATE3_NO, BRAND_GROUP_NO, FORMAL_GB
-        HAVING SUM(STOCK_QTY) > 0
-        UNION ALL
-        SELECT SITE_CD
-             , CATE2_NO                 AS CATE_NO
-             , BRAND_GROUP_NO
-             , FORMAL_GB
-             , SUM(STOCK_QTY)           AS STOCK_QTY
-             , COUNT(DISTINCT GOODS_CD) AS GOODS_QTY
-        FROM   TB_CATE_STOCK_TMP
-        WHERE  CATE2_NO IS NOT NULL
-        GROUP  BY SITE_CD, CATE2_NO, BRAND_GROUP_NO, FORMAL_GB
-        HAVING SUM(STOCK_QTY) > 0
-        UNION ALL
-        SELECT SITE_CD
-             , CATE1_NO                 AS CATE_NO
-             , BRAND_GROUP_NO
-             , FORMAL_GB
-             , SUM(STOCK_QTY)           AS STOCK_QTY
-             , COUNT(DISTINCT GOODS_CD) AS GOODS_QTY
-        FROM   TB_CATE_STOCK_TMP
-        WHERE  CATE1_NO IS NOT NULL
-        GROUP  BY SITE_CD, CATE1_NO, BRAND_GROUP_NO, FORMAL_GB
-        HAVING SUM(STOCK_QTY) > 0
-       ) Z
-WHERE  CATE_NO IS NOT NULL
-;
-
-
-
-SELECT * FROM TB_CATE_STOCK;
+TRUNCATE TABLE TB_CATE_STOCK_TMP;
+INSERT INTO TB_CATE_STOCK_TMP
+SELECT B.SITE_CD
+     , B.CATE1_NO
+     , B.CATE2_NO
+     , B.CATE3_NO
+     , B.CATE4_NO
+     , B.CATE5_NO
+     , A.GOODS_CD
+     , C.BRAND_GROUP_NO
+     , C.FORMAL_GB
+     , C.STOCK_QTY
+FROM   TB_CATE_GOODS A
+     , TB_CATE_4SRCH B
+     , (
+        SELECT G.GOODS_CD
+             , B.BRAND_GROUP_NO
+             , G.FORMAL_GB
+             , SUM(S.CURR_STOCK_QTY - S.BASE_STOCK_QTY) AS STOCK_QTY
+        FROM   TB_GOODS G USE INDEX (IX_GOODS_11)
+             , VW_STOCK S
+             , TB_BRAND B
+        WHERE  G.GOODS_CD = S.GOODS_CD
+        AND    G.BRAND_CD = B.BRAND_CD
+        AND    G.GOODS_TYPE = 'G056_N' /*일반상품*/
+        AND    G.GOODS_STAT = 'G008_90' /*승인된상품*/
+        AND    G.SELF_MALL_YN = 'Y' /*자사몰에노출하는넘만*/
+        AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*유효한판매기간*/
+        AND    S.SOLDOUT_YN = 'N' /*품절이아닌넘*/
+        AND    S.DISP_YN = 'Y' /*사이즈노출하는넘만*/
+        AND    S.CURR_STOCK_QTY - S.BASE_STOCK_QTY > 0 /*재고있는넘만*/
+        GROUP  BY G.GOODS_CD, B.BRAND_GROUP_NO, G.FORMAL_GB
+        UNION ALL
+        SELECT G.GOODS_CD
+             , B.BRAND_GROUP_NO
+             , G.FORMAL_GB
+             , SUM(S.CURR_STOCK_QTY - S.BASE_STOCK_QTY) AS STOCK_QTY
+        FROM   TB_GOODS G USE INDEX (IX_GOODS_11)
+             , TB_GOODS_COMPOSE GC
+             , VW_STOCK S
+             , TB_BRAND B
+        WHERE  G.GOODS_CD = GC.GOODS_CD
+        AND    GC.COMPS_GOODS_CD = S.GOODS_CD
+        AND    G.BRAND_CD = B.BRAND_CD
+        AND    G.GOODS_TYPE != 'G056_N' /*일반상품이 아닌넘*/
+        AND    G.GOODS_STAT = 'G008_90' /*승인된상품*/
+        -- AND    G.SELF_GOODS_YN = 'Y' /*자사상품만(세트상품과 딜상품은 자사상품만)*/
+        AND    G.SELF_MALL_YN = 'Y' /*자사몰에노출하는넘만*/
+        AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*유효한판매기간*/
+        AND    GC.USE_YN = 'Y' /*사용하는구성상품*/
+        AND    S.SOLDOUT_YN = 'N' /*품절이아닌넘*/
+        AND    S.DISP_YN = 'Y' /*사이즈노출하는넘만*/
+        AND    S.CURR_STOCK_QTY - S.BASE_STOCK_QTY > 0 /*재고있는넘만*/
+        GROUP  BY G.GOODS_CD, B.BRAND_GROUP_NO, G.FORMAL_GB
+       ) C
+WHERE  A.GOODS_CD = C.GOODS_CD
+AND    A.CATE_NO = B.LEAF_CATE_NO
+AND    B.CATE_TYPE = 'G031_10' /*상품분류카테고리*/
+;
+
+TRUNCATE TABLE TB_CATE_STOCK;
+INSERT INTO TB_CATE_STOCK (
+       SITE_CD
+     , CATE_NO
+     , BRAND_GROUP_NO
+     , FORMAL_GB
+     , STOCK_QTY
+     , GOODS_QTY
+     , REG_NO
+     , REG_DT
+)
+SELECT SITE_CD
+     , CATE_NO
+     , BRAND_GROUP_NO
+     , FORMAL_GB
+     , STOCK_QTY
+     , GOODS_QTY
+     , 0              AS REG_NO
+     , NOW()          AS REG_DT
+FROM   (
+        SELECT SITE_CD
+             , CATE5_NO                 AS CATE_NO
+             , BRAND_GROUP_NO
+             , FORMAL_GB
+             , SUM(STOCK_QTY)           AS STOCK_QTY
+             , COUNT(DISTINCT GOODS_CD) AS GOODS_QTY
+        FROM   TB_CATE_STOCK_TMP
+        WHERE  CATE5_NO IS NOT NULL
+        GROUP  BY SITE_CD, CATE5_NO, BRAND_GROUP_NO, FORMAL_GB
+        HAVING SUM(STOCK_QTY) > 0
+        UNION ALL
+        SELECT SITE_CD
+             , CATE4_NO                 AS CATE_NO
+             , BRAND_GROUP_NO
+             , FORMAL_GB
+             , SUM(STOCK_QTY)           AS STOCK_QTY
+             , COUNT(DISTINCT GOODS_CD) AS GOODS_QTY
+        FROM   TB_CATE_STOCK_TMP
+        WHERE  CATE4_NO IS NOT NULL
+        GROUP  BY SITE_CD, CATE4_NO, BRAND_GROUP_NO, FORMAL_GB
+        HAVING SUM(STOCK_QTY) > 0
+        UNION ALL
+        SELECT SITE_CD
+             , CATE3_NO                 AS CATE_NO
+             , BRAND_GROUP_NO
+             , FORMAL_GB
+             , SUM(STOCK_QTY)           AS STOCK_QTY
+             , COUNT(DISTINCT GOODS_CD) AS GOODS_QTY
+        FROM   TB_CATE_STOCK_TMP
+        WHERE  CATE3_NO IS NOT NULL
+        GROUP  BY SITE_CD, CATE3_NO, BRAND_GROUP_NO, FORMAL_GB
+        HAVING SUM(STOCK_QTY) > 0
+        UNION ALL
+        SELECT SITE_CD
+             , CATE2_NO                 AS CATE_NO
+             , BRAND_GROUP_NO
+             , FORMAL_GB
+             , SUM(STOCK_QTY)           AS STOCK_QTY
+             , COUNT(DISTINCT GOODS_CD) AS GOODS_QTY
+        FROM   TB_CATE_STOCK_TMP
+        WHERE  CATE2_NO IS NOT NULL
+        GROUP  BY SITE_CD, CATE2_NO, BRAND_GROUP_NO, FORMAL_GB
+        HAVING SUM(STOCK_QTY) > 0
+        UNION ALL
+        SELECT SITE_CD
+             , CATE1_NO                 AS CATE_NO
+             , BRAND_GROUP_NO
+             , FORMAL_GB
+             , SUM(STOCK_QTY)           AS STOCK_QTY
+             , COUNT(DISTINCT GOODS_CD) AS GOODS_QTY
+        FROM   TB_CATE_STOCK_TMP
+        WHERE  CATE1_NO IS NOT NULL
+        GROUP  BY SITE_CD, CATE1_NO, BRAND_GROUP_NO, FORMAL_GB
+        HAVING SUM(STOCK_QTY) > 0
+       ) Z
+WHERE  CATE_NO IS NOT NULL
+;
+
+SELECT * FROM TB_CATE_STOCK;

BIN
산출물/4.구축/데이터처리/20210901_매출반영데이터.xlsx


+ 242 - 175
산출물/4.구축/데이터처리/네이버EP생성.sql

@@ -1,57 +1,56 @@
-SET GROUP_CONCAT_MAX_LEN = 150000;
-
--- 상품 이미지 정보 생성 (30초)
-DROP TABLE TMP_EP_GOODS_IMG;
-CREATE TABLE TMP_EP_GOODS_IMG AS
+-- 상품 이미지 정보 생성 (1분)
+TRUNCATE TABLE TB_EP_GOODS_IMG;
+INSERT INTO TB_EP_GOODS_IMG (
+       GOODS_CD
+     , IMAGE_LINK
+)
 SELECT G.GOODS_CD
-     , MIN(CONCAT('https://image.istyle24.com/Upload/ProductImage/',GI.SYS_IMG_NM)) AS IMAGE_LINK
+     , CONCAT('https://image.istyle24.com/Upload/ProductImage/',GI.SYS_IMG_NM) AS IMAGE_LINK
 FROM   TB_GOODS G
-     , TB_GOODS_IMG GI
+     , (
+        SELECT GOODS_CD
+             , COLOR_CD
+             , MIN(SYS_IMG_NM) AS SYS_IMG_NM
+        FROM   TB_GOODS_IMG
+        WHERE  DEFAULT_IMG_YN = 'Y'
+        GROUP BY GOODS_CD, COLOR_CD
+       ) GI
 WHERE  G.GOODS_CD = GI.GOODS_CD
 AND    IF(G.SELF_GOODS_YN = 'N','XX',G.MAIN_COLOR_CD) = GI.COLOR_CD
-AND    GI.DEFAULT_IMG_YN = 'Y'
--- AND    G.GOODS_CD = 'A91M-SH121A'
-GROUP  BY G.GOODS_CD
 ;
-SELECT COUNT(*) FROM TMP_EP_GOODS_IMG;
 
--- 상품 추가이미지 정보 생성 (15초 소요)
-DROP TABLE TMP_EP_GOODS_ADD_IMG;
-CREATE TABLE TMP_EP_GOODS_ADD_IMG AS
+SELECT COUNT(*) FROM TB_EP_GOODS_IMG;
+
+-- 상품 추가이미지 정보 생성 (30초)
+TRUNCATE TABLE TB_EP_GOODS_ADD_IMG;
+INSERT INTO TB_EP_GOODS_ADD_IMG (
+       GOODS_CD
+     , ADD_IMAGE_LINK
+)
 SELECT GOODS_CD
      , GROUP_CONCAT(CONCAT('https://image.istyle24.com/Upload/ProductImage/',SYS_IMG_NM) SEPARATOR '|') AS ADD_IMAGE_LINK
-FROM   (SELECT DISTINCT
-               GOODS_CD
-             , SYS_IMG_NM
-        FROM   TB_GOODS_IMG
-        WHERE  DEFAULT_IMG_YN = 'N'
-        GROUP  BY GOODS_CD, SYS_IMG_NM
-        HAVING COUNT(*) <= 4
+FROM   (SELECT GI.GOODS_CD
+             , GI.SYS_IMG_NM
+             , RANK() OVER(PARTITION BY GI.GOODS_CD
+                           ORDER BY GI.DISP_ORD, GI.SYS_IMG_NM) AS RK
+        FROM   TB_GOODS G
+             , TB_GOODS_IMG GI
+        WHERE  G.GOODS_CD = GI.GOODS_CD
+        AND    IF(G.SELF_GOODS_YN = 'N','XX',G.MAIN_COLOR_CD) = GI.COLOR_CD
+        AND    GI.DEFAULT_IMG_YN = 'N'
        ) Z
+WHERE  RK <= 4
 GROUP  BY GOODS_CD
 ;
-SELECT COUNT(*) FROM TMP_EP_GOODS_ADD_IMG;
+
+SELECT COUNT(*) FROM TB_EP_GOODS_ADD_IMG;
 
 -- 카드이벤트 정보 생성
-DROP TABLE TMP_EP_CARD_EVENT;
--- CREATE TABLE TMP_EP_CARD_EVENT AS
--- SELECT CPC.MIN_PAY_AMT
---      , GROUP_CONCAT(DISTINCT
---                     CONCAT(FN_GET_CODE_NM('G941',CPT.PRMT_TARGET_CD),'^',
---                            CPC.MIN_NO_ITRT,'~',CPC.MAX_NO_ITRT)
---                     SEPARATOR '|') AS CARD_EVENT
--- FROM   TB_CARD_PROMOTION CP
---      , TB_CARD_PROMOTION_CONDITION CPC
---      , TB_CARD_PROMOTION_TARGET CPT
--- WHERE  CP.CARD_PRMT_SQ = CPC.CARD_PRMT_SQ
--- AND    CPC.CARD_PRMT_CDT_SQ = CPT.CARD_PRMT_CDT_SQ
--- AND    CP.PRMT_GB = 'B' /*무이자할부*/
--- AND    CP.PRMT_STD <= DATE_FORMAT(CURRENT_DATE(),'%Y%m%d')
--- AND    CP.PRMT_EDD >= DATE_FORMAT(CURRENT_DATE(),'%Y%m%d')
--- AND    CP.DISP_YN = 'Y'
--- GROUP  BY CPC.MIN_PAY_AMT
--- ;
-CREATE TABLE TMP_EP_CARD_EVENT AS
+TRUNCATE TABLE TB_EP_CARD_EVENT;
+INSERT INTO TB_EP_CARD_EVENT (
+       GOODS_CD
+     , CARD_EVENT
+)
 SELECT G.GOODS_CD
      , GROUP_CONCAT(DISTINCT
                     CONCAT(FN_GET_CODE_NM('G941',CPT.PRMT_TARGET_CD),'^',
@@ -81,72 +80,55 @@ AND    CP.DISP_YN = 'Y'
 AND    CPC.MIN_PAY_AMT < G.CURR_PRICE
 GROUP  BY G.GOODS_CD
 ;
-SELECT COUNT(*) FROM TMP_EP_CARD_EVENT;
 
--- 예약판매 정보 생성
--- SELECT GOODS_CD
---      , '예약판매' AS RES_SELL
--- FROM   TB_GOODS_RES_SELL
--- WHERE  DELV_RES_DT >= NOW()
--- AND    USE_YN = 'Y'
--- ;
+SELECT COUNT(*) FROM TB_EP_CARD_EVENT;
 
 -- 쿠폰 정보 생성 (47ms)
-DROP TABLE TMP_EP_COUPON;
-CREATE TABLE TMP_EP_COUPON AS
+TRUNCATE TABLE TB_EP_COUPON;
+INSERT INTO TB_EP_COUPON (
+       GOODS_CD
+     , COUPON
+)
 SELECT GOODS_CD
-     , CONCAT(IFNULL(NORMAL_CPN,''),'^',IFNULL(AFLINK_CPN,'')) AS COUPON
+     , CONCAT(IFNULL(NORMAL_CPN,''),IF(AFLINK_CPN11 IS NULL,'',CONCAT('^',AFLINK_CPN11)),IF(AFLINK_CPN10 IS NULL,'',CONCAT('^',AFLINK_CPN10))) AS COUPON
 FROM   (
         SELECT CR.REF_VAL            AS GOODS_CD
-             , CASE WHEN IFNULL((SELECT COUNT(*)
-                                 FROM   TB_COUPON_AF_CHANNEL
-                                 WHERE  CPN_ID = C.CPN_ID
-                                ),0) = 0 THEN
+             , CASE WHEN IFNULL(CAC.CNT,0) = 0 THEN
                         CONCAT(C.DC_PVAL,CASE WHEN C.DC_WAY = 'G240_10' THEN '원' ELSE '%' END)
                     ELSE
                         NULL
                END                   AS NORMAL_CPN /*일반쿠폰*/
-             , CASE WHEN IFNULL((SELECT COUNT(*)
-                                 FROM   TB_COUPON_AF_CHANNEL
-                                 WHERE  CPN_ID = C.CPN_ID
-                                ),0) > 0 AND C.DC_WAY = 'G240_11' THEN
+             , CASE WHEN IFNULL(CAC.CNT,0) > 0 AND C.DC_WAY = 'G240_10' THEN
+                        C.DC_PVAL
+                    ELSE
+                        NULL
+               END                   AS AFLINK_CPN10 /*정액제휴쿠폰*/
+             , CASE WHEN IFNULL(CAC.CNT,0) > 0 AND C.DC_WAY = 'G240_11' THEN
                         C.DC_PVAL
                     ELSE
                         NULL
-               END                   AS AFLINK_CPN /*제휴쿠폰*/
-             , CASE WHEN IFNULL((SELECT COUNT(*)
-                                 FROM   TB_COUPON_AF_CHANNEL
-                                 WHERE  CPN_ID = C.CPN_ID
-                                ),0) = 0 THEN
+               END                   AS AFLINK_CPN11 /*정율제휴쿠폰*/
+             , CASE WHEN IFNULL(CAC.CNT,0) = 0 THEN
                         CASE WHEN C.DC_WAY = 'G240_10' THEN C.DC_PVAL
                              ELSE IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY * C.DC_PVAL / 100
                         END
                     ELSE
                         0
                END                   AS NCPN_DC_AMT /*일반쿠폰할인금액*/
-             , CASE WHEN IFNULL((SELECT COUNT(*)
-                                 FROM   TB_COUPON_AF_CHANNEL
-                                 WHERE  CPN_ID = C.CPN_ID
-                                ),0) > 0 AND C.DC_WAY = 'G240_11' THEN
-                        IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY * C.DC_PVAL / 100
-                    ELSE
-                        0
-               END                   AS ACPN_DC_AMT /*제휴쿠폰할인금액*/
              , RANK() OVER(PARTITION BY CR.REF_VAL
-                           ORDER BY (CASE WHEN IFNULL((SELECT COUNT(*)
-                                                       FROM   TB_COUPON_AF_CHANNEL
-                                                       WHERE  CPN_ID = C.CPN_ID
-                                                      ),0) = 0 THEN
+                           ORDER BY (CASE WHEN IFNULL(CAC.CNT,0) = 0 THEN
                                               CASE WHEN C.DC_WAY = 'G240_10' THEN C.DC_PVAL
                                                    ELSE IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY * C.DC_PVAL / 100
                                               END
                                           ELSE
                                               0
                                      END) DESC,
-                                    (CASE WHEN IFNULL((SELECT COUNT(*)
-                                                       FROM   TB_COUPON_AF_CHANNEL
-                                                       WHERE  CPN_ID = C.CPN_ID
-                                                      ),0) > 0 AND C.DC_WAY = 'G240_11' THEN
+                                    (CASE WHEN IFNULL(CAC.CNT,0) > 0 AND C.DC_WAY = 'G240_10' THEN
+                                              C.DC_PVAL
+                                          ELSE
+                                              0
+                                     END) DESC,
+                                    (CASE WHEN IFNULL(CAC.CNT,0) > 0 AND C.DC_WAY = 'G240_11' THEN
                                               IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY * C.DC_PVAL / 100
                                           ELSE
                                               0
@@ -156,6 +138,17 @@ FROM   (
         INNER JOIN TB_COUPON_REFVAL CR ON C.CPN_ID = CR.CPN_ID
         INNER JOIN TB_GOODS G ON CR.REF_VAL = G.GOODS_CD
         LEFT OUTER JOIN TB_GOODS_BENEFIT_PRICE GBP ON G.GOODS_CD = GBP.GOODS_CD
+        LEFT OUTER JOIN (
+                         SELECT CPN_ID
+                              , COUNT(*) AS CNT
+                         FROM   TB_COUPON_AF_CHANNEL
+                         WHERE  AF_LINK_CD IN (SELECT AF_LINK_CD
+                                               FROM   TB_AF_LINK
+                                               WHERE  AF_CHANNEL = 'G053_02' /*네이버*/
+                                               AND    USE_YN = 'Y'
+                                              )
+                         GROUP  BY CPN_ID
+                        ) CAC ON C.CPN_ID = CAC.CPN_ID
         WHERE  C.SITE_CD = 'G000_10'
         AND    C.CPN_STAT = 'G232_11' /*진행쿠폰*/
         AND    C.CPN_TYPE IN ('G230_11','G230_20') /*상품쿠폰,주문서쿠폰*/
@@ -176,20 +169,29 @@ FROM   (
                            AND    DEL_YN = 'N'
                           )
        ) Z
-WHERE  1 = 1
--- AND    GOODS_CD = 'M211BLB35P'
-AND    RK = 1
+WHERE  RK = 1
+AND    (
+        NORMAL_CPN IS NOT NULL
+        OR
+        AFLINK_CPN10 IS NOT NULL
+        OR
+        AFLINK_CPN11 IS NOT NULL
+       )
 ;
-SELECT COUNT(*) FROM TMP_EP_COUPON;
+
+SELECT COUNT(*) FROM TB_EP_COUPON;
 
 -- 무이자이벤트 정보 생성
-DROP TABLE TMP_EP_INTEREST_FREE_EVENT;
-CREATE TABLE TMP_EP_INTEREST_FREE_EVENT AS
+TRUNCATE TABLE TB_EP_INTEREST_FREE_EVENT;
+INSERT INTO TB_EP_INTEREST_FREE_EVENT (
+       GOODS_CD
+     , INTEREST_FREE_EVENT
+)
 SELECT G.GOODS_CD
      , GROUP_CONCAT(DISTINCT
                     CONCAT(FN_GET_CODE_NM('G941',CPT.PRMT_TARGET_CD),'^',
                            CPC.MIN_NO_ITRT,'~',CPC.MAX_NO_ITRT)
-                    SEPARATOR '|') AS INTEREST_FREE_EVENT /*무이자이벤트. 판매가 > 무이자할부 최소구매금액 기준 초과 시 노출. 카드명^개월수~개월수|카드명^개월수~개월수... 형식으로 노출*/
+                    SEPARATOR '|') AS INTEREST_FREE_EVENT /*무이자이벤트정보*/
 FROM   TB_CARD_PROMOTION CP
      , TB_CARD_PROMOTION_CONDITION CPC
      , TB_CARD_PROMOTION_TARGET CPT
@@ -209,76 +211,116 @@ AND    CP.DISP_YN = 'Y'
 AND    CPC.MIN_PAY_AMT < G.CURR_PRICE
 GROUP  BY G.GOODS_CD
 ;
-SELECT COUNT(*) FROM TMP_EP_INTEREST_FREE_EVENT;
+SELECT COUNT(*) FROM TB_EP_INTEREST_FREE_EVENT;
 
--- EP네이버 생성
-DROP TABLE TMP_EP_NAVER;
-CREATE TABLE TMP_EP_NAVER AS
-SELECT G.GOODS_CD                                             AS ID
-     , CONCAT('[',CASE WHEN B.DISP_NM_LANG = 'EN' THEN B.BRAND_ENM ELSE B.BRAND_KNM END,'] ',
-              G.GOODS_NM,
-              IFNULL(G.GOODS_NUM,''))                         AS TITLE
-     , IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY AS PRICE_PC     /*즉시할인이적용된가격*/
-     , IFNULL(GBP.MO_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY AS PRICE_MOBILE /*즉시할인이적용된가격*/
-     , G.LIST_PRICE                                           AS NORMAL_PRICE /*정상가*/
-     , G.GOODS_STAT
-     , CONCAT('https://www.style24.com/goods/detail/form?goodsCd=',
-              G.GOODS_CD)                                     AS LINK
-     , NULL                                                   AS MOBILE_LINK  /*PC URL과 다를 경우. 동일함으로 NULL로 처리*/
-     , GI.IMAGE_LINK
-     , GAI.ADD_IMAGE_LINK /*이미지4개까지(|로 구분)*/
-     , SUBSTRING_INDEX(I.ITEMKIND_NM,'>',1)                   AS CATEGORY_NAME1
+-- 네이버 전체EP 생성 (3분 3초)
+TRUNCATE TABLE TB_EP_NAVER;
+INSERT INTO TB_EP_NAVER (
+       GB
+     , ID
+     , TITLE
+     , PRICE_PC
+     , PRICE_MOBILE
+     , NORMAL_PRICE
+     , LINK
+     , MOBILE_LINK
+     , IMAGE_LINK
+     , ADD_IMAGE_LINK
+     , CATEGORY_NAME1
+     , CATEGORY_NAME2
+     , CATEGORY_NAME3
+     , CATEGORY_NAME4
+     , NAVER_CATEGORY
+     , GOODS_GB_NM
+     , IMPORT_FLAG
+     , PARALLEL_IMPORT
+     , ORDER_MADE
+     , PRODUCT_FLAG
+     , ADULT
+     , MANUFACTURE_DEFINE_NUMBER
+     , BRAND
+     , MAKER
+     , ORIGIN
+     , CARD_EVENT
+     , EVENT_WORDS
+     , COUPON
+     , PARTNER_COUPON_DOWNLOAD
+     , INTEREST_FREE_EVENT
+     , POINT
+     , SEARCH_TAG
+     , MINIMUM_PURCHASE_QUANTITY
+     , REVIEW_COUNT
+     , SHIPPING
+     , AGE_GROUP
+     , GENDER
+     , GOODS_STAT
+     , SELF_MALL_YN
+     , SELL_STDT
+     , SELL_EDDT
+     , UPD_GB
+     , UPDATE_TIME
+)
+SELECT 'LAST'                                                 AS GB                       /*구분(PREV:이전, CURR:현재)*/
+     , G.GOODS_CD                                             AS ID                       /*상품ID*/
+     , SUBSTRING(CONCAT('[',CASE WHEN B.DISP_NM_LANG = 'EN' THEN B.BRAND_ENM ELSE B.BRAND_KNM END,'] ',
+                        G.GOODS_NM,
+                        IFNULL(G.GOODS_NUM,'')),1,100)        AS TITLE                    /*상품명*/
+     , IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY AS PRICE_PC                 /*즉시할인이적용된가격*/
+     , IFNULL(GBP.MO_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY AS PRICE_MOBILE             /*즉시할인이적용된가격*/
+     , G.LIST_PRICE                                           AS NORMAL_PRICE             /*정상가*/
+     , CONCAT('https://www.style24.com/goods/detail/form?goodsCd=',G.GOODS_CD)                      AS LINK                     /*PC상세URL*/
+     , CONCAT('https://www.style24.com/goods/detail/form?goodsCd=',G.GOODS_CD)                      AS MOBILE_LINK              /*모바일상세URL*/
+     , GI.IMAGE_LINK                                                                      /*이미지URL*/
+     , GAI.ADD_IMAGE_LINK                                                                 /*추가이미지URL(4개까지. |로 구분)*/
+     , SUBSTRING_INDEX(I.ITEMKIND_NM,'>',1)                   AS CATEGORY_NAME1           /*카테고리명1*/
      , CASE WHEN SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',1),'>',-1) = SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',2),'>',-1) THEN
                 NULL
             ELSE
                 SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',2),'>',-1)
-       END                                                    AS CATEGORY_NAME2
+       END                                                    AS CATEGORY_NAME2           /*카테고리명2*/
      , CASE WHEN SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',2),'>',-1) = SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',3),'>',-1) THEN
                 NULL
             ELSE
                 SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',3),'>',-1)
-       END                                                    AS CATEGORY_NAME3
+       END                                                    AS CATEGORY_NAME3           /*카테고리명3*/
      , CASE WHEN SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',3),'>',-1) = SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',4),'>',-1) THEN
                 NULL
             ELSE
                 SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',4),'>',-1)
-       END                                                    AS CATEGORY_NAME4
---      , NULL                                                   AS NAVER_PRODUCT_ID
-     , FN_GET_CODE_NM('G073',G.GOODS_GB)                      AS CONDITION1
-     , G.FOREIGN_BUY_YN                                       AS IMPORT_FLAG     /*해외구매대행여부*/
-     , G.PARALLEL_IMPORT_YN                                   AS PARALLEL_IMPORT /*병행수입여부*/
-     , G.ORDER_MADE_YN                                        AS ORDER_MADE      /*주문제작상품여부*/
-     , IF(GRS.GOODS_CD IS NULL,NULL,'예약판매')                  AS PRODUCT_FLAG    /*예약판매*/
-     , G.ADULT_YN                                             AS ADULT           /*성인여부*/
-     , G.GOODS_NUM                                            AS MANUFACTURE_DEFINE_NUMBER /*제조번호*/
-     , IF(B.DISP_NM_LANG = 'EN',B.BRAND_ENM,B.BRAND_KNM)      AS BRAND           /*브랜드명*/
---      , (SELECT NI_CONTENT
---         FROM   TB_GOODS_NOTI_INFO
---         WHERE  GOODS_CD = G.GOODS_CD
---         AND    NI_ITEM_CD = 'G005_005'
---         LIMIT 1)                                              AS MAKER            /*제조사*/
-     , IFNULL(FN_GET_CODE_NM('G076',G.ORIGIN_CD),G.ORIGIN_CD) AS ORIGIN          /*원산지*/
-     , CE.CARD_EVENT      /*카드행사. 카드즉시할인 등록된 기준으로 적용. 카드명^카드적용가 형식*/
-     , G.GOODS_TNM                                            AS EVENT_WORDS     /*상품셀링문구*/
-     , TEC.COUPON
-     , IFE.INTEREST_FREE_EVENT /*무이자이벤트. 판매가 > 무이자할부 최소구매금액 기준 초과 시 노출. 카드명^개월수~개월수|카드명^개월수~개월수... 형식으로 노출*/
+       END                                                    AS CATEGORY_NAME4            /*카테고리명4*/
+     , EC.EP_CATE_CD                                          AS NAVER_CATEGORY            /*네이버카테고리*/
+     , CC1.CD_NM                                              AS GOODS_GB_NM               /*상품구분명*/
+     , G.FOREIGN_BUY_YN                                       AS IMPORT_FLAG               /*해외구매대행여부*/
+     , G.PARALLEL_IMPORT_YN                                   AS PARALLEL_IMPORT           /*병행수입여부*/
+     , G.ORDER_MADE_YN                                        AS ORDER_MADE                /*주문제작상품여부*/
+     , IF(GRS.GOODS_CD IS NULL,NULL,'예약판매')               AS PRODUCT_FLAG              /*예약판매*/
+     , G.ADULT_YN                                             AS ADULT                     /*성인여부*/
+     , G.GOODS_NUM                                            AS MANUFACTURE_DEFINE_NUMBER /*제품코드*/
+     , IF(B.DISP_NM_LANG = 'EN',B.BRAND_ENM,B.BRAND_KNM)      AS BRAND                     /*브랜드명*/
+     , SUBSTRING(GNI.NI_CONTENT,1,50)                         AS MAKER                     /*제조사*/
+     , CC2.CD_NM                                              AS ORIGIN                    /*원산지*/
+     , CE.CARD_EVENT                                                                       /*카드행사*/
+     , G.GOODS_TNM                                            AS EVENT_WORDS               /*상품셀링문구*/
+     , TEC.COUPON                                                                          /*쿠폰*/
+     , IF(TEC.COUPON IS NULL,NULL,'Y')                        AS PARTNER_COUPON_DOWNLOAD   /*쿠폰다운로드여부*/
+     , IFE.INTEREST_FREE_EVENT                                                             /*무이자행사*/
      , CONCAT('스타일포인트','^',
               CAST(IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY * G.PNT_PRATE AS SIGNED INTEGER)
-             )                                                AS PNT             /*포인트. 스타일포인트^포인트금액 형식으로 표기*/
-     , CONCAT(IFNULL(G.GOODS_SNM,''),
-              CASE WHEN LENGTH(IFNULL(G.GOODS_SNM1,'')) = 0 THEN
-                       ''
-                   ELSE
-                       '|'
-              END,
-              IFNULL(G.GOODS_SNM1,'')
-             )                                                AS SEARCH_TAG
+             )                                                AS POINT                     /*포인트*/
+     , SUBSTRING(CONCAT(IFNULL(G.GOODS_SNM,''),
+                        CASE WHEN LENGTH(IFNULL(G.GOODS_SNM1,'')) = 0 THEN
+                                 ''
+                             ELSE
+                                 '|'
+                        END,
+                        IFNULL(G.GOODS_SNM1,'')
+                       ),1,100)                               AS SEARCH_TAG                /*검색태그*/
      , CASE WHEN G.MIN_ORD_QTY > 0 THEN
                 G.MIN_ORD_QTY
             ELSE
-                ''
-       END                                                    AS MINIMUM_PURCHASE_QUANTITY
-     , IFNULL(GS.REVIEW_REG_CNT,0)                            AS REVIEW_REG_CNT
+                NULL
+       END                                                    AS MINIMUM_PURCHASE_QUANTITY /*최소구매금액*/
+     , IFNULL(GS.REVIEW_REG_CNT,0)                            AS REVIEW_COUNT              /*상품평수*/
      , IFNULL(CASE WHEN DFP.DELV_FEE_CRITE = 'G078_20' /*무료*/ THEN
                        0
                    ELSE /*조건부무료 또는 유료*/
@@ -287,59 +329,84 @@ SELECT G.GOODS_CD                                             AS ID
                             ELSE
                                 DFP.DELV_FEE
                        END
-              END,0)                                          AS SHIPPING
+              END,0)                                          AS SHIPPING                  /*배송료*/
      , CASE WHEN SUBSTRING(I.ITEMKIND_CD,1,2) = '07' THEN '유아'
             WHEN SUBSTRING(I.ITEMKIND_CD,1,2) IN ('08','09','10') THEN '아동'
             WHEN SUBSTRING(I.ITEMKIND_CD,1,2) IN ('11','12','13') THEN '청소년'
             ELSE '성인'
-       END                                                    AS AGE_GROUP
+       END                                                    AS AGE_GROUP                 /*나이*/
      , CASE WHEN G.SEX_GB = 'G007_F' THEN '여성'
             WHEN G.SEX_GB = 'G007_M' THEN '남성'
             ELSE '남여공용'
-       END                                                    AS GENDER
-     , 'I'                                                    AS CLASS /*전체색인:I, 부분색인:전체색인 데이터랑 비교해서 없으면 I, 있는데 변경되었으면 U, 품절: D)*/
-     , DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%S')                 AS UPDATE_TIME
+       END                                                    AS GENDER                    /*성별*/
+     , G.GOODS_STAT
+     , G.SELF_MALL_YN
+     , G.SELL_STDT
+     , G.SELL_EDDT
+     , 'I'                                    AS UPD_GB
+     , DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%S') AS UPDATE_TIME /*변경일시*/
 FROM   TB_GOODS G
 INNER JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
 INNER JOIN TB_ITEMKIND I ON G.ITEMKIND_CD = I.ITEMKIND_CD
-INNER JOIN TB_DELV_FEE_POLICY DFP ON G.DELV_FEE_CD = DFP.DELV_FEE_CD
+INNER JOIN TB_DELV_FEE_POLICY DFP ON G.DELV_FEE_CD = DFP.DELV_FEE_CD 
+                                 AND G.SUPPLY_COMP_CD = DFP.SUPPLY_COMP_CD
+INNER JOIN TB_EP_GOODS_IMG GI ON G.GOODS_CD = GI.GOODS_CD
 LEFT OUTER JOIN TB_GOODS_BENEFIT_PRICE GBP ON G.GOODS_CD = GBP.GOODS_CD
 LEFT OUTER JOIN TB_GOODS_SUMMARY GS ON G.GOODS_CD = GS.GOODS_CD
-LEFT OUTER JOIN TMP_EP_GOODS_IMG GI ON G.GOODS_CD = GI.GOODS_CD
-LEFT OUTER JOIN TMP_EP_GOODS_ADD_IMG GAI ON G.GOODS_CD = GAI.GOODS_CD
+LEFT OUTER JOIN TB_EP_GOODS_ADD_IMG GAI ON G.GOODS_CD = GAI.GOODS_CD
+LEFT OUTER JOIN (
+                 SELECT ITEMKIND_CD
+                      , MIN(EP_CATE_CD) AS EP_CATE_CD
+                 FROM   TB_EP_CATE
+                 WHERE  EP_GB = '10' /*네이버*/
+                 AND    USE_YN = 'Y'
+                 GROUP  BY ITEMKIND_CD
+                ) EC ON G.ITEMKIND_CD = EC.ITEMKIND_CD
 LEFT OUTER JOIN TB_GOODS_RES_SELL GRS ON G.GOODS_CD = GRS.GOODS_CD
                                      AND GRS.DELV_RES_DT >= NOW()
                                      AND GRS.USE_YN = 'Y'
-LEFT OUTER JOIN TMP_EP_CARD_EVENT CE ON G.GOODS_CD = CE.GOODS_CD
-LEFT OUTER JOIN TMP_EP_COUPON TEC ON G.GOODS_CD = TEC.GOODS_CD
-LEFT OUTER JOIN TMP_EP_INTEREST_FREE_EVENT IFE ON G.GOODS_CD = IFE.GOODS_CD
-WHERE  G.GOODS_STAT = 'G008_90' /*승인완료상품*/
+LEFT OUTER JOIN TB_EP_CARD_EVENT CE ON G.GOODS_CD = CE.GOODS_CD
+LEFT OUTER JOIN TB_EP_COUPON TEC ON G.GOODS_CD = TEC.GOODS_CD
+LEFT OUTER JOIN TB_EP_INTEREST_FREE_EVENT IFE ON G.GOODS_CD = IFE.GOODS_CD
+LEFT OUTER JOIN TB_GOODS_NOTI_INFO GNI ON G.GOODS_CD = GNI.GOODS_CD
+                                      AND GNI.NI_ITEM_CD = 'G005_005' /*제조사*/
+LEFT OUTER JOIN TB_COMMON_CODE CC1 ON G.GOODS_GB = CC1.CD
+                                 AND CC1.CD_GB = 'G073'
+LEFT OUTER JOIN TB_COMMON_CODE CC2 ON G.ORIGIN_CD = CC2.CD
+                                  AND CC2.CD_GB = 'G076'
+WHERE  1 = 1
+AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
 AND    G.SELF_MALL_YN = 'Y' /*몰노출상품*/
 AND    G.SELL_STDT <= NOW() /*유효한 판매기간*/
 AND    G.SELL_EDDT >= NOW() /*유효한 판매기간*/
 AND    G.ADULT_YN = 'N' /*성인상품아닌넘만*/
+AND    NOT EXISTS (SELECT 1
+                   FROM   TB_GOODS_EP_SKIP
+                   WHERE  GOODS_CD = G.GOODS_CD
+                   AND    NOW() BETWEEN APPLY_STDT AND APPLY_EDDT
+                  )
 ;
-SELECT COUNT(*) FROM TMP_EP_NAVER;
 
--- SELECT ID, COUNT(*) AS CNT
--- FROM   TMP_EP_NAVER Z
--- GROUP  BY ID
--- HAVING COUNT(*) > 1
--- ;
--- 
--- SELECT *
--- FROM   TMP_EP_NAVER
--- WHERE  ID IN (
--- 'A91M-SH121A',
--- 'F99U-TS971B',
--- 'F75A-MM92ZA',
--- 'B195Z5210P',
--- 'F75U-TS94ZA',
--- 'F71M-CP02ZA',
--- 'O174TS001P',
--- 'F75M-DP942B',
--- 'F71U-TS18ZA',
--- 'F65M-DP909A'
--- )
--- ORDER  BY ID
--- ;
+
+-- 네이버요약EP 생성
+
+
+-- 네이버판매지수 조회
+SELECT DATE_FORMAT(DATE_ADD(CURRENT_DATE(),INTERVAL -1 DAY),'%Y-%m-%d') AS DT          /*일자*/
+     , OD.GOODS_CD                                                      AS ID          /*상품ID*/
+     , SUM(OD.ORD_QTY - OD.CNCL_RTN_QTY)                                AS SALE_COUNT  /*판매수량*/
+     , SUM(OD.ORD_AMT - OD.CNCL_RTN_AMT)                                AS SALE_PRICE  /*판매금액*/
+     , COUNT(DISTINCT OD.ORD_NO)                                        AS ORDER_COUNT /*주문수량*/
+FROM   TB_ORDER O
+     , TB_ORDER_DETAIL OD
+WHERE  O.ORD_NO = OD.ORD_NO
+AND    O.PAY_DT > DATE_ADD(CURRENT_DATE(), INTERVAL -2 DAY)
+AND    O.PAY_DT < CURRENT_DATE()
+AND    OD.ORD_DTL_STAT IN ('G013_20','G013_30','G013_35','G013_40','G013_50','G013_55','G013_60','G013_70')
+AND    OD.AF_LINK_CD IN (SELECT AF_LINK_CD
+                         FROM   TB_AF_LINK
+                         WHERE  AF_CHANNEL = 'G053_02' /*네이버*/
+                         AND    USE_YN = 'Y'
+                        )
+GROUP  BY DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY),'%Y-%m-%d'), OD.GOODS_CD
+;

+ 0 - 343
산출물/4.구축/데이터처리/네이버EP생성_20210614.sql

@@ -1,343 +0,0 @@
-SET GROUP_CONCAT_MAX_LEN = 150000;
-
--- 상품 이미지 정보 생성 (~30초. 1,645,082건)
-DROP TABLE TMP_EP_GOODS_IMG;
-CREATE TABLE TMP_EP_GOODS_IMG AS
-SELECT G.GOODS_CD
-     , MIN(CONCAT('https://image.istyle24.com/Upload/ProductImage/',GI.SYS_IMG_NM)) AS IMAGE_LINK
-FROM   TB_GOODS G
-     , TB_GOODS_IMG GI
-WHERE  G.GOODS_CD = GI.GOODS_CD
-AND    IF(G.SELF_GOODS_YN = 'N','XX',G.MAIN_COLOR_CD) = GI.COLOR_CD
-AND    GI.DEFAULT_IMG_YN = 'Y'
--- AND    G.GOODS_CD = 'A91M-SH121A'
-GROUP  BY G.GOODS_CD
-;
-SELECT COUNT(*) FROM TMP_EP_GOODS_IMG;
-
--- 상품 추가이미지 정보 생성 (~16초. 674,937건)
-DROP TABLE TMP_EP_GOODS_ADD_IMG;
-CREATE TABLE TMP_EP_GOODS_ADD_IMG AS
-SELECT GOODS_CD
-     , GROUP_CONCAT(CONCAT('https://image.istyle24.com/Upload/ProductImage/',SYS_IMG_NM) SEPARATOR '|') AS ADD_IMAGE_LINK
-FROM   (SELECT DISTINCT
-               GOODS_CD
-             , SYS_IMG_NM
-        FROM   TB_GOODS_IMG
-        WHERE  DEFAULT_IMG_YN = 'N'
-        GROUP  BY GOODS_CD, SYS_IMG_NM
-        HAVING COUNT(*) <= 4
-       ) Z
-GROUP  BY GOODS_CD
-;
-SELECT COUNT(*) FROM TMP_EP_GOODS_ADD_IMG;
-
--- 카드이벤트 정보 생성 (~1초, 541건)
-DROP TABLE TMP_EP_CARD_EVENT;
--- CREATE TABLE TMP_EP_CARD_EVENT AS
--- SELECT CPC.MIN_PAY_AMT
---      , GROUP_CONCAT(DISTINCT
---                     CONCAT(FN_GET_CODE_NM('G941',CPT.PRMT_TARGET_CD),'^',
---                            CPC.MIN_NO_ITRT,'~',CPC.MAX_NO_ITRT)
---                     SEPARATOR '|') AS CARD_EVENT
--- FROM   TB_CARD_PROMOTION CP
---      , TB_CARD_PROMOTION_CONDITION CPC
---      , TB_CARD_PROMOTION_TARGET CPT
--- WHERE  CP.CARD_PRMT_SQ = CPC.CARD_PRMT_SQ
--- AND    CPC.CARD_PRMT_CDT_SQ = CPT.CARD_PRMT_CDT_SQ
--- AND    CP.PRMT_GB = 'B' /*무이자할부*/
--- AND    CP.PRMT_STD <= DATE_FORMAT(CURRENT_DATE(),'%Y%m%d')
--- AND    CP.PRMT_EDD >= DATE_FORMAT(CURRENT_DATE(),'%Y%m%d')
--- AND    CP.DISP_YN = 'Y'
--- GROUP  BY CPC.MIN_PAY_AMT
--- ;
-CREATE TABLE TMP_EP_CARD_EVENT AS
-SELECT G.GOODS_CD
-     , GROUP_CONCAT(DISTINCT
-                    CONCAT(FN_GET_CODE_NM('G941',CPT.PRMT_TARGET_CD),'^',
-                           (G.CURR_PRICE
-                            -
-                            CASE WHEN CPC.DC_WAY = 'G240_10' /*정액할인*/ THEN CPC.DC_VAL
-                                 ELSE /*정율할인*/ CAST(G.CURR_PRICE * CPC.DC_VAL / 100 AS SIGNED INTEGER)
-                            END))
-                    SEPARATOR '|') AS CARD_EVENT
-FROM   TB_CARD_PROMOTION CP
-     , TB_CARD_PROMOTION_CONDITION CPC
-     , TB_CARD_PROMOTION_TARGET CPT
-     , (
-        SELECT G.GOODS_CD
-             , IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY AS CURR_PRICE
-        FROM   TB_GOODS G
-             , TB_GOODS_BENEFIT_PRICE GBP
-        WHERE  G.GOODS_CD = GBP.GOODS_CD
-       ) G
-WHERE  CP.CARD_PRMT_SQ = CPC.CARD_PRMT_SQ
-AND    CPC.CARD_PRMT_CDT_SQ = CPT.CARD_PRMT_CDT_SQ
-AND    CP.PRMT_GB = 'A' /*카드할인*/
-AND    CP.DC_GB = '1' /*즉시할인*/
-AND    CP.PRMT_STD <= DATE_FORMAT(CURRENT_DATE(),'%Y%m%d')
-AND    CP.PRMT_EDD >= DATE_FORMAT(CURRENT_DATE(),'%Y%m%d')
-AND    CP.DISP_YN = 'Y'
-AND    CPC.MIN_PAY_AMT < G.CURR_PRICE
-GROUP  BY G.GOODS_CD
-;
-SELECT COUNT(*) FROM TMP_EP_CARD_EVENT;
-
--- 쿠폰 정보 생성 (~1초. 4건)
-DROP TABLE TMP_EP_COUPON;
-CREATE TABLE TMP_EP_COUPON AS
-SELECT GOODS_CD
-     , CONCAT(IFNULL(NORMAL_CPN,''),'^',IFNULL(AFLINK_CPN,'')) AS COUPON
-FROM   (
-        SELECT CR.REF_VAL            AS GOODS_CD
-             , CASE WHEN IFNULL((SELECT COUNT(*)
-                                 FROM   TB_COUPON_AF_CHANNEL
-                                 WHERE  CPN_ID = C.CPN_ID
-                                ),0) = 0 THEN
-                        CONCAT(C.DC_PVAL,CASE WHEN C.DC_WAY = 'G240_10' THEN '원' ELSE '%' END)
-                    ELSE
-                        NULL
-               END                   AS NORMAL_CPN /*일반쿠폰*/
-             , CASE WHEN IFNULL((SELECT COUNT(*)
-                                 FROM   TB_COUPON_AF_CHANNEL
-                                 WHERE  CPN_ID = C.CPN_ID
-                                ),0) > 0 AND C.DC_WAY = 'G240_11' THEN
-                        C.DC_PVAL
-                    ELSE
-                        NULL
-               END                   AS AFLINK_CPN /*제휴쿠폰*/
-             , CASE WHEN IFNULL((SELECT COUNT(*)
-                                 FROM   TB_COUPON_AF_CHANNEL
-                                 WHERE  CPN_ID = C.CPN_ID
-                                ),0) = 0 THEN
-                        CASE WHEN C.DC_WAY = 'G240_10' THEN C.DC_PVAL
-                             ELSE IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY * C.DC_PVAL / 100
-                        END
-                    ELSE
-                        0
-               END                   AS NCPN_DC_AMT /*일반쿠폰할인금액*/
-             , CASE WHEN IFNULL((SELECT COUNT(*)
-                                 FROM   TB_COUPON_AF_CHANNEL
-                                 WHERE  CPN_ID = C.CPN_ID
-                                ),0) > 0 AND C.DC_WAY = 'G240_11' THEN
-                        IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY * C.DC_PVAL / 100
-                    ELSE
-                        0
-               END                   AS ACPN_DC_AMT /*제휴쿠폰할인금액*/
-             , RANK() OVER(PARTITION BY CR.REF_VAL
-                           ORDER BY (CASE WHEN IFNULL((SELECT COUNT(*)
-                                                       FROM   TB_COUPON_AF_CHANNEL
-                                                       WHERE  CPN_ID = C.CPN_ID
-                                                      ),0) = 0 THEN
-                                              CASE WHEN C.DC_WAY = 'G240_10' THEN C.DC_PVAL
-                                                   ELSE IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY * C.DC_PVAL / 100
-                                              END
-                                          ELSE
-                                              0
-                                     END) DESC,
-                                    (CASE WHEN IFNULL((SELECT COUNT(*)
-                                                       FROM   TB_COUPON_AF_CHANNEL
-                                                       WHERE  CPN_ID = C.CPN_ID
-                                                      ),0) > 0 AND C.DC_WAY = 'G240_11' THEN
-                                              IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY * C.DC_PVAL / 100
-                                          ELSE
-                                              0
-                                     END) DESC
-                          )          AS RK
-        FROM   TB_COUPON C
-        INNER JOIN TB_COUPON_REFVAL CR ON C.CPN_ID = CR.CPN_ID
-        INNER JOIN TB_GOODS G ON CR.REF_VAL = G.GOODS_CD
-        LEFT OUTER JOIN TB_GOODS_BENEFIT_PRICE GBP ON G.GOODS_CD = GBP.GOODS_CD
-        WHERE  C.SITE_CD = 'G000_10'
-        AND    C.CPN_STAT = 'G232_11' /*진행쿠폰*/
-        AND    C.CPN_TYPE IN ('G230_11','G230_20') /*상품쿠폰,주문서쿠폰*/
-        AND    (
-                (C.PD_GB = 'D' AND NOW() < DATE_ADD(NOW(), INTERVAL C.AVAIL_DAYS DAY))
-                OR
-                (C.PD_GB = 'P' AND NOW() BETWEEN C.AVAIL_STDT AND C.AVAIL_EDDT)
-               )
-        AND    C.APPLY_SCOPE = 'I' /*개별쿠폰*/
-        AND    CR.CPN_TYPE IN ('G230_11','G230_20') /*상품쿠폰,주문서쿠폰*/
-        AND    CR.CPN_TARGET = 'G260_10' /*상품쿠폰*/
-        AND    CR.DEL_YN = 'N'
-        AND    NOT EXISTS (SELECT 1
-                           FROM   TB_COUPON_REFVAL
-                           WHERE  CPN_ID = CR.CPN_ID
-                           AND    CPN_TARGET = 'G260_14' /*제외상품*/
-                           AND    REF_VAL = CR.REF_VAL
-                           AND    DEL_YN = 'N'
-                          )
-       ) Z
-WHERE  1 = 1
--- AND    GOODS_CD = 'M211BLB35P'
-AND    RK = 1
-;
-SELECT COUNT(*) FROM TMP_EP_COUPON;
-
--- 무이자이벤트 정보 생성 (~1초. 541건)
-DROP TABLE TMP_EP_INTEREST_FREE_EVENT;
-CREATE TABLE TMP_EP_INTEREST_FREE_EVENT AS
-SELECT G.GOODS_CD
-     , GROUP_CONCAT(DISTINCT
-                    CONCAT(FN_GET_CODE_NM('G941',CPT.PRMT_TARGET_CD),'^',
-                           CPC.MIN_NO_ITRT,'~',CPC.MAX_NO_ITRT)
-                    SEPARATOR '|') AS INTEREST_FREE_EVENT /*무이자이벤트. 판매가 > 무이자할부 최소구매금액 기준 초과 시 노출. 카드명^개월수~개월수|카드명^개월수~개월수... 형식으로 노출*/
-FROM   TB_CARD_PROMOTION CP
-     , TB_CARD_PROMOTION_CONDITION CPC
-     , TB_CARD_PROMOTION_TARGET CPT
-     , (
-        SELECT G.GOODS_CD
-             , IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY AS CURR_PRICE
-        FROM   TB_GOODS G
-             , TB_GOODS_BENEFIT_PRICE GBP
-        WHERE  G.GOODS_CD = GBP.GOODS_CD
-       ) G
-WHERE  CP.CARD_PRMT_SQ = CPC.CARD_PRMT_SQ
-AND    CPC.CARD_PRMT_CDT_SQ = CPT.CARD_PRMT_CDT_SQ
-AND    CP.PRMT_GB = 'B' /*무이자할부*/
-AND    CP.PRMT_STD <= DATE_FORMAT(CURRENT_DATE(),'%Y%m%d')
-AND    CP.PRMT_EDD >= DATE_FORMAT(CURRENT_DATE(),'%Y%m%d')
-AND    CP.DISP_YN = 'Y'
-AND    CPC.MIN_PAY_AMT < G.CURR_PRICE
-GROUP  BY G.GOODS_CD
-;
-SELECT COUNT(*) FROM TMP_EP_INTEREST_FREE_EVENT;
-
--- EP네이버 생성 (~1분 40초. 1,025,330건)
-DROP TABLE TMP_EP_NAVER;
-CREATE TABLE TMP_EP_NAVER AS
-SELECT G.GOODS_CD                                             AS ID
-     , CONCAT('[',CASE WHEN B.DISP_NM_LANG = 'EN' THEN B.BRAND_ENM ELSE B.BRAND_KNM END,'] ',
-              G.GOODS_NM,
-              IFNULL(G.GOODS_NUM,''))                         AS TITLE
-     , IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY AS PRICE_PC     /*즉시할인이적용된가격*/
-     , IFNULL(GBP.MO_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY AS PRICE_MOBILE /*즉시할인이적용된가격*/
-     , G.LIST_PRICE                                           AS NORMAL_PRICE /*정상가*/
-     , G.GOODS_STAT
-     , CONCAT('https://www.style24.com/goods/detail/form?goodsCd=',
-              G.GOODS_CD)                                     AS LINK
-     , NULL                                                   AS MOBILE_LINK  /*PC URL과 다를 경우. 동일함으로 NULL로 처리*/
-     , GI.IMAGE_LINK
-     , GAI.ADD_IMAGE_LINK /*이미지4개까지(|로 구분)*/
-     , SUBSTRING_INDEX(I.ITEMKIND_NM,'>',1)                   AS CATEGORY_NAME1
-     , CASE WHEN SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',1),'>',-1) = SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',2),'>',-1) THEN
-                NULL
-            ELSE
-                SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',2),'>',-1)
-       END                                                    AS CATEGORY_NAME2
-     , CASE WHEN SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',2),'>',-1) = SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',3),'>',-1) THEN
-                NULL
-            ELSE
-                SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',3),'>',-1)
-       END                                                    AS CATEGORY_NAME3
-     , CASE WHEN SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',3),'>',-1) = SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',4),'>',-1) THEN
-                NULL
-            ELSE
-                SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',4),'>',-1)
-       END                                                    AS CATEGORY_NAME4
---      , NULL                                                   AS NAVER_PRODUCT_ID
---     , FN_GET_CODE_NM('G073',G.GOODS_GB)                      AS CONDITION1
-     , CC1.CD_NM                                              AS CONDITION1
-     , G.FOREIGN_BUY_YN                                       AS IMPORT_FLAG     /*해외구매대행여부*/
-     , G.PARALLEL_IMPORT_YN                                   AS PARALLEL_IMPORT /*병행수입여부*/
-     , G.ORDER_MADE_YN                                        AS ORDER_MADE      /*주문제작상품여부*/
-     , IF(GRS.GOODS_CD IS NULL,NULL,'예약판매')                  AS PRODUCT_FLAG    /*예약판매*/
-     , G.ADULT_YN                                             AS ADULT           /*성인여부*/
-     , G.GOODS_NUM                                            AS MANUFACTURE_DEFINE_NUMBER /*제조번호*/
-     , IF(B.DISP_NM_LANG = 'EN',B.BRAND_ENM,B.BRAND_KNM)      AS BRAND           /*브랜드명*/
---      , (SELECT NI_CONTENT
---         FROM   TB_GOODS_NOTI_INFO
---         WHERE  GOODS_CD = G.GOODS_CD
---         AND    NI_ITEM_CD = 'G005_005'
---         LIMIT 1)                                              AS MAKER            /*제조사*/
---      , IFNULL(FN_GET_CODE_NM('G076',G.ORIGIN_CD),G.ORIGIN_CD) AS ORIGIN          /*원산지*/
-     , CC2.CD_NM                                              AS ORIGIN             /*원산지*/
-     , CE.CARD_EVENT      /*카드행사. 카드즉시할인 등록된 기준으로 적용. 카드명^카드적용가 형식*/
-     , G.GOODS_TNM                                            AS EVENT_WORDS     /*상품셀링문구*/
-     , TEC.COUPON
-     , IFE.INTEREST_FREE_EVENT /*무이자이벤트. 판매가 > 무이자할부 최소구매금액 기준 초과 시 노출. 카드명^개월수~개월수|카드명^개월수~개월수... 형식으로 노출*/
-     , CONCAT('스타일포인트','^',
-              CAST(IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY * G.PNT_PRATE AS SIGNED INTEGER)
-             )                                                AS PNT             /*포인트. 스타일포인트^포인트금액 형식으로 표기*/
-     , CONCAT(IFNULL(G.GOODS_SNM,''),
-              CASE WHEN LENGTH(IFNULL(G.GOODS_SNM1,'')) = 0 THEN
-                       ''
-                   ELSE
-                       '|'
-              END,
-              IFNULL(G.GOODS_SNM1,'')
-             )                                                AS SEARCH_TAG
-     , CASE WHEN G.MIN_ORD_QTY > 0 THEN
-                G.MIN_ORD_QTY
-            ELSE
-                ''
-       END                                                    AS MINIMUM_PURCHASE_QUANTITY
-     , IFNULL(GS.REVIEW_REG_CNT,0)                            AS REVIEW_REG_CNT
-     , IFNULL(CASE WHEN DFP.DELV_FEE_CRITE = 'G078_20' /*무료*/ THEN
-                       0
-                   ELSE /*조건부무료 또는 유료*/
-                       CASE WHEN DFP.MIN_ORD_AMT <= IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY THEN
-                                0
-                            ELSE
-                                DFP.DELV_FEE
-                       END
-              END,0)                                          AS SHIPPING
-     , CASE WHEN SUBSTRING(I.ITEMKIND_CD,1,2) = '07' THEN '유아'
-            WHEN SUBSTRING(I.ITEMKIND_CD,1,2) IN ('08','09','10') THEN '아동'
-            WHEN SUBSTRING(I.ITEMKIND_CD,1,2) IN ('11','12','13') THEN '청소년'
-            ELSE '성인'
-       END                                                    AS AGE_GROUP
-     , CASE WHEN G.SEX_GB = 'G007_F' THEN '여성'
-            WHEN G.SEX_GB = 'G007_M' THEN '남성'
-            ELSE '남여공용'
-       END                                                    AS GENDER
-     , 'I'                                                    AS CLASS /*전체색인:I, 부분색인:전체색인 데이터랑 비교해서 없으면 I, 있는데 변경되었으면 U, 품절: D)*/
-     , DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%S')                 AS UPDATE_TIME
-FROM   TB_GOODS G
-INNER JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
-INNER JOIN TB_ITEMKIND I ON G.ITEMKIND_CD = I.ITEMKIND_CD
-INNER JOIN TB_DELV_FEE_POLICY DFP ON G.DELV_FEE_CD = DFP.DELV_FEE_CD
-LEFT OUTER JOIN TB_GOODS_BENEFIT_PRICE GBP ON G.GOODS_CD = GBP.GOODS_CD
-LEFT OUTER JOIN TB_GOODS_SUMMARY GS ON G.GOODS_CD = GS.GOODS_CD
-LEFT OUTER JOIN TMP_EP_GOODS_IMG GI ON G.GOODS_CD = GI.GOODS_CD
-LEFT OUTER JOIN TMP_EP_GOODS_ADD_IMG GAI ON G.GOODS_CD = GAI.GOODS_CD
-LEFT OUTER JOIN TB_GOODS_RES_SELL GRS ON G.GOODS_CD = GRS.GOODS_CD
-                                     AND GRS.DELV_RES_DT >= NOW()
-                                     AND GRS.USE_YN = 'Y'
-LEFT OUTER JOIN TMP_EP_CARD_EVENT CE ON G.GOODS_CD = CE.GOODS_CD
-LEFT OUTER JOIN TMP_EP_COUPON TEC ON G.GOODS_CD = TEC.GOODS_CD
-LEFT OUTER JOIN TMP_EP_INTEREST_FREE_EVENT IFE ON G.GOODS_CD = IFE.GOODS_CD
-LEFT OUTER JOIN TB_COMMON_CODE CC1 ON G.GOODS_GB = CC1.CD
-                                 AND CC1.CD_GB = 'G073'
-LEFT OUTER JOIN TB_COMMON_CODE CC2 ON G.ORIGIN_CD = CC2.CD
-                                  AND CC2.CD_GB = 'G076'
-WHERE  G.GOODS_STAT = 'G008_90' /*승인완료상품*/
-AND    G.SELF_MALL_YN = 'Y' /*몰노출상품*/
-AND    G.SELL_STDT <= NOW() /*유효한 판매기간*/
-AND    G.SELL_EDDT >= NOW() /*유효한 판매기간*/
-AND    G.ADULT_YN = 'N' /*성인상품아닌넘만*/
-;
-SELECT COUNT(*) FROM TMP_EP_NAVER;
-
--- SELECT ID, COUNT(*) AS CNT
--- FROM   TMP_EP_NAVER Z
--- GROUP  BY ID
--- HAVING COUNT(*) > 1
--- ;
--- 
--- SELECT *
--- FROM   TMP_EP_NAVER
--- WHERE  ID IN (
--- 'A91M-SH121A',
--- 'F99U-TS971B',
--- 'F75A-MM92ZA',
--- 'B195Z5210P',
--- 'F75U-TS94ZA',
--- 'F71M-CP02ZA',
--- 'O174TS001P',
--- 'F75M-DP942B',
--- 'F71U-TS18ZA',
--- 'F65M-DP909A'
--- )
--- ORDER  BY ID
--- ;

+ 0 - 934
산출물/4.구축/데이터처리/네이버EP생성_20210614_2.sql

@@ -1,934 +0,0 @@
-################################################################################
-#EP상품이미지
-################################################################################
-DROP TABLE IF EXISTS TB_EP_GOODS_IMG RESTRICT;
-CREATE TABLE TB_EP_GOODS_IMG (
-  GOODS_CD    VARCHAR(20)   NOT NULL COMMENT '상품코드(상품)',
-  IMAGE_LINK  VARCHAR(200)  COMMENT '이미지링크'
-)
-COMMENT 'EP상품이미지. EP상품이미지 생성에 의한 발생';
-
-################################################################################
-#EP상품추가이미지
-################################################################################
-DROP TABLE IF EXISTS TB_EP_GOODS_ADD_IMG RESTRICT;
-CREATE TABLE TB_EP_GOODS_ADD_IMG (
-  GOODS_CD        VARCHAR(20)    NOT NULL COMMENT '상품코드(상품)',
-  ADD_IMAGE_LINK  VARCHAR(1000)  COMMENT '추가이미지링크(|로 구분. 최대4개)'
-)
-COMMENT 'EP상품추가이미지. EP상품추가이미지 생성에 의한 발생';
-
-################################################################################
-#EP카드행사
-################################################################################
-DROP TABLE IF EXISTS TB_EP_CARD_EVENT RESTRICT;
-CREATE TABLE TB_EP_CARD_EVENT (
-  GOODS_CD    VARCHAR(20)    NOT NULL COMMENT '상품코드(상품)',
-  CARD_EVENT  VARCHAR(100)   COMMENT '카드행사'
-)
-COMMENT 'EP카드행사. EP카드행사 생성에 의한 발생';
-
-################################################################################
-#EP쿠폰
-################################################################################
-DROP TABLE IF EXISTS TB_EP_COUPON RESTRICT;
-CREATE TABLE TB_EP_COUPON (
-  GOODS_CD    VARCHAR(20)   NOT NULL COMMENT '상품코드(상품)',
-  COUPON      VARCHAR(100)  COMMENT '할인쿠폰정보'
-)
-COMMENT 'EP쿠폰. EP쿠폰 생성에 의한 발생';
-
-################################################################################
-#EP무이자행사
-################################################################################
-DROP TABLE IF EXISTS TB_EP_INTEREST_FREE_EVENT RESTRICT;
-CREATE TABLE TB_EP_INTEREST_FREE_EVENT (
-  GOODS_CD             VARCHAR(20)   NOT NULL COMMENT '상품코드(상품)',
-  INTEREST_FREE_EVENT  VARCHAR(100)  COMMENT '무이자행사'
-)
-COMMENT 'EP무이자행사. EP무이자행사 생성에 의한 발생';
-
-################################################################################
-#EP네이버
-################################################################################
-DROP TABLE IF EXISTS TB_EP_NAVER RESTRICT;
-CREATE TABLE TB_EP_NAVER (
-  GB                         VARCHAR(4)     NOT NULL COMMENT '구분(PREV:이전, CURR:현재)',
-  ID                         VARCHAR(20)    NOT NULL COMMENT '상품코드(상품)',
-  TITLE                      VARCHAR(100)   COMMENT '상품명([브랜드명]+상품명+상품코드 형식)',
-  PRICE_PC                   INT UNSIGNED   COMMENT 'PC가격',
-  PRICE_MOBILE               INT UNSIGNED   COMMENT '모바일가격',
-  NORMAL_PRICE               INT UNSIGNED   COMMENT '정상가',
-  LINK                       VARCHAR(200)   COMMENT 'PC상품상세URL',
-  MOBILE_LINK                VARCHAR(200)   COMMENT '모바일상품상세URL',
-  IMAGE_LINK                 VARCHAR(200)   COMMENT '이미지링크',
-  ADD_IMAGE_LINK             VARCHAR(1000)  COMMENT '추가이미지링크(|로 구분. 최대4개)',
-  CATEGORY_NAME1             VARCHAR(50)    COMMENT '카테고리명1',
-  CATEGORY_NAME2             VARCHAR(50)    COMMENT '카테고리명2',
-  CATEGORY_NAME3             VARCHAR(50)    COMMENT '카테고리명3',
-  CATEGORY_NAME4             VARCHAR(50)    COMMENT '카테고리명4',
-  NAVER_CATEGORY             VARCHAR(20)    COMMENT '네이버카테고리(EP카테고리)',
-  GOODS_GB_NM                VARCHAR(10)    COMMENT '상품구분명(공통코드G073)',
-  IMPORT_FLAG                VARCHAR(1)     COMMENT '해외구매대행여부',
-  PARALLEL_IMPORT            VARCHAR(1)     COMMENT '병행수입여부',
-  ORDER_MADE                 VARCHAR(1)     COMMENT '주문제작여부',
-  PRODUCT_FLAG               VARCHAR(10)    COMMENT '예약판매',
-  ADULT                      VARCHAR(1)     COMMENT '미성년자구매불가상품여부',
-  MANUFACTURE_DEFINE_NUMBER  VARCHAR(20)    COMMENT '제품코드(품번)',
-  BRAND                      VARCHAR(50)    COMMENT '브랜드명',
-  MAKER                      VARCHAR(50)    COMMENT '제조사',
-  ORIGIN                     VARCHAR(50)    COMMENT '원산지',
-  CARD_EVENT                 VARCHAR(100)   COMMENT '카드행사(카드즉시할인 등록된 기준으로 적용. 카드명^카드적용가|카드명^카드적용가... 형식)',
-  EVENT_WORDS                VARCHAR(100)   COMMENT '상품타이틀명(세일링문구)',
-  COUPON                     VARCHAR(100)   COMMENT '할인쿠폰정보(일반쿠폰^정율제휴쿠폰^정액제휴쿠폰 형식. 일반쿠폰은 최대할인기준 1개)',
-  PARTNER_COUPON_DOWNLOAD    VARCHAR(1)     COMMENT '쿠폰다운로드필요여부',
-  INTEREST_FREE_EVENT        VARCHAR(100)   COMMENT '무이자행사(카드명^개월수-개월수|카드명^개월수-개월수... 형식)',
-  POINT                      VARCHAR(50)    COMMENT '포인트정보(스타일포인트^포인트액 형식)',
-  SEARCH_TAG                 VARCHAR(100)   COMMENT '검색태그',
-  MINIMUM_PURCHASE_QUANTITY  VARCHAR(10)    COMMENT '최소구매수량',
-  REVIEW_REG_CNT             INT UNSIGNED   COMMENT '상품평수',
-  SHIPPING                   INT UNSIGNED   COMMENT '배송료',
-  AGE_GROUP                  VARCHAR(10)    COMMENT '나이(베이비->유아, 키즈여아/키즈남아/키즈공용->아동, 주니어남아/주니어여아/주니어공용->청소년, 성인)',
-  GENDER                     VARCHAR(10)    COMMENT '성별(남성/여성/남여공용)',
-  GOODS_STAT                 VARCHAR(20)    COMMENT '상품상태(공통코드G008)',
-  SELF_MALL_YN               CHAR(1)        COMMENT '자사몰노출여부',
-  SELL_STDT                  DATETIME       COMMENT '판매시작일시',
-  SELL_EDDT                  DATETIME       COMMENT '판매종료일시',
-  ADULT_YN                   CHAR(1)        COMMENT '성인용품여부',
-  UPD_GB                     VARCHAR(1)     COMMENT '업데이트구분(I:신규상품, U:기존상품중업데이트된상품 또는 품절되었다가다시서비스되는상품, D:품절상품)',
-  UPDATE_TIME                VARCHAR(20)    COMMENT '업데이트시간(YYYY-MM-DD HH:MM:SS 형식)'
-)
-COMMENT 'EP네이버. EP네이버 생성에 의한 발생';
-
-CREATE UNIQUE INDEX IX_EP_NAVER_01
-  ON TB_EP_NAVER (
-    GB, ID
-  );
-
-SET GROUP_CONCAT_MAX_LEN = 102400;
-
-/* TsbGoodsEp.truncateEpGoodsImage */
-TRUNCATE TABLE TB_EP_GOODS_IMG;
-	
-/* TsbGoodsEp.createEpGoodsImage */
-INSERT INTO TB_EP_GOODS_IMG (
-       GOODS_CD
-     , IMAGE_LINK
-)
-SELECT G.GOODS_CD
-     , CONCAT('https://image.istyle24.com/Upload/ProductImage/',GI.SYS_IMG_NM) AS IMAGE_LINK
---     , MIN(CONCAT('https://image.istyle24.com/Upload/ProductImage/',GI.SYS_IMG_NM)) AS IMAGE_LINK
-FROM   TB_GOODS G
-     , TB_GOODS_IMG GI
-WHERE  G.GOODS_CD = GI.GOODS_CD
-AND    IF(G.SELF_GOODS_YN = 'N','XX',G.MAIN_COLOR_CD) = GI.COLOR_CD
-AND    GI.DEFAULT_IMG_YN = 'Y'
---GROUP  BY G.GOODS_CD
-;
-
-SELECT GOODS_CD, COUNT(*) AS CNT
-FROM   TB_EP_GOODS_IMG
-GROUP  BY GOODS_CD
-HAVING COUNT(*) > 1
-;
-
-/* TsbGoodsEp.truncateEpGoodsAddImage */
-TRUNCATE TABLE TB_EP_GOODS_ADD_IMG;
-
-/* TsbGoodsEp.createEpGoodsAddImage */
-INSERT INTO TB_EP_GOODS_ADD_IMG (
-       GOODS_CD
-     , ADD_IMAGE_LINK
-)
-SELECT GOODS_CD
-     , GROUP_CONCAT(CONCAT('https://image.istyle24.com/Upload/ProductImage/',SYS_IMG_NM) SEPARATOR '|') AS ADD_IMAGE_LINK
-FROM   (SELECT GI.GOODS_CD
-             , GI.SYS_IMG_NM
-             , RANK() OVER(PARTITION BY GI.GOODS_CD
-                           ORDER BY GI.DISP_ORD, GI.SYS_IMG_NM) AS RK
-        FROM   TB_GOODS G
-             , TB_GOODS_IMG GI
-        WHERE  G.GOODS_CD = GI.GOODS_CD
-        AND    IF(G.SELF_GOODS_YN = 'N','XX',G.MAIN_COLOR_CD) = GI.COLOR_CD
-        AND    GI.DEFAULT_IMG_YN = 'N'
-       ) Z
-WHERE  RK <= 4
-GROUP  BY GOODS_CD
-;
-
-/* TsbGoodsEp.truncateEpCardEvent */
-TRUNCATE TABLE TB_EP_CARD_EVENT;
-
-/* TsbGoodsEp.createEpCardEvent */
-INSERT INTO TB_EP_CARD_EVENT (
-       GOODS_CD
-     , CARD_EVENT
-)
-SELECT G.GOODS_CD
-     , GROUP_CONCAT(DISTINCT
-                    CONCAT(FN_GET_CODE_NM('G941',CPT.PRMT_TARGET_CD),'^',
-                           (G.CURR_PRICE
-                            -
-                            CASE WHEN CPC.DC_WAY = 'G240_10' /*정액할인*/ THEN CPC.DC_VAL
-                                 ELSE /*정율할인*/ CAST(G.CURR_PRICE * CPC.DC_VAL / 100 AS SIGNED INTEGER)
-                            END))
-                    SEPARATOR '|') AS CARD_EVENT
-FROM   TB_CARD_PROMOTION CP
-     , TB_CARD_PROMOTION_CONDITION CPC
-     , TB_CARD_PROMOTION_TARGET CPT
-     , (
-        SELECT G.GOODS_CD
-             , IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY AS CURR_PRICE
-        FROM   TB_GOODS G
-             , TB_GOODS_BENEFIT_PRICE GBP
-        WHERE  G.GOODS_CD = GBP.GOODS_CD
-       ) G
-WHERE  CP.CARD_PRMT_SQ = CPC.CARD_PRMT_SQ
-AND    CPC.CARD_PRMT_CDT_SQ = CPT.CARD_PRMT_CDT_SQ
-AND    CP.PRMT_GB = 'A' /*카드할인*/
-AND    CP.DC_GB = '1' /*즉시할인*/
-AND    CP.PRMT_STD <= DATE_FORMAT(CURRENT_DATE(),'%Y%m%d')
-AND    CP.PRMT_EDD >= DATE_FORMAT(CURRENT_DATE(),'%Y%m%d')
-AND    CP.DISP_YN = 'Y'
-AND    CPC.MIN_PAY_AMT < G.CURR_PRICE
-GROUP  BY G.GOODS_CD
-;
-	
-/* TsbGoodsEp.truncateEpCoupon */
-TRUNCATE TABLE TB_EP_COUPON;
-
-/* TsbGoodsEp.createEpCoupon */
-INSERT INTO TB_EP_COUPON (
-       GOODS_CD
-     , COUPON
-)
-SELECT GOODS_CD
-     , CONCAT(IFNULL(NORMAL_CPN,''),IF(AFLINK_CPN11 IS NULL,'',CONCAT('^',AFLINK_CPN11)),IF(AFLINK_CPN10 IS NULL,'',CONCAT('^',AFLINK_CPN10))) AS COUPON
-FROM   (
-        SELECT CR.REF_VAL            AS GOODS_CD
-             , CASE WHEN IFNULL((SELECT COUNT(*)
-                                 FROM   TB_COUPON_AF_CHANNEL
-                                 WHERE  CPN_ID = C.CPN_ID
-                                ),0) = 0 THEN
-                        CONCAT(C.DC_PVAL,CASE WHEN C.DC_WAY = 'G240_10' THEN '원' ELSE '%' END)
-                    ELSE
-                        NULL
-               END                   AS NORMAL_CPN /*일반쿠폰*/
-             , CASE WHEN IFNULL((SELECT COUNT(*)
-                                 FROM   TB_COUPON_AF_CHANNEL
-                                 WHERE  CPN_ID = C.CPN_ID
-                                 AND    AF_LINK_CD IN (SELECT AF_LINK_CD
-                                                       FROM   TB_AF_LINK
-                                                       WHERE  AF_CHANNEL = 'G053_02' /*네이버*/
-                                                       AND    USE_YN = 'Y'
-                                                      )
-                                ),0) > 0 AND C.DC_WAY = 'G240_10' THEN
-                        C.DC_PVAL
-                    ELSE
-                        NULL
-               END                   AS AFLINK_CPN10 /*정액제휴쿠폰*/
-             , CASE WHEN IFNULL((SELECT COUNT(*)
-                                 FROM   TB_COUPON_AF_CHANNEL
-                                 WHERE  CPN_ID = C.CPN_ID
-                                 AND    AF_LINK_CD IN (SELECT AF_LINK_CD
-                                                       FROM   TB_AF_LINK
-                                                       WHERE  AF_CHANNEL = 'G053_02' /*네이버*/
-                                                       AND    USE_YN = 'Y'
-                                                      )
-                                ),0) > 0 AND C.DC_WAY = 'G240_11' THEN
-                        C.DC_PVAL
-                    ELSE
-                        NULL
-               END                   AS AFLINK_CPN11 /*정율제휴쿠폰*/
-             , CASE WHEN IFNULL((SELECT COUNT(*)
-                                 FROM   TB_COUPON_AF_CHANNEL
-                                 WHERE  CPN_ID = C.CPN_ID
-                                ),0) = 0 THEN
-                        CASE WHEN C.DC_WAY = 'G240_10' THEN C.DC_PVAL
-                             ELSE IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY * C.DC_PVAL / 100
-                        END
-                    ELSE
-                        0
-               END                   AS NCPN_DC_AMT /*일반쿠폰할인금액*/
-             , RANK() OVER(PARTITION BY CR.REF_VAL
-                           ORDER BY (CASE WHEN IFNULL((SELECT COUNT(*)
-                                                       FROM   TB_COUPON_AF_CHANNEL
-                                                       WHERE  CPN_ID = C.CPN_ID
-                                                      ),0) = 0 THEN
-                                              CASE WHEN C.DC_WAY = 'G240_10' THEN C.DC_PVAL
-                                                   ELSE IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY * C.DC_PVAL / 100
-                                              END
-                                          ELSE
-                                              0
-                                     END) DESC,
-                                    (CASE WHEN IFNULL((SELECT COUNT(*)
-                                                       FROM   TB_COUPON_AF_CHANNEL
-                                                       WHERE  CPN_ID = C.CPN_ID
-                                                       AND    AF_LINK_CD IN (SELECT AF_LINK_CD
-                                                                             FROM   TB_AF_LINK
-                                                                             WHERE  AF_CHANNEL = 'G053_02' /*네이버*/
-                                                                             AND    USE_YN = 'Y'
-                                                                            )
-                                                      ),0) > 0 AND C.DC_WAY = 'G240_10' THEN
-                                              C.DC_PVAL
-                                          ELSE
-                                              0
-                                     END) DESC,
-                                    (CASE WHEN IFNULL((SELECT COUNT(*)
-                                                       FROM   TB_COUPON_AF_CHANNEL
-                                                       WHERE  CPN_ID = C.CPN_ID
-                                                       AND    AF_LINK_CD IN (SELECT AF_LINK_CD
-                                                                             FROM   TB_AF_LINK
-                                                                             WHERE  AF_CHANNEL = 'G053_02' /*네이버*/
-                                                                             AND    USE_YN = 'Y'
-                                                                            )
-                                                      ),0) > 0 AND C.DC_WAY = 'G240_11' THEN
-                                              IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY * C.DC_PVAL / 100
-                                          ELSE
-                                              0
-                                     END) DESC
-                          )          AS RK
-        FROM   TB_COUPON C
-        INNER JOIN TB_COUPON_REFVAL CR ON C.CPN_ID = CR.CPN_ID
-        INNER JOIN TB_GOODS G ON CR.REF_VAL = G.GOODS_CD
-        LEFT OUTER JOIN TB_GOODS_BENEFIT_PRICE GBP ON G.GOODS_CD = GBP.GOODS_CD
-        WHERE  C.SITE_CD = 'G000_10'
-        AND    C.CPN_STAT = 'G232_11' /*진행쿠폰*/
-        AND    C.CPN_TYPE IN ('G230_11','G230_20') /*상품쿠폰,주문서쿠폰*/
-        AND    (
-                (C.PD_GB = 'D' AND NOW() < DATE_ADD(NOW(), INTERVAL C.AVAIL_DAYS DAY))
-                OR
-                (C.PD_GB = 'P' AND NOW() BETWEEN C.AVAIL_STDT AND C.AVAIL_EDDT)
-               )
-        AND    C.APPLY_SCOPE = 'I' /*개별쿠폰*/
-        AND    CR.CPN_TYPE IN ('G230_11','G230_20') /*상품쿠폰,주문서쿠폰*/
-        AND    CR.CPN_TARGET = 'G260_10' /*상품쿠폰*/
-        AND    CR.DEL_YN = 'N'
-        AND    NOT EXISTS (SELECT 1
-                           FROM   TB_COUPON_REFVAL
-                           WHERE  CPN_ID = CR.CPN_ID
-                           AND    CPN_TARGET = 'G260_14' /*제외상품*/
-                           AND    REF_VAL = CR.REF_VAL
-                           AND    DEL_YN = 'N'
-                          )
-       ) Z
-WHERE  RK = 1
-AND    (
-        NORMAL_CPN IS NOT NULL
-        OR
-        AFLINK_CPN10 IS NOT NULL
-        OR
-        AFLINK_CPN11 IS NOT NULL
-       )
-;
-
-/* TsbGoodsEp.truncateEpInterestFreeEvent */
-TRUNCATE TABLE TB_EP_INTEREST_FREE_EVENT;
-
-/* TsbGoodsEp.createEpInterestFreeEvent */
-INSERT INTO TB_EP_INTEREST_FREE_EVENT (
-       GOODS_CD
-     , INTEREST_FREE_EVENT
-)
-SELECT G.GOODS_CD
-     , GROUP_CONCAT(DISTINCT
-                    CONCAT(FN_GET_CODE_NM('G941',CPT.PRMT_TARGET_CD),'^',
-                           CPC.MIN_NO_ITRT,'~',CPC.MAX_NO_ITRT)
-                    SEPARATOR '|') AS INTEREST_FREE_EVENT /*무이자이벤트정보*/
-FROM   TB_CARD_PROMOTION CP
-     , TB_CARD_PROMOTION_CONDITION CPC
-     , TB_CARD_PROMOTION_TARGET CPT
-     , (
-        SELECT G.GOODS_CD
-             , IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY AS CURR_PRICE
-        FROM   TB_GOODS G
-             , TB_GOODS_BENEFIT_PRICE GBP
-        WHERE  G.GOODS_CD = GBP.GOODS_CD
-       ) G
-WHERE  CP.CARD_PRMT_SQ = CPC.CARD_PRMT_SQ
-AND    CPC.CARD_PRMT_CDT_SQ = CPT.CARD_PRMT_CDT_SQ
-AND    CP.PRMT_GB = 'B' /*무이자할부*/
-AND    CP.PRMT_STD <= DATE_FORMAT(CURRENT_DATE(),'%Y%m%d')
-AND    CP.PRMT_EDD >= DATE_FORMAT(CURRENT_DATE(),'%Y%m%d')
-AND    CP.DISP_YN = 'Y'
-AND    CPC.MIN_PAY_AMT < G.CURR_PRICE
-GROUP  BY G.GOODS_CD
-;
-	
-/* TsbGoodsEp.deleteEpNaver */
-DELETE FROM TB_EP_NAVER WHERE GB = 'PREV';
-
-/* TsbGoodsEp.createPreviousEpNaver */
-INSERT INTO TB_EP_NAVER (
-       GB
-     , ID
-     , TITLE
-     , PRICE_PC
-     , PRICE_MOBILE
-     , NORMAL_PRICE
-     , LINK
-     , MOBILE_LINK
-     , IMAGE_LINK
-     , ADD_IMAGE_LINK
-     , CATEGORY_NAME1
-     , CATEGORY_NAME2
-     , CATEGORY_NAME3
-     , CATEGORY_NAME4
-     , NAVER_CATEGORY
-     , GOODS_GB_NM
-     , IMPORT_FLAG
-     , PARALLEL_IMPORT
-     , ORDER_MADE
-     , PRODUCT_FLAG
-     , ADULT
-     , MANUFACTURE_DEFINE_NUMBER
-     , BRAND
-     , MAKER
-     , ORIGIN
-     , CARD_EVENT
-     , EVENT_WORDS
-     , COUPON
-     , PARTNER_COUPON_DOWNLOAD
-     , INTEREST_FREE_EVENT
-     , POINT
-     , SEARCH_TAG
-     , MINIMUM_PURCHASE_QUANTITY
-     , REVIEW_REG_CNT
-     , SHIPPING
-     , AGE_GROUP
-     , GENDER
-     , UPD_GB
-     , UPDATE_TIME
-)
-SELECT 'PREV' AS GB
-     , ID
-     , TITLE
-     , PRICE_PC
-     , PRICE_MOBILE
-     , NORMAL_PRICE
-     , LINK
-     , MOBILE_LINK
-     , IMAGE_LINK
-     , ADD_IMAGE_LINK
-     , CATEGORY_NAME1
-     , CATEGORY_NAME2
-     , CATEGORY_NAME3
-     , CATEGORY_NAME4
-     , NAVER_CATEGORY
-     , GOODS_GB_NM
-     , IMPORT_FLAG
-     , PARALLEL_IMPORT
-     , ORDER_MADE
-     , PRODUCT_FLAG
-     , ADULT
-     , MANUFACTURE_DEFINE_NUMBER
-     , BRAND
-     , MAKER
-     , ORIGIN
-     , CARD_EVENT
-     , EVENT_WORDS
-     , COUPON
-     , PARTNER_COUPON_DOWNLOAD
-     , INTEREST_FREE_EVENT
-     , POINT
-     , SEARCH_TAG
-     , MINIMUM_PURCHASE_QUANTITY
-     , REVIEW_REG_CNT
-     , SHIPPING
-     , AGE_GROUP
-     , GENDER
-     , UPD_GB
-     , UPDATE_TIME
-FROM   TB_EP_NAVER
-WHERE  GB = 'LAST'
-;
-
-/* TsbGoodsEp.deleteEpNaver */
-DELETE FROM TB_EP_NAVER WHERE GB = 'CURR';
-
-/* TsbGoodsEp.createEpNaver */
-INSERT INTO TB_EP_NAVER (
-       GB
-     , ID
-     , TITLE
-     , PRICE_PC
-     , PRICE_MOBILE
-     , NORMAL_PRICE
-     , LINK
-     , MOBILE_LINK
-     , IMAGE_LINK
-     , ADD_IMAGE_LINK
-     , CATEGORY_NAME1
-     , CATEGORY_NAME2
-     , CATEGORY_NAME3
-     , CATEGORY_NAME4
-     , NAVER_CATEGORY
-     , GOODS_GB_NM
-     , IMPORT_FLAG
-     , PARALLEL_IMPORT
-     , ORDER_MADE
-     , PRODUCT_FLAG
-     , ADULT
-     , MANUFACTURE_DEFINE_NUMBER
-     , BRAND
-     , MAKER
-     , ORIGIN
-     , CARD_EVENT
-     , EVENT_WORDS
-     , COUPON
-     , PARTNER_COUPON_DOWNLOAD
-     , INTEREST_FREE_EVENT
-     , POINT
-     , SEARCH_TAG
-     , MINIMUM_PURCHASE_QUANTITY
-     , REVIEW_REG_CNT
-     , SHIPPING
-     , AGE_GROUP
-     , GENDER
-     , UPD_GB
-     , UPDATE_TIME
-)
-SELECT 'CURR'                                                 AS GB                       /*구분(PREV:이전, CURR:현재)*/
-     , G.GOODS_CD                                             AS ID                       /*상품ID*/
-     , SUBSTRING(CONCAT('[',CASE WHEN B.DISP_NM_LANG = 'EN' THEN B.BRAND_ENM ELSE B.BRAND_KNM END,'] ',
-                        G.GOODS_NM,
-                        IFNULL(G.GOODS_NUM,'')),1,100)        AS TITLE                    /*상품명*/
-     , IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY AS PRICE_PC                 /*즉시할인이적용된가격*/
-     , IFNULL(GBP.MO_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY AS PRICE_MOBILE             /*즉시할인이적용된가격*/
-     , G.LIST_PRICE                                           AS NORMAL_PRICE             /*정상가*/
-     , CONCAT('https://www.style24.com/goods/detail/form?goodsCd=',G.GOODS_CD)                      AS LINK                     /*PC상세URL*/
-     , CONCAT('https://www.style24.com/goods/detail/form?goodsCd=',G.GOODS_CD)                      AS MOBILE_LINK              /*모바일상세URL*/
-     , GI.IMAGE_LINK                                                                      /*이미지URL*/
-     , GAI.ADD_IMAGE_LINK                                                                 /*추가이미지URL(4개까지. |로 구분)*/
-     , SUBSTRING_INDEX(I.ITEMKIND_NM,'>',1)                   AS CATEGORY_NAME1           /*카테고리명1*/
-     , CASE WHEN SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',1),'>',-1) = SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',2),'>',-1) THEN
-                NULL
-            ELSE
-                SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',2),'>',-1)
-       END                                                    AS CATEGORY_NAME2           /*카테고리명2*/
-     , CASE WHEN SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',2),'>',-1) = SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',3),'>',-1) THEN
-                NULL
-            ELSE
-                SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',3),'>',-1)
-       END                                                    AS CATEGORY_NAME3           /*카테고리명3*/
-     , CASE WHEN SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',3),'>',-1) = SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',4),'>',-1) THEN
-                NULL
-            ELSE
-                SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',4),'>',-1)
-       END                                                    AS CATEGORY_NAME4            /*카테고리명4*/
-     , EC.EP_CATE_CD                                          AS NAVER_CATEGORY            /*네이버카테고리*/
-     , CC1.CD_NM                                              AS GOODS_GB_NM               /*상품구분명*/
-     , G.FOREIGN_BUY_YN                                       AS IMPORT_FLAG               /*해외구매대행여부*/
-     , G.PARALLEL_IMPORT_YN                                   AS PARALLEL_IMPORT           /*병행수입여부*/
-     , G.ORDER_MADE_YN                                        AS ORDER_MADE                /*주문제작상품여부*/
-     , IF(GRS.GOODS_CD IS NULL,NULL,'예약판매')               AS PRODUCT_FLAG              /*예약판매*/
-     , G.ADULT_YN                                             AS ADULT                     /*성인여부*/
-     , G.GOODS_NUM                                            AS MANUFACTURE_DEFINE_NUMBER /*제품코드*/
-     , IF(B.DISP_NM_LANG = 'EN',B.BRAND_ENM,B.BRAND_KNM)      AS BRAND                     /*브랜드명*/
-     , SUBSTRING(GNI.NI_CONTENT,1,50)                         AS MAKER                     /*제조사*/
-     , CC2.CD_NM                                              AS ORIGIN                    /*원산지*/
-     , CE.CARD_EVENT                                                                       /*카드행사*/
-     , G.GOODS_TNM                                            AS EVENT_WORDS               /*상품셀링문구*/
-     , TEC.COUPON                                                                          /*쿠폰*/
-     , IF(TEC.COUPON IS NULL,NULL,'Y')                        AS PARTNER_COUPON_DOWNLOAD   /*쿠폰다운로드여부*/
-     , IFE.INTEREST_FREE_EVENT                                                             /*무이자행사*/
-     , CONCAT('스타일포인트','^',
-              CAST(IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY * G.PNT_PRATE AS SIGNED INTEGER)
-             )                                                AS PNT                       /*포인트*/
-     , SUBSTRING(CONCAT(IFNULL(G.GOODS_SNM,''),
-              CASE WHEN LENGTH(IFNULL(G.GOODS_SNM1,'')) = 0 THEN
-                       ''
-                   ELSE
-                       '|'
-              END,
-              IFNULL(G.GOODS_SNM1,'')
-             ),1,100)                                         AS SEARCH_TAG                /*검색태그*/
-     , CASE WHEN G.MIN_ORD_QTY > 0 THEN
-                G.MIN_ORD_QTY
-            ELSE
-                NULL
-       END                                                    AS MINIMUM_PURCHASE_QUANTITY /*최소구매금액*/
-     , IFNULL(GS.REVIEW_REG_CNT,0)                            AS REVIEW_REG_CNT            /*상품평수*/
-     , IFNULL(CASE WHEN DFP.DELV_FEE_CRITE = 'G078_20' /*무료*/ THEN
-                       0
-                   ELSE /*조건부무료 또는 유료*/
-                       CASE WHEN DFP.MIN_ORD_AMT <= IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY THEN
-                                0
-                            ELSE
-                                DFP.DELV_FEE
-                       END
-              END,0)                                          AS SHIPPING                  /*배송료*/
-     , CASE WHEN SUBSTRING(I.ITEMKIND_CD,1,2) = '07' THEN '유아'
-            WHEN SUBSTRING(I.ITEMKIND_CD,1,2) IN ('08','09','10') THEN '아동'
-            WHEN SUBSTRING(I.ITEMKIND_CD,1,2) IN ('11','12','13') THEN '청소년'
-            ELSE '성인'
-       END                                                    AS AGE_GROUP                 /*나이*/
-     , CASE WHEN G.SEX_GB = 'G007_F' THEN '여성'
-            WHEN G.SEX_GB = 'G007_M' THEN '남성'
-            ELSE '남여공용'
-       END                                                    AS GENDER                    /*성별*/
-     , 'I'                                                    AS UPD_GB                    /*변경구분*/
-     , DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%S')                 AS UPDATE_TIME               /*변경일시*/
-FROM   TB_GOODS G
-INNER JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
-INNER JOIN TB_ITEMKIND I ON G.ITEMKIND_CD = I.ITEMKIND_CD
-INNER JOIN TB_DELV_FEE_POLICY DFP ON G.DELV_FEE_CD = DFP.DELV_FEE_CD
-LEFT OUTER JOIN TB_GOODS_BENEFIT_PRICE GBP ON G.GOODS_CD = GBP.GOODS_CD
-LEFT OUTER JOIN TB_GOODS_SUMMARY GS ON G.GOODS_CD = GS.GOODS_CD
-LEFT OUTER JOIN TB_EP_GOODS_IMG GI ON G.GOODS_CD = GI.GOODS_CD
-LEFT OUTER JOIN TB_EP_GOODS_ADD_IMG GAI ON G.GOODS_CD = GAI.GOODS_CD
-LEFT OUTER JOIN (
-                 SELECT ITEMKIND_CD
-                      , MIN(EP_CATE_CD) AS EP_CATE_CD
-                 FROM   TB_EP_CATE
-                 WHERE  EP_GB = '10' /*네이버*/
-                 AND    USE_YN = 'Y'
-                 GROUP  BY ITEMKIND_CD
-                ) EC ON G.ITEMKIND_CD = EC.ITEMKIND_CD
-LEFT OUTER JOIN TB_GOODS_RES_SELL GRS ON G.GOODS_CD = GRS.GOODS_CD
-                                     AND GRS.DELV_RES_DT >= NOW()
-                                     AND GRS.USE_YN = 'Y'
-LEFT OUTER JOIN TB_EP_CARD_EVENT CE ON G.GOODS_CD = CE.GOODS_CD
-LEFT OUTER JOIN TB_EP_COUPON TEC ON G.GOODS_CD = TEC.GOODS_CD
-LEFT OUTER JOIN TB_EP_INTEREST_FREE_EVENT IFE ON G.GOODS_CD = IFE.GOODS_CD
-LEFT OUTER JOIN TB_GOODS_NOTI_INFO GNI ON G.GOODS_CD = GNI.GOODS_CD
-                                      AND GNI.NI_ITEM_CD = 'G005_005' /*제조사*/
-LEFT OUTER JOIN TB_COMMON_CODE CC1 ON G.GOODS_GB = CC1.CD
-                                 AND CC1.CD_GB = 'G073'
-LEFT OUTER JOIN TB_COMMON_CODE CC2 ON G.ORIGIN_CD = CC2.CD
-                                  AND CC2.CD_GB = 'G076'
-WHERE  1 = 1
-AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
-AND    G.SELF_MALL_YN = 'Y' /*몰노출상품*/
-AND    G.SELL_STDT <= NOW() /*유효한 판매기간*/
-AND    G.SELL_EDDT >= NOW() /*유효한 판매기간*/
-AND    G.ADULT_YN = 'N' /*성인상품아닌넘만*/
-AND    G.UPD_DT >= DATE_ADD(NOW(), INTERVAL -2 HOUR) /*요약EP생성시사용*/
-;
-
--- 최종 네이버 EP 생성
-INSERT INTO TB_EP_NAVER (
-       GB
-     , ID
-     , TITLE
-     , PRICE_PC
-     , PRICE_MOBILE
-     , NORMAL_PRICE
-     , LINK
-     , MOBILE_LINK
-     , IMAGE_LINK
-     , ADD_IMAGE_LINK
-     , CATEGORY_NAME1
-     , CATEGORY_NAME2
-     , CATEGORY_NAME3
-     , CATEGORY_NAME4
-     , NAVER_CATEGORY
-     , GOODS_GB_NM
-     , IMPORT_FLAG
-     , PARALLEL_IMPORT
-     , ORDER_MADE
-     , PRODUCT_FLAG
-     , ADULT
-     , MANUFACTURE_DEFINE_NUMBER
-     , BRAND
-     , MAKER
-     , ORIGIN
-     , CARD_EVENT
-     , EVENT_WORDS
-     , COUPON
-     , PARTNER_COUPON_DOWNLOAD
-     , INTEREST_FREE_EVENT
-     , POINT
-     , SEARCH_TAG
-     , MINIMUM_PURCHASE_QUANTITY
-     , REVIEW_REG_CNT
-     , SHIPPING
-     , AGE_GROUP
-     , GENDER
-     , GOODS_STAT
-     , SELF_MALL_YN
-     , SELL_STDT
-     , SELL_EDDT
-     , UPD_GB
-     , UPDATE_TIME
-)
-SELECT 'LAST'                                 AS GB
-     , ID
-     , TITLE
-     , PRICE_PC
-     , PRICE_MOBILE
-     , NORMAL_PRICE
-     , LINK
-     , MOBILE_LINK
-     , IMAGE_LINK
-     , ADD_IMAGE_LINK
-     , CATEGORY_NAME1
-     , CATEGORY_NAME2
-     , CATEGORY_NAME3
-     , CATEGORY_NAME4
-     , NAVER_CATEGORY
-     , GOODS_GB_NM
-     , IMPORT_FLAG
-     , PARALLEL_IMPORT
-     , ORDER_MADE
-     , PRODUCT_FLAG
-     , ADULT
-     , MANUFACTURE_DEFINE_NUMBER
-     , BRAND
-     , MAKER
-     , ORIGIN
-     , CARD_EVENT
-     , EVENT_WORDS
-     , COUPON
-     , PARTNER_COUPON_DOWNLOAD
-     , INTEREST_FREE_EVENT
-     , POINT
-     , SEARCH_TAG
-     , MINIMUM_PURCHASE_QUANTITY
-     , REVIEW_REG_CNT
-     , SHIPPING
-     , AGE_GROUP
-     , GENDER
-     , GOODS_STAT
-     , SELF_MALL_YN
-     , SELL_STDT
-     , SELL_EDDT
-     , UPD_GB
-     , DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%S') AS UPDATE_TIME /*변경일시*/
-FROM   (
-        /*신규 목록*/
-        SELECT ID
-             , TITLE
-             , PRICE_PC
-             , PRICE_MOBILE
-             , NORMAL_PRICE
-             , LINK
-             , MOBILE_LINK
-             , IMAGE_LINK
-             , ADD_IMAGE_LINK
-             , CATEGORY_NAME1
-             , CATEGORY_NAME2
-             , CATEGORY_NAME3
-             , CATEGORY_NAME4
-             , NAVER_CATEGORY
-             , GOODS_GB_NM
-             , IMPORT_FLAG
-             , PARALLEL_IMPORT
-             , ORDER_MADE
-             , PRODUCT_FLAG
-             , ADULT
-             , MANUFACTURE_DEFINE_NUMBER
-             , BRAND
-             , MAKER
-             , ORIGIN
-             , CARD_EVENT
-             , EVENT_WORDS
-             , COUPON
-             , PARTNER_COUPON_DOWNLOAD
-             , INTEREST_FREE_EVENT
-             , POINT
-             , SEARCH_TAG
-             , MINIMUM_PURCHASE_QUANTITY
-             , REVIEW_REG_CNT
-             , SHIPPING
-             , AGE_GROUP
-             , GENDER
-             , GOODS_STAT
-             , SELF_MALL_YN
-             , SELL_STDT
-             , SELL_EDDT
-             , 'I'                         AS UPD_GB /*변경구분*/
-        FROM   TB_EP_NAVER X
-        WHERE  GB = 'CURR' /*현재데이터*/
-        /*요약EP*/
-        /*
-        AND    NOT EXISTS (SELECT 1
-                           FROM   TB_EP_NAVER
-                           WHERE  GB = 'PREV' /*이전백업데이터*/
-                           AND    ID = X.ID
-                          )
-        UNION ALL
-        -- 변경 목록
-        SELECT X.ID
-             , X.TITLE
-             , X.PRICE_PC
-             , X.PRICE_MOBILE
-             , X.NORMAL_PRICE
-             , X.LINK
-             , X.MOBILE_LINK
-             , X.IMAGE_LINK
-             , X.ADD_IMAGE_LINK
-             , X.CATEGORY_NAME1
-             , X.CATEGORY_NAME2
-             , X.CATEGORY_NAME3
-             , X.CATEGORY_NAME4
-             , X.NAVER_CATEGORY
-             , X.GOODS_GB_NM
-             , X.IMPORT_FLAG
-             , X.PARALLEL_IMPORT
-             , X.ORDER_MADE
-             , X.PRODUCT_FLAG
-             , X.ADULT
-             , X.MANUFACTURE_DEFINE_NUMBER
-             , X.BRAND
-             , X.MAKER
-             , X.ORIGIN
-             , X.CARD_EVENT
-             , X.EVENT_WORDS
-             , X.COUPON
-             , X.PARTNER_COUPON_DOWNLOAD
-             , X.INTEREST_FREE_EVENT
-             , X.POINT
-             , X.SEARCH_TAG
-             , X.MINIMUM_PURCHASE_QUANTITY
-             , X.REVIEW_REG_CNT
-             , X.SHIPPING
-             , X.AGE_GROUP
-             , X.GENDER
-             , X.GOODS_STAT
-             , X.SELF_MALL_YN
-             , X.SELL_STDT
-             , X.SELL_EDDT
-             , 'U'                         AS UPD_GB /*변경구분*/
-        FROM   TB_EP_NAVER X
-             , TB_EP_NAVER Y
-        WHERE  X.ID = Y.ID
-        AND    X.GB = 'CURR' /*현재데이터*/
-        AND    Y.GB = 'PREV' /*이전백업데이터*/
-        AND    (
-                X.PRICE_PC != X.PRICE_PC OR
-                X.PRICE_MOBILE != X.PRICE_MOBILE OR
-                X.NORMAL_PRICE != X.NORMAL_PRICE OR
-                X.LINK != X.LINK OR
-                X.MOBILE_LINK != X.MOBILE_LINK OR
-                X.IMAGE_LINK != X.IMAGE_LINK OR
-                X.ADD_IMAGE_LINK != X.ADD_IMAGE_LINK OR
-                X.CATEGORY_NAME1 != X.CATEGORY_NAME1 OR
-                X.CATEGORY_NAME2 != X.CATEGORY_NAME2 OR
-                X.CATEGORY_NAME3 != X.CATEGORY_NAME3 OR
-                X.CATEGORY_NAME4 != X.CATEGORY_NAME4 OR
-                X.NAVER_CATEGORY != X.NAVER_CATEGORY OR
-                X.GOODS_GB_NM != X.GOODS_GB_NM OR
-                X.IMPORT_FLAG != X.IMPORT_FLAG OR
-                X.PARALLEL_IMPORT != X.PARALLEL_IMPORT OR
-                X.ORDER_MADE != X.ORDER_MADE OR
-                X.PRODUCT_FLAG != X.PRODUCT_FLAG OR
-                X.ADULT != X.ADULT OR
-                X.MANUFACTURE_DEFINE_NUMBER != X.MANUFACTURE_DEFINE_NUMBER OR
-                X.BRAND != X.BRAND OR
-                X.MAKER != X.MAKER OR
-                X.ORIGIN != X.ORIGIN OR
-                X.CARD_EVENT != X.CARD_EVENT OR
-                X.EVENT_WORDS != X.EVENT_WORDS OR
-                X.COUPON != X.COUPON OR
-                X.PARTNER_COUPON_DOWNLOAD != X.PARTNER_COUPON_DOWNLOAD OR
-                X.INTEREST_FREE_EVENT != X.INTEREST_FREE_EVENT OR
-                X.POINT != X.POINT OR
-                X.SEARCH_TAG != X.SEARCH_TAG OR
-                X.MINIMUM_PURCHASE_QUANTITY != X.MINIMUM_PURCHASE_QUANTITY OR
-                X.REVIEW_REG_CNT != X.REVIEW_REG_CNT OR
-                X.SHIPPING != X.SHIPPING OR
-                X.AGE_GROUP != X.AGE_GROUP OR
-                X.GENDER != X.GENDER OR
-               )
-        UNION ALL
-        -- 삭제된 목록
-        SELECT X.ID
-             , X.TITLE
-             , X.PRICE_PC
-             , X.PRICE_MOBILE
-             , X.NORMAL_PRICE
-             , X.LINK
-             , X.MOBILE_LINK
-             , X.IMAGE_LINK
-             , X.ADD_IMAGE_LINK
-             , X.CATEGORY_NAME1
-             , X.CATEGORY_NAME2
-             , X.CATEGORY_NAME3
-             , X.CATEGORY_NAME4
-             , X.NAVER_CATEGORY
-             , X.GOODS_GB_NM
-             , X.IMPORT_FLAG
-             , X.PARALLEL_IMPORT
-             , X.ORDER_MADE
-             , X.PRODUCT_FLAG
-             , X.ADULT
-             , X.MANUFACTURE_DEFINE_NUMBER
-             , X.BRAND
-             , X.MAKER
-             , X.ORIGIN
-             , X.CARD_EVENT
-             , X.EVENT_WORDS
-             , X.COUPON
-             , X.PARTNER_COUPON_DOWNLOAD
-             , X.INTEREST_FREE_EVENT
-             , X.POINT
-             , X.SEARCH_TAG
-             , X.MINIMUM_PURCHASE_QUANTITY
-             , X.REVIEW_REG_CNT
-             , X.SHIPPING
-             , X.AGE_GROUP
-             , X.GENDER
-             , X.GOODS_STAT
-             , X.SELF_MALL_YN
-             , X.SELL_STDT
-             , X.SELL_EDDT
-             , 'D'                         AS UPD_GB /*변경구분*/
-        FROM   TB_EP_NAVER X
-             , TB_EP_NAVER Y
-        WHERE  X.ID = Y.ID
-        AND    X.GB = 'CURR' /*현재데이터*/
-        AND    Y.GB = 'PREV' /*이전백업데이터*/
-        AND    (
-                (Y.GOODS_STAT != 'G008_70' AND X.GOODS_STAT = 'G008_70')
-                OR
-                (Y.SELF_MALL_YN = 'Y' AND X.SELF_MALL_YN = 'N')
-                OR
-                (Y.SELL_EDDT != X.SELL_EDDT AND Y.SELL_EDDT <![CDATA[<]]> NOW())
-               )
-        */
-       ) X
-;
-
-/* TsbGoodsEp.getNaverAllEpList */
-SELECT ID
-     , TITLE
-     , PRICE_PC
-     , PRICE_MOBILE
-     , NORMAL_PRICE
-     , LINK
-     , MOBILE_LINK
-     , IMAGE_LINK
-     , ADD_IMAGE_LINK
-     , CATEGORY_NAME1
-     , CATEGORY_NAME2
-     , CATEGORY_NAME3
-     , CATEGORY_NAME4
-     , NAVER_CATEGORY
-     , GOODS_GB_NM
-     , IMPORT_FLAG
-     , PARALLEL_IMPORT
-     , ORDER_MADE
-     , PRODUCT_FLAG
-     , ADULT
-     , MANUFACTURE_DEFINE_NUMBER
-     , BRAND
-     , MAKER
-     , ORIGIN
-     , CARD_EVENT
-     , EVENT_WORDS
-     , COUPON
-     , PARTNER_COUPON_DOWNLOAD
-     , INTEREST_FREE_EVENT
-     , POINT
-     , SEARCH_TAG
-     , MINIMUM_PURCHASE_QUANTITY
-     , REVIEW_REG_CNT
-     , SHIPPING
-     , AGE_GROUP
-     , GENDER
-     , UPD_GB
-     , UPDATE_TIME
-FROM   TB_EP_NAVER
-WHERE  GB = 'LAST'
-;

+ 0 - 902
산출물/4.구축/데이터처리/네이버EP생성_20210615_1.sql

@@ -1,902 +0,0 @@
-################################################################################
-#EP상품이미지
-################################################################################
-DROP TABLE IF EXISTS TB_EP_GOODS_IMG RESTRICT;
-CREATE TABLE TB_EP_GOODS_IMG (
-  GOODS_CD    VARCHAR(20)   NOT NULL COMMENT '상품코드(상품)',
-  IMAGE_LINK  VARCHAR(200)  COMMENT '이미지링크'
-)
-COMMENT 'EP상품이미지. EP상품이미지 생성에 의한 발생';
-
-################################################################################
-#EP상품추가이미지
-################################################################################
-DROP TABLE IF EXISTS TB_EP_GOODS_ADD_IMG RESTRICT;
-CREATE TABLE TB_EP_GOODS_ADD_IMG (
-  GOODS_CD        VARCHAR(20)    NOT NULL COMMENT '상품코드(상품)',
-  ADD_IMAGE_LINK  VARCHAR(1000)  COMMENT '추가이미지링크(|로 구분. 최대4개)'
-)
-COMMENT 'EP상품추가이미지. EP상품추가이미지 생성에 의한 발생';
-
-################################################################################
-#EP카드행사
-################################################################################
-DROP TABLE IF EXISTS TB_EP_CARD_EVENT RESTRICT;
-CREATE TABLE TB_EP_CARD_EVENT (
-  GOODS_CD    VARCHAR(20)    NOT NULL COMMENT '상품코드(상품)',
-  CARD_EVENT  VARCHAR(100)   COMMENT '카드행사'
-)
-COMMENT 'EP카드행사. EP카드행사 생성에 의한 발생';
-
-################################################################################
-#EP쿠폰
-################################################################################
-DROP TABLE IF EXISTS TB_EP_COUPON RESTRICT;
-CREATE TABLE TB_EP_COUPON (
-  GOODS_CD    VARCHAR(20)   NOT NULL COMMENT '상품코드(상품)',
-  COUPON      VARCHAR(100)  COMMENT '할인쿠폰정보'
-)
-COMMENT 'EP쿠폰. EP쿠폰 생성에 의한 발생';
-
-################################################################################
-#EP무이자행사
-################################################################################
-DROP TABLE IF EXISTS TB_EP_INTEREST_FREE_EVENT RESTRICT;
-CREATE TABLE TB_EP_INTEREST_FREE_EVENT (
-  GOODS_CD             VARCHAR(20)   NOT NULL COMMENT '상품코드(상품)',
-  INTEREST_FREE_EVENT  VARCHAR(100)  COMMENT '무이자행사'
-)
-COMMENT 'EP무이자행사. EP무이자행사 생성에 의한 발생';
-
-################################################################################
-#EP네이버
-################################################################################
-DROP TABLE IF EXISTS TB_EP_NAVER RESTRICT;
-CREATE TABLE TB_EP_NAVER (
-  GB                         VARCHAR(4)     NOT NULL COMMENT '구분(PREV:이전, CURR:현재)',
-  ID                         VARCHAR(20)    NOT NULL COMMENT '상품코드(상품)',
-  TITLE                      VARCHAR(100)   COMMENT '상품명([브랜드명]+상품명+상품코드 형식)',
-  PRICE_PC                   INT UNSIGNED   COMMENT 'PC가격',
-  PRICE_MOBILE               INT UNSIGNED   COMMENT '모바일가격',
-  NORMAL_PRICE               INT UNSIGNED   COMMENT '정상가',
-  LINK                       VARCHAR(200)   COMMENT 'PC상품상세URL',
-  MOBILE_LINK                VARCHAR(200)   COMMENT '모바일상품상세URL',
-  IMAGE_LINK                 VARCHAR(200)   COMMENT '이미지링크',
-  ADD_IMAGE_LINK             VARCHAR(1000)  COMMENT '추가이미지링크(|로 구분. 최대4개)',
-  CATEGORY_NAME1             VARCHAR(50)    COMMENT '카테고리명1',
-  CATEGORY_NAME2             VARCHAR(50)    COMMENT '카테고리명2',
-  CATEGORY_NAME3             VARCHAR(50)    COMMENT '카테고리명3',
-  CATEGORY_NAME4             VARCHAR(50)    COMMENT '카테고리명4',
-  NAVER_CATEGORY             VARCHAR(20)    COMMENT '네이버카테고리(EP카테고리)',
-  GOODS_GB_NM                VARCHAR(10)    COMMENT '상품구분명(공통코드G073)',
-  IMPORT_FLAG                VARCHAR(1)     COMMENT '해외구매대행여부',
-  PARALLEL_IMPORT            VARCHAR(1)     COMMENT '병행수입여부',
-  ORDER_MADE                 VARCHAR(1)     COMMENT '주문제작여부',
-  PRODUCT_FLAG               VARCHAR(10)    COMMENT '예약판매',
-  ADULT                      VARCHAR(1)     COMMENT '미성년자구매불가상품여부',
-  MANUFACTURE_DEFINE_NUMBER  VARCHAR(20)    COMMENT '제품코드(품번)',
-  BRAND                      VARCHAR(50)    COMMENT '브랜드명',
-  MAKER                      VARCHAR(50)    COMMENT '제조사',
-  ORIGIN                     VARCHAR(50)    COMMENT '원산지',
-  CARD_EVENT                 VARCHAR(100)   COMMENT '카드행사(카드즉시할인 등록된 기준으로 적용. 카드명^카드적용가|카드명^카드적용가... 형식)',
-  EVENT_WORDS                VARCHAR(100)   COMMENT '상품타이틀명(세일링문구)',
-  COUPON                     VARCHAR(100)   COMMENT '할인쿠폰정보(일반쿠폰^정율제휴쿠폰^정액제휴쿠폰 형식. 일반쿠폰은 최대할인기준 1개)',
-  PARTNER_COUPON_DOWNLOAD    VARCHAR(1)     COMMENT '쿠폰다운로드필요여부',
-  INTEREST_FREE_EVENT        VARCHAR(100)   COMMENT '무이자행사(카드명^개월수-개월수|카드명^개월수-개월수... 형식)',
-  POINT                      VARCHAR(50)    COMMENT '포인트정보(스타일포인트^포인트액 형식)',
-  SEARCH_TAG                 VARCHAR(100)   COMMENT '검색태그',
-  MINIMUM_PURCHASE_QUANTITY  VARCHAR(10)    COMMENT '최소구매수량',
-  REVIEW_REG_CNT             INT UNSIGNED   COMMENT '상품평수',
-  SHIPPING                   INT UNSIGNED   COMMENT '배송료',
-  AGE_GROUP                  VARCHAR(10)    COMMENT '나이(베이비->유아, 키즈여아/키즈남아/키즈공용->아동, 주니어남아/주니어여아/주니어공용->청소년, 성인)',
-  GENDER                     VARCHAR(10)    COMMENT '성별(남성/여성/남여공용)',
-  GOODS_STAT                 VARCHAR(20)    COMMENT '상품상태(공통코드G008)',
-  SELF_MALL_YN               CHAR(1)        COMMENT '자사몰노출여부',
-  SELL_STDT                  DATETIME       COMMENT '판매시작일시',
-  SELL_EDDT                  DATETIME       COMMENT '판매종료일시',
-  ADULT_YN                   CHAR(1)        COMMENT '성인용품여부',
-  UPD_GB                     VARCHAR(1)     COMMENT '업데이트구분(I:신규상품, U:기존상품중업데이트된상품 또는 품절되었다가다시서비스되는상품, D:품절상품)',
-  UPDATE_TIME                VARCHAR(20)    COMMENT '업데이트시간(YYYY-MM-DD HH:MM:SS 형식)'
-)
-COMMENT 'EP네이버. EP네이버 생성에 의한 발생';
-
-CREATE UNIQUE INDEX IX_EP_NAVER_01
-  ON TB_EP_NAVER (
-    GB, ID
-  );
-
--- SET GROUP_CONCAT_MAX_LEN = 102400;
-
-/* TsbGoodsEp.truncateEpGoodsImage */
-TRUNCATE TABLE TB_EP_GOODS_IMG;
-	
-/* TsbGoodsEp.createEpGoodsImage *(32초) */
-INSERT INTO TB_EP_GOODS_IMG (
-       GOODS_CD
-     , IMAGE_LINK
-)
-SELECT G.GOODS_CD
-     , CONCAT('https://image.istyle24.com/Upload/ProductImage/',GI.SYS_IMG_NM) AS IMAGE_LINK
-FROM   TB_GOODS G
-     , TB_GOODS_IMG GI
-WHERE  G.GOODS_CD = GI.GOODS_CD
-AND    IF(G.SELF_GOODS_YN = 'N','XX',G.MAIN_COLOR_CD) = GI.COLOR_CD
-AND    GI.DEFAULT_IMG_YN = 'Y'
-;
-SELECT COUNT(*) FROM TB_EP_GOODS_IMG;
-
-/* TsbGoodsEp.truncateEpGoodsAddImage */
-TRUNCATE TABLE TB_EP_GOODS_ADD_IMG;
-
-/* TsbGoodsEp.createEpGoodsAddImage (24초) */
-INSERT INTO TB_EP_GOODS_ADD_IMG (
-       GOODS_CD
-     , ADD_IMAGE_LINK
-)
-SELECT GOODS_CD
-     , GROUP_CONCAT(CONCAT('https://image.istyle24.com/Upload/ProductImage/',SYS_IMG_NM) SEPARATOR '|') AS ADD_IMAGE_LINK
-FROM   (SELECT GI.GOODS_CD
-             , GI.SYS_IMG_NM
-             , RANK() OVER(PARTITION BY GI.GOODS_CD
-                           ORDER BY GI.DISP_ORD, GI.SYS_IMG_NM) AS RK
-        FROM   TB_GOODS G
-             , TB_GOODS_IMG GI
-        WHERE  G.GOODS_CD = GI.GOODS_CD
-        AND    IF(G.SELF_GOODS_YN = 'N','XX',G.MAIN_COLOR_CD) = GI.COLOR_CD
-        AND    GI.DEFAULT_IMG_YN = 'N'
-       ) Z
-WHERE  RK <= 4
-GROUP  BY GOODS_CD
-;
-SELECT COUNT(*) FROM TB_EP_GOODS_ADD_IMG;
-
-/* TsbGoodsEp.truncateEpCardEvent */
-TRUNCATE TABLE TB_EP_CARD_EVENT;
-
-/* TsbGoodsEp.createEpCardEvent (1초) */
-INSERT INTO TB_EP_CARD_EVENT (
-       GOODS_CD
-     , CARD_EVENT
-)
-SELECT G.GOODS_CD
-     , GROUP_CONCAT(DISTINCT
-                    CONCAT(FN_GET_CODE_NM('G941',CPT.PRMT_TARGET_CD),'^',
-                           (G.CURR_PRICE
-                            -
-                            CASE WHEN CPC.DC_WAY = 'G240_10' /*정액할인*/ THEN CPC.DC_VAL
-                                 ELSE /*정율할인*/ CAST(G.CURR_PRICE * CPC.DC_VAL / 100 AS SIGNED INTEGER)
-                            END))
-                    SEPARATOR '|') AS CARD_EVENT
-FROM   TB_CARD_PROMOTION CP
-     , TB_CARD_PROMOTION_CONDITION CPC
-     , TB_CARD_PROMOTION_TARGET CPT
-     , (
-        SELECT G.GOODS_CD
-             , IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY AS CURR_PRICE
-        FROM   TB_GOODS G
-             , TB_GOODS_BENEFIT_PRICE GBP
-        WHERE  G.GOODS_CD = GBP.GOODS_CD
-       ) G
-WHERE  CP.CARD_PRMT_SQ = CPC.CARD_PRMT_SQ
-AND    CPC.CARD_PRMT_CDT_SQ = CPT.CARD_PRMT_CDT_SQ
-AND    CP.PRMT_GB = 'A' /*카드할인*/
-AND    CP.DC_GB = '1' /*즉시할인*/
-AND    CP.PRMT_STD <= DATE_FORMAT(CURRENT_DATE(),'%Y%m%d')
-AND    CP.PRMT_EDD >= DATE_FORMAT(CURRENT_DATE(),'%Y%m%d')
-AND    CP.DISP_YN = 'Y'
-AND    CPC.MIN_PAY_AMT < G.CURR_PRICE
-GROUP  BY G.GOODS_CD
-;
-SELECT COUNT(*) FROM TB_EP_CARD_EVENT;
-
-/* TsbGoodsEp.truncateEpCoupon */
-TRUNCATE TABLE TB_EP_COUPON;
-
-/* TsbGoodsEp.createEpCoupon (1초) */
-INSERT INTO TB_EP_COUPON (
-       GOODS_CD
-     , COUPON
-)
-SELECT GOODS_CD
-     , CONCAT(IFNULL(NORMAL_CPN,''),IF(AFLINK_CPN11 IS NULL,'',CONCAT('^',AFLINK_CPN11)),IF(AFLINK_CPN10 IS NULL,'',CONCAT('^',AFLINK_CPN10))) AS COUPON
-FROM   (
-        SELECT CR.REF_VAL            AS GOODS_CD
-             , CASE WHEN IFNULL(CAC.CNT,0) = 0 THEN
-                        CONCAT(C.DC_PVAL,CASE WHEN C.DC_WAY = 'G240_10' THEN '원' ELSE '%' END)
-                    ELSE
-                        NULL
-               END                   AS NORMAL_CPN /*일반쿠폰*/
-             , CASE WHEN IFNULL(CAC.CNT,0) > 0 AND C.DC_WAY = 'G240_10' THEN
-                        C.DC_PVAL
-                    ELSE
-                        NULL
-               END                   AS AFLINK_CPN10 /*정액제휴쿠폰*/
-             , CASE WHEN IFNULL(CAC.CNT,0) > 0 AND C.DC_WAY = 'G240_11' THEN
-                        C.DC_PVAL
-                    ELSE
-                        NULL
-               END                   AS AFLINK_CPN11 /*정율제휴쿠폰*/
-             , CASE WHEN IFNULL(CAC.CNT,0) = 0 THEN
-                        CASE WHEN C.DC_WAY = 'G240_10' THEN C.DC_PVAL
-                             ELSE IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY * C.DC_PVAL / 100
-                        END
-                    ELSE
-                        0
-               END                   AS NCPN_DC_AMT /*일반쿠폰할인금액*/
-             , RANK() OVER(PARTITION BY CR.REF_VAL
-                           ORDER BY (CASE WHEN IFNULL(CAC.CNT,0) = 0 THEN
-                                              CASE WHEN C.DC_WAY = 'G240_10' THEN C.DC_PVAL
-                                                   ELSE IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY * C.DC_PVAL / 100
-                                              END
-                                          ELSE
-                                              0
-                                     END) DESC,
-                                    (CASE WHEN IFNULL(CAC.CNT,0) > 0 AND C.DC_WAY = 'G240_10' THEN
-                                              C.DC_PVAL
-                                          ELSE
-                                              0
-                                     END) DESC,
-                                    (CASE WHEN IFNULL(CAC.CNT,0) > 0 AND C.DC_WAY = 'G240_11' THEN
-                                              IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY * C.DC_PVAL / 100
-                                          ELSE
-                                              0
-                                     END) DESC
-                          )          AS RK
-        FROM   TB_COUPON C
-        INNER JOIN TB_COUPON_REFVAL CR ON C.CPN_ID = CR.CPN_ID
-        INNER JOIN TB_GOODS G ON CR.REF_VAL = G.GOODS_CD
-        LEFT OUTER JOIN TB_GOODS_BENEFIT_PRICE GBP ON G.GOODS_CD = GBP.GOODS_CD
-        LEFT OUTER JOIN (
-                         SELECT CPN_ID
-                              , COUNT(*) AS CNT
-                         FROM   TB_COUPON_AF_CHANNEL
-                         WHERE  AF_LINK_CD IN (SELECT AF_LINK_CD
-                                               FROM   TB_AF_LINK
-                                               WHERE  AF_CHANNEL = 'G053_02' /*네이버*/
-                                               AND    USE_YN = 'Y'
-                                              )
-                         GROUP  BY CPN_ID
-                        ) CAC ON C.CPN_ID = CAC.CPN_ID
-        WHERE  C.SITE_CD = 'G000_10'
-        AND    C.CPN_STAT = 'G232_11' /*진행쿠폰*/
-        AND    C.CPN_TYPE IN ('G230_11','G230_20') /*상품쿠폰,주문서쿠폰*/
-        AND    (
-                (C.PD_GB = 'D' AND NOW() < DATE_ADD(NOW(), INTERVAL C.AVAIL_DAYS DAY))
-                OR
-                (C.PD_GB = 'P' AND NOW() BETWEEN C.AVAIL_STDT AND C.AVAIL_EDDT)
-               )
-        AND    C.APPLY_SCOPE = 'I' /*개별쿠폰*/
-        AND    CR.CPN_TYPE IN ('G230_11','G230_20') /*상품쿠폰,주문서쿠폰*/
-        AND    CR.CPN_TARGET = 'G260_10' /*상품쿠폰*/
-        AND    CR.DEL_YN = 'N'
-        AND    NOT EXISTS (SELECT 1
-                           FROM   TB_COUPON_REFVAL
-                           WHERE  CPN_ID = CR.CPN_ID
-                           AND    CPN_TARGET = 'G260_14' /*제외상품*/
-                           AND    REF_VAL = CR.REF_VAL
-                           AND    DEL_YN = 'N'
-                          )
-       ) Z
-WHERE  RK = 1
-AND    (
-        NORMAL_CPN IS NOT NULL
-        OR
-        AFLINK_CPN10 IS NOT NULL
-        OR
-        AFLINK_CPN11 IS NOT NULL
-       )
-;
-SELECT COUNT(*) FROM TB_EP_COUPON;
-
-/* TsbGoodsEp.truncateEpInterestFreeEvent */
-TRUNCATE TABLE TB_EP_INTEREST_FREE_EVENT;
-
-/* TsbGoodsEp.createEpInterestFreeEvent (1초) */
-INSERT INTO TB_EP_INTEREST_FREE_EVENT (
-       GOODS_CD
-     , INTEREST_FREE_EVENT
-)
-SELECT G.GOODS_CD
-     , GROUP_CONCAT(DISTINCT
-                    CONCAT(FN_GET_CODE_NM('G941',CPT.PRMT_TARGET_CD),'^',
-                           CPC.MIN_NO_ITRT,'~',CPC.MAX_NO_ITRT)
-                    SEPARATOR '|') AS INTEREST_FREE_EVENT /*무이자이벤트정보*/
-FROM   TB_CARD_PROMOTION CP
-     , TB_CARD_PROMOTION_CONDITION CPC
-     , TB_CARD_PROMOTION_TARGET CPT
-     , (
-        SELECT G.GOODS_CD
-             , IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY AS CURR_PRICE
-        FROM   TB_GOODS G
-             , TB_GOODS_BENEFIT_PRICE GBP
-        WHERE  G.GOODS_CD = GBP.GOODS_CD
-       ) G
-WHERE  CP.CARD_PRMT_SQ = CPC.CARD_PRMT_SQ
-AND    CPC.CARD_PRMT_CDT_SQ = CPT.CARD_PRMT_CDT_SQ
-AND    CP.PRMT_GB = 'B' /*무이자할부*/
-AND    CP.PRMT_STD <= DATE_FORMAT(CURRENT_DATE(),'%Y%m%d')
-AND    CP.PRMT_EDD >= DATE_FORMAT(CURRENT_DATE(),'%Y%m%d')
-AND    CP.DISP_YN = 'Y'
-AND    CPC.MIN_PAY_AMT < G.CURR_PRICE
-GROUP  BY G.GOODS_CD
-;
-SELECT COUNT(*) FROM TB_EP_INTEREST_FREE_EVENT;
-
-/* TsbGoodsEp.deleteEpNaver */
-DELETE FROM TB_EP_NAVER WHERE GB = 'PREV';
-
-/* TsbGoodsEp.createPreviousEpNaver */
-INSERT INTO TB_EP_NAVER (
-       GB
-     , ID
-     , TITLE
-     , PRICE_PC
-     , PRICE_MOBILE
-     , NORMAL_PRICE
-     , LINK
-     , MOBILE_LINK
-     , IMAGE_LINK
-     , ADD_IMAGE_LINK
-     , CATEGORY_NAME1
-     , CATEGORY_NAME2
-     , CATEGORY_NAME3
-     , CATEGORY_NAME4
-     , NAVER_CATEGORY
-     , GOODS_GB_NM
-     , IMPORT_FLAG
-     , PARALLEL_IMPORT
-     , ORDER_MADE
-     , PRODUCT_FLAG
-     , ADULT
-     , MANUFACTURE_DEFINE_NUMBER
-     , BRAND
-     , MAKER
-     , ORIGIN
-     , CARD_EVENT
-     , EVENT_WORDS
-     , COUPON
-     , PARTNER_COUPON_DOWNLOAD
-     , INTEREST_FREE_EVENT
-     , POINT
-     , SEARCH_TAG
-     , MINIMUM_PURCHASE_QUANTITY
-     , REVIEW_REG_CNT
-     , SHIPPING
-     , AGE_GROUP
-     , GENDER
-     , UPD_GB
-     , UPDATE_TIME
-)
-SELECT 'PREV' AS GB
-     , ID
-     , TITLE
-     , PRICE_PC
-     , PRICE_MOBILE
-     , NORMAL_PRICE
-     , LINK
-     , MOBILE_LINK
-     , IMAGE_LINK
-     , ADD_IMAGE_LINK
-     , CATEGORY_NAME1
-     , CATEGORY_NAME2
-     , CATEGORY_NAME3
-     , CATEGORY_NAME4
-     , NAVER_CATEGORY
-     , GOODS_GB_NM
-     , IMPORT_FLAG
-     , PARALLEL_IMPORT
-     , ORDER_MADE
-     , PRODUCT_FLAG
-     , ADULT
-     , MANUFACTURE_DEFINE_NUMBER
-     , BRAND
-     , MAKER
-     , ORIGIN
-     , CARD_EVENT
-     , EVENT_WORDS
-     , COUPON
-     , PARTNER_COUPON_DOWNLOAD
-     , INTEREST_FREE_EVENT
-     , POINT
-     , SEARCH_TAG
-     , MINIMUM_PURCHASE_QUANTITY
-     , REVIEW_REG_CNT
-     , SHIPPING
-     , AGE_GROUP
-     , GENDER
-     , UPD_GB
-     , UPDATE_TIME
-FROM   TB_EP_NAVER
-WHERE  GB = 'LAST'
-;
-SELECT COUNT(*) FROM TB_EP_NAVER WHERE GB = 'PREV';
-
-/* TsbGoodsEp.deleteEpNaver */
-DELETE FROM TB_EP_NAVER WHERE GB = 'CURR';
-
-/* TsbGoodsEp.createEpNaver (2분 27초) */
-INSERT INTO TB_EP_NAVER (
-       GB
-     , ID
-     , TITLE
-     , PRICE_PC
-     , PRICE_MOBILE
-     , NORMAL_PRICE
-     , LINK
-     , MOBILE_LINK
-     , IMAGE_LINK
-     , ADD_IMAGE_LINK
-     , CATEGORY_NAME1
-     , CATEGORY_NAME2
-     , CATEGORY_NAME3
-     , CATEGORY_NAME4
-     , NAVER_CATEGORY
-     , GOODS_GB_NM
-     , IMPORT_FLAG
-     , PARALLEL_IMPORT
-     , ORDER_MADE
-     , PRODUCT_FLAG
-     , ADULT
-     , MANUFACTURE_DEFINE_NUMBER
-     , BRAND
-     , MAKER
-     , ORIGIN
-     , CARD_EVENT
-     , EVENT_WORDS
-     , COUPON
-     , PARTNER_COUPON_DOWNLOAD
-     , INTEREST_FREE_EVENT
-     , POINT
-     , SEARCH_TAG
-     , MINIMUM_PURCHASE_QUANTITY
-     , REVIEW_REG_CNT
-     , SHIPPING
-     , AGE_GROUP
-     , GENDER
-     , UPD_GB
-     , UPDATE_TIME
-)
-SELECT 'CURR'                                                 AS GB                       /*구분(PREV:이전, CURR:현재)*/
-     , G.GOODS_CD                                             AS ID                       /*상품ID*/
-     , SUBSTRING(CONCAT('[',CASE WHEN B.DISP_NM_LANG = 'EN' THEN B.BRAND_ENM ELSE B.BRAND_KNM END,'] ',
-                        G.GOODS_NM,
-                        IFNULL(G.GOODS_NUM,'')),1,100)        AS TITLE                    /*상품명*/
-     , IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY AS PRICE_PC                 /*즉시할인이적용된가격*/
-     , IFNULL(GBP.MO_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY AS PRICE_MOBILE             /*즉시할인이적용된가격*/
-     , G.LIST_PRICE                                           AS NORMAL_PRICE             /*정상가*/
-     , CONCAT('https://www.style24.com/goods/detail/form?goodsCd=',G.GOODS_CD)                      AS LINK                     /*PC상세URL*/
-     , CONCAT('https://www.style24.com/goods/detail/form?goodsCd=',G.GOODS_CD)                      AS MOBILE_LINK              /*모바일상세URL*/
-     , GI.IMAGE_LINK                                                                      /*이미지URL*/
-     , GAI.ADD_IMAGE_LINK                                                                 /*추가이미지URL(4개까지. |로 구분)*/
-     , SUBSTRING_INDEX(I.ITEMKIND_NM,'>',1)                   AS CATEGORY_NAME1           /*카테고리명1*/
-     , CASE WHEN SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',1),'>',-1) = SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',2),'>',-1) THEN
-                NULL
-            ELSE
-                SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',2),'>',-1)
-       END                                                    AS CATEGORY_NAME2           /*카테고리명2*/
-     , CASE WHEN SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',2),'>',-1) = SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',3),'>',-1) THEN
-                NULL
-            ELSE
-                SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',3),'>',-1)
-       END                                                    AS CATEGORY_NAME3           /*카테고리명3*/
-     , CASE WHEN SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',3),'>',-1) = SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',4),'>',-1) THEN
-                NULL
-            ELSE
-                SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',4),'>',-1)
-       END                                                    AS CATEGORY_NAME4            /*카테고리명4*/
-     , EC.EP_CATE_CD                                          AS NAVER_CATEGORY            /*네이버카테고리*/
-     , CC1.CD_NM                                              AS GOODS_GB_NM               /*상품구분명*/
-     , G.FOREIGN_BUY_YN                                       AS IMPORT_FLAG               /*해외구매대행여부*/
-     , G.PARALLEL_IMPORT_YN                                   AS PARALLEL_IMPORT           /*병행수입여부*/
-     , G.ORDER_MADE_YN                                        AS ORDER_MADE                /*주문제작상품여부*/
-     , IF(GRS.GOODS_CD IS NULL,NULL,'예약판매')               AS PRODUCT_FLAG              /*예약판매*/
-     , G.ADULT_YN                                             AS ADULT                     /*성인여부*/
-     , G.GOODS_NUM                                            AS MANUFACTURE_DEFINE_NUMBER /*제품코드*/
-     , IF(B.DISP_NM_LANG = 'EN',B.BRAND_ENM,B.BRAND_KNM)      AS BRAND                     /*브랜드명*/
-     , SUBSTRING(GNI.NI_CONTENT,1,50)                         AS MAKER                     /*제조사*/
-     , CC2.CD_NM                                              AS ORIGIN                    /*원산지*/
-     , CE.CARD_EVENT                                                                       /*카드행사*/
-     , G.GOODS_TNM                                            AS EVENT_WORDS               /*상품셀링문구*/
-     , TEC.COUPON                                                                          /*쿠폰*/
-     , IF(TEC.COUPON IS NULL,NULL,'Y')                        AS PARTNER_COUPON_DOWNLOAD   /*쿠폰다운로드여부*/
-     , IFE.INTEREST_FREE_EVENT                                                             /*무이자행사*/
-     , CONCAT('스타일포인트','^',
-              CAST(IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY * G.PNT_PRATE AS SIGNED INTEGER)
-             )                                                AS PNT                       /*포인트*/
-     , SUBSTRING(CONCAT(IFNULL(G.GOODS_SNM,''),
-              CASE WHEN LENGTH(IFNULL(G.GOODS_SNM1,'')) = 0 THEN
-                       ''
-                   ELSE
-                       '|'
-              END,
-              IFNULL(G.GOODS_SNM1,'')
-             ),1,100)                                         AS SEARCH_TAG                /*검색태그*/
-     , CASE WHEN G.MIN_ORD_QTY > 0 THEN
-                G.MIN_ORD_QTY
-            ELSE
-                NULL
-       END                                                    AS MINIMUM_PURCHASE_QUANTITY /*최소구매금액*/
-     , IFNULL(GS.REVIEW_REG_CNT,0)                            AS REVIEW_REG_CNT            /*상품평수*/
-     , IFNULL(CASE WHEN DFP.DELV_FEE_CRITE = 'G078_20' /*무료*/ THEN
-                       0
-                   ELSE /*조건부무료 또는 유료*/
-                       CASE WHEN DFP.MIN_ORD_AMT <= IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY THEN
-                                0
-                            ELSE
-                                DFP.DELV_FEE
-                       END
-              END,0)                                          AS SHIPPING                  /*배송료*/
-     , CASE WHEN SUBSTRING(I.ITEMKIND_CD,1,2) = '07' THEN '유아'
-            WHEN SUBSTRING(I.ITEMKIND_CD,1,2) IN ('08','09','10') THEN '아동'
-            WHEN SUBSTRING(I.ITEMKIND_CD,1,2) IN ('11','12','13') THEN '청소년'
-            ELSE '성인'
-       END                                                    AS AGE_GROUP                 /*나이*/
-     , CASE WHEN G.SEX_GB = 'G007_F' THEN '여성'
-            WHEN G.SEX_GB = 'G007_M' THEN '남성'
-            ELSE '남여공용'
-       END                                                    AS GENDER                    /*성별*/
-     , 'I'                                                    AS UPD_GB                    /*변경구분*/
-     , DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%S')                 AS UPDATE_TIME               /*변경일시*/
-FROM   TB_GOODS G
-INNER JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
-INNER JOIN TB_ITEMKIND I ON G.ITEMKIND_CD = I.ITEMKIND_CD
-INNER JOIN TB_DELV_FEE_POLICY DFP ON G.DELV_FEE_CD = DFP.DELV_FEE_CD
-LEFT OUTER JOIN TB_GOODS_BENEFIT_PRICE GBP ON G.GOODS_CD = GBP.GOODS_CD
-LEFT OUTER JOIN TB_GOODS_SUMMARY GS ON G.GOODS_CD = GS.GOODS_CD
-LEFT OUTER JOIN TB_EP_GOODS_IMG GI ON G.GOODS_CD = GI.GOODS_CD
-LEFT OUTER JOIN TB_EP_GOODS_ADD_IMG GAI ON G.GOODS_CD = GAI.GOODS_CD
-LEFT OUTER JOIN (
-                 SELECT ITEMKIND_CD
-                      , MIN(EP_CATE_CD) AS EP_CATE_CD
-                 FROM   TB_EP_CATE
-                 WHERE  EP_GB = '10' /*네이버*/
-                 AND    USE_YN = 'Y'
-                 GROUP  BY ITEMKIND_CD
-                ) EC ON G.ITEMKIND_CD = EC.ITEMKIND_CD
-LEFT OUTER JOIN TB_GOODS_RES_SELL GRS ON G.GOODS_CD = GRS.GOODS_CD
-                                     AND GRS.DELV_RES_DT >= NOW()
-                                     AND GRS.USE_YN = 'Y'
-LEFT OUTER JOIN TB_EP_CARD_EVENT CE ON G.GOODS_CD = CE.GOODS_CD
-LEFT OUTER JOIN TB_EP_COUPON TEC ON G.GOODS_CD = TEC.GOODS_CD
-LEFT OUTER JOIN TB_EP_INTEREST_FREE_EVENT IFE ON G.GOODS_CD = IFE.GOODS_CD
-LEFT OUTER JOIN TB_GOODS_NOTI_INFO GNI ON G.GOODS_CD = GNI.GOODS_CD
-                                      AND GNI.NI_ITEM_CD = 'G005_005' /*제조사*/
-LEFT OUTER JOIN TB_COMMON_CODE CC1 ON G.GOODS_GB = CC1.CD
-                                 AND CC1.CD_GB = 'G073'
-LEFT OUTER JOIN TB_COMMON_CODE CC2 ON G.ORIGIN_CD = CC2.CD
-                                  AND CC2.CD_GB = 'G076'
-WHERE  1 = 1
-AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
-AND    G.SELF_MALL_YN = 'Y' /*몰노출상품*/
-AND    G.SELL_STDT <= NOW() /*유효한 판매기간*/
-AND    G.SELL_EDDT >= NOW() /*유효한 판매기간*/
-AND    G.ADULT_YN = 'N' /*성인상품아닌넘만*/
--- AND    G.UPD_DT >= DATE_ADD(NOW(), INTERVAL -2 HOUR) /*요약EP생성시사용*/
-;
-SELECT COUNT(*) FROM TB_EP_NAVER WHERE GB = 'CURR';
-
--- 최종 네이버 EP 생성 (55초)
-INSERT INTO TB_EP_NAVER (
-       GB
-     , ID
-     , TITLE
-     , PRICE_PC
-     , PRICE_MOBILE
-     , NORMAL_PRICE
-     , LINK
-     , MOBILE_LINK
-     , IMAGE_LINK
-     , ADD_IMAGE_LINK
-     , CATEGORY_NAME1
-     , CATEGORY_NAME2
-     , CATEGORY_NAME3
-     , CATEGORY_NAME4
-     , NAVER_CATEGORY
-     , GOODS_GB_NM
-     , IMPORT_FLAG
-     , PARALLEL_IMPORT
-     , ORDER_MADE
-     , PRODUCT_FLAG
-     , ADULT
-     , MANUFACTURE_DEFINE_NUMBER
-     , BRAND
-     , MAKER
-     , ORIGIN
-     , CARD_EVENT
-     , EVENT_WORDS
-     , COUPON
-     , PARTNER_COUPON_DOWNLOAD
-     , INTEREST_FREE_EVENT
-     , POINT
-     , SEARCH_TAG
-     , MINIMUM_PURCHASE_QUANTITY
-     , REVIEW_REG_CNT
-     , SHIPPING
-     , AGE_GROUP
-     , GENDER
-     , GOODS_STAT
-     , SELF_MALL_YN
-     , SELL_STDT
-     , SELL_EDDT
-     , UPD_GB
-     , UPDATE_TIME
-)
-SELECT 'LAST'                                 AS GB
-     , ID
-     , TITLE
-     , PRICE_PC
-     , PRICE_MOBILE
-     , NORMAL_PRICE
-     , LINK
-     , MOBILE_LINK
-     , IMAGE_LINK
-     , ADD_IMAGE_LINK
-     , CATEGORY_NAME1
-     , CATEGORY_NAME2
-     , CATEGORY_NAME3
-     , CATEGORY_NAME4
-     , NAVER_CATEGORY
-     , GOODS_GB_NM
-     , IMPORT_FLAG
-     , PARALLEL_IMPORT
-     , ORDER_MADE
-     , PRODUCT_FLAG
-     , ADULT
-     , MANUFACTURE_DEFINE_NUMBER
-     , BRAND
-     , MAKER
-     , ORIGIN
-     , CARD_EVENT
-     , EVENT_WORDS
-     , COUPON
-     , PARTNER_COUPON_DOWNLOAD
-     , INTEREST_FREE_EVENT
-     , POINT
-     , SEARCH_TAG
-     , MINIMUM_PURCHASE_QUANTITY
-     , REVIEW_REG_CNT
-     , SHIPPING
-     , AGE_GROUP
-     , GENDER
-     , GOODS_STAT
-     , SELF_MALL_YN
-     , SELL_STDT
-     , SELL_EDDT
-     , UPD_GB
-     , DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%S') AS UPDATE_TIME /*변경일시*/
-FROM   (
-        /*신규 목록*/
-        SELECT ID
-             , TITLE
-             , PRICE_PC
-             , PRICE_MOBILE
-             , NORMAL_PRICE
-             , LINK
-             , MOBILE_LINK
-             , IMAGE_LINK
-             , ADD_IMAGE_LINK
-             , CATEGORY_NAME1
-             , CATEGORY_NAME2
-             , CATEGORY_NAME3
-             , CATEGORY_NAME4
-             , NAVER_CATEGORY
-             , GOODS_GB_NM
-             , IMPORT_FLAG
-             , PARALLEL_IMPORT
-             , ORDER_MADE
-             , PRODUCT_FLAG
-             , ADULT
-             , MANUFACTURE_DEFINE_NUMBER
-             , BRAND
-             , MAKER
-             , ORIGIN
-             , CARD_EVENT
-             , EVENT_WORDS
-             , COUPON
-             , PARTNER_COUPON_DOWNLOAD
-             , INTEREST_FREE_EVENT
-             , POINT
-             , SEARCH_TAG
-             , MINIMUM_PURCHASE_QUANTITY
-             , REVIEW_REG_CNT
-             , SHIPPING
-             , AGE_GROUP
-             , GENDER
-             , GOODS_STAT
-             , SELF_MALL_YN
-             , SELL_STDT
-             , SELL_EDDT
-             , 'I'                         AS UPD_GB /*변경구분*/
-        FROM   TB_EP_NAVER X
-        WHERE  GB = 'CURR' /*현재데이터*/
-        /*요약EP*/
-#         AND    NOT EXISTS (SELECT 1
-#                            FROM   TB_EP_NAVER
-#                            WHERE  GB = 'PREV' /*이전백업데이터*/
-#                            AND    ID = X.ID
-#                           )
-#         UNION ALL
-#         -- 변경 목록
-#         SELECT X.ID
-#              , X.TITLE
-#              , X.PRICE_PC
-#              , X.PRICE_MOBILE
-#              , X.NORMAL_PRICE
-#              , X.LINK
-#              , X.MOBILE_LINK
-#              , X.IMAGE_LINK
-#              , X.ADD_IMAGE_LINK
-#              , X.CATEGORY_NAME1
-#              , X.CATEGORY_NAME2
-#              , X.CATEGORY_NAME3
-#              , X.CATEGORY_NAME4
-#              , X.NAVER_CATEGORY
-#              , X.GOODS_GB_NM
-#              , X.IMPORT_FLAG
-#              , X.PARALLEL_IMPORT
-#              , X.ORDER_MADE
-#              , X.PRODUCT_FLAG
-#              , X.ADULT
-#              , X.MANUFACTURE_DEFINE_NUMBER
-#              , X.BRAND
-#              , X.MAKER
-#              , X.ORIGIN
-#              , X.CARD_EVENT
-#              , X.EVENT_WORDS
-#              , X.COUPON
-#              , X.PARTNER_COUPON_DOWNLOAD
-#              , X.INTEREST_FREE_EVENT
-#              , X.POINT
-#              , X.SEARCH_TAG
-#              , X.MINIMUM_PURCHASE_QUANTITY
-#              , X.REVIEW_REG_CNT
-#              , X.SHIPPING
-#              , X.AGE_GROUP
-#              , X.GENDER
-#              , X.GOODS_STAT
-#              , X.SELF_MALL_YN
-#              , X.SELL_STDT
-#              , X.SELL_EDDT
-#              , 'U'                         AS UPD_GB /*변경구분*/
-#         FROM   TB_EP_NAVER X
-#              , TB_EP_NAVER Y
-#         WHERE  X.ID = Y.ID
-#         AND    X.GB = 'CURR' /*현재데이터*/
-#         AND    Y.GB = 'PREV' /*이전백업데이터*/
-#         AND    (
-#                 X.PRICE_PC != X.PRICE_PC OR
-#                 X.PRICE_MOBILE != X.PRICE_MOBILE OR
-#                 X.NORMAL_PRICE != X.NORMAL_PRICE OR
-#                 X.LINK != X.LINK OR
-#                 X.MOBILE_LINK != X.MOBILE_LINK OR
-#                 X.IMAGE_LINK != X.IMAGE_LINK OR
-#                 X.ADD_IMAGE_LINK != X.ADD_IMAGE_LINK OR
-#                 X.CATEGORY_NAME1 != X.CATEGORY_NAME1 OR
-#                 X.CATEGORY_NAME2 != X.CATEGORY_NAME2 OR
-#                 X.CATEGORY_NAME3 != X.CATEGORY_NAME3 OR
-#                 X.CATEGORY_NAME4 != X.CATEGORY_NAME4 OR
-#                 X.NAVER_CATEGORY != X.NAVER_CATEGORY OR
-#                 X.GOODS_GB_NM != X.GOODS_GB_NM OR
-#                 X.IMPORT_FLAG != X.IMPORT_FLAG OR
-#                 X.PARALLEL_IMPORT != X.PARALLEL_IMPORT OR
-#                 X.ORDER_MADE != X.ORDER_MADE OR
-#                 X.PRODUCT_FLAG != X.PRODUCT_FLAG OR
-#                 X.ADULT != X.ADULT OR
-#                 X.MANUFACTURE_DEFINE_NUMBER != X.MANUFACTURE_DEFINE_NUMBER OR
-#                 X.BRAND != X.BRAND OR
-#                 X.MAKER != X.MAKER OR
-#                 X.ORIGIN != X.ORIGIN OR
-#                 X.CARD_EVENT != X.CARD_EVENT OR
-#                 X.EVENT_WORDS != X.EVENT_WORDS OR
-#                 X.COUPON != X.COUPON OR
-#                 X.PARTNER_COUPON_DOWNLOAD != X.PARTNER_COUPON_DOWNLOAD OR
-#                 X.INTEREST_FREE_EVENT != X.INTEREST_FREE_EVENT OR
-#                 X.POINT != X.POINT OR
-#                 X.SEARCH_TAG != X.SEARCH_TAG OR
-#                 X.MINIMUM_PURCHASE_QUANTITY != X.MINIMUM_PURCHASE_QUANTITY OR
-#                 X.REVIEW_REG_CNT != X.REVIEW_REG_CNT OR
-#                 X.SHIPPING != X.SHIPPING OR
-#                 X.AGE_GROUP != X.AGE_GROUP OR
-#                 X.GENDER != X.GENDER OR
-#                )
-#         UNION ALL
-#         -- 삭제된 목록
-#         SELECT X.ID
-#              , X.TITLE
-#              , X.PRICE_PC
-#              , X.PRICE_MOBILE
-#              , X.NORMAL_PRICE
-#              , X.LINK
-#              , X.MOBILE_LINK
-#              , X.IMAGE_LINK
-#              , X.ADD_IMAGE_LINK
-#              , X.CATEGORY_NAME1
-#              , X.CATEGORY_NAME2
-#              , X.CATEGORY_NAME3
-#              , X.CATEGORY_NAME4
-#              , X.NAVER_CATEGORY
-#              , X.GOODS_GB_NM
-#              , X.IMPORT_FLAG
-#              , X.PARALLEL_IMPORT
-#              , X.ORDER_MADE
-#              , X.PRODUCT_FLAG
-#              , X.ADULT
-#              , X.MANUFACTURE_DEFINE_NUMBER
-#              , X.BRAND
-#              , X.MAKER
-#              , X.ORIGIN
-#              , X.CARD_EVENT
-#              , X.EVENT_WORDS
-#              , X.COUPON
-#              , X.PARTNER_COUPON_DOWNLOAD
-#              , X.INTEREST_FREE_EVENT
-#              , X.POINT
-#              , X.SEARCH_TAG
-#              , X.MINIMUM_PURCHASE_QUANTITY
-#              , X.REVIEW_REG_CNT
-#              , X.SHIPPING
-#              , X.AGE_GROUP
-#              , X.GENDER
-#              , X.GOODS_STAT
-#              , X.SELF_MALL_YN
-#              , X.SELL_STDT
-#              , X.SELL_EDDT
-#              , 'D'                         AS UPD_GB /*변경구분*/
-#         FROM   TB_EP_NAVER X
-#              , TB_EP_NAVER Y
-#         WHERE  X.ID = Y.ID
-#         AND    X.GB = 'CURR' /*현재데이터*/
-#         AND    Y.GB = 'PREV' /*이전백업데이터*/
-#         AND    (
-#                 (Y.GOODS_STAT != 'G008_70' AND X.GOODS_STAT = 'G008_70')
-#                 OR
-#                 (Y.SELF_MALL_YN = 'Y' AND X.SELF_MALL_YN = 'N')
-#                 OR
-#                 (Y.SELL_EDDT != X.SELL_EDDT AND Y.SELL_EDDT <![CDATA[<]]> NOW())
-#                )
-       ) X
-;
-SELECT COUNT(*) FROM TB_EP_NAVER WHERE GB = 'LAST';
-
-/* TsbGoodsEp.getNaverAllEpList */
-SELECT ID
-     , TITLE
-     , PRICE_PC
-     , PRICE_MOBILE
-     , NORMAL_PRICE
-     , LINK
-     , MOBILE_LINK
-     , IMAGE_LINK
-     , ADD_IMAGE_LINK
-     , CATEGORY_NAME1
-     , CATEGORY_NAME2
-     , CATEGORY_NAME3
-     , CATEGORY_NAME4
-     , NAVER_CATEGORY
-     , GOODS_GB_NM
-     , IMPORT_FLAG
-     , PARALLEL_IMPORT
-     , ORDER_MADE
-     , PRODUCT_FLAG
-     , ADULT
-     , MANUFACTURE_DEFINE_NUMBER
-     , BRAND
-     , MAKER
-     , ORIGIN
-     , CARD_EVENT
-     , EVENT_WORDS
-     , COUPON
-     , PARTNER_COUPON_DOWNLOAD
-     , INTEREST_FREE_EVENT
-     , POINT
-     , SEARCH_TAG
-     , MINIMUM_PURCHASE_QUANTITY
-     , REVIEW_REG_CNT
-     , SHIPPING
-     , AGE_GROUP
-     , GENDER
-     , UPD_GB
-     , UPDATE_TIME
-FROM   TB_EP_NAVER
-WHERE  GB = 'LAST'
-;

+ 0 - 956
산출물/4.구축/데이터처리/네이버EP생성_20210615_2.sql

@@ -1,956 +0,0 @@
-################################################################################
-#EP상품이미지
-################################################################################
-DROP TABLE IF EXISTS TB_EP_GOODS_IMG RESTRICT;
-CREATE TABLE TB_EP_GOODS_IMG (
-  GOODS_CD    VARCHAR(20)   NOT NULL COMMENT '상품코드(상품)',
-  IMAGE_LINK  VARCHAR(200)  COMMENT '이미지링크'
-)
-COMMENT 'EP상품이미지. EP상품이미지 생성에 의한 발생';
-
-################################################################################
-#EP상품추가이미지
-################################################################################
-DROP TABLE IF EXISTS TB_EP_GOODS_ADD_IMG RESTRICT;
-CREATE TABLE TB_EP_GOODS_ADD_IMG (
-  GOODS_CD        VARCHAR(20)    NOT NULL COMMENT '상품코드(상품)',
-  ADD_IMAGE_LINK  VARCHAR(1000)  COMMENT '추가이미지링크(|로 구분. 최대4개)'
-)
-COMMENT 'EP상품추가이미지. EP상품추가이미지 생성에 의한 발생';
-
-################################################################################
-#EP카드행사
-################################################################################
-DROP TABLE IF EXISTS TB_EP_CARD_EVENT RESTRICT;
-CREATE TABLE TB_EP_CARD_EVENT (
-  GOODS_CD    VARCHAR(20)    NOT NULL COMMENT '상품코드(상품)',
-  CARD_EVENT  VARCHAR(100)   COMMENT '카드행사'
-)
-COMMENT 'EP카드행사. EP카드행사 생성에 의한 발생';
-
-################################################################################
-#EP쿠폰
-################################################################################
-DROP TABLE IF EXISTS TB_EP_COUPON RESTRICT;
-CREATE TABLE TB_EP_COUPON (
-  GOODS_CD    VARCHAR(20)   NOT NULL COMMENT '상품코드(상품)',
-  COUPON      VARCHAR(100)  COMMENT '할인쿠폰정보'
-)
-COMMENT 'EP쿠폰. EP쿠폰 생성에 의한 발생';
-
-################################################################################
-#EP무이자행사
-################################################################################
-DROP TABLE IF EXISTS TB_EP_INTEREST_FREE_EVENT RESTRICT;
-CREATE TABLE TB_EP_INTEREST_FREE_EVENT (
-  GOODS_CD             VARCHAR(20)   NOT NULL COMMENT '상품코드(상품)',
-  INTEREST_FREE_EVENT  VARCHAR(100)  COMMENT '무이자행사'
-)
-COMMENT 'EP무이자행사. EP무이자행사 생성에 의한 발생';
-
-################################################################################
-#EP네이버
-################################################################################
-DROP TABLE IF EXISTS TB_EP_NAVER RESTRICT;
-CREATE TABLE TB_EP_NAVER (
-  GB                         VARCHAR(4)     NOT NULL COMMENT '구분(PREV:이전, CURR:현재)',
-  ID                         VARCHAR(20)    NOT NULL COMMENT '상품코드(상품)',
-  TITLE                      VARCHAR(100)   COMMENT '상품명([브랜드명]+상품명+상품코드 형식)',
-  PRICE_PC                   INT UNSIGNED   COMMENT 'PC가격',
-  PRICE_MOBILE               INT UNSIGNED   COMMENT '모바일가격',
-  NORMAL_PRICE               INT UNSIGNED   COMMENT '정상가',
-  LINK                       VARCHAR(200)   COMMENT 'PC상품상세URL',
-  MOBILE_LINK                VARCHAR(200)   COMMENT '모바일상품상세URL',
-  IMAGE_LINK                 VARCHAR(200)   COMMENT '이미지링크',
-  ADD_IMAGE_LINK             VARCHAR(1000)  COMMENT '추가이미지링크(|로 구분. 최대4개)',
-  CATEGORY_NAME1             VARCHAR(50)    COMMENT '카테고리명1',
-  CATEGORY_NAME2             VARCHAR(50)    COMMENT '카테고리명2',
-  CATEGORY_NAME3             VARCHAR(50)    COMMENT '카테고리명3',
-  CATEGORY_NAME4             VARCHAR(50)    COMMENT '카테고리명4',
-  NAVER_CATEGORY             VARCHAR(20)    COMMENT '네이버카테고리(EP카테고리)',
-  GOODS_GB_NM                VARCHAR(10)    COMMENT '상품구분명(공통코드G073)',
-  IMPORT_FLAG                VARCHAR(1)     COMMENT '해외구매대행여부',
-  PARALLEL_IMPORT            VARCHAR(1)     COMMENT '병행수입여부',
-  ORDER_MADE                 VARCHAR(1)     COMMENT '주문제작여부',
-  PRODUCT_FLAG               VARCHAR(10)    COMMENT '예약판매',
-  ADULT                      VARCHAR(1)     COMMENT '미성년자구매불가상품여부',
-  MANUFACTURE_DEFINE_NUMBER  VARCHAR(20)    COMMENT '제품코드(품번)',
-  BRAND                      VARCHAR(50)    COMMENT '브랜드명',
-  MAKER                      VARCHAR(50)    COMMENT '제조사',
-  ORIGIN                     VARCHAR(50)    COMMENT '원산지',
-  CARD_EVENT                 VARCHAR(100)   COMMENT '카드행사(카드즉시할인 등록된 기준으로 적용. 카드명^카드적용가|카드명^카드적용가... 형식)',
-  EVENT_WORDS                VARCHAR(100)   COMMENT '상품타이틀명(세일링문구)',
-  COUPON                     VARCHAR(100)   COMMENT '할인쿠폰정보(일반쿠폰^정율제휴쿠폰^정액제휴쿠폰 형식. 일반쿠폰은 최대할인기준 1개)',
-  PARTNER_COUPON_DOWNLOAD    VARCHAR(1)     COMMENT '쿠폰다운로드필요여부',
-  INTEREST_FREE_EVENT        VARCHAR(100)   COMMENT '무이자행사(카드명^개월수-개월수|카드명^개월수-개월수... 형식)',
-  POINT                      VARCHAR(50)    COMMENT '포인트정보(스타일포인트^포인트액 형식)',
-  SEARCH_TAG                 VARCHAR(100)   COMMENT '검색태그',
-  MINIMUM_PURCHASE_QUANTITY  VARCHAR(10)    COMMENT '최소구매수량',
-  REVIEW_COUNT               INT UNSIGNED   COMMENT '상품평수',
-  SHIPPING                   INT UNSIGNED   COMMENT '배송료',
-  AGE_GROUP                  VARCHAR(10)    COMMENT '나이(베이비->유아, 키즈여아/키즈남아/키즈공용->아동, 주니어남아/주니어여아/주니어공용->청소년, 성인)',
-  GENDER                     VARCHAR(10)    COMMENT '성별(남성/여성/남여공용)',
-  GOODS_STAT                 VARCHAR(20)    COMMENT '상품상태(공통코드G008)',
-  SELF_MALL_YN               CHAR(1)        COMMENT '자사몰노출여부',
-  SELL_STDT                  DATETIME       COMMENT '판매시작일시',
-  SELL_EDDT                  DATETIME       COMMENT '판매종료일시',
-  ADULT_YN                   CHAR(1)        COMMENT '성인용품여부',
-  UPD_GB                     VARCHAR(1)     COMMENT '업데이트구분(I:신규상품, U:기존상품중업데이트된상품 또는 품절되었다가다시서비스되는상품, D:품절상품)',
-  UPDATE_TIME                VARCHAR(20)    COMMENT '업데이트시간(YYYY-MM-DD HH:MM:SS 형식)'
-)
-COMMENT 'EP네이버. EP네이버 생성에 의한 발생';
-
-CREATE UNIQUE INDEX IX_EP_NAVER_01
-  ON TB_EP_NAVER (
-    GB, ID
-  );
-
-################################################################################
-#EP다음
-################################################################################
-DROP TABLE IF EXISTS TB_EP_DAUM RESTRICT;
-CREATE TABLE TB_EP_DAUM (
-  GB            VARCHAR(4)     NOT NULL COMMENT '구분(PREV:이전, CURR:현재)',
-  MAPID         VARCHAR(20)    NOT NULL COMMENT '상품코드(상품)',
-  LPRICE        INT UNSIGNED   COMMENT '정상가',
-  PRICE         INT UNSIGNED   COMMENT 'PC가격',
-  MPRIC         INT UNSIGNED   COMMENT '모바일가격',
-  PNAME         VARCHAR(100)   COMMENT '상품명([상품구분명]+[브랜드명]+상품명+상품코드 형식)',
-  PGURL         VARCHAR(200)   COMMENT 'PC상품상세URL',
-  IGURL         VARCHAR(200)   COMMENT '이미지링크',
-  UPIMG         VARCHAR(1)     DEFAULT 'N' COMMENT '전체EP생성 이후 이미지변경되었을때전송(Y/N)',
-  CATE1         VARCHAR(50)    COMMENT '카테고리명1',
-  CAID1         VARCHAR(10)    COMMENT '카테고리ID1',
-  CATE2         VARCHAR(50)    COMMENT '카테고리명2',
-  CAID2         VARCHAR(10)    COMMENT '카테고리ID2',
-  CATE3         VARCHAR(50)    COMMENT '카테고리명3',
-  CAID3         VARCHAR(10)    COMMENT '카테고리ID3',
-  CATE4         VARCHAR(50)    COMMENT '카테고리명4',
-  CAID4         VARCHAR(10)    COMMENT '카테고리ID4',
-  MODEL         VARCHAR(20)    COMMENT '모델(품번)',
-  BRAND         VARCHAR(50)    COMMENT '브랜드명',
-  MAKER         VARCHAR(50)    COMMENT '제조사',
-  COUPON        VARCHAR(100)   COMMENT '할인쿠폰정보(일반쿠폰^정율제휴쿠폰^정액제휴쿠폰 형식. 일반쿠폰은 최대할인기준 1개)',
-  MCOUPON       VARCHAR(100)   COMMENT '할인쿠폰정보(일반쿠폰^정율제휴쿠폰^정액제휴쿠폰 형식. 일반쿠폰은 최대할인기준 1개)',
-  PCARD         VARCHAR(100)   COMMENT '무이자행사(카드명^개월수-개월수|카드명^개월수-개월수... 형식)',
-  POINT         VARCHAR(10)    COMMENT '포인트율',
-  DELIV         INT UNSIGNED   COMMENT '배송료',
-  DELIVTERM     INT UNSIGNED   COMMENT '배송기간',
-  RATING        VARCHAR(20)    COMMENT '상품평점수(4.5/5 형식)',
-  REVCT         INT UNSIGNED   COMMENT '상품평수',
-  EVENT         VARCHAR(100)   COMMENT '상품타이틀명(세일링문구)',
-  CARDDN        VARCHAR(100)   COMMENT '카드행사(카드즉시할인 등록된 기준으로 적용. 카드명^카드적용가|카드명^카드적용가... 형식)',
-  CARDP         INT UNSIGNED   COMMENT '카드적용가(최대1개)',
-  ADULT         VARCHAR(1)     COMMENT '성인상품여부',
-  PUBDATE       VARCHAR(8)     COMMENT '상품등록일',
-  GOODS_STAT    VARCHAR(20)    COMMENT '상품상태(공통코드G008)',
-  SELF_MALL_YN  CHAR(1)        COMMENT '자사몰노출여부',
-  SELL_STDT     DATETIME       COMMENT '판매시작일시',
-  SELL_EDDT     DATETIME       COMMENT '판매종료일시',
-  UPD_GB        VARCHAR(1)     COMMENT '업데이트구분(I:신규상품, U:기존상품중업데이트된상품 또는 품절되었다가다시서비스되는상품, D:품절상품)',
-  UTIME         VARCHAR(20)    COMMENT '업데이트시간(YYYYMMDDHHMMSS 형식)'
-)
-COMMENT 'EP다음. EP다음 생성에 의한 발생';
-
-CREATE UNIQUE INDEX IX_EP_DAUM_01
-  ON TB_EP_DAUM (
-    GB, ID
-  );
-
--- SET GROUP_CONCAT_MAX_LEN = 102400;
-
-/* TsbGoodsEp.truncateEpGoodsImage */
-TRUNCATE TABLE TB_EP_GOODS_IMG;
-	
-/* TsbGoodsEp.createEpGoodsImage *(32초) */
-INSERT INTO TB_EP_GOODS_IMG (
-       GOODS_CD
-     , IMAGE_LINK
-)
-SELECT G.GOODS_CD
-     , CONCAT('https://image.istyle24.com/Upload/ProductImage/',GI.SYS_IMG_NM) AS IMAGE_LINK
-FROM   TB_GOODS G
-     , TB_GOODS_IMG GI
-WHERE  G.GOODS_CD = GI.GOODS_CD
-AND    IF(G.SELF_GOODS_YN = 'N','XX',G.MAIN_COLOR_CD) = GI.COLOR_CD
-AND    GI.DEFAULT_IMG_YN = 'Y'
-;
-SELECT COUNT(*) FROM TB_EP_GOODS_IMG;
-
-/* TsbGoodsEp.truncateEpGoodsAddImage */
-TRUNCATE TABLE TB_EP_GOODS_ADD_IMG;
-
-/* TsbGoodsEp.createEpGoodsAddImage (24초) */
-INSERT INTO TB_EP_GOODS_ADD_IMG (
-       GOODS_CD
-     , ADD_IMAGE_LINK
-)
-SELECT GOODS_CD
-     , GROUP_CONCAT(CONCAT('https://image.istyle24.com/Upload/ProductImage/',SYS_IMG_NM) SEPARATOR '|') AS ADD_IMAGE_LINK
-FROM   (SELECT GI.GOODS_CD
-             , GI.SYS_IMG_NM
-             , RANK() OVER(PARTITION BY GI.GOODS_CD
-                           ORDER BY GI.DISP_ORD, GI.SYS_IMG_NM) AS RK
-        FROM   TB_GOODS G
-             , TB_GOODS_IMG GI
-        WHERE  G.GOODS_CD = GI.GOODS_CD
-        AND    IF(G.SELF_GOODS_YN = 'N','XX',G.MAIN_COLOR_CD) = GI.COLOR_CD
-        AND    GI.DEFAULT_IMG_YN = 'N'
-       ) Z
-WHERE  RK <= 4
-GROUP  BY GOODS_CD
-;
-SELECT COUNT(*) FROM TB_EP_GOODS_ADD_IMG;
-
-/* TsbGoodsEp.truncateEpCardEvent */
-TRUNCATE TABLE TB_EP_CARD_EVENT;
-
-/* TsbGoodsEp.createEpCardEvent (1초) */
-INSERT INTO TB_EP_CARD_EVENT (
-       GOODS_CD
-     , CARD_EVENT
-)
-SELECT G.GOODS_CD
-     , GROUP_CONCAT(DISTINCT
-                    CONCAT(FN_GET_CODE_NM('G941',CPT.PRMT_TARGET_CD),'^',
-                           (G.CURR_PRICE
-                            -
-                            CASE WHEN CPC.DC_WAY = 'G240_10' /*정액할인*/ THEN CPC.DC_VAL
-                                 ELSE /*정율할인*/ CAST(G.CURR_PRICE * CPC.DC_VAL / 100 AS SIGNED INTEGER)
-                            END))
-                    SEPARATOR '|') AS CARD_EVENT
-FROM   TB_CARD_PROMOTION CP
-     , TB_CARD_PROMOTION_CONDITION CPC
-     , TB_CARD_PROMOTION_TARGET CPT
-     , (
-        SELECT G.GOODS_CD
-             , IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY AS CURR_PRICE
-        FROM   TB_GOODS G
-             , TB_GOODS_BENEFIT_PRICE GBP
-        WHERE  G.GOODS_CD = GBP.GOODS_CD
-       ) G
-WHERE  CP.CARD_PRMT_SQ = CPC.CARD_PRMT_SQ
-AND    CPC.CARD_PRMT_CDT_SQ = CPT.CARD_PRMT_CDT_SQ
-AND    CP.PRMT_GB = 'A' /*카드할인*/
-AND    CP.DC_GB = '1' /*즉시할인*/
-AND    CP.PRMT_STD <= DATE_FORMAT(CURRENT_DATE(),'%Y%m%d')
-AND    CP.PRMT_EDD >= DATE_FORMAT(CURRENT_DATE(),'%Y%m%d')
-AND    CP.DISP_YN = 'Y'
-AND    CPC.MIN_PAY_AMT < G.CURR_PRICE
-GROUP  BY G.GOODS_CD
-;
-SELECT COUNT(*) FROM TB_EP_CARD_EVENT;
-
-/* TsbGoodsEp.truncateEpCoupon */
-TRUNCATE TABLE TB_EP_COUPON;
-
-/* TsbGoodsEp.createEpCoupon (1초) */
-INSERT INTO TB_EP_COUPON (
-       GOODS_CD
-     , COUPON
-)
-SELECT GOODS_CD
-     , CONCAT(IFNULL(NORMAL_CPN,''),IF(AFLINK_CPN11 IS NULL,'',CONCAT('^',AFLINK_CPN11)),IF(AFLINK_CPN10 IS NULL,'',CONCAT('^',AFLINK_CPN10))) AS COUPON
-FROM   (
-        SELECT CR.REF_VAL            AS GOODS_CD
-             , CASE WHEN IFNULL(CAC.CNT,0) = 0 THEN
-                        CONCAT(C.DC_PVAL,CASE WHEN C.DC_WAY = 'G240_10' THEN '원' ELSE '%' END)
-                    ELSE
-                        NULL
-               END                   AS NORMAL_CPN /*일반쿠폰*/
-             , CASE WHEN IFNULL(CAC.CNT,0) > 0 AND C.DC_WAY = 'G240_10' THEN
-                        C.DC_PVAL
-                    ELSE
-                        NULL
-               END                   AS AFLINK_CPN10 /*정액제휴쿠폰*/
-             , CASE WHEN IFNULL(CAC.CNT,0) > 0 AND C.DC_WAY = 'G240_11' THEN
-                        C.DC_PVAL
-                    ELSE
-                        NULL
-               END                   AS AFLINK_CPN11 /*정율제휴쿠폰*/
-             , CASE WHEN IFNULL(CAC.CNT,0) = 0 THEN
-                        CASE WHEN C.DC_WAY = 'G240_10' THEN C.DC_PVAL
-                             ELSE IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY * C.DC_PVAL / 100
-                        END
-                    ELSE
-                        0
-               END                   AS NCPN_DC_AMT /*일반쿠폰할인금액*/
-             , RANK() OVER(PARTITION BY CR.REF_VAL
-                           ORDER BY (CASE WHEN IFNULL(CAC.CNT,0) = 0 THEN
-                                              CASE WHEN C.DC_WAY = 'G240_10' THEN C.DC_PVAL
-                                                   ELSE IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY * C.DC_PVAL / 100
-                                              END
-                                          ELSE
-                                              0
-                                     END) DESC,
-                                    (CASE WHEN IFNULL(CAC.CNT,0) > 0 AND C.DC_WAY = 'G240_10' THEN
-                                              C.DC_PVAL
-                                          ELSE
-                                              0
-                                     END) DESC,
-                                    (CASE WHEN IFNULL(CAC.CNT,0) > 0 AND C.DC_WAY = 'G240_11' THEN
-                                              IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY * C.DC_PVAL / 100
-                                          ELSE
-                                              0
-                                     END) DESC
-                          )          AS RK
-        FROM   TB_COUPON C
-        INNER JOIN TB_COUPON_REFVAL CR ON C.CPN_ID = CR.CPN_ID
-        INNER JOIN TB_GOODS G ON CR.REF_VAL = G.GOODS_CD
-        LEFT OUTER JOIN TB_GOODS_BENEFIT_PRICE GBP ON G.GOODS_CD = GBP.GOODS_CD
-        LEFT OUTER JOIN (
-                         SELECT CPN_ID
-                              , COUNT(*) AS CNT
-                         FROM   TB_COUPON_AF_CHANNEL
-                         WHERE  AF_LINK_CD IN (SELECT AF_LINK_CD
-                                               FROM   TB_AF_LINK
-                                               WHERE  AF_CHANNEL = 'G053_02' /*네이버*/
-                                               AND    USE_YN = 'Y'
-                                              )
-                         GROUP  BY CPN_ID
-                        ) CAC ON C.CPN_ID = CAC.CPN_ID
-        WHERE  C.SITE_CD = 'G000_10'
-        AND    C.CPN_STAT = 'G232_11' /*진행쿠폰*/
-        AND    C.CPN_TYPE IN ('G230_11','G230_20') /*상품쿠폰,주문서쿠폰*/
-        AND    (
-                (C.PD_GB = 'D' AND NOW() < DATE_ADD(NOW(), INTERVAL C.AVAIL_DAYS DAY))
-                OR
-                (C.PD_GB = 'P' AND NOW() BETWEEN C.AVAIL_STDT AND C.AVAIL_EDDT)
-               )
-        AND    C.APPLY_SCOPE = 'I' /*개별쿠폰*/
-        AND    CR.CPN_TYPE IN ('G230_11','G230_20') /*상품쿠폰,주문서쿠폰*/
-        AND    CR.CPN_TARGET = 'G260_10' /*상품쿠폰*/
-        AND    CR.DEL_YN = 'N'
-        AND    NOT EXISTS (SELECT 1
-                           FROM   TB_COUPON_REFVAL
-                           WHERE  CPN_ID = CR.CPN_ID
-                           AND    CPN_TARGET = 'G260_14' /*제외상품*/
-                           AND    REF_VAL = CR.REF_VAL
-                           AND    DEL_YN = 'N'
-                          )
-       ) Z
-WHERE  RK = 1
-AND    (
-        NORMAL_CPN IS NOT NULL
-        OR
-        AFLINK_CPN10 IS NOT NULL
-        OR
-        AFLINK_CPN11 IS NOT NULL
-       )
-;
-SELECT COUNT(*) FROM TB_EP_COUPON;
-
-/* TsbGoodsEp.truncateEpInterestFreeEvent */
-TRUNCATE TABLE TB_EP_INTEREST_FREE_EVENT;
-
-/* TsbGoodsEp.createEpInterestFreeEvent (1초) */
-INSERT INTO TB_EP_INTEREST_FREE_EVENT (
-       GOODS_CD
-     , INTEREST_FREE_EVENT
-)
-SELECT G.GOODS_CD
-     , GROUP_CONCAT(DISTINCT
-                    CONCAT(FN_GET_CODE_NM('G941',CPT.PRMT_TARGET_CD),'^',
-                           CPC.MIN_NO_ITRT,'~',CPC.MAX_NO_ITRT)
-                    SEPARATOR '|') AS INTEREST_FREE_EVENT /*무이자이벤트정보*/
-FROM   TB_CARD_PROMOTION CP
-     , TB_CARD_PROMOTION_CONDITION CPC
-     , TB_CARD_PROMOTION_TARGET CPT
-     , (
-        SELECT G.GOODS_CD
-             , IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY AS CURR_PRICE
-        FROM   TB_GOODS G
-             , TB_GOODS_BENEFIT_PRICE GBP
-        WHERE  G.GOODS_CD = GBP.GOODS_CD
-       ) G
-WHERE  CP.CARD_PRMT_SQ = CPC.CARD_PRMT_SQ
-AND    CPC.CARD_PRMT_CDT_SQ = CPT.CARD_PRMT_CDT_SQ
-AND    CP.PRMT_GB = 'B' /*무이자할부*/
-AND    CP.PRMT_STD <= DATE_FORMAT(CURRENT_DATE(),'%Y%m%d')
-AND    CP.PRMT_EDD >= DATE_FORMAT(CURRENT_DATE(),'%Y%m%d')
-AND    CP.DISP_YN = 'Y'
-AND    CPC.MIN_PAY_AMT < G.CURR_PRICE
-GROUP  BY G.GOODS_CD
-;
-SELECT COUNT(*) FROM TB_EP_INTEREST_FREE_EVENT;
-
-/* TsbGoodsEp.deleteEpNaver */
-DELETE FROM TB_EP_NAVER WHERE GB = 'PREV';
- 
-/* TsbGoodsEp.createPreviousEpNaver */
-INSERT INTO TB_EP_NAVER (
-       GB
-     , ID
-     , TITLE
-     , PRICE_PC
-     , PRICE_MOBILE
-     , NORMAL_PRICE
-     , LINK
-     , MOBILE_LINK
-     , IMAGE_LINK
-     , ADD_IMAGE_LINK
-     , CATEGORY_NAME1
-     , CATEGORY_NAME2
-     , CATEGORY_NAME3
-     , CATEGORY_NAME4
-     , NAVER_CATEGORY
-     , GOODS_GB_NM
-     , IMPORT_FLAG
-     , PARALLEL_IMPORT
-     , ORDER_MADE
-     , PRODUCT_FLAG
-     , ADULT
-     , MANUFACTURE_DEFINE_NUMBER
-     , BRAND
-     , MAKER
-     , ORIGIN
-     , CARD_EVENT
-     , EVENT_WORDS
-     , COUPON
-     , PARTNER_COUPON_DOWNLOAD
-     , INTEREST_FREE_EVENT
-     , POINT
-     , SEARCH_TAG
-     , MINIMUM_PURCHASE_QUANTITY
-     , REVIEW_COUNT
-     , SHIPPING
-     , AGE_GROUP
-     , GENDER
-     , UPD_GB
-     , UPDATE_TIME
-)
-SELECT 'PREV' AS GB
-     , ID
-     , TITLE
-     , PRICE_PC
-     , PRICE_MOBILE
-     , NORMAL_PRICE
-     , LINK
-     , MOBILE_LINK
-     , IMAGE_LINK
-     , ADD_IMAGE_LINK
-     , CATEGORY_NAME1
-     , CATEGORY_NAME2
-     , CATEGORY_NAME3
-     , CATEGORY_NAME4
-     , NAVER_CATEGORY
-     , GOODS_GB_NM
-     , IMPORT_FLAG
-     , PARALLEL_IMPORT
-     , ORDER_MADE
-     , PRODUCT_FLAG
-     , ADULT
-     , MANUFACTURE_DEFINE_NUMBER
-     , BRAND
-     , MAKER
-     , ORIGIN
-     , CARD_EVENT
-     , EVENT_WORDS
-     , COUPON
-     , PARTNER_COUPON_DOWNLOAD
-     , INTEREST_FREE_EVENT
-     , POINT
-     , SEARCH_TAG
-     , MINIMUM_PURCHASE_QUANTITY
-     , REVIEW_COUNT
-     , SHIPPING
-     , AGE_GROUP
-     , GENDER
-     , UPD_GB
-     , UPDATE_TIME
-FROM   TB_EP_NAVER
-WHERE  GB = 'LAST'
-;
-SELECT COUNT(*) FROM TB_EP_NAVER WHERE GB = 'PREV';
-
-/* TsbGoodsEp.deleteEpNaver */
-DELETE FROM TB_EP_NAVER WHERE GB = 'CURR';
-
-/* TsbGoodsEp.createEpNaver (2분 27초) */
-INSERT INTO TB_EP_NAVER (
-       GB
-     , ID
-     , TITLE
-     , PRICE_PC
-     , PRICE_MOBILE
-     , NORMAL_PRICE
-     , LINK
-     , MOBILE_LINK
-     , IMAGE_LINK
-     , ADD_IMAGE_LINK
-     , CATEGORY_NAME1
-     , CATEGORY_NAME2
-     , CATEGORY_NAME3
-     , CATEGORY_NAME4
-     , NAVER_CATEGORY
-     , GOODS_GB_NM
-     , IMPORT_FLAG
-     , PARALLEL_IMPORT
-     , ORDER_MADE
-     , PRODUCT_FLAG
-     , ADULT
-     , MANUFACTURE_DEFINE_NUMBER
-     , BRAND
-     , MAKER
-     , ORIGIN
-     , CARD_EVENT
-     , EVENT_WORDS
-     , COUPON
-     , PARTNER_COUPON_DOWNLOAD
-     , INTEREST_FREE_EVENT
-     , POINT
-     , SEARCH_TAG
-     , MINIMUM_PURCHASE_QUANTITY
-     , REVIEW_COUNT
-     , SHIPPING
-     , AGE_GROUP
-     , GENDER
-     , UPD_GB
-     , UPDATE_TIME
-)
-SELECT 'CURR'                                                 AS GB                       /*구분(PREV:이전, CURR:현재)*/
-     , G.GOODS_CD                                             AS ID                       /*상품ID*/
-     , SUBSTRING(CONCAT('[',CASE WHEN B.DISP_NM_LANG = 'EN' THEN B.BRAND_ENM ELSE B.BRAND_KNM END,'] ',
-                        G.GOODS_NM,
-                        IFNULL(G.GOODS_NUM,'')),1,100)        AS TITLE                    /*상품명*/
-     , IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY AS PRICE_PC                 /*즉시할인이적용된가격*/
-     , IFNULL(GBP.MO_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY AS PRICE_MOBILE             /*즉시할인이적용된가격*/
-     , G.LIST_PRICE                                           AS NORMAL_PRICE             /*정상가*/
-     , CONCAT('https://www.style24.com/goods/detail/form?goodsCd=',G.GOODS_CD)                      AS LINK                     /*PC상세URL*/
-     , CONCAT('https://www.style24.com/goods/detail/form?goodsCd=',G.GOODS_CD)                      AS MOBILE_LINK              /*모바일상세URL*/
-     , GI.IMAGE_LINK                                                                      /*이미지URL*/
-     , GAI.ADD_IMAGE_LINK                                                                 /*추가이미지URL(4개까지. |로 구분)*/
-     , SUBSTRING_INDEX(I.ITEMKIND_NM,'>',1)                   AS CATEGORY_NAME1           /*카테고리명1*/
-     , CASE WHEN SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',1),'>',-1) = SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',2),'>',-1) THEN
-                NULL
-            ELSE
-                SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',2),'>',-1)
-       END                                                    AS CATEGORY_NAME2           /*카테고리명2*/
-     , CASE WHEN SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',2),'>',-1) = SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',3),'>',-1) THEN
-                NULL
-            ELSE
-                SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',3),'>',-1)
-       END                                                    AS CATEGORY_NAME3           /*카테고리명3*/
-     , CASE WHEN SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',3),'>',-1) = SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',4),'>',-1) THEN
-                NULL
-            ELSE
-                SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',4),'>',-1)
-       END                                                    AS CATEGORY_NAME4            /*카테고리명4*/
-     , EC.EP_CATE_CD                                          AS NAVER_CATEGORY            /*네이버카테고리*/
-     , CC1.CD_NM                                              AS GOODS_GB_NM               /*상품구분명*/
-     , G.FOREIGN_BUY_YN                                       AS IMPORT_FLAG               /*해외구매대행여부*/
-     , G.PARALLEL_IMPORT_YN                                   AS PARALLEL_IMPORT           /*병행수입여부*/
-     , G.ORDER_MADE_YN                                        AS ORDER_MADE                /*주문제작상품여부*/
-     , IF(GRS.GOODS_CD IS NULL,NULL,'예약판매')               AS PRODUCT_FLAG              /*예약판매*/
-     , G.ADULT_YN                                             AS ADULT                     /*성인여부*/
-     , G.GOODS_NUM                                            AS MANUFACTURE_DEFINE_NUMBER /*제품코드*/
-     , IF(B.DISP_NM_LANG = 'EN',B.BRAND_ENM,B.BRAND_KNM)      AS BRAND                     /*브랜드명*/
-     , SUBSTRING(GNI.NI_CONTENT,1,50)                         AS MAKER                     /*제조사*/
-     , CC2.CD_NM                                              AS ORIGIN                    /*원산지*/
-     , CE.CARD_EVENT                                                                       /*카드행사*/
-     , G.GOODS_TNM                                            AS EVENT_WORDS               /*상품셀링문구*/
-     , TEC.COUPON                                                                          /*쿠폰*/
-     , IF(TEC.COUPON IS NULL,NULL,'Y')                        AS PARTNER_COUPON_DOWNLOAD   /*쿠폰다운로드여부*/
-     , IFE.INTEREST_FREE_EVENT                                                             /*무이자행사*/
-     , CONCAT('스타일포인트','^',
-              CAST(IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY * G.PNT_PRATE AS SIGNED INTEGER)
-             )                                                AS PNT                       /*포인트*/
-     , SUBSTRING(CONCAT(IFNULL(G.GOODS_SNM,''),
-              CASE WHEN LENGTH(IFNULL(G.GOODS_SNM1,'')) = 0 THEN
-                       ''
-                   ELSE
-                       '|'
-              END,
-              IFNULL(G.GOODS_SNM1,'')
-             ),1,100)                                         AS SEARCH_TAG                /*검색태그*/
-     , CASE WHEN G.MIN_ORD_QTY > 0 THEN
-                G.MIN_ORD_QTY
-            ELSE
-                NULL
-       END                                                    AS MINIMUM_PURCHASE_QUANTITY /*최소구매금액*/
-     , IFNULL(GS.REVIEW_REG_CNT,0)                            AS REVIEW_COUNT            /*상품평수*/
-     , IFNULL(CASE WHEN DFP.DELV_FEE_CRITE = 'G078_20' /*무료*/ THEN
-                       0
-                   ELSE /*조건부무료 또는 유료*/
-                       CASE WHEN DFP.MIN_ORD_AMT <= IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY THEN
-                                0
-                            ELSE
-                                DFP.DELV_FEE
-                       END
-              END,0)                                          AS SHIPPING                  /*배송료*/
-     , CASE WHEN SUBSTRING(I.ITEMKIND_CD,1,2) = '07' THEN '유아'
-            WHEN SUBSTRING(I.ITEMKIND_CD,1,2) IN ('08','09','10') THEN '아동'
-            WHEN SUBSTRING(I.ITEMKIND_CD,1,2) IN ('11','12','13') THEN '청소년'
-            ELSE '성인'
-       END                                                    AS AGE_GROUP                 /*나이*/
-     , CASE WHEN G.SEX_GB = 'G007_F' THEN '여성'
-            WHEN G.SEX_GB = 'G007_M' THEN '남성'
-            ELSE '남여공용'
-       END                                                    AS GENDER                    /*성별*/
-     , 'I'                                                    AS UPD_GB                    /*변경구분*/
-     , DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%S')                 AS UPDATE_TIME               /*변경일시*/
-FROM   TB_GOODS G
-INNER JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
-INNER JOIN TB_ITEMKIND I ON G.ITEMKIND_CD = I.ITEMKIND_CD
-INNER JOIN TB_DELV_FEE_POLICY DFP ON G.DELV_FEE_CD = DFP.DELV_FEE_CD
-LEFT OUTER JOIN TB_GOODS_BENEFIT_PRICE GBP ON G.GOODS_CD = GBP.GOODS_CD
-LEFT OUTER JOIN TB_GOODS_SUMMARY GS ON G.GOODS_CD = GS.GOODS_CD
-LEFT OUTER JOIN TB_EP_GOODS_IMG GI ON G.GOODS_CD = GI.GOODS_CD
-LEFT OUTER JOIN TB_EP_GOODS_ADD_IMG GAI ON G.GOODS_CD = GAI.GOODS_CD
-LEFT OUTER JOIN (
-                 SELECT ITEMKIND_CD
-                      , MIN(EP_CATE_CD) AS EP_CATE_CD
-                 FROM   TB_EP_CATE
-                 WHERE  EP_GB = '10' /*네이버*/
-                 AND    USE_YN = 'Y'
-                 GROUP  BY ITEMKIND_CD
-                ) EC ON G.ITEMKIND_CD = EC.ITEMKIND_CD
-LEFT OUTER JOIN TB_GOODS_RES_SELL GRS ON G.GOODS_CD = GRS.GOODS_CD
-                                     AND GRS.DELV_RES_DT >= NOW()
-                                     AND GRS.USE_YN = 'Y'
-LEFT OUTER JOIN TB_EP_CARD_EVENT CE ON G.GOODS_CD = CE.GOODS_CD
-LEFT OUTER JOIN TB_EP_COUPON TEC ON G.GOODS_CD = TEC.GOODS_CD
-LEFT OUTER JOIN TB_EP_INTEREST_FREE_EVENT IFE ON G.GOODS_CD = IFE.GOODS_CD
-LEFT OUTER JOIN TB_GOODS_NOTI_INFO GNI ON G.GOODS_CD = GNI.GOODS_CD
-                                      AND GNI.NI_ITEM_CD = 'G005_005' /*제조사*/
-LEFT OUTER JOIN TB_COMMON_CODE CC1 ON G.GOODS_GB = CC1.CD
-                                 AND CC1.CD_GB = 'G073'
-LEFT OUTER JOIN TB_COMMON_CODE CC2 ON G.ORIGIN_CD = CC2.CD
-                                  AND CC2.CD_GB = 'G076'
-WHERE  1 = 1
-AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
-AND    G.SELF_MALL_YN = 'Y' /*몰노출상품*/
-AND    G.SELL_STDT <= NOW() /*유효한 판매기간*/
-AND    G.SELL_EDDT >= NOW() /*유효한 판매기간*/
-AND    G.ADULT_YN = 'N' /*성인상품아닌넘만*/
--- AND    G.UPD_DT >= DATE_ADD(NOW(), INTERVAL -2 HOUR) /*요약EP생성시사용*/
-;
-SELECT COUNT(*) FROM TB_EP_NAVER WHERE GB = 'CURR';
-
-DELETE FROM TB_EP_NAVER WHERE GB = 'LAST';
-
--- 최종 네이버 EP 생성 (55초)
-INSERT INTO TB_EP_NAVER (
-       GB
-     , ID
-     , TITLE
-     , PRICE_PC
-     , PRICE_MOBILE
-     , NORMAL_PRICE
-     , LINK
-     , MOBILE_LINK
-     , IMAGE_LINK
-     , ADD_IMAGE_LINK
-     , CATEGORY_NAME1
-     , CATEGORY_NAME2
-     , CATEGORY_NAME3
-     , CATEGORY_NAME4
-     , NAVER_CATEGORY
-     , GOODS_GB_NM
-     , IMPORT_FLAG
-     , PARALLEL_IMPORT
-     , ORDER_MADE
-     , PRODUCT_FLAG
-     , ADULT
-     , MANUFACTURE_DEFINE_NUMBER
-     , BRAND
-     , MAKER
-     , ORIGIN
-     , CARD_EVENT
-     , EVENT_WORDS
-     , COUPON
-     , PARTNER_COUPON_DOWNLOAD
-     , INTEREST_FREE_EVENT
-     , POINT
-     , SEARCH_TAG
-     , MINIMUM_PURCHASE_QUANTITY
-     , REVIEW_COUNT
-     , SHIPPING
-     , AGE_GROUP
-     , GENDER
-     , GOODS_STAT
-     , SELF_MALL_YN
-     , SELL_STDT
-     , SELL_EDDT
-     , UPD_GB
-     , UPDATE_TIME
-)
-SELECT 'LAST'                                 AS GB
-     , ID
-     , TITLE
-     , PRICE_PC
-     , PRICE_MOBILE
-     , NORMAL_PRICE
-     , LINK
-     , MOBILE_LINK
-     , IMAGE_LINK
-     , ADD_IMAGE_LINK
-     , CATEGORY_NAME1
-     , CATEGORY_NAME2
-     , CATEGORY_NAME3
-     , CATEGORY_NAME4
-     , NAVER_CATEGORY
-     , GOODS_GB_NM
-     , IMPORT_FLAG
-     , PARALLEL_IMPORT
-     , ORDER_MADE
-     , PRODUCT_FLAG
-     , ADULT
-     , MANUFACTURE_DEFINE_NUMBER
-     , BRAND
-     , MAKER
-     , ORIGIN
-     , CARD_EVENT
-     , EVENT_WORDS
-     , COUPON
-     , PARTNER_COUPON_DOWNLOAD
-     , INTEREST_FREE_EVENT
-     , POINT
-     , SEARCH_TAG
-     , MINIMUM_PURCHASE_QUANTITY
-     , REVIEW_COUNT
-     , SHIPPING
-     , AGE_GROUP
-     , GENDER
-     , GOODS_STAT
-     , SELF_MALL_YN
-     , SELL_STDT
-     , SELL_EDDT
-     , UPD_GB
-     , DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%S') AS UPDATE_TIME /*변경일시*/
-FROM   (
-        /*신규 목록*/
-        SELECT ID
-             , TITLE
-             , PRICE_PC
-             , PRICE_MOBILE
-             , NORMAL_PRICE
-             , LINK
-             , MOBILE_LINK
-             , IMAGE_LINK
-             , ADD_IMAGE_LINK
-             , CATEGORY_NAME1
-             , CATEGORY_NAME2
-             , CATEGORY_NAME3
-             , CATEGORY_NAME4
-             , NAVER_CATEGORY
-             , GOODS_GB_NM
-             , IMPORT_FLAG
-             , PARALLEL_IMPORT
-             , ORDER_MADE
-             , PRODUCT_FLAG
-             , ADULT
-             , MANUFACTURE_DEFINE_NUMBER
-             , BRAND
-             , MAKER
-             , ORIGIN
-             , CARD_EVENT
-             , EVENT_WORDS
-             , COUPON
-             , PARTNER_COUPON_DOWNLOAD
-             , INTEREST_FREE_EVENT
-             , POINT
-             , SEARCH_TAG
-             , MINIMUM_PURCHASE_QUANTITY
-             , REVIEW_COUNT
-             , SHIPPING
-             , AGE_GROUP
-             , GENDER
-             , GOODS_STAT
-             , SELF_MALL_YN
-             , SELL_STDT
-             , SELL_EDDT
-             , 'I'                         AS UPD_GB /*변경구분*/
-        FROM   TB_EP_NAVER X
-        WHERE  GB = 'CURR' /*현재데이터*/
-        /*요약EP*/
-#         AND    NOT EXISTS (SELECT 1
-#                            FROM   TB_EP_NAVER
-#                            WHERE  GB = 'PREV' /*이전백업데이터*/
-#                            AND    ID = X.ID
-#                           )
-#         UNION ALL
-#         -- 변경 목록
-#         SELECT X.ID
-#              , X.TITLE
-#              , X.PRICE_PC
-#              , X.PRICE_MOBILE
-#              , X.NORMAL_PRICE
-#              , X.LINK
-#              , X.MOBILE_LINK
-#              , X.IMAGE_LINK
-#              , X.ADD_IMAGE_LINK
-#              , X.CATEGORY_NAME1
-#              , X.CATEGORY_NAME2
-#              , X.CATEGORY_NAME3
-#              , X.CATEGORY_NAME4
-#              , X.NAVER_CATEGORY
-#              , X.GOODS_GB_NM
-#              , X.IMPORT_FLAG
-#              , X.PARALLEL_IMPORT
-#              , X.ORDER_MADE
-#              , X.PRODUCT_FLAG
-#              , X.ADULT
-#              , X.MANUFACTURE_DEFINE_NUMBER
-#              , X.BRAND
-#              , X.MAKER
-#              , X.ORIGIN
-#              , X.CARD_EVENT
-#              , X.EVENT_WORDS
-#              , X.COUPON
-#              , X.PARTNER_COUPON_DOWNLOAD
-#              , X.INTEREST_FREE_EVENT
-#              , X.POINT
-#              , X.SEARCH_TAG
-#              , X.MINIMUM_PURCHASE_QUANTITY
-#              , X.REVIEW_COUNT
-#              , X.SHIPPING
-#              , X.AGE_GROUP
-#              , X.GENDER
-#              , X.GOODS_STAT
-#              , X.SELF_MALL_YN
-#              , X.SELL_STDT
-#              , X.SELL_EDDT
-#              , 'U'                         AS UPD_GB /*변경구분*/
-#         FROM   TB_EP_NAVER X
-#              , TB_EP_NAVER Y
-#         WHERE  X.ID = Y.ID
-#         AND    X.GB = 'CURR' /*현재데이터*/
-#         AND    Y.GB = 'PREV' /*이전백업데이터*/
-#         AND    (
-#                 X.PRICE_PC != X.PRICE_PC OR
-#                 X.PRICE_MOBILE != X.PRICE_MOBILE OR
-#                 X.NORMAL_PRICE != X.NORMAL_PRICE OR
-#                 X.LINK != X.LINK OR
-#                 X.MOBILE_LINK != X.MOBILE_LINK OR
-#                 X.IMAGE_LINK != X.IMAGE_LINK OR
-#                 X.ADD_IMAGE_LINK != X.ADD_IMAGE_LINK OR
-#                 X.CATEGORY_NAME1 != X.CATEGORY_NAME1 OR
-#                 X.CATEGORY_NAME2 != X.CATEGORY_NAME2 OR
-#                 X.CATEGORY_NAME3 != X.CATEGORY_NAME3 OR
-#                 X.CATEGORY_NAME4 != X.CATEGORY_NAME4 OR
-#                 X.NAVER_CATEGORY != X.NAVER_CATEGORY OR
-#                 X.GOODS_GB_NM != X.GOODS_GB_NM OR
-#                 X.IMPORT_FLAG != X.IMPORT_FLAG OR
-#                 X.PARALLEL_IMPORT != X.PARALLEL_IMPORT OR
-#                 X.ORDER_MADE != X.ORDER_MADE OR
-#                 X.PRODUCT_FLAG != X.PRODUCT_FLAG OR
-#                 X.ADULT != X.ADULT OR
-#                 X.MANUFACTURE_DEFINE_NUMBER != X.MANUFACTURE_DEFINE_NUMBER OR
-#                 X.BRAND != X.BRAND OR
-#                 X.MAKER != X.MAKER OR
-#                 X.ORIGIN != X.ORIGIN OR
-#                 X.CARD_EVENT != X.CARD_EVENT OR
-#                 X.EVENT_WORDS != X.EVENT_WORDS OR
-#                 X.COUPON != X.COUPON OR
-#                 X.PARTNER_COUPON_DOWNLOAD != X.PARTNER_COUPON_DOWNLOAD OR
-#                 X.INTEREST_FREE_EVENT != X.INTEREST_FREE_EVENT OR
-#                 X.POINT != X.POINT OR
-#                 X.SEARCH_TAG != X.SEARCH_TAG OR
-#                 X.MINIMUM_PURCHASE_QUANTITY != X.MINIMUM_PURCHASE_QUANTITY OR
-#                 X.REVIEW_COUNT != X.REVIEW_COUNT OR
-#                 X.SHIPPING != X.SHIPPING OR
-#                 X.AGE_GROUP != X.AGE_GROUP OR
-#                 X.GENDER != X.GENDER
-#                )
-#         UNION ALL
-#         -- 삭제된 목록
-#         SELECT X.ID
-#              , X.TITLE
-#              , X.PRICE_PC
-#              , X.PRICE_MOBILE
-#              , X.NORMAL_PRICE
-#              , X.LINK
-#              , X.MOBILE_LINK
-#              , X.IMAGE_LINK
-#              , X.ADD_IMAGE_LINK
-#              , X.CATEGORY_NAME1
-#              , X.CATEGORY_NAME2
-#              , X.CATEGORY_NAME3
-#              , X.CATEGORY_NAME4
-#              , X.NAVER_CATEGORY
-#              , X.GOODS_GB_NM
-#              , X.IMPORT_FLAG
-#              , X.PARALLEL_IMPORT
-#              , X.ORDER_MADE
-#              , X.PRODUCT_FLAG
-#              , X.ADULT
-#              , X.MANUFACTURE_DEFINE_NUMBER
-#              , X.BRAND
-#              , X.MAKER
-#              , X.ORIGIN
-#              , X.CARD_EVENT
-#              , X.EVENT_WORDS
-#              , X.COUPON
-#              , X.PARTNER_COUPON_DOWNLOAD
-#              , X.INTEREST_FREE_EVENT
-#              , X.POINT
-#              , X.SEARCH_TAG
-#              , X.MINIMUM_PURCHASE_QUANTITY
-#              , X.REVIEW_COUNT
-#              , X.SHIPPING
-#              , X.AGE_GROUP
-#              , X.GENDER
-#              , X.GOODS_STAT
-#              , X.SELF_MALL_YN
-#              , X.SELL_STDT
-#              , X.SELL_EDDT
-#              , 'D'                         AS UPD_GB /*변경구분*/
-#         FROM   TB_EP_NAVER X
-#              , TB_EP_NAVER Y
-#         WHERE  X.ID = Y.ID
-#         AND    X.GB = 'CURR' /*현재데이터*/
-#         AND    Y.GB = 'PREV' /*이전백업데이터*/
-#         AND    (
-#                 (Y.GOODS_STAT != 'G008_70' AND X.GOODS_STAT = 'G008_70')
-#                 OR
-#                 (Y.SELF_MALL_YN = 'Y' AND X.SELF_MALL_YN = 'N')
-#                 OR
-#                 (Y.SELL_EDDT != X.SELL_EDDT AND Y.SELL_EDDT < NOW())
-#                )
-       ) X
-;
-SELECT COUNT(*) FROM TB_EP_NAVER WHERE GB = 'LAST';
-
-/* TsbGoodsEp.getNaverAllEpList */
-SELECT ID
-     , TITLE
-     , PRICE_PC
-     , PRICE_MOBILE
-     , NORMAL_PRICE
-     , LINK
-     , MOBILE_LINK
-     , IMAGE_LINK
-     , ADD_IMAGE_LINK
-     , CATEGORY_NAME1
-     , CATEGORY_NAME2
-     , CATEGORY_NAME3
-     , CATEGORY_NAME4
-     , NAVER_CATEGORY
-     , GOODS_GB_NM
-     , IMPORT_FLAG
-     , PARALLEL_IMPORT
-     , ORDER_MADE
-     , PRODUCT_FLAG
-     , ADULT
-     , MANUFACTURE_DEFINE_NUMBER
-     , BRAND
-     , MAKER
-     , ORIGIN
-     , CARD_EVENT
-     , EVENT_WORDS
-     , COUPON
-     , PARTNER_COUPON_DOWNLOAD
-     , INTEREST_FREE_EVENT
-     , POINT
-     , SEARCH_TAG
-     , MINIMUM_PURCHASE_QUANTITY
-     , REVIEW_COUNT
-     , SHIPPING
-     , AGE_GROUP
-     , GENDER
-     , UPD_GB
-     , UPDATE_TIME
-FROM   TB_EP_NAVER
-WHERE  GB = 'LAST'
-;

+ 7 - 6
산출물/4.구축/데이터처리/넷퍼시메일_회원정보동기화.sql

@@ -19,8 +19,8 @@ COMMENT='넷퍼시활동회원. 넷퍼시메일 솔루션에 연동할 활동회
 ;
 
 /* 활동회원 생성 */
-TRUNCATE TABLE NETPATHY_MEMBER;
-INSERT INTO NETPATHY_MEMBER (
+TRUNCATE TABLE STYLE24_MAILBATCH.NETPATHY_MEMBER;
+INSERT INTO STYLE24_MAILBATCH.NETPATHY_MEMBER (
        CUST_NO
      , CUST_ID
      , CUST_NM
@@ -65,8 +65,8 @@ COMMENT='넷퍼시 탈퇴/휴면회원. 넷퍼시메일 솔루션에 연동할 
 ;
 
 /* 탈퇴/휴면회원 생성 */
-TRUNCATE TABLE NETPATHY_WITHDRAWAL;
-INSERT INTO NETPATHY_WITHDRAWAL (
+TRUNCATE TABLE STYLE24_MAILBATCH.NETPATHY_WITHDRAWAL;
+INSERT INTO STYLE24_MAILBATCH.NETPATHY_WITHDRAWAL (
        CUST_NO
      , CUST_ID
      , CUST_NM
@@ -103,8 +103,8 @@ COMMENT='넷퍼시 포인트. 넷퍼시메일 솔루션에 연동할 포인트 
 ;
 
 /* 회원의 포인트 생성 (전일자에 변경된 값만) */
-TRUNCATE TABLE NETPATHY_POINT;
-INSERT INTO NETPATHY_POINT (
+TRUNCATE TABLE STYLE24_MAILBATCH.NETPATHY_POINT;
+INSERT INTO STYLE24_MAILBATCH.NETPATHY_POINT (
        CUST_NO
      , CUST_ID
      , RM_PNT_AMT
@@ -122,5 +122,6 @@ AND    CP.CUST_NO IN (SELECT CUST_NO
                       WHERE  UPD_DT >= DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
                       AND    UPD_DT < CURRENT_DATE()
                      )
+AND    C.CUST_STAT = 'G104_10' /*활동회원만*/
 GROUP  BY CP.CUST_NO
 ;

+ 168 - 0
산출물/4.구축/데이터처리/다음EP생성.sql

@@ -0,0 +1,168 @@
+TRUNCATE TABLE TB_EP_DAUM;
+
+INSERT INTO TB_EP_DAUM (
+       GB
+     , MAPID
+     , LPRICE
+     , PRICE
+     , MPRIC
+     , PNAME
+     , PGURL
+     , IGURL
+     , UPIMG
+     , CATE1
+     , CAID1
+     , CATE2
+     , CAID2
+     , CATE3
+     , CAID3
+     , CATE4
+     , CAID4
+     , MODEL
+     , BRAND
+     , MAKER
+     , COUPON
+     , MCOUPON
+     , PCARD
+     , POINT
+     , DELIV
+     , DELIVTERM
+     , RATING
+     , REVCT
+     , EVENT
+     , CARDDN
+     , CARDP
+     , ADULT
+     , PUBDATE
+     , GOODS_STAT
+     , SELF_MALL_YN
+     , SELL_STDT
+     , SELL_EDDT
+     , UPD_GB
+     , UTIME
+)
+SELECT 'LAST'                                                                                              AS GB         /*구분(PREV:이전, CURR:현재)*/
+     , G.GOODS_CD                                                                                          AS MAPID      /*상품ID*/
+     , G.LIST_PRICE                                                                                        AS LPRICE     /*정상가*/
+     , IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY                                              AS PRICE      /*즉시할인이적용된가격*/
+     , IFNULL(GBP.MO_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY                                              AS MPRIC      /*즉시할인이적용된가격*/
+     , SUBSTRING(CONCAT(CASE WHEN CC1.CD IN ('G073_12','G073_13') THEN CONCAT('[',CC1.CD_NM,']')
+                             WHEN G.FOREIGN_BUY_YN = 'Y' THEN '[해외]'
+                             ELSE ''
+                        END,
+                       '[',CASE WHEN B.DISP_NM_LANG = 'EN' THEN B.BRAND_ENM ELSE B.BRAND_KNM END,'] ',
+                       G.GOODS_NM,
+                       IFNULL(G.GOODS_NUM,'')),1,100)                                                      AS PNAME      /*상품명*/
+     , CONCAT('https://www.style24.com/goods/detail/form?goodsCd=',G.GOODS_CD)                                                                   AS PGURL      /*PC상세URL*/
+     , GI.IMAGE_LINK                                                                                       AS IGURL      /*이미지URL*/
+     , SUBSTRING_INDEX(I.ITEMKIND_NM,'>',1)                                                                AS CATE1      /*카테고리명1*/
+     , SUBSTRING(G.ITEMKIND_CD,1,2)                                                                        AS CAID1      /*카테고리ID1*/
+     , CASE WHEN SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',1),'>',-1) = SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',2),'>',-1) THEN
+                NULL
+            ELSE
+                SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',2),'>',-1)
+       END                                                                                                 AS CATE2      /*카테고리명2*/
+     , SUBSTRING(G.ITEMKIND_CD,3,2)                                                                        AS CAID2      /*카테고리ID2*/
+     , CASE WHEN SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',2),'>',-1) = SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',3),'>',-1) THEN
+                NULL
+            ELSE
+                SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',3),'>',-1)
+       END                                                                                                 AS CATE3      /*카테고리명3*/
+     , SUBSTRING(G.ITEMKIND_CD,5,2)                                                                        AS CAID3      /*카테고리ID3*/
+     , CASE WHEN SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',3),'>',-1) = SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',4),'>',-1) THEN
+                NULL
+            ELSE
+                SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',4),'>',-1)
+       END                                                                                                 AS CATE4      /*카테고리명4*/
+     , SUBSTRING(G.ITEMKIND_CD,7,2)                                                                        AS CAID4      /*카테고리ID4*/
+     , G.GOODS_NUM                                                                                         AS MODEL      /*모델(품번)*/
+     , IF(B.DISP_NM_LANG = 'EN',B.BRAND_ENM,B.BRAND_KNM)                                                   AS BRAND      /*브랜드명*/
+     , SUBSTRING(GNI.NI_CONTENT,1,50)                                                                      AS MAKER      /*제조사*/
+     , TEC.COUPON                                                                                                        /*쿠폰*/
+     , TEC.COUPON                                                                                          AS MCOUPON    /*모바일쿠폰*/
+     , IFE.INTEREST_FREE_EVENT                                                                             AS PCARD      /*무이자행사*/
+     , CONCAT('',G.PNT_PRATE)                                                                              AS POINT      /*포인트율*/
+     , IFNULL(CASE WHEN DFP.DELV_FEE_CRITE = 'G078_20' /*무료*/ THEN
+                       0
+                   ELSE /*조건부무료 또는 유료*/
+                       CASE WHEN DFP.MIN_ORD_AMT <= IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY THEN
+                                0
+                            ELSE
+                                DFP.DELV_FEE
+                       END
+              END,0)                                                                                       AS DELIV      /*배송료*/
+     , CASE WHEN G.SELF_GOODS_YN = 'Y' THEN 1 ELSE 3 END                                                   AS DELIVTERM  /*배송기간(자사상품:1일,입점상품:3일)*/
+     , CASE WHEN GS.SCORE IS NULL OR GS.SCORE = 0.0 THEN ''
+            ELSE CONCAT(IFNULL(GS.SCORE,0),'/',5)
+       END                                                                                                 AS RATING     /*상품평평점*/
+     , IFNULL(GS.REVIEW_REG_CNT,0)                                                                         AS REVCT      /*상품평수*/
+     , G.GOODS_TNM                                                                                         AS EVENT      /*상품셀링문구*/
+     , SUBSTRING_INDEX(SUBSTRING_INDEX(CE.CARD_EVENT,'|',1),'^',1)                                         AS CARDDN     /*카드행사*/
+     , SUBSTRING(SUBSTRING_INDEX(CE.CARD_EVENT,'|',1),INSTR(SUBSTRING_INDEX(CE.CARD_EVENT,'|',1),'^') + 1) AS CARDP      /*카드할인가*/
+     , G.ADULT_YN                                                                                          AS ADULT      /*성인여부*/
+     , DATE_FORMAT(G.REG_DT,'%Y%m%d')                                                                      AS PUBDATE    /*등록일*/
+     , G.GOODS_STAT
+     , G.SELF_MALL_YN
+     , G.SELL_STDT
+     , G.SELL_EDDT
+     , 'I'                                                                                                 AS UPD_GB /*변경구분*/
+     , DATE_FORMAT(NOW(),'%Y%m%d%H%i%S')                                                                   AS UTIME
+FROM   TB_GOODS G
+INNER JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
+INNER JOIN TB_ITEMKIND I ON G.ITEMKIND_CD = I.ITEMKIND_CD
+INNER JOIN TB_DELV_FEE_POLICY DFP ON G.DELV_FEE_CD = DFP.DELV_FEE_CD
+                                 AND G.SUPPLY_COMP_CD = DFP.SUPPLY_COMP_CD
+INNER JOIN TB_EP_GOODS_IMG GI ON G.GOODS_CD = GI.GOODS_CD
+LEFT OUTER JOIN TB_GOODS_BENEFIT_PRICE GBP ON G.GOODS_CD = GBP.GOODS_CD
+LEFT OUTER JOIN TB_GOODS_SUMMARY GS ON G.GOODS_CD = GS.GOODS_CD
+LEFT OUTER JOIN TB_EP_GOODS_ADD_IMG GAI ON G.GOODS_CD = GAI.GOODS_CD
+LEFT OUTER JOIN (
+                 SELECT ITEMKIND_CD
+                      , MIN(EP_CATE_CD) AS EP_CATE_CD
+                 FROM   TB_EP_CATE
+                 WHERE  EP_GB = '10' /*네이버*/
+                 AND    USE_YN = 'Y'
+                 GROUP  BY ITEMKIND_CD
+                ) EC ON G.ITEMKIND_CD = EC.ITEMKIND_CD
+LEFT OUTER JOIN TB_GOODS_RES_SELL GRS ON G.GOODS_CD = GRS.GOODS_CD
+                                     AND GRS.DELV_RES_DT >= NOW()
+                                     AND GRS.USE_YN = 'Y'
+LEFT OUTER JOIN TB_EP_CARD_EVENT CE ON G.GOODS_CD = CE.GOODS_CD
+LEFT OUTER JOIN TB_EP_COUPON TEC ON G.GOODS_CD = TEC.GOODS_CD
+LEFT OUTER JOIN TB_EP_INTEREST_FREE_EVENT IFE ON G.GOODS_CD = IFE.GOODS_CD
+LEFT OUTER JOIN TB_GOODS_NOTI_INFO GNI ON G.GOODS_CD = GNI.GOODS_CD
+                                      AND GNI.NI_ITEM_CD = 'G005_005' /*제조사*/
+LEFT OUTER JOIN TB_COMMON_CODE CC1 ON G.GOODS_GB = CC1.CD
+                                 AND CC1.CD_GB = 'G073'
+LEFT OUTER JOIN TB_COMMON_CODE CC2 ON G.ORIGIN_CD = CC2.CD
+                                  AND CC2.CD_GB = 'G076'
+WHERE  1 = 1
+AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
+AND    G.SELF_MALL_YN = 'Y' /*몰노출상품*/
+AND    G.SELL_STDT <= NOW() /*유효한 판매기간*/
+AND    G.SELL_EDDT >= NOW() /*유효한 판매기간*/
+AND    G.ADULT_YN = 'N' /*성인상품아닌넘만*/
+AND    NOT EXISTS (SELECT 1
+                   FROM   TB_GOODS_EP_SKIP
+                   WHERE  GOODS_CD = G.GOODS_CD
+                   AND    NOW() BETWEEN APPLY_STDT AND APPLY_EDDT
+                  )
+;
+
+
+-- 다음 상품평EP 목록
+SELECT R.GOODS_CD                           AS MAPID    /*상품ID*/
+     , R.REVIEW_SQ                          AS REVIEWID /*상품평ID*/
+     , CASE WHEN R.DISP_YN = 'N' OR R.DEL_YN = 'Y' THEN 'D'
+            ELSE 'S'
+       END                                  AS STATUS   /*상품평상태(S:정상, D:삭제)*/
+     , R.REVIEW_TITLE                       AS TITLE    /*상품평제목*/
+     , SUBSTRING(R.REVIEW_CONTENT,1,250)    AS CONTENT  /*상품평내용(250자이내)*/
+     , C.CUST_NM                            AS WRITER
+     , DATE_FORMAT(R.REG_DT,'%Y%m%d%H%i%S') AS CDATE /*상품평작성일시*/
+     , R.SCORE                              AS RATING /*상품평점수*/
+FROM   TB_REVIEW R
+     , TB_CUSTOMER C
+WHERE  R.REG_NO = C.CUST_NO
+AND    R.CONFIRM_YN = 'Y' /*컨펌된넘*/
+;

+ 0 - 585
산출물/4.구축/데이터처리/다음EP생성_20210614.sql

@@ -1,585 +0,0 @@
-################################################################################
-#EP다음
-################################################################################
-DROP TABLE IF EXISTS TB_EP_DAUM RESTRICT;
-CREATE TABLE TB_EP_DAUM (
-  GB            VARCHAR(4)     NOT NULL COMMENT '구분(PREV:이전, CURR:현재)',
-  MAPID         VARCHAR(20)    NOT NULL COMMENT '상품코드(상품)',
-  LPRICE        INT UNSIGNED   COMMENT '정상가',
-  PRICE         INT UNSIGNED   COMMENT 'PC가격',
-  MPRIC         INT UNSIGNED   COMMENT '모바일가격',
-  PNAME         VARCHAR(100)   COMMENT '상품명([상품구분명]+[브랜드명]+상품명+상품코드 형식)',
-  PGURL         VARCHAR(200)   COMMENT 'PC상품상세URL',
-  IGURL         VARCHAR(200)   COMMENT '이미지링크',
-  UPIMG         VARCHAR(1)     DEFAULT 'N' COMMENT '전체EP생성 이후 이미지변경되었을때전송(Y/N)',
-  CATE1         VARCHAR(50)    COMMENT '카테고리명1',
-  CAID1         VARCHAR(10)    COMMENT '카테고리ID1',
-  CATE2         VARCHAR(50)    COMMENT '카테고리명2',
-  CAID2         VARCHAR(10)    COMMENT '카테고리ID2',
-  CATE3         VARCHAR(50)    COMMENT '카테고리명3',
-  CAID3         VARCHAR(10)    COMMENT '카테고리ID3',
-  CATE4         VARCHAR(50)    COMMENT '카테고리명4',
-  CAID4         VARCHAR(10)    COMMENT '카테고리ID4',
-  MODEL         VARCHAR(20)    COMMENT '모델(품번)',
-  BRAND         VARCHAR(50)    COMMENT '브랜드명',
-  MAKER         VARCHAR(50)    COMMENT '제조사',
-  COUPON        VARCHAR(100)   COMMENT '할인쿠폰정보(일반쿠폰^정율제휴쿠폰^정액제휴쿠폰 형식. 일반쿠폰은 최대할인기준 1개)',
-  MCOUPON       VARCHAR(100)   COMMENT '할인쿠폰정보(일반쿠폰^정율제휴쿠폰^정액제휴쿠폰 형식. 일반쿠폰은 최대할인기준 1개)',
-  PCARD         VARCHAR(100)   COMMENT '무이자행사(카드명^개월수-개월수|카드명^개월수-개월수... 형식)',
-  POINT         VARCHAR(10)    COMMENT '포인트율',
-  DELIV         INT UNSIGNED   COMMENT '배송료',
-  DELIVTERM     INT UNSIGNED   COMMENT '배송기간',
-  RATING        VARCHAR(20)    COMMENT '상품평점수(4.5/5 형식)',
-  REVCT         INT UNSIGNED   COMMENT '상품평수',
-  EVENT         VARCHAR(100)   COMMENT '상품타이틀명(세일링문구)',
-  CARDDN        VARCHAR(100)   COMMENT '카드행사(카드즉시할인 등록된 기준으로 적용. 카드명^카드적용가|카드명^카드적용가... 형식)',
-  CARDP         INT UNSIGNED   COMMENT '카드적용가(최대1개)',
-  ADULT         VARCHAR(1)     COMMENT '성인상품여부',
-  PUBDATE       VARCHAR(8)     COMMENT '상품등록일',
-  GOODS_STAT    VARCHAR(20)    COMMENT '상품상태(공통코드G008)',
-  SELF_MALL_YN  CHAR(1)        COMMENT '자사몰노출여부',
-  SELL_STDT     DATETIME       COMMENT '판매시작일시',
-  SELL_EDDT     DATETIME       COMMENT '판매종료일시',
-  UPD_GB        VARCHAR(1)     COMMENT '업데이트구분(I:신규상품, U:기존상품중업데이트된상품 또는 품절되었다가다시서비스되는상품, D:품절상품)',
-  UTIME         VARCHAR(20)    COMMENT '업데이트시간(YYYYMMDDHHMMSS 형식)'
-)
-COMMENT 'EP다음. EP다음 생성에 의한 발생';
-
-CREATE UNIQUE INDEX IX_EP_DAUM_01
-  ON TB_EP_DAUM (
-    GB, MAPID
-  );
-
--- EP다음 정보 삭제
-DELETE FROM TB_EP_DAUM WHERE GB = 'PREV';
-
--- EP다음 이전 데이터로 백업
-INSERT INTO TB_EP_DAUM (
-       GB
-     , MAPID
-     , LPRICE
-     , PRICE
-     , MPRIC
-     , PNAME
-     , PGURL
-     , IGURL
-     , CATE1
-     , CAID1
-     , CATE2
-     , CAID2
-     , CATE3
-     , CAID3
-     , CATE4
-     , CAID4
-     , MODEL
-     , BRAND
-     , MAKER
-     , COUPON
-     , MCOUPON
-     , PCARD
-     , POINT
-     , DELIV
-     , DELIVTERM
-     , RATING
-     , REVCT
-     , EVENT
-     , CARDDN
-     , CARDP
-     , ADULT
-     , PUBDATE
-     , GOODS_STAT
-     , SELF_MALL_YN
-     , SELL_STDT
-     , SELL_EDDT
-)
-SELECT 'PREV' AS GB
-     , MAPID
-     , LPRICE
-     , PRICE
-     , MPRIC
-     , PNAME
-     , PGURL
-     , IGURL
-     , CATE1
-     , CAID1
-     , CATE2
-     , CAID2
-     , CATE3
-     , CAID3
-     , CATE4
-     , CAID4
-     , MODEL
-     , BRAND
-     , MAKER
-     , COUPON
-     , MCOUPON
-     , PCARD
-     , POINT
-     , DELIV
-     , DELIVTERM
-     , RATING
-     , REVCT
-     , EVENT
-     , CARDDN
-     , CARDP
-     , ADULT
-     , PUBDATE
-     , GOODS_STAT
-     , SELF_MALL_YN
-     , SELL_STDT
-     , SELL_EDDT
-FROM   TB_EP_DAUM
-WHERE  GB = 'LAST'
-;
-
--- EP다음 현재 데이터 생성 (2분 6초)
-INSERT INTO TB_EP_DAUM (
-       GB
-     , MAPID
-     , LPRICE
-     , PRICE
-     , MPRIC
-     , PNAME
-     , PGURL
-     , IGURL
-     , CATE1
-     , CAID1
-     , CATE2
-     , CAID2
-     , CATE3
-     , CAID3
-     , CATE4
-     , CAID4
-     , MODEL
-     , BRAND
-     , MAKER
-     , COUPON
-     , MCOUPON
-     , PCARD
-     , POINT
-     , DELIV
-     , DELIVTERM
-     , RATING
-     , REVCT
-     , EVENT
-     , CARDDN
-     , CARDP
-     , ADULT
-     , PUBDATE
-     , GOODS_STAT
-     , SELF_MALL_YN
-     , SELL_STDT
-     , SELL_EDDT
-)
-SELECT 'CURR'                                                                                              AS GB         /*구분(PREV:이전, CURR:현재)*/
-     , G.GOODS_CD                                                                                          AS MAPID      /*상품ID*/
-     , G.LIST_PRICE                                                                                        AS LPRICE     /*정상가*/
-     , IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY                                              AS PRICE      /*즉시할인이적용된가격*/
-     , IFNULL(GBP.MO_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY                                              AS MPRIC      /*즉시할인이적용된가격*/
-     , SUBSTRING(CONCAT(CASE WHEN CC1.CD IN ('G073_12','G073_13') THEN CONCAT('[',CC1.CD_NM,']')
-                             WHEN G.FOREIGN_BUY_YN = 'Y' THEN '[해외]'
-                             ELSE ''
-                        END,
-                       '[',CASE WHEN B.DISP_NM_LANG = 'EN' THEN B.BRAND_ENM ELSE B.BRAND_KNM END,'] ',
-                       G.GOODS_NM,
-                       IFNULL(G.GOODS_NUM,'')),1,100)                                                      AS PNAME      /*상품명*/
-     , CONCAT('https://www.style24.com/goods/detail/form?goodsCd=',G.GOODS_CD)                             AS PGURL      /*PC상세URL*/
-     , GI.IMAGE_LINK                                                                                       AS IGURL      /*이미지URL*/
-     , SUBSTRING_INDEX(I.ITEMKIND_NM,'>',1)                                                                AS CATE1      /*카테고리명1*/
-     , SUBSTRING(G.ITEMKIND_CD,1,2)                                                                        AS CAID1      /*카테고리ID1*/
-     , CASE WHEN SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',1),'>',-1) = SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',2),'>',-1) THEN
-                NULL
-            ELSE
-                SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',2),'>',-1)
-       END                                                                                                 AS CATE2      /*카테고리명2*/
-     , SUBSTRING(G.ITEMKIND_CD,3,2)                                                                        AS CAID2      /*카테고리ID2*/
-     , CASE WHEN SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',2),'>',-1) = SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',3),'>',-1) THEN
-                NULL
-            ELSE
-                SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',3),'>',-1)
-       END                                                                                                 AS CATE3      /*카테고리명3*/
-     , SUBSTRING(G.ITEMKIND_CD,5,2)                                                                        AS CAID3      /*카테고리ID3*/
-     , CASE WHEN SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',3),'>',-1) = SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',4),'>',-1) THEN
-                NULL
-            ELSE
-                SUBSTRING_INDEX(SUBSTRING_INDEX(I.ITEMKIND_NM,'>',4),'>',-1)
-       END                                                                                                 AS CATE4      /*카테고리명4*/
-     , SUBSTRING(G.ITEMKIND_CD,7,2)                                                                        AS CAID4      /*카테고리ID4*/
-     , G.GOODS_NUM                                                                                         AS MODEL      /*모델(품번)*/
-     , IF(B.DISP_NM_LANG = 'EN',B.BRAND_ENM,B.BRAND_KNM)                                                   AS BRAND      /*브랜드명*/
-     , SUBSTRING(GNI.NI_CONTENT,1,50)                                                                      AS MAKER      /*제조사*/
-     , TEC.COUPON                                                                                                        /*쿠폰*/
-     , TEC.COUPON                                                                                          AS MCOUPON    /*모바일쿠폰*/
-     , IFE.INTEREST_FREE_EVENT                                                                             AS PCARD      /*무이자행사*/
-     , CONCAT('',G.PNT_PRATE)                                                                              AS POINT      /*포인트율*/
-     , IFNULL(CASE WHEN DFP.DELV_FEE_CRITE = 'G078_20' /*무료*/ THEN
-                       0
-                   ELSE /*조건부무료 또는 유료*/
-                       CASE WHEN DFP.MIN_ORD_AMT <= IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE) * G.MIN_ORD_QTY THEN
-                                0
-                            ELSE
-                                DFP.DELV_FEE
-                       END
-              END,0)                                                                                       AS DELIV      /*배송료*/
-     , CASE WHEN G.SELF_GOODS_YN = 'Y' THEN 1 ELSE 3 END                                                   AS DELIVTERM  /*배송기간(자사상품:1일,입점상품:3일)*/
-     , CASE WHEN GS.SCORE IS NULL OR GS.SCORE = 0.0 THEN ''
-            ELSE CONCAT(IFNULL(GS.SCORE,0),'/',5)
-       END                                                                                                 AS RATING     /*상품평평점*/
-     , IFNULL(GS.REVIEW_REG_CNT,0)                                                                         AS REVCT      /*상품평수*/
-     , G.GOODS_TNM                                                                                         AS EVENT      /*상품셀링문구*/
-     , SUBSTRING_INDEX(SUBSTRING_INDEX(CE.CARD_EVENT,'|',1),'^',1)                                         AS CARDDN     /*카드행사*/
-     , SUBSTRING(SUBSTRING_INDEX(CE.CARD_EVENT,'|',1),INSTR(SUBSTRING_INDEX(CE.CARD_EVENT,'|',1),'^') + 1) AS CARDP      /*카드할인가*/
-     , G.ADULT_YN                                                                                          AS ADULT      /*성인여부*/
-     , DATE_FORMAT(G.REG_DT,'%Y%m%d')                                                                      AS PUBDATE    /*등록일*/
-     , G.GOODS_STAT
-     , G.SELF_MALL_YN
-     , G.SELL_STDT
-     , G.SELL_EDDT
-FROM   TB_GOODS G
-INNER JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
-INNER JOIN TB_ITEMKIND I ON G.ITEMKIND_CD = I.ITEMKIND_CD
-INNER JOIN TB_DELV_FEE_POLICY DFP ON G.DELV_FEE_CD = DFP.DELV_FEE_CD
-LEFT OUTER JOIN TB_GOODS_BENEFIT_PRICE GBP ON G.GOODS_CD = GBP.GOODS_CD
-LEFT OUTER JOIN TB_GOODS_SUMMARY GS ON G.GOODS_CD = GS.GOODS_CD
-LEFT OUTER JOIN TB_EP_GOODS_IMG GI ON G.GOODS_CD = GI.GOODS_CD
-LEFT OUTER JOIN TB_EP_GOODS_ADD_IMG GAI ON G.GOODS_CD = GAI.GOODS_CD
-LEFT OUTER JOIN (
-                 SELECT ITEMKIND_CD
-                      , MIN(EP_CATE_CD) AS EP_CATE_CD
-                 FROM   TB_EP_CATE
-                 WHERE  EP_GB = '10' /*네이버*/
-                 AND    USE_YN = 'Y'
-                 GROUP  BY ITEMKIND_CD
-                ) EC ON G.ITEMKIND_CD = EC.ITEMKIND_CD
-LEFT OUTER JOIN TB_GOODS_RES_SELL GRS ON G.GOODS_CD = GRS.GOODS_CD
-                                     AND GRS.DELV_RES_DT >= NOW()
-                                     AND GRS.USE_YN = 'Y'
-LEFT OUTER JOIN TB_EP_CARD_EVENT CE ON G.GOODS_CD = CE.GOODS_CD
-LEFT OUTER JOIN TB_EP_COUPON TEC ON G.GOODS_CD = TEC.GOODS_CD
-LEFT OUTER JOIN TB_EP_INTEREST_FREE_EVENT IFE ON G.GOODS_CD = IFE.GOODS_CD
-LEFT OUTER JOIN TB_GOODS_NOTI_INFO GNI ON G.GOODS_CD = GNI.GOODS_CD
-                                      AND GNI.NI_ITEM_CD = 'G005_005' /*제조사*/
-LEFT OUTER JOIN TB_COMMON_CODE CC1 ON G.GOODS_GB = CC1.CD
-                                 AND CC1.CD_GB = 'G073'
-LEFT OUTER JOIN TB_COMMON_CODE CC2 ON G.ORIGIN_CD = CC2.CD
-                                  AND CC2.CD_GB = 'G076'
-WHERE  1 = 1
-AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
-AND    G.SELF_MALL_YN = 'Y' /*몰노출상품*/
-AND    G.SELL_STDT <= NOW() /*유효한 판매기간*/
-AND    G.SELL_EDDT >= NOW() /*유효한 판매기간*/
-AND    G.ADULT_YN = 'N' /*성인상품아닌넘만*/
--- AND    G.UPD_DT >= DATE_ADD(NOW(), INTERVAL -7 HOUR) -- 요약EP
-;
-
--- 최종 EP다음 데이터 생성 (45초)
-INSERT INTO TB_EP_DAUM (
-       GB
-     , MAPID
-     , LPRICE
-     , PRICE
-     , MPRIC
-     , PNAME
-     , PGURL
-     , IGURL
-     , UPIMG
-     , CATE1
-     , CAID1
-     , CATE2
-     , CAID2
-     , CATE3
-     , CAID3
-     , CATE4
-     , CAID4
-     , MODEL
-     , BRAND
-     , MAKER
-     , COUPON
-     , MCOUPON
-     , PCARD
-     , POINT
-     , DELIV
-     , DELIVTERM
-     , RATING
-     , REVCT
-     , EVENT
-     , CARDDN
-     , CARDP
-     , ADULT
-     , PUBDATE
-     , GOODS_STAT
-     , SELF_MALL_YN
-     , SELL_STDT
-     , SELL_EDDT
-     , UPD_GB
-     , UTIME
-)
-SELECT 'LAST'                                 AS GB
-     , MAPID
-     , LPRICE
-     , PRICE
-     , MPRIC
-     , PNAME
-     , PGURL
-     , IGURL
-     , UPIMG
-     , CATE1
-     , CAID1
-     , CATE2
-     , CAID2
-     , CATE3
-     , CAID3
-     , CATE4
-     , CAID4
-     , MODEL
-     , BRAND
-     , MAKER
-     , COUPON
-     , MCOUPON
-     , PCARD
-     , POINT
-     , DELIV
-     , DELIVTERM
-     , RATING
-     , REVCT
-     , EVENT
-     , CARDDN
-     , CARDP
-     , ADULT
-     , PUBDATE
-     , GOODS_STAT
-     , SELF_MALL_YN
-     , SELL_STDT
-     , SELL_EDDT
-     , UPD_GB
-     , DATE_FORMAT(NOW(),'%Y%m%d%H%i%S') AS UTIME
-FROM   (
-        /*신규 목록*/
-        SELECT MAPID
-             , LPRICE
-             , PRICE
-             , MPRIC
-             , PNAME
-             , PGURL
-             , IGURL
-             , 'N'           AS UPIMG
-             , CATE1
-             , CAID1
-             , CATE2
-             , CAID2
-             , CATE3
-             , CAID3
-             , CATE4
-             , CAID4
-             , MODEL
-             , BRAND
-             , MAKER
-             , COUPON
-             , MCOUPON
-             , PCARD
-             , POINT
-             , DELIV
-             , DELIVTERM
-             , RATING
-             , REVCT
-             , EVENT
-             , CARDDN
-             , CARDP
-             , ADULT
-             , PUBDATE
-             , GOODS_STAT
-             , SELF_MALL_YN
-             , SELL_STDT
-             , SELL_EDDT
-             , 'I'           AS UPD_GB /*변경구분*/
-        FROM   TB_EP_DAUM X
-        WHERE  GB = 'CURR' /*현재데이터*/
-        -- 요약EP
---        AND    NOT EXISTS (SELECT 1
---                           FROM   TB_EP_DAUM
---                           WHERE  GB = 'PREV' /*이전백업데이터*/
---                           AND    ID = X.ID
---        UNION ALL
---        /*변경 목록*/
---        SELECT X.MAPID
---             , X.LPRICE
---             , X.PRICE
---             , X.MPRIC
---             , X.PNAME
---             , X.PGURL
---             , X.IGURL
---             , CASE WHEN X.IGURL != Y.IGURL THEN 'Y' ELSE 'N' END AS UPIMG
---             , X.CATE1
---             , X.CAID1
---             , X.CATE2
---             , X.CAID2
---             , X.CATE3
---             , X.CAID3
---             , X.CATE4
---             , X.CAID4
---             , X.MODEL
---             , X.BRAND
---             , X.MAKER
---             , X.COUPON
---             , X.MCOUPON
---             , X.PCARD
---             , X.POINT
---             , X.DELIV
---             , X.DELIVTERM
---             , X.RATING
---             , X.REVCT
---             , X.EVENT
---             , X.CARDDN
---             , X.CARDP
---             , X.ADULT
---             , X.PUBDATE
---             , X.GOODS_STAT
---             , X.SELF_MALL_YN
---             , X.SELL_STDT
---             , X.SELL_EDDT
---             , 'U'                         AS UPD_GB /*변경구분*/
---        FROM   TB_EP_DAUM X
---             , TB_EP_DAUM Y
---        WHERE  X.ID = Y.ID
---        AND    X.GB = 'CURR' /*현재데이터*/
---        AND    Y.GB = 'PREV' /*이전백업데이터*/
---        AND    (
---                X.MAPID != Y.MAPID OR
---                X.LPRICE != Y.LPRICE OR
---                X.PRICE != Y.PRICE OR
---                X.MPRIC != Y.MPRIC OR
---                X.PNAME != Y.PNAME OR
---                X.PGURL != Y.PGURL OR
---                X.IGURL != Y.IGURL OR
---                X.CATE1 != Y.CATE1 OR
---                X.CAID1 != Y.CAID1 OR
---                X.CATE2 != Y.CATE2 OR
---                X.CAID2 != Y.CAID2 OR
---                X.CATE3 != Y.CATE3 OR
---                X.CAID3 != Y.CAID3 OR
---                X.CATE4 != Y.CATE4 OR
---                X.CAID4 != Y.CAID4 OR
---                X.MODEL != Y.MODEL OR
---                X.BRAND != Y.BRAND OR
---                X.MAKER != Y.MAKER OR
---                X.COUPON != Y.COUPON OR
---                X.MCOUPON != Y.MCOUPON OR
---                X.PCARD != Y.PCARD OR
---                X.POINT != Y.POINT OR
---                X.DELIV != Y.DELIV OR
---                X.DELIVTERM != Y.DELIVTERM OR
---                X.RATING != Y.RATING OR
---                X.REVCT != Y.REVCT OR
---                X.EVENT != Y.EVENT OR
---                X.CARDDN != Y.CARDDN OR
---                X.CARDP != Y.CARDP OR
---                X.ADULT != Y.ADULT OR
---                X.PUBDATE != Y.PUBDATE
---               )
---        UNION ALL
---        /*삭제된 목록*/
---        SELECT X.MAPID
---             , X.LPRICE
---             , X.PRICE
---             , X.MPRIC
---             , X.PNAME
---             , X.PGURL
---             , X.IGURL
---             , CASE WHEN X.IGURL != Y.IGURL THEN 'Y' ELSE 'N' END AS UPIMG
---             , X.CATE1
---             , X.CAID1
---             , X.CATE2
---             , X.CAID2
---             , X.CATE3
---             , X.CAID3
---             , X.CATE4
---             , X.CAID4
---             , X.MODEL
---             , X.BRAND
---             , X.MAKER
---             , X.COUPON
---             , X.MCOUPON
---             , X.PCARD
---             , X.POINT
---             , X.DELIV
---             , X.DELIVTERM
---             , X.RATING
---             , X.REVCT
---             , X.EVENT
---             , X.CARDDN
---             , X.CARDP
---             , X.ADULT
---             , X.PUBDATE
---             , X.GOODS_STAT
---             , X.SELF_MALL_YN
---             , X.SELL_STDT
---             , X.SELL_EDDT
---             , 'D'                         AS UPD_GB /*변경구분*/
---        FROM   TB_EP_DAUM X
---             , TB_EP_DAUM Y
---        WHERE  X.ID = Y.ID
---        AND    X.GB = 'CURR' /*현재데이터*/
---        AND    Y.GB = 'PREV' /*이전백업데이터*/
---        AND    (
---                (Y.GOODS_STAT != 'G008_70' AND X.GOODS_STAT = 'G008_70')
---                OR
---                (Y.SELF_MALL_YN = 'Y' AND X.SELF_MALL_YN = 'N')
---                OR
---                (Y.SELL_EDDT != X.SELL_EDDT AND Y.SELL_EDDT < NOW())
---               )
-       ) X
-;
-
--- 다음 EP 목록
-SELECT IFNULL(MAPID,'')     AS MAPID
-     , LPRICE
-     , PRICE
-     , MPRIC
-     , IFNULL(PNAME,'')     AS PNAME
-     , IFNULL(PGURL,'')     AS PGURL
-     , IFNULL(IGURL,'')     AS IGURL
-     , IFNULL(UPIMG,'')     AS UPIMG
-     , IFNULL(CATE1,'')     AS CATE1
-     , IFNULL(CAID1,'')     AS CAID1
-     , IFNULL(CATE2,'')     AS CATE2
-     , IFNULL(CAID2,'')     AS CAID2
-     , IFNULL(CATE3,'')     AS CATE3
-     , IFNULL(CAID3,'')     AS CAID3
-     , IFNULL(CATE4,'')     AS CATE4
-     , IFNULL(CAID4,'')     AS CAID4
-     , IFNULL(MODEL,'')     AS MODEL
-     , IFNULL(BRAND,'')     AS BRAND
-     , IFNULL(MAKER,'')     AS MAKER
-     , IFNULL(COUPON,'')    AS COUPON
-     , IFNULL(MCOUPON,'')   AS MCOUPON
-     , IFNULL(PCARD,'')     AS PCARD
-     , IFNULL(POINT,'')     AS POINT
-     , IFNULL(DELIV,'')     AS DELIV
-     , IFNULL(DELIVTERM,'') AS DELIVTERM
-     , IFNULL(RATING,'')    AS RATING
-     , IFNULL(REVCT,'')     AS REVCT
-     , IFNULL(EVENT,'')     AS EVENT
-     , IFNULL(CARDDN,'')    AS CARDDN
-     , IFNULL(CARDP,'')     AS CARDP
-     , IFNULL(ADULT,'')     AS ADULT
-     , IFNULL(PUBDATE,'')   AS PUBDATE
-FROM   TB_EP_DAUM
-WHERE  GB = 'LAST'
-;
-
--- 다음 상품평EP 목록
-SELECT R.GOODS_CD                           AS MAPID    /*상품ID*/
-     , R.REVIEW_SQ                          AS REVIEWID /*상품평ID*/
-     , CASE WHEN R.DISP_YN = 'N' OR R.DEL_YN = 'Y' THEN 'D'
-            ELSE 'S'
-       END                                  AS STATUS   /*상품평상태(S:정상, D:삭제)*/
-     , R.REVIEW_TITLE                       AS TITLE    /*상품평제목*/
-     , SUBSTRING(R.REVIEW_CONTENT,1,250)    AS CONTENT  /*상품평내용(250자이내)*/
-     , C.CUST_NM                            AS WRITER
-     , DATE_FORMAT(R.REG_DT,'%Y%m%d%H%i%S') AS CDATE /*상품평작성일시*/
-     , R.SCORE                              AS RATING /*상품평점수*/
-FROM   TB_REVIEW R
-     , TB_CUSTOMER C
-WHERE  R.REG_NO = C.CUST_NO
-AND    R.CONFIRM_YN = 'Y' /*컨펌된넘*/
-;

+ 194 - 0
산출물/4.구축/데이터처리/매출반영.sql

@@ -0,0 +1,194 @@
+-- TRUNCATE TABLE TB_HANSAE_SALES;
+
+-- 한세MK 전일자 매출반영 데이터
+INSERT INTO TB_HANSAE_SALES (
+       ERP_GB
+     , DT_SALE
+     , TP_SALE
+     , CD_STYLE
+     , CD_COLOR
+     , CD_SIZE
+     , BRAND_CD
+     , QT_SALE
+     , AM_ACSALE
+     , DS_REMARK
+     , REG_DT
+)
+SELECT 'hsmk'      AS ERP_GB
+     , DT_SALE
+     , TP_SALE
+     , CD_STYLE
+     , CD_COLOR
+     , CD_SIZE
+     , BRAND_CD
+     , QT_SALE
+     , AM_ACSALE
+     , ''          AS DS_REMARK
+     , NOW()       AS REG_DT
+FROM   (
+        SELECT DATE_FORMAT(O.PAY_DT,'%Y%m%d')          AS DT_SALE  /*판매일자*/
+             , CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20' THEN '1'
+                    ELSE '2'
+               END                                     AS TP_SALE  /*판매구분(1:판매, 2:환불)*/
+             , SUBSTRING(ODIH.SKU_MODEL_NO,1,10)       AS CD_STYLE /*ERP스타일코드*/
+             , SUBSTRING(ODIH.SKU_MODEL_NO,11,2)       AS CD_COLOR /*ERP색상코드*/
+             , TRIM(SUBSTRING(ODIH.SKU_MODEL_NO,13,3)) AS CD_SIZE  /*ERP사이즈코드*/
+             , G.BRAND_CD                                          /*브랜드코드*/
+             , SUM(CAST(CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20' THEN ODIH.ORD_QTY - ODIH.CNCL_RTN_QTY /*판매-배송중*/
+                             ELSE ODIH.CNCL_RTN_QTY /*환입-반품완료,환입-교환완료*/
+                        END AS SIGNED INT))            AS QT_SALE  /*판매수량*/
+             , SUM(CAST(CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20' /*판매-배송중*/ THEN
+                                 ((ODIH.ORD_QTY - ODIH.CNCL_RTN_QTY) * (CASE WHEN O.MALL_GB = 'G011_20' /*제휴몰*/ THEN
+                                                                                 IFNULL(EUP.USAC_PRICE,ODIH.ITEM_PRICE)
+                                                                             ELSE
+                                                                                 ODIH.ITEM_PRICE
+                                                                        END))
+                             ELSE /*환입-반품완료,환입-교환완료*/
+                                 (ODIH.CNCL_RTN_QTY * (CASE WHEN O.MALL_GB = 'G011_20' /*제휴몰*/ THEN
+                                                                IFNULL(EUP.USAC_PRICE,ODIH.ITEM_PRICE)
+                                                            ELSE
+                                                                ODIH.ITEM_PRICE
+                                                       END))
+                        END AS SIGNED INT))            AS AM_ACSALE /*실판매금액*/
+        FROM   TB_ORDER_DETAIL_ITEM_HST ODIH
+        INNER JOIN TB_ORDER_DETAIL OD ON ODIH.ORD_DTL_NO = OD.ORD_DTL_NO
+        INNER JOIN TB_ORDER O ON ODIH.ORD_NO = O.ORD_NO
+        INNER JOIN TB_SUPPLY_COMPANY SC ON OD.SUPPLY_COMP_CD = SC.SUPPLY_COMP_CD
+        INNER JOIN TB_GOODS G ON ODIH.ITEM_CD = G.GOODS_CD
+        LEFT OUTER JOIN TB_EXTMALL_USAC_PRICE EUP ON ODIH.ORD_DTL_ITEM_HST_SQ = EUP.ORD_DTL_ITEM_HST_SQ
+        WHERE  1 = 1
+        AND    ODIH.REG_DT >= DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY) /*전일자기준*/
+        AND    ODIH.REG_DT < CURRENT_DATE() /*전일자기준*/
+        AND    ODIH.ORD_DTL_STAT IN ('G720_20','G720_50','G720_60') /*판매-배송중, 환입-반품완료, 환입-교환완료*/
+        AND    OD.SUPPLY_COMP_CD = 5 /*한세MK*/
+        AND    SC.DISTRIBUTION_GB IN ('G065_10','G065_11','G065_12') /*자사*/
+        GROUP  BY DATE_FORMAT(O.PAY_DT,'%Y%m%d')
+                , CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20' THEN '1'
+                       ELSE '2'
+                  END
+                , SUBSTRING(ODIH.SKU_MODEL_NO,1,10)
+                , SUBSTRING(ODIH.SKU_MODEL_NO,11,2)
+                , TRIM(SUBSTRING(ODIH.SKU_MODEL_NO,13,3))
+                , G.BRAND_CD
+       ) ODIH
+WHERE  QT_SALE <> 0
+AND    NOT EXISTS (SELECT 1
+                   FROM   TB_HANSAE_SALES
+                   WHERE  ERP_GB = 'hsmk'
+                   AND    DT_SALE = ODIH.DT_SALE
+                   AND    TP_SALE = ODIH.TP_SALE
+                   AND    CD_STYLE = ODIH.CD_STYLE
+                   AND    CD_COLOR = ODIH.CD_COLOR
+                   AND    CD_SIZE = ODIH.CD_SIZE
+                  )
+;
+
+-- 한세드림 전일자 매출반영 데이터
+INSERT INTO TB_HANSAE_SALES (
+       ERP_GB
+     , DT_SALE
+     , TP_SALE
+     , CD_STYLE
+     , CD_COLOR
+     , CD_SIZE
+     , BRAND_CD
+     , QT_SALE
+     , AM_ACSALE
+     , DS_REMARK
+     , REG_DT
+)
+SELECT 'hsdr'     AS ERP_GB
+     , DT_SALE
+     , TP_SALE
+     , CD_STYLE
+     , CD_COLOR
+     , CD_SIZE
+     , BRAND_CD
+     , QT_SALE
+     , AM_ACSALE
+     , ''         AS DS_REMARK
+     , NOW()      AS REG_DT
+FROM   (
+        SELECT DATE_FORMAT(O.PAY_DT,'%Y%m%d')          AS DT_SALE  /*판매일자*/
+             , CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20' THEN '1'
+                    ELSE '2'
+               END                                     AS TP_SALE  /*판매구분(1:판매, 2:환불)*/
+             , SUBSTRING(ODIH.SKU_MODEL_NO,1,10)       AS CD_STYLE /*ERP스타일코드*/
+             , SUBSTRING(ODIH.SKU_MODEL_NO,11,2)       AS CD_COLOR /*ERP색상코드*/
+             , TRIM(SUBSTRING(ODIH.SKU_MODEL_NO,13,3)) AS CD_SIZE  /*ERP사이즈코드*/
+             , G.BRAND_CD                                          /*브랜드코드*/
+             , SUM(CAST(CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20' THEN ODIH.ORD_QTY - ODIH.CNCL_RTN_QTY /*판매-배송중*/
+                             ELSE ODIH.CNCL_RTN_QTY /*환입-반품완료,환입-교환완료*/
+                        END AS SIGNED INT))            AS QT_SALE  /*판매수량*/
+             , SUM(CAST(CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20' /*판매-배송중*/ THEN
+                                 ((ODIH.ORD_QTY - ODIH.CNCL_RTN_QTY) * (CASE WHEN O.MALL_GB = 'G011_20' /*제휴몰*/ THEN
+                                                                                 IFNULL(EUP.USAC_PRICE,ODIH.ITEM_PRICE)
+                                                                             ELSE
+                                                                                 ODIH.ITEM_PRICE
+                                                                        END))
+                             ELSE /*환입-반품완료,환입-교환완료*/
+                                 (ODIH.CNCL_RTN_QTY * (CASE WHEN O.MALL_GB = 'G011_20' /*제휴몰*/ THEN
+                                                                IFNULL(EUP.USAC_PRICE,ODIH.ITEM_PRICE)
+                                                            ELSE
+                                                                ODIH.ITEM_PRICE
+                                                       END))
+                        END AS SIGNED INT))            AS AM_ACSALE /*실판매금액*/
+        FROM   TB_ORDER_DETAIL_ITEM_HST ODIH
+        INNER JOIN TB_ORDER_DETAIL OD ON ODIH.ORD_DTL_NO = OD.ORD_DTL_NO
+        INNER JOIN TB_ORDER O ON ODIH.ORD_NO = O.ORD_NO
+        INNER JOIN TB_SUPPLY_COMPANY SC ON OD.SUPPLY_COMP_CD = SC.SUPPLY_COMP_CD
+        INNER JOIN TB_GOODS G ON ODIH.ITEM_CD = G.GOODS_CD
+        LEFT OUTER JOIN TB_EXTMALL_USAC_PRICE EUP ON ODIH.ORD_DTL_ITEM_HST_SQ = EUP.ORD_DTL_ITEM_HST_SQ
+        WHERE  1 = 1
+        AND    ODIH.REG_DT >= DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY) /*전일자기준*/
+        AND    ODIH.REG_DT < CURRENT_DATE() /*전일자기준*/
+        AND    ODIH.ORD_DTL_STAT IN ('G720_20','G720_50','G720_60') /*판매-배송중, 환입-반품완료, 환입-교환완료*/
+        AND    OD.SUPPLY_COMP_CD = 3 /*한세드림*/
+        AND    SC.DISTRIBUTION_GB IN ('G065_10','G065_11','G065_12') /*자사*/
+        GROUP  BY DATE_FORMAT(O.PAY_DT,'%Y%m%d')
+                , CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20' THEN '1'
+                       ELSE '2'
+                  END
+                , SUBSTRING(ODIH.SKU_MODEL_NO,1,10)
+                , SUBSTRING(ODIH.SKU_MODEL_NO,11,2)
+                , TRIM(SUBSTRING(ODIH.SKU_MODEL_NO,13,3))
+                , G.BRAND_CD
+       ) ODIH
+WHERE  QT_SALE <> 0
+AND    NOT EXISTS (SELECT 1
+                   FROM   TB_HANSAE_SALES
+                   WHERE  ERP_GB = 'hsdr'
+                   AND    DT_SALE = ODIH.DT_SALE
+                   AND    TP_SALE = ODIH.TP_SALE
+                   AND    CD_STYLE = ODIH.CD_STYLE
+                   AND    CD_COLOR = ODIH.CD_COLOR
+                   AND    CD_SIZE = ODIH.CD_SIZE
+                  )
+;
+
+-- 업체별 매출반영 건수와 성공건수 조회
+SELECT ERP_GB
+     , COUNT(*)                                                 AS UPLOAD_CNT
+     , SUM(CASE WHEN LENGTH(CD_SALEBILL) > 0 THEN 1 ELSE 0 END) AS SUCC_CNT
+FROM   TB_HANSAE_SALES
+WHERE  DT_SALE = '20210901'
+GROUP  BY ERP_GB
+;
+
+-- 위의 UPLOAD_CNT와 SUCC_CNT의 값이 다를 경우 재전송을 위한 데이터 조회
+SELECT ERP_GB
+     , DT_SALE
+     , TP_SALE
+     , CD_STYLE
+     , CD_COLOR
+     , CD_SIZE
+     , BRAND_CD
+     , QT_SALE
+     , AM_ACSALE
+     , DS_REMARK
+     , CD_SALEBILL /*성공시 값 있음. 판매전표번호*/
+     , DS_ERROR    /*실패오류*/
+FROM   TB_HANSAE_SALES
+WHERE  DT_SALE = '20210901'
+AND    DS_ERROR IS NOT NULL /*오류발생건*/
+;

BIN
산출물/4.구축/데이터처리/매출반영_20210901.xlsx


+ 1 - 1
산출물/4.구축/데이터처리/일일거래내역.sql

@@ -91,7 +91,7 @@ FROM   (
              , SC.SUPPLY_COMP_NM                                                                               /*공급업체명*/
              , SC.SUPPLY_VENDOR_CD                                                                             /*공급벤더코드*/
              , SV.SUPPLY_VENDOR_NM                                                                             /*공급벤더명*/
-             , DATE_FORMAT(O.ORD_DT,'%Y-%m-%d %H:%i:%S')                            AS ORD_DT                  /*주문일시*/
+             , DATE_FORMAT(O.PAY_DT,'%Y-%m-%d %H:%i:%S')                            AS ORD_DT                  /*주문일시*/
              , DATE_FORMAT(ODIH.REG_DT,'%Y-%m-%d %H:%i:%S')                         AS OCCUR_DT                /*발생일시*/
              , G.BRAND_CD                                                                                      /*브랜드코드*/
              , B.BRAND_ENM                                                                                     /*브랜드명*/

BIN
산출물/4.구축/데이터처리/일일거래내역_20210830.xlsx


BIN
산출물/4.구축/데이터처리/자사상품옵션_노출안되고_품절된_상품.xlsx


BIN
산출물/6.전개/20210903 (스타일24) 통합테스트 이슈 보고 및 현황_수정.xlsx


BIN
산출물/6.전개/20210905 (스타일24) 통합테스트 이슈 보고 및 현황_수정3.xlsx


+ 52 - 12
산출물/6.전개/확인할사항_20210823.txt

@@ -52,8 +52,9 @@ https://archive.style24.com/ep/iStyle24ProductFeed_DaumBest100_new.txt
 - SCM 주문에 대한 화면설계서 작성 (8/26일, 이태영 대리). 완료
 - 전시에 대한 화면설계서 작성 (8/26일, 8/27일. 최수빈 과장. 김소원)
 - 매출반영 (데이터 검증 및 배치작업 필요) (8/28일 완료. 민덕기부장에게 확인 요청)
-- 동영상 문제 확인 및 조치. 8/27일
-- 마케팅메일 기능 개발 (BOS의 미리보기 기능 수정 및 위 마케팅메일 HTML로 리턴하는 거 구현). 8/28일
+- 마케팅메일 기능 개발 (BOS의 미리보기 기능 수정 및 위 마케팅메일 HTML로 리턴하는 거 구현). 8/29일 완료.
+- 동영상 문제 확인 및 조치. 8/30일 예정
+
 - GA - 버튼 태깅 (이벤트 태킹) - 신주승 대리한테 계정 확인 (8/26일)
 - 오픈 후 배치용 DB스크립트 실행 및 소요시간 확인 (8/29일 ~)
 - 상품상세의 부하테스트 때문에 VW_STOCK -> 테이블로 생성 -> 배치 작업 필요 (8/30일)
@@ -61,16 +62,55 @@ https://archive.style24.com/ep/iStyle24ProductFeed_DaumBest100_new.txt
 - 엑셀다운로드 시 타이틀, footer 제거 양식 메소드 추가 => 다시 작업해야 함 (문달호 과장 요청). 8/29일
 
 - 배치 실행헐 거 정리 => 배치
-- 통계 => 일자별매출현황 (검색조건 추가)
-
-서비스 기동 후 확인할 목록
-- 전시 화면 확인
-- 회원가입/로그인
-- 주문/결제
-- 외부연동 관련해서는 전반적으로 확인
-  : 메일발송(마케팅메일)
-- 제휴채널링크 정리
+- 통계 => 일자별 주문 통계 (검색조건 추가)
+- 일일거래내역 -> 화면 구현 완료 (8/31일)
 
-- GO LIVE 판단 근거를 위한 통테 KEY 항목 정리 및 협의
+- 넷퍼시메일 회원정보 동기화 : 완료
+- 고객관련 배치 중 회원등급변경 실행 완료 -> 등급쿠폰다운로드 안 됨
 
 - 주문에 대한 화면설계서 작성 (8/29일. 전석훈 차장)
+
+마케팅메일 퍼블 확인 요청
+http://tdadmin.style24.com/marketing/mailtemplate/content/1030
+
+
+* 이슈 확인
+- 브랜드메인의 상품리스트 "신상품보기" 없어야 데이터가 나옴
+  * request 파리미터 확인 및
+  * 판매가(할인가 적용) 배치 실
+
+* 마이그레이션 데이터 중 결제완료 건에 대한 확인 필요
+  - 회수건 처리 시 원주문 클레임건 누락 (확인 후 마이그레이션 진행)
+* 샵링커 주문수집
+  - 전체 재고 반영 : 완료
+  - 주문수집 : 티몬 주문수집 건 확인
+* 알림톡 발송 오류
+  - 상품평등록안내에 새벽에 발송 안 되도록 해야 하는데 로직 누락
+  - 회원등급변경 배치: 배치주기를 월로 처리하지 않아서 처
+* 카카오페이 (IOS앱) 작동안함 - 김도희 차장 확인 필요
+  - 딥링크 공유하기랑 비슷하지 않을까?
+
+- 발신번호
+
+* 일일거래내역
+  - 무통장입금건 제외
+
+19873557번 -1 -2 금액이 존재 확인 요청
+
+* 매출반영
+  - 색상+사아즈 매핑 후 처리 -> 엑셀데이터 추출 후 확인
+
+* 딥링크(공유하기)
+  - IOS: 완료
+  - AOS: 미완료. 확인중 (김도희 차장)
+  - 앱다운로드안내 페이지 노출: 미완료
+
+* 상품리스트 -> 상품썸네일 클릭 -> 상품상세 -> 백 버튼 클릭 -> 해당 위치로 안 옴
+  common_m.js 파일의 
+  $(".btn_back").on("click", function () {
+            history.back(); -> history.back(-1); 로 변경해 테스트
+        });
+
+* 검색엔진에 제공해 주는 데이터 중 전시카테고리가 제거되지 않는 현상
+  TB_GOODS_SEARCH.BYITEM_CATE_NO에 값이 여전히 존재
+  예) O212JP110P