Sfoglia il codice sorgente

Merge remote-tracking branch 'origin/develop' into card007

card007 4 anni fa
parent
commit
fc34913290

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

@@ -512,4 +512,24 @@ public interface TsfPlanningDao {
 	 */
 	Collection<Plan> getPlanContentInfo(Plan plan);
 	
+	/**
+	 * 총알배송 브랜드 리스트 
+	 *
+	 * @param 
+	 * @return
+	 * @author sowon
+	 * @date 2021. 6. 29
+	 */
+	Collection<Plan> getShotBrandList();
+	
+	/**
+	 * 총알배송 브랜드 리스트 
+	 *
+	 * @param 
+	 * @return
+	 * @author sowon
+	 * @date 2021. 6. 29
+	 */
+	Collection<Plan> getShotDeliveryGoodsList(Plan plan);
+	
 }

+ 7 - 2
src/main/java/com/style24/front/biz/service/TsfCartService.java

@@ -713,7 +713,7 @@ public class TsfCartService {
 						}
 					} else {                                                                // 할인 방식 할인율일 경우
 						tempAmt = resultAmt.getCurrPrice();
-						tempAmt = (int) (tempAmt - (tempAmt * (resultAmt.getQtyDcVal() / 100.0)));
+						tempAmt = (tempAmt - (int) (tempAmt * (resultAmt.getQtyDcVal() / 100.0)));
 						resultAmt.setTmtbDcAmt(tempAmt);
 
 						// 2021.04.29 다다익선할인금액수정
@@ -763,7 +763,7 @@ public class TsfCartService {
 						}
 					} else {                                                                // 할인 방식 할인율일 경우
 						tempAmt = resultAmt.getCurrPrice();
-						tempAmt = (int) (tempAmt - (tempAmt * (resultAmt.getAmtDcVal() / 100.0)));
+						tempAmt = (tempAmt - (int) (tempAmt * (resultAmt.getAmtDcVal() / 100.0)));
 						resultAmt.setTmtbDcAmt(tempAmt);
 
 						// 2021.04.29 다다익선할인금액수정
@@ -781,6 +781,11 @@ public class TsfCartService {
 						cart.setTmtb2DcAmt(apply.getTmtb2DcAmt());
 
 						cart.setTmtbDcAmt(apply.getTmtbDcAmt());
+						
+						log.info("cart.getTmtb1DcAmt() ::: {}", cart.getTmtb1DcAmt());
+						log.info("cart.getTmtb2DcAmt() ::: {}", cart.getTmtb2DcAmt());
+						log.info("cart.getTmtbDcAmt() ::: {}", cart.getTmtbDcAmt());
+						
 						cart.setApplyQtySectionYn(apply.getApplyQtySectionYn());
 						cart.setQtyTmtbNm(apply.getQtyTmtbNm());
 						cart.setQtyTmtbSq(apply.getQtyTmtbSq());

+ 24 - 0
src/main/java/com/style24/front/biz/service/TsfPlanningService.java

@@ -705,5 +705,29 @@ public class TsfPlanningService {
 	 public Collection<Plan> getPlanContentInfo(Plan plan) {
 		 return planningDao.getPlanContentInfo(plan);
 	 }
+	 
+	 /**
+	 * 총알배송 브랜드 리스트 
+	 *
+	 * @param 
+	 * @return
+	 * @author sowon
+	 * @date 2021. 6. 29
+	 */
+	public Collection<Plan> getShotBrandList(){
+		return planningDao.getShotBrandList();
+	}
+	
+	/**
+	 * 총알배송 브랜드 상품 리스트 
+	 *
+	 * @param 
+	 * @return
+	 * @author sowon
+	 * @date 2021. 6. 29
+	 */
+	public Collection<Plan> getShotDeliveryGoodsList(Plan plan){
+		return planningDao.getShotDeliveryGoodsList(plan);
+	}
 	
 }

+ 2 - 2
src/main/java/com/style24/front/biz/thirdparty/SearchEngineDiquest.java

@@ -189,7 +189,7 @@ public class SearchEngineDiquest {
 
 			if (jsonObj.get("returnCode").toString().equals("1")) { // 성공
 				result = response.getResponse();
-				log.info("///[getFilterList] result: {}", result);
+//				log.info("///[getFilterList] result: {}", result);
 			}
 		} catch (Exception e) {
 			e.printStackTrace();
@@ -222,7 +222,7 @@ public class SearchEngineDiquest {
 			if (jsonObj.get("returnCode").toString().equals("1")) { // 성공
 				Gson gson = new Gson();
 				result = gson.fromJson(jsonObj.toJSONString(), GoodsListResponse.class);
-				log.info("///[getGoodsList] result: {}", result);
+//				log.info("///[getGoodsList] result: {}", result);
 			}
 		} catch (Exception e) {
 			e.printStackTrace();

+ 3 - 4
src/main/java/com/style24/front/biz/web/TsfPlanningController.java

@@ -578,11 +578,10 @@ public class TsfPlanningController extends TsfBaseController {
 	 * @since 2021. 3. 30
 	 */
 	@GetMapping("/shot/delivery/guide/form")
-	public ModelAndView planningShotDeliveryForm(@RequestParam(value="planGb",required = true)String planGb ,Plan plan) throws Exception {
+	public ModelAndView planningShotDeliveryForm(Plan plan) throws Exception {
 		ModelAndView mav = new ModelAndView();
 		Integer planSq = planningService.getShotPlanSq(plan);
 		plan.setPlanSq(planSq);
-		plan.setPlanGb(planGb);
 		
 		CustDeliveryAddr addr = new CustDeliveryAddr();
 		Integer custNo = null;
@@ -601,9 +600,9 @@ public class TsfPlanningController extends TsfBaseController {
 		plan.setSiteCd(TscConstants.Site.STYLE24.value());
 		plan.setCustGb(TsfSession.getCustGb());
 		// 코너 목록
-		mav.addObject("planCornerList", planningService.getPlanCornerList(plan));
+		mav.addObject("shotBrandList", planningService.getShotBrandList());
 		// 코너 상품
-		mav.addObject("planCornerGoodsList", planningService.getPlanningCornerGoodsList(plan));
+		mav.addObject("shotBrandGoodsList", planningService.getShotDeliveryGoodsList(plan));
 
 		addr.setCustNo(custNo);
 		

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

@@ -94,6 +94,7 @@ public class Plan extends TscBaseDomain {
 	private String viewDt;			// 미리보기 일시
 	private String preview;			// 미리보기 여부 (Y:미리보기)
 	private Integer attachSq;
+	private String brandNm;
 
 	// 기획전 브랜드
 	private Integer brandGroupNo;	//기획전브랜드그룹번호

+ 12 - 12
src/main/java/com/style24/persistence/mybatis/shop/TsfDisplay.xml

@@ -312,7 +312,7 @@
 		<if test="keyword != null and keyword != ''"> <!-- 상품검색키워드 -->
 		AND    LEAF_CATE_NO IN (SELECT CG.CATE_NO
 		                        FROM   TB_CATE_GOODS CG
-		                             , TB_GOODS G
+		                             , TB_GOODS G USE INDEX (IX_GOODS_11)
 		                             , TB_GOODS_STOCK S
 		                             , TB_BRAND B
 		                        WHERE  CG.GOODS_CD = G.GOODS_CD
@@ -331,7 +331,7 @@
 		                               )
 		                        AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
 		                        AND    G.SELF_MALL_YN = 'Y' /*몰노출상품*/
-		                        AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*유효한 판매기간*/
+		                        AND    G.SELL_STDT <![CDATA[<=]]> NOW() AND G.SELL_EDDT >= NOW() /*유효한 판매기간*/
 		                       )
 		</if>
 		ORDER  BY DISP_ORD
@@ -378,7 +378,7 @@
 		AND    CATE1_NO IN (SELECT DISTINCT C4.CATE1_NO
 		                    FROM   TB_CATE_4SRCH C4
 		                         , TB_CATE_GOODS CG
-		                         , TB_GOODS G
+		                         , TB_GOODS G USE INDEX (IX_GOODS_11)
 		                         , TB_GOODS_STOCK S
 		                         , TB_BRAND B
 		                    WHERE  C4.LEAF_CATE_NO = CG.CATE_NO
@@ -401,7 +401,7 @@
 		                           )
 		                    AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
 		                    AND    G.SELF_MALL_YN = 'Y' /*몰노출상품*/
-		                    AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*유효한 판매기간*/
+		                    AND    G.SELL_STDT <![CDATA[<=]]> NOW() AND G.SELL_EDDT >= NOW() /*유효한 판매기간*/
 		                   )
 		</if>
 		ORDER  BY DISP_ORD
@@ -441,7 +441,7 @@
 		AND    CATE2_NO IN (SELECT DISTINCT C4.CATE2_NO
 		                      FROM   TB_CATE_4SRCH C4
 		                           , TB_CATE_GOODS CG
-		                           , TB_GOODS G
+		                           , TB_GOODS G USE INDEX (IX_GOODS_11)
 		                           , TB_GOODS_STOCK S
 		                           , TB_BRAND B
 		                      WHERE  C4.LEAF_CATE_NO = CG.CATE_NO
@@ -464,7 +464,7 @@
 		                             )
 		                      AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
 		                      AND    G.SELF_MALL_YN = 'Y' /*몰노출상품*/
-		                      AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*유효한 판매기간*/
+		                      AND    G.SELL_STDT <![CDATA[<=]]> NOW() AND G.SELL_EDDT >= NOW() /*유효한 판매기간*/
 		                     )
 		</if>
 		ORDER  BY DISP_ORD
@@ -506,7 +506,7 @@
 		AND    CATE3_NO IN (SELECT DISTINCT C4.CATE3_NO
 		                      FROM   TB_CATE_4SRCH C4
 		                           , TB_CATE_GOODS CG
-		                           , TB_GOODS G
+		                           , TB_GOODS G USE INDEX (IX_GOODS_11)
 		                           , TB_GOODS_STOCK S
 		                           , TB_BRAND B
 		                     WHERE  C4.LEAF_CATE_NO = CG.CATE_NO
@@ -529,7 +529,7 @@
 		                            )
 		                     AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
 		                     AND    G.SELF_MALL_YN = 'Y' /*몰노출상품*/
-		                     AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*유효한 판매기간*/
+		                     AND    G.SELL_STDT <![CDATA[<=]]> NOW() AND G.SELL_EDDT >= NOW() /*유효한 판매기간*/
 		                    )
 		</if>
 		ORDER  BY DISP_ORD
@@ -573,7 +573,7 @@
 		AND    CATE4_NO IN (SELECT DISTINCT C4.CATE4_NO
 		                    FROM   TB_CATE_4SRCH C4
 		                         , TB_CATE_GOODS CG
-		                         , TB_GOODS G
+		                         , TB_GOODS G USE INDEX (IX_GOODS_11)
 		                         , TB_GOODS_STOCK S
 		                         , TB_BRAND B
 		                    WHERE  C4.LEAF_CATE_NO = CG.CATE_NO
@@ -596,7 +596,7 @@
 		                            )
 		                    AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
 		                    AND    G.SELF_MALL_YN = 'Y' /*몰노출상품*/
-		                    AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*유효한 판매기간*/
+		                    AND    G.SELL_STDT <![CDATA[<=]]> NOW() AND G.SELL_EDDT >= NOW() /*유효한 판매기간*/
 		                  )
 		</if>
 		ORDER  BY DISP_ORD
@@ -642,7 +642,7 @@
 		AND    CATE5_NO IN (SELECT DISTINCT C4.CATE5_NO
 		                    FROM   TB_CATE_4SRCH C4
 		                         , TB_CATE_GOODS CG
-		                         , TB_GOODS G
+		                         , TB_GOODS G USE INDEX (IX_GOODS_11)
 		                         , TB_GOODS_STOCK S
 		                         , TB_BRAND B
 		                    WHERE  C4.LEAF_CATE_NO = CG.CATE_NO
@@ -665,7 +665,7 @@
 		                           )
 		                    AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
 		                    AND    G.SELF_MALL_YN = 'Y' /*몰노출상품*/
-		                    AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*유효한 판매기간*/
+		                    AND    G.SELL_STDT <![CDATA[<=]]> NOW() AND G.SELL_EDDT >= NOW() /*유효한 판매기간*/
 		                  )
 		</if>
 		ORDER  BY DISP_ORD

+ 190 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsfPlanning.xml

@@ -1734,4 +1734,194 @@
 		AND DISP_YN = 'Y'
 	</select>
 	
+	<select id="getShotBrandList" resultType="Plan" parameterType="Plan">
+		/* TsfPlanning.getShotBrandList */	
+		SELECT SDB.BRAND_GROUP_NO
+		      , CASE WHEN BG.DISP_NM_LANG = 'EN' THEN
+		                BG.BRAND_GROUP_ENM
+		            ELSE
+		                BG.BRAND_GROUP_KNM
+		       END                                     AS BRAND_NM
+		  , SDB.CORNER_DISP_TYPE
+		  , SDB.DISP_ORD
+		  , SDB.REG_DT
+		FROM TB_SHOT_DELV_BRAND SDB INNER JOIN TB_BRAND_GROUP BG 
+		  ON SDB.BRAND_GROUP_NO = BG.BRAND_GROUP_NO 
+		WHERE BG.USE_YN = 'Y'
+		ORDER BY SDB.DISP_ORD 
+	</select>
+	
+	<!-- 총알배송 상품 목록 -->
+	<select id="getShotDeliveryGoodsList" parameterType="Plan" resultType="Plan">
+		/* TsfPlanning.getShotDeliveryGoodsList */	
+		WITH TAB_BRAND_GOODS AS (
+		   SELECT RNK.*
+		        ,(CASE WHEN RNK.LIST_PRICE > 0 THEN 100 - ROUND((RNK.CURR_PRICE / RNK.LIST_PRICE) * 100 ,0) ELSE 0 END ) AS DC_RATE
+		      FROM
+		         (
+		          SELECT  ROW_NUMBER() OVER (PARTITION BY GOODS.BRAND_GROUP_NO ORDER BY GOODS.DISP_ORD DESC) AS RNUM
+		                 , GOODS.*
+		            FROM 
+		                (
+		                 SELECT 
+		                    CASE WHEN BG.DISP_NM_LANG = 'EN' THEN
+		                             BG.BRAND_GROUP_ENM
+		                         ELSE
+		                             BG.BRAND_GROUP_KNM
+		                    END                                    AS BRAND_NM /*브랜드그룹명*/
+		                  , SDB.BRAND_GROUP_NO 
+		                  , SDB.DISP_ORD
+		                  , G.GOODS_CD 
+		                  , G.GOODS_NM 
+		                  , G.GOODS_GB                                               /*상품구분*/
+		                  , G.FOREIGN_BUY_YN                                         /*해외구매대행여부*/
+		                  , G.PARALLEL_IMPORT_YN                                     /*병행수입여부*/
+		                  , G.ORDER_MADE_YN                                          /*주문제작여부*/
+		                  , G.GOODS_TNM                                              /*상품타이틀명*/
+		                  , G.MAIN_COLOR_CD                                          /*대표색상코드*/
+		                  , G.LIST_PRICE                                             /*정상가(최초판매가)*/
+		                  , G.CURR_PRICE                                             /*현재판매가*/
+		                FROM   TB_SHOT_DELV_BRAND SDB
+		                                 INNER JOIN TB_SHOT_DELV_GOODS SDG
+		                        ON SDB.BRAND_GROUP_NO = SDG.BRAND_GROUP_NO
+		                                 INNER JOIN TB_GOODS G
+		                        ON SDG.GOODS_CD = G.GOODS_CD 
+		                          		  INNER JOIN TB_BRAND B
+		                        ON G.BRAND_CD = B.BRAND_CD 
+		                                 INNER JOIN TB_BRAND_GROUP BG 
+		                        ON B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO 
+		                                 INNER JOIN TB_GOODS_STOCK GS
+		                        ON SDG.GOODS_CD = GS.GOODS_CD 
+		                WHERE  1=1  
+		                AND    G.GOODS_CD NOT IN (SELECT GOODS_CD FROM TB_GOODS_SHOT_DELV_SKIP GSDS)
+		                AND    G.SELF_GOODS_YN = 'Y'
+		                AND    G.SELF_MALL_YN = 'Y'
+		                AND    SDG.DEL_YN = 'N'
+		                AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
+		                AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*현재 판매되는 상품*/
+		                AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
+		                AND    BG.USE_YN = 'Y' /*사용하는 브랜드그룹*/
+		                AND    GS.STOCK_QTY  <![CDATA[>]]>  0 /*재고있는상품*/
+		                UNION 
+		                SELECT 
+		                       CASE WHEN BG.DISP_NM_LANG = 'EN' THEN
+		                                BG.BRAND_GROUP_ENM
+		                            ELSE
+		                                BG.BRAND_GROUP_KNM
+		                       END                                    AS BRAND_NM /*브랜드그룹명*/
+		                     , SDB.BRAND_GROUP_NO 
+		                     , SDB.DISP_ORD
+		                     , G.GOODS_CD 
+		                     , G.GOODS_NM 
+		                     , G.GOODS_GB                                               /*상품구분*/
+		                     , G.FOREIGN_BUY_YN                                         /*해외구매대행여부*/
+		                     , G.PARALLEL_IMPORT_YN                                     /*병행수입여부*/
+		                     , G.ORDER_MADE_YN                                          /*주문제작여부*/
+		                     , G.GOODS_TNM                                              /*상품타이틀명*/
+		                     , G.MAIN_COLOR_CD                                          /*대표색상코드*/
+		                     , G.LIST_PRICE                                             /*정상가(최초판매가)*/
+		                     , G.CURR_PRICE                                             /*현재판매가*/
+		                FROM   TB_SHOT_DELV_BRAND SDB
+		                                  INNER JOIN TB_BRAND_GROUP BG 
+		                        ON SDB.BRAND_GROUP_NO = BG.BRAND_GROUP_NO 
+		                                  INNER JOIN TB_BRAND B
+		                        ON BG.BRAND_GROUP_NO = B.BRAND_GROUP_NO 
+		                                 INNER JOIN TB_GOODS G
+		                        ON B.BRAND_CD = G.BRAND_CD 
+		                                 INNER JOIN TB_GOODS_STOCK GS
+		                        ON G.GOODS_CD = GS.GOODS_CD 
+		                WHERE  1=1  
+		                AND    G.GOODS_CD NOT IN (SELECT GOODS_CD FROM TB_GOODS_SHOT_DELV_SKIP GSDS)
+		                AND    G.SELF_GOODS_YN = 'Y'
+		                AND    G.SELF_MALL_YN = 'Y'
+		                AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
+		                AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*현재 판매되는 상품*/
+		                AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
+		                AND    BG.USE_YN = 'Y' /*사용하는 브랜드그룹*/
+		                AND    GS.STOCK_QTY  <![CDATA[>]]>  0 /*재고있는상품*/
+		               )GOODS 
+		        )RNK
+		   WHERE RNK.RNUM <![CDATA[<=]]> 100
+		)
+		, TAB_GOODS_IMG AS (
+		        /* 상품의 이미지 */
+		            SELECT BG.GOODS_CD
+		                 , MAX(CASE WHEN GI.DEFAULT_IMG_YN = 'Y' THEN GI.SYS_IMG_NM ELSE NULL END)   AS SYS_IMG_NM
+		            FROM   TAB_BRAND_GOODS BG
+		                 , TB_GOODS_IMG GI
+		            WHERE  BG.GOODS_CD = GI.GOODS_CD
+		            AND    BG.MAIN_COLOR_CD = GI.COLOR_CD
+		            AND    (GI.DEFAULT_IMG_YN = 'Y' OR GI.MOUSEOVER_IMG_YN = 'Y')
+		            GROUP  BY BG.GOODS_CD
+		)
+		, TAB_COLORCHIP AS (
+		            /* 상품 컬러칩 */
+		            SELECT BG.GOODS_CD
+		                 , GROUP_CONCAT(DISTINCT CONCAT(C.COLOR_CD,':',CC.CD_DESC) ORDER BY CC.DISP_ORD SEPARATOR ',') AS COLOR_CHIPS
+		            FROM   TAB_BRAND_GOODS BG
+		                 , TB_OPTION O
+		                 , TB_COLOR C
+		                 , TB_COMMON_CODE CC
+		            WHERE  BG.GOODS_CD = O.GOODS_CD
+		            AND    O.OPT_CD1 = C.COLOR_CD
+		            AND    C.COLOR_GRP_CD = CC.CD
+		            AND    O.DISP_YN = 'Y'
+		            AND    C.USE_YN = 'Y'
+		            AND    CC.USE_YN = 'Y'
+		            GROUP  BY BG.GOODS_CD
+		)
+		, TAB_GOODS_BENEFIT AS (
+		            /* 상품혜택 */
+		            SELECT GOODS_CD
+		                 , GROUP_CONCAT(CONCAT(BENEFIT_GB,':',BENEFIT_NM) ORDER BY NUMB SEPARATOR ',') AS ICON
+		            FROM   (
+		                    SELECT BG.GOODS_CD
+		                         , GB.BENEFIT_GB
+		                         , CASE WHEN GB.BENEFIT_GB = '10' THEN '쿠폰할인'
+		                                WHEN GB.BENEFIT_GB = '20' THEN '무료배송'
+		                                WHEN GB.BENEFIT_GB = '30' THEN '사은품'
+		                                WHEN GB.BENEFIT_GB = '40' THEN '신상'
+		                                ELSE '총알배송'
+		                           END                               AS BENEFIT_NM
+		                         , RANK() OVER(PARTITION BY BG.GOODS_CD
+		                                       ORDER BY GB.BENEFIT_GB
+		                                              , GB.GOODS_CD) AS NUMB
+		                    FROM   TAB_BRAND_GOODS BG
+		                         , TB_GOODS_BENEFIT GB
+		                    WHERE  BG.GOODS_CD = GB.GOODS_CD
+		                   ) Z
+		            GROUP  BY GOODS_CD
+		)
+		 SELECT 
+		        BG.RNUM
+		      , BG.BRAND_NM
+		      , BG.GOODS_CD
+		      , BG.BRAND_GROUP_NO
+		      , FN_GET_GOODS_NM(BG.GOODS_NM,BG.GOODS_GB,BG.FOREIGN_BUY_YN,BG.PARALLEL_IMPORT_YN,BG.ORDER_MADE_YN) AS GOODS_FULL_NM /*상품FULL명*/
+		      , BG.GOODS_NM
+		      , BG.GOODS_TNM
+		      , BG.MAIN_COLOR_CD
+		      , BG.LIST_PRICE
+		      , FN_GET_BENEFIT_PRICE( #{frontGb} /**P*/,BG.GOODS_CD,BG.CURR_PRICE,#{custGb})                              AS CURR_PRICE    /*현재판매가*/
+		      , GI.SYS_IMG_NM
+		      , C.COLOR_CHIPS                                                                                                      /*컬러칩*/
+		      , GB.ICON                                                                                                            /*혜택아이콘*/
+		       <choose>
+	                 <when test="custNo != null and custNo > 0"> <!-- 로그인 했으면 -->
+	             , IF(W.GOODS_CD IS NULL,'','likeit')                                                                AS LIKE_IT       /*위시리스트담긴상품*/
+	                 </when>
+	                 <otherwise>
+	             , ''                                                                                                AS LIKE_IT       /*위시리스트담긴상품*/
+	                 </otherwise>
+		      </choose>
+		FROM   TAB_BRAND_GOODS BG
+		LEFT OUTER JOIN TAB_GOODS_IMG GI ON BG.GOODS_CD = GI.GOODS_CD
+		LEFT OUTER JOIN TAB_COLORCHIP C ON BG.GOODS_CD = C.GOODS_CD
+		LEFT OUTER JOIN TAB_GOODS_BENEFIT GB ON BG.GOODS_CD = GB.GOODS_CD
+		<if test="custNo != null and custNo > 0"> <!-- 로그인 했으면 -->
+		LEFT OUTER JOIN TB_WISHLIST W ON BG.GOODS_CD = W.GOODS_CD
+		        AND W.CUST_NO = #{custNo}
+        </if>
+	</select>
+	
 </mapper>

+ 42 - 4
src/main/webapp/WEB-INF/views/mob/display/CategoryGoodsListFormMob.html

@@ -381,7 +381,7 @@
 		<input type="hidden" name="sortingType" value="NEW"/>
 <!--		<input type="hidden" name="newGoods" th:value="${cateInfo.formalGb=='G009_20'?'':'40'}" />-->
 		<input type="hidden" name="keyword" value=""/>
-		<input type="hidden" name="benefitArr" th:value="${cateInfo.formalGb=='G009_20'?'':'40:신상'}"/>
+		<input type="hidden" name="benefitArr" th:unless="${cateInfo.formalGb=='G009_20'}" th:value="${cateInfo.formalGb=='G009_20'?'':'40:신상'}"/>
 	</form>
 
 
@@ -1389,7 +1389,11 @@
 					tag += '</ul>\n';
 				});
 				$("#cateDepth").append(tag);
-			}else{
+			}else if(!gagajf.isNull(cate1No)){
+				if(formalGb=='G009_20'){
+					tag += '<a class="daps1" href="javascript:void(0);" onclick="cfnGoToGoodsList(' + brandGroupNo + ',\'' + cateGb + '\',\'\',\'\',\'\',\'\',\'\',\''+formalGb+'\')";>전체</a>\n';
+					tag += '<ul class="daps2">\n';
+				}
 				$.each(cateList, function(idx,item){
 					$.each(allCateList, function (allIdx, allItem){
 						if(brandGroupNo > 0){
@@ -1446,10 +1450,44 @@
 						$('#leafCateList').append(leafTag);
 					}
 				});
+				if(formalGb=='G009_20'){
+					tag += '</ul>\n';
+				}
 				$("#cateDepth").append(tag);
+			}else{
+				let tag = '';
+				if(formalGb == 'G009_20'){
+					$("#htopTitle").text('아울렛');
+					tag += '<ul class="daps2">\n';
+					tag += '<li>';
+					tag += '<a href="javascript:void(0);" onclick="cfnGoToGoodsList(' + brandGroupNo + ',\'' + cateGb + '\',\'\'';
+					if(formalGb=='G009_20'){
+						tag += ' ,\'\',\'\',\'\',\'\',\''+formalGb+'\'';
+					}
+					tag += ' )">전체</a>';
+					tag += '</li>\n';
+					tag += '</ul>\n';
+					$("#cateDepth").append(tag);
+				}
+				let leafTag = '';
+				leafTag += '<a href="javascript:void(0);" class="on" onclick="cfnGoToGoodsList(' + brandGroupNo + ',\'' + cateGb + '\', \'\' ';
+				if(formalGb=='G009_20'){
+					leafTag += ' ,\'\',\'\',\'\',\'\',\''+formalGb+'\'';
+				}
+				leafTag += ');">전체</a>';
+				$.each(allCateList, function (allIdx, allItem){
+					$.each(cateList, function(idx,item){
+						if(allItem.cate1No == item.cate1No){
+							leafTag += '<a href="javascript:void(0);" onclick="cfnGoToGoodsList(' + brandGroupNo + ',\'' + [[${cateInfo.cateGb}]] + '\', ' + item.cate1No + ' ';
+							if(formalGb=='G009_20'){
+								leafTag += ' ,\'\',\'\',\'\',\'\',\''+formalGb+'\'';
+							}
+							leafTag += ');">'+item.cate1Nm+'</a>';
+						}
+					});
+				});
+				$('#leafCateList').append(leafTag);
 			}
-
-
 		}
 
 	</script>

+ 3 - 3
src/main/webapp/WEB-INF/views/mob/order/OrderFormMob.html

@@ -983,25 +983,25 @@ var paymentInfoSet = function() {
 					}
 					
 					if (displayTemp == false) {
-						$("#orderForm .area_paymentinfo .agree1").hide();
-						
 						if (delvCnt > 0) {
 							$("#orderForm .area_paymentinfo .paymentinfo").show();
 						} else {
 							$("#orderForm .area_paymentinfo .paymentinfo").hide();
 						}
+						$("#orderForm .area_paymentinfo .agree1").hide();
 					}
 				});
 
 				// 2021.05.16 초기값설정
 				$("#orderForm .area_paymethod .agree_insurance").hide();
-				$("#orderForm .area_paymentinfo .agree1").hide();
 				
 				if (delvCnt > 0) {
 					$("#orderForm .area_paymentinfo .paymentinfo").show();
 				} else {
 					$("#orderForm .area_paymentinfo .paymentinfo").hide();
 				}
+				
+				$("#orderForm .area_paymentinfo .agree1").hide();
 
 				// 결제하기
 				$("#btn_payment").on("click", function(){

+ 10 - 12
src/main/webapp/WEB-INF/views/mob/planning/PlanningShotGuideFormMob.html

@@ -118,8 +118,8 @@
                     </div>
                     <div class="popup_con">
                         <div class="button_list clear">
-                        	<th:block th:if="${planCornerList!=null}" th:each="a, cornerStat : ${planCornerList}">
-                           	 <button type="button" th:onclick="fnCornerClick([[${cornerStat.index+1}]], [[${a.cornerNm}]])"><span th:text="${a.cornerNm}"></span></button>
+                        	<th:block th:if="${shotBrandList!=null}" th:each="a, cornerStat : ${shotBrandList}">
+                           	 <button type="button" th:onclick="fnCornerClick([[${cornerStat.index+1}]], [[${a.brandNm}]])"><span th:text="${a.brandNm}"></span></button>
                             </th:block>
                         </div>
                     </div>
@@ -166,17 +166,17 @@
 <script th:inline="javascript">
 let custAddr = [[${custAddr}]];
 let customerInfo = [[${customerInfo}]];
-let planCornerList = [[${planCornerList}]];
-let planCornerGoodsList = [[${planCornerGoodsList}]];
-if(planCornerList.length>0){
+let shotBrandList = [[${shotBrandList}]];
+let shotBrandGoodsList = [[${shotBrandGoodsList}]];
+if(shotBrandList.length>0){
 	var html = '';
-	$.each(planCornerList, function(idx, item)  {
+	$.each(shotBrandList, function(idx, item)  {
 		html += '<div class="inner" id="type'+idx+'">';
 		html += '	<div class="dp_listItems_wrap type1">';
-		html += '		<h2 class="dp_subtitle">'+item.cornerNm+'</h2>';
+		html += '		<h2 class="dp_subtitle">'+item.brandNm+'</h2>';
 		html += '			<div class="itemsGrp">';
-		$.each(planCornerGoodsList, function(idx2, item2)  {
-			if (item2.cornerNm == item.cornerNm) {
+		$.each(shotBrandGoodsList, function(idx2, item2)  {
+			if (item2.brandGroupNo == item.brandGroupNo) {
 			html += '				<div class="item_prod">';
 			html += '					<div class="item_state">';
 			if(item2.likeIt === 'likeit'){
@@ -333,8 +333,6 @@ var fnCornerClick = function (result1,result2) {
 	
 }
 
-
-
 //팝업_닫기
 $('.popup_close').on("click",function(){
     $('.popup_box').hide().removeClass('active');
@@ -344,7 +342,7 @@ $('.popup_close').on("click",function(){
 
 $(document).ready(function(){
 	shotBody();
-	$("#filter").text(planCornerList[0].cornerNm);
+	$("#filter").text(shotBrandList[0].brandNm);
 	// 다른기획전
 
 	$(window).scroll(function(){

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

@@ -828,19 +828,19 @@
 						<div th:id="${'goodsDescHtml_' + goodsCompose.compsGoodsCd}"></div>
 					</th:block>
 
-					<th:block th:if="${goodsInfo.tobeFormYn == 'Y'}">
+					<th:block th:if="${goodsCompose.tobeFormYn == 'Y'}">
 						<!-- 착용컷 노출 -->
-						<div class="view_outfit_box" th:if="${#strings.contains(goodsImgList,'_C1') 
-															or #strings.contains(goodsImgList,'_C2')
-															or #strings.contains(goodsImgList,'_C3')
-															or #strings.contains(goodsImgList,'_C4')
-															or #strings.contains(goodsImgList,'_C5')}">
+						<div class="view_outfit_box" th:if="${#strings.contains(goodsCompose.goodsImgList,'_C1') 
+															or #strings.contains(goodsCompose.goodsImgList,'_C2')
+															or #strings.contains(goodsCompose.goodsImgList,'_C3')
+															or #strings.contains(goodsCompose.goodsImgList,'_C4')
+															or #strings.contains(goodsCompose.goodsImgList,'_C5')}">
 							<span class="tit_view">OUTFIT VIEW</span>
-							<th:block th:each="goodsImg, status : ${goodsImgList}" th:if="${status.first}">
+							<th:block th:each="goodsImg, status : ${goodsCompose.goodsImgList}" th:if="${status.first}">
 							<span class="model_info" th:text="${goodsImg.modelInfo}">(모델정보 : 185cm / 78kg / XL 착용)</span>
 							</th:block>
 							<div class="view">
-								<th:block th:each="goodsImg, status : ${goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_C1') 
+								<th:block th:each="goodsImg, status : ${goodsCompose.goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_C1') 
 																							or #strings.contains(goodsImg.sysImgNm,'_C2')
 																							or #strings.contains(goodsImg.sysImgNm,'_C3')
 																							or #strings.contains(goodsImg.sysImgNm,'_C4')
@@ -852,20 +852,20 @@
 						
 						<!-- //착용컷 노출 -->
 						<!-- 상품컷 노출 -->
-						<div class="view_detail_box" th:if="${#strings.contains(goodsImgList,'_01') or #strings.contains(goodsImgList,'_02')
-															or #strings.contains(goodsImgList,'_D1') or #strings.contains(goodsImgList,'_D2')
-															or #strings.contains(goodsImgList,'_D3') or #strings.contains(goodsImgList,'_D4')
-															or #strings.contains(goodsImgList,'_D5') or #strings.contains(goodsImgList,'_D6')
-															or #strings.contains(goodsImgList,'_D7') or #strings.contains(goodsImgList,'_D8')
-															or #strings.contains(goodsImgList,'_D9') or #strings.contains(goodsImgList,'_D10')
-															or #strings.contains(goodsImgList,'_D11') or #strings.contains(goodsImgList,'_D12')
-															or #strings.contains(goodsImgList,'_D13') or #strings.contains(goodsImgList,'_D14')
-															or #strings.contains(goodsImgList,'_D15') or #strings.contains(goodsImgList,'_D16')
-															or #strings.contains(goodsImgList,'_D17') or #strings.contains(goodsImgList,'_D18')
-															or #strings.contains(goodsImgList,'_D19') or #strings.contains(goodsImgList,'_D20')}">
+						<div class="view_detail_box" th:if="${#strings.contains(goodsCompose.goodsImgList,'_01') or #strings.contains(goodsCompose.goodsImgList,'_02')
+															or #strings.contains(goodsCompose.goodsImgList,'_D1') or #strings.contains(goodsCompose.goodsImgList,'_D2')
+															or #strings.contains(goodsCompose.goodsImgList,'_D3') or #strings.contains(goodsCompose.goodsImgList,'_D4')
+															or #strings.contains(goodsCompose.goodsImgList,'_D5') or #strings.contains(goodsCompose.goodsImgList,'_D6')
+															or #strings.contains(goodsCompose.goodsImgList,'_D7') or #strings.contains(goodsCompose.goodsImgList,'_D8')
+															or #strings.contains(goodsCompose.goodsImgList,'_D9') or #strings.contains(goodsCompose.goodsImgList,'_D10')
+															or #strings.contains(goodsCompose.goodsImgList,'_D11') or #strings.contains(goodsCompose.goodsImgList,'_D12')
+															or #strings.contains(goodsCompose.goodsImgList,'_D13') or #strings.contains(goodsCompose.goodsImgList,'_D14')
+															or #strings.contains(goodsCompose.goodsImgList,'_D15') or #strings.contains(goodsCompose.goodsImgList,'_D16')
+															or #strings.contains(goodsCompose.goodsImgList,'_D17') or #strings.contains(goodsCompose.goodsImgList,'_D18')
+															or #strings.contains(goodsCompose.goodsImgList,'_D19') or #strings.contains(goodsCompose.goodsImgList,'_D20')}">
 							<span class="tit_view">PRODUCT VIEW</span>
 							<div class="view">
-								<th:block th:each="goodsImg, status : ${goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_01') or #strings.contains(goodsImg.sysImgNm,'_02')
+								<th:block th:each="goodsImg, status : ${goodsCompose.goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_01') or #strings.contains(goodsImg.sysImgNm,'_02')
 																							or #strings.contains(goodsImg.sysImgNm,'_D1') or #strings.contains(goodsImg.sysImgNm,'_D2')
 																							or #strings.contains(goodsImg.sysImgNm,'_D3') or #strings.contains(goodsImg.sysImgNm,'_D4')
 																							or #strings.contains(goodsImg.sysImgNm,'_D5') or #strings.contains(goodsImg.sysImgNm,'_D6')
@@ -882,22 +882,22 @@
 						</div>
 						<!-- //상품컷 노출 -->
 						<!-- 원단 노출 -->
-						<div class="view_fabric_box" th:if="${#strings.contains(goodsImgList,'_F1')}">
+						<div class="view_fabric_box" th:if="${#strings.contains(goodsCompose.goodsImgList,'_F1')}">
 							<span class="tit_view">FABRIC</span>
 							<div class="view">
-								<th:block th:each="goodsImg, status : ${goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_F1')}">
+								<th:block th:each="goodsImg, status : ${goodsCompose.goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_F1')}">
 								<img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=720'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
 								</th:block>
 							</div>
 						</div>
 						<!-- //원단 노출 -->
 						<!-- 라벨 노출 -->
-						<div class="view_label_box" th:if="${#strings.contains(goodsImgList,'_L1') 
-															or #strings.contains(goodsImgList,'_L2')}">
+						<div class="view_label_box" th:if="${#strings.contains(goodsCompose.goodsImgList,'_L1') 
+															or #strings.contains(goodsCompose.goodsImgList,'_L2')}">
 							<span class="tit_view">LABEL INFO</span>
 							<div class="view">
 								<span>
-									<th:block th:each="goodsImg, status : ${goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_L1') 
+									<th:block th:each="goodsImg, status : ${goodsCompose.goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_L1') 
 																							or #strings.contains(goodsImg.sysImgNm,'_L2')}">
 									<img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=250'}" alt=""  th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
 									</th:block>
@@ -906,9 +906,9 @@
 						</div>
 						
 						<!-- //네이밍룰 안맞는 이미지 노출 -->
-						<div class="view_detail_box" th:if="${not #strings.contains(goodsImgList,'_01')}">
+						<div class="view_detail_box" th:if="${not #strings.contains(goodsCompose.goodsImgList,'_01')}">
 							<div class="view">
-								<th:block th:each="goodsImg, status : ${goodsImgList}" >
+								<th:block th:each="goodsImg, status : ${goodsCompose.goodsImgList}" >
 									<img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=720'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
 									</th:block>
 							</div>

+ 5 - 5
src/main/webapp/WEB-INF/views/web/order/OrderFormWeb.html

@@ -956,24 +956,24 @@ var paymentInfoSet = function() {
 					}
 					
 					if (displayTemp == false) {
-						$("#orderForm .area_paymentinfo .agree1").hide();
-						
 						if (delvCnt > 0) {
 							$("#orderForm .area_paymentinfo .paymentinfo").show();
 						} else {
 							$("#orderForm .area_paymentinfo .paymentinfo").hide();
 						}
+						$("#orderForm .area_paymentinfo .agree1").hide();
 					}
 				});
 
-				// 2021.05.16 초기값설정
-				$("#orderForm .area_paymentinfo .agree1").hide();
 				if (delvCnt > 0) {
 					$("#orderForm .area_paymentinfo .paymentinfo").show();
 				} else {
 					$("#orderForm .area_paymentinfo .paymentinfo").hide();
 				}
 				
+				// 2021.05.16 초기값설정
+				$("#orderForm .area_paymentinfo .agree1").hide();
+				
 				// 결제하기
 				$("#btn_payment").on("click", function(){
 					// 사은품정보
@@ -1464,7 +1464,7 @@ var dcAmtInfoSet = function() {
 					}
 					
 					// 2021.04.23 추가
-					mcxDialog.alert("총 " + getZeroMinusDelAmt(pntDcAmt) + " P를 차감 결제 합니다.");
+					mcxDialog.alert("총 " + pntDcAmt + " P를 차감 결제 합니다.");
 					
 					// 포인트 적용
 					$("#orderAmtForm .pntDcSumAmt").text(pntDcAmt);

+ 10 - 19
src/main/webapp/WEB-INF/views/web/planning/PlanningShotGuideFormWeb.html

@@ -28,11 +28,6 @@
 		</div>
 		<div class="wrap">
 			<div class="content wide dp_Bulletship"> <!-- 페이지특정 클래스 = dp_Bulletship -->
-				<div class="cont_head">
-					<div>
-                        <h3>총알배송</h3>
-                    </div>
-				</div>
 				<div class="cont_body">
 				    <div class="bulletship">
 						<!-- <div class="bulletship_head" th:utext="${#strings.replace(#strings.replace(shotHtmlTop.fsrcPc,'&amplt;','<'),'&ampgt;','>')}"> -->
@@ -148,43 +143,39 @@
 /*<![CDATA[*/
 let custAddr = [[${custAddr}]];
 let customerInfo = [[${customerInfo}]];
-let planCornerList = [[${planCornerList}]];
-let planCornerGoodsList = [[${planCornerGoodsList}]];
+let shotBrandList = [[${shotBrandList}]];
+let shotBrandGoodsList = [[${shotBrandGoodsList}]];
 // 로그인 확인
-if(planCornerList.length>0){
+if(shotBrandList.length>0){
 	var html = '';
 	
 	html += '<div class="cont_head">';
 	html += '     <div class="sticky_nav">';
 	html += '         <ul>    ';
-	$.each(planCornerList, function(idx, item)  {
-		html += '             <li><a href="#brand'+idx+'">'+item.cornerNm+'</a></li>';
+	$.each(shotBrandList, function(idx, item)  {
+		html += '             <li><a href="#brand'+idx+'">'+item.brandNm+'</a></li>';
 	})
 	html += '         </ul>';
 	html += '     </div>';
 	html += '</div>';
 	html += '<div class="cont_body">';
 	html += '     <div class="list_content">';
-	$.each(planCornerList, function(idx, item)  {
+	$.each(shotBrandList, function(idx, item)  {
 		html += '         <div id="brand'+idx+'">';
 		html += '             <div class="item_header">';
-		html += '                 <h4>'+item.cornerNm+'</h4>';
+		html += '                 <h4>'+item.brandNm+'</h4>';
 		html += '             </div>';
 		html += '             <div class="itemsGrp';
-		if (item.cornerDispType == 'G045_1') {
-			html += ' cut1';
-		}else if(item.cornerDispType == 'G045_2'){
+		if(item.cornerDispType == 'G045_2'){
 			html += ' cut2';
-		}else if(item.cornerDispType == 'G045_3'){
-			html += ' cut3';
 		}else if(item.cornerDispType == 'G045_4'){
 			html += ' cut4';
 		}else if(item.cornerDispType == 'G045_5'){
 			html += ' cut5';
 		}
 		html += '">';
-		$.each(planCornerGoodsList, function(idx2, item2)  {
-			if (item2.cornerNm == item.cornerNm) {
+		$.each(shotBrandGoodsList, function(idx2, item2)  {
+			if (item2.brandGroupNo == item.brandGroupNo) {
 				html += '                 <div class="item_prod">';
 				html += '                     <div class="item_state">';
 				if(item2.likeIt === 'likeit'){